当前位置:首页 > 智能硬件 > 智能硬件
[导读]以Cirrus Logic公司的ARM 芯片和TI 公司的TMS320V DSP 为例,研究了ARM与DSP 的数据接——HPI 接口的相关技术,并给出了在HPI 接口非复用模式下,CS89712 与C5510 的信号连接图和嵌入式实时操作系统uCOS-II下驱动程序的部分关键源代码。

摘 要:以Cirrus Logic公司的ARM 芯片和TI 公司的TMS320V DSP 为例,研究了ARM与DSP 的数据接——HPI 接口的相关技术,并给出了在HPI 接口非复用模式下,CS89712 与C5510 的信号连接图和嵌入式实时操作系统uCOS-II下驱动程序的部分关键源代码。
关键词:ARM CS89712;主机接口(HPI);TMS320VC5510

        引 言 

        目前嵌入式系统已被广泛地应用到电子产品领域和无线通信、网络通信等高端设备领域。32 位ARM嵌入式处理器具有高性能、低功耗的特性,DSP芯片由于功能强大,加上接口方便、软件可用资源丰富、编程方便、稳定性好、精度高等优点,应用也越来越广泛。通常在嵌入式系统的设计中,由ARM嵌入式处理器实现整个系统的协调控制和网络功能,由DSP 芯片来执行复杂计算,因此需要实现ARM处理器和DSP 之间的数据交换。从某种程度上来说,ARM嵌入式处理器和DSP 之间数据交换的速度决定了整个系统的运行速度和性能。 

        ARM CPU CS89712 的特点 

        CS89712 是Cirrus Logic 公司一款基于ARM7TDMI的SOC 芯片。它一方面具有ARM 处理器的所有优点:低功耗、高性能;同时又具有非常丰富的片上资源,非常适合嵌入式产品的开发。其特点如下: 

  a、采用ARM7TDMI 内核,I/O 电压3.3 V ,内核电压2.5 V ;
  b、内置锁相环(PLL),系统主频最高达74MHz ;
        c、3种工作模式,可以实现电源管理以降低系统功耗;
        d、8KB 的系统高速缓存(CACHE),极大地提高了系统运行速度;
        e、支持8 个MEMORYBANK,最大外部存储空间达256MB ,并支持SDRAM;
        f、内置单色LCD 控制器;
        g、2 路异步串口(UART);
        h、27 个通用I/O口;
        i、实时时钟(RTC)和看门狗电路(WATCHDOG)。 

        C55X DSP 及其EHPI 接口 

        C5510 DSP 的特点

        以高速、低功耗为特征的VC55X 系列DSP 采用先进的改进型哈佛结构,具有分离的数据总线和程序总线,片内集成了ROM、RAM和多个外设,如通用I/O口、定时器、时钟发生器、软件可编程等待状态发生器、可编程块切换逻辑、串行口、直接存储器存取控制器(DMA)和与外部处理器通信用的主机接口(HPI)。 

        C55X的增强型主机接口(EHPI)

        TI 的C5510 之前的DSP 系列(C54X系列)中的主机接口(HPI)主要有三种:标准8 位HPI8 接口、增强型8 位HPI8 接口和16 位HPI16 接口。其中C542~C549 内含标准型HPI8 ;C5402、C5410 内含增强型HPI8 ;C5410 以上为HPI16 ;C5409、C5416 的HPI 可以由用户设置为增强型HPI8 或HPI16。C5510 其内部使用的是增强型主机接口,增强型比标准型更优越之处主要在于:增强型允许主机访问DSP 内部的所有片内RAM,而标准只能访问RAM 区中指定的2K字。 

        C55X为主机提供增强型的16 位并行接口(EHPI)具有以下特点: 

        a、20 位主机地址总线;
        b、16 位主机数据总线;
        c、复用和非复用两种总线模式;
        d、主机可以访问C5510 的片内SARAM、片内DARAM和片外存储器;
        e、在高速传输数据时可以自增的20 位的地址寄存器(在复用模式下);
        f、多地址、数据探头为各种主机提供紧密接口;
        g、HRDY信号用来与主机进行握手; 

        C5510 与外部主机或微处理器的连接具有单独的16 根数据线HD0~HD15、20 根地址线HA0~HA19 和10 根控制线。主机主动通过EHPI 口能够直接访问DSP 的存储区。在图1 所示的HPI 能访问的地址范围内,主机和DSP 可以通过DSP 的内部和外部存储区来交换信息。除了对主机发中断(通过置HPIC 寄存器的HINT 位,可以使HINT 线有效)或清除主机发来的中断(通过清HPIC 寄存器的DSPINT标志)需要DSP 干涉外,C5510 几乎不用进行其他操作。片内的DMA 通道会自动辅助完成RAM区与HPI 数据寄存器的数据传输。主机由HCNTL0/1 线来选择HPI 的某个控制寄存器,如表1 所列。通过对这4 个寄存器的访问,就可以在所设安全机制的允许范围下读/写DSP 的所有或部分片内RAM。 

        主机由HCNTL0/1 线来选择HPI 的某个控制寄存器。在非复用模式下,HCNTL0 决定HPI 是否访问控制其(HPIC)寄存器或数据寄存器(HPID),如表1 所示(0 ——低电平,1 ——高电平),此时HCNTL1未被使用。

  表1  HCNTL0/1 的选择功能描述

 
图1  通过HPI 可以访问的DSP 存储区图

        CS89712 与C5510 DSP 的接口设计 

        硬件连线 

        TMS320VC5510 与CS89712 连接的接口电路如图3 所示。由图2 可见,C5510 通过EHPI 与主机设备相连时,除了EHPI 数据总线及控制信号线外,不需要附加其它的逻辑电路,非常方便。


图2  EHPI接口非复用模式下的连接图

        从EHPI 寄存器的编址方式可以看出,将HPI16接口安排在CS89712 的BANK3(即地址范围0X03000000~0X03FFFFFF),而且CS89712 具有内部译码器,直接产生片选信号CS3。 

        由于C55X HPI16 是一个16 位的并行端口,而C5510 的内部结构为16 位,所以在非复用模式下,只需将数据和地址总线分别连接即可。 

        另外,还有几个关键的控制信号需要连接。一个就是HR/W信号,由于CS89712 没有此信号,使用端口A 的PA3 来代替。当PA3=1 时,代表读操作,反之为写操作。 

        由于CS89712 和C5510 EHPI 接口的控制逻辑不尽相同,需要使用其它的一些信号线来进行模拟,此时要严格遵循EHPI 的读写时序。 

        软件设计

        在硬件连接设计好的基础上,我们还需要通过正确的编程才能实现我们预想的时序。因为我们在ARM CS89712 上运行嵌入式操作系统uCOS-II ,所以在写程序对HPI 接口进行读/写操作时将HPI 接口看作一个外部设备,将完成读/写操作的程序看成在uCOS-II 下面的一个字符型驱动。这样软件的设计就变成了在uCOS-II 下面驱动程序的开发。考虑到CS89712 不光要将DSP 的数据取过来,而且还要将这些数据处理后再发送出去,这就需要这两者之间有很好的配合。 

        CS89712 与DSP5510 之间的EHPI 接口读/写程序主要由两个部分组成: 11ARM 自身的初始化;21HPI 接口读写程序。 

        ARM 处理器自身的初始化

        ARM处理器首先要完成自身工作模式等一系列的初始化,才能正常进行EHPI 接口的读/写,源代码如下所示。

        //为了配合EHPI 口的时序,关掉MMU 页表中
        bank3 的Cache
        Xcount SETA 0x30000c1e
         WHILE Xcount < 0x31000000
                    DCD Xcount
                    Xcount SETA Xcount + 0x00100000
         WEND
        rMEMCFG1&=0x00ffffff;//设置与DSP 连接的nCS3 :16 位总线宽度、8 个随机状态
        rMEMCFG1|=0x01000000;//3 个顺序等待状态、禁止顺序访问、禁止扩展时钟上面这段代码主要是对几个寄存器进行配置。 

        在配置好ARM 处理器的工作模式后,对外部I/O 接口BANK3 的对应地址进行读/写操作,就可以完成对HPI 接口的相应操作了。 

        HPI 接口读写程序

        以下的第一句代码是宏定义,定义了C5510 的EHPI 接口寄存器的地址。在本设计中,已经将HPI口与外部I/O 接口的BANK3 相接,这样HPI 口将占用外部I/O 接口BANK3 的地址。由于是使用PA3来模拟HPI16 接口的HR/W,所以对DSP 进行读/写操作时, 应先将该信号置为相应的读/写有效状态。 

        //ARM向DSP 写数据时
        # define EHPI-BASE 0x3208000
        int t ;
        rPADDR=0x08 ; //PA3 方向定义为输出
        rPADR=0x00 ; //PA3 为低电平
        t=*(volatile U16* )( EHPI-BASE + Add-offset);//ARM从DSP 读取数据时
        rPADDR=0x08 ; //PA3 方向定义为输出
        rPADR=0x08 ; //PA3 为高电平
        (volatile U16*)( EHPI-BASE+Add-offset)=t 

         结束语 

        以ARM芯片作为主控制器,用DSP 芯片进行运算,然后通过HPI 接口进行通信和交换数据的嵌入式系统设计应用模式的得到越来越广泛的应用,而这两者之间能够高效、快速并且稳定的进行数据交换将是影响系统性能的关键部分之一。文中给出的CS89712 和C5510 之间的硬件连接方法和软件设计经过实践的验证,是可行的和满足要求的。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

在这篇文章中,小编将对CPU中央处理器的相关内容和情况加以介绍以帮助大家增进对CPU中央处理器的了解程度,和小编一起来阅读以下内容吧。

关键字: CPU 中央处理器 晶圆

在桌面级处理器上,AMD多年来一直在多核上有优势,不过12代酷睿开始,Intel通过P、E核异构实现了反超,13代酷睿做到了24核32线程,核心数已经超过了锐龙7000的最大16核。在服务器处理器上,AMD优势更大,64...

关键字: AMD CPU Intel EUV

华为麒麟芯片(HUAWEI Kirin)是华为技术有限公司于2019年9月6日在德国柏林和北京同时发布的一款新一代旗舰芯片。华为麒麟在3G芯片大战中,扮演了“黑马”的角色。

关键字: 麒麟 CPU 华为Mate 50

物联网正在扩大规模并加速发展,进而驱动着全新的经济。而Arm生态系统正是这一巨大机遇背后的推动力。

关键字: ARM 物联网

ARM公司是一家知识产权(IP)供应商,它与一般的半导体公司最大的不同就是不制造芯片且不向终端用户出售芯片,而是通过转让设计方案,由合作伙伴生产出各具特色的芯片。

关键字: ARM

据业内信息,近日ADM的一份内部报告显示,ADM正在计划降低其锐龙 7000 CPU的生产计划。现阶段全球市场PC的低迷和销量下滑,再加上AM5平台整体反响不佳等等一系列原因导致ADM采取这一行动计划。

关键字: PC ADM 锐龙 7000 CPU

北京2022年10月17日 /美通社/ --  "天下武功、唯快不破",数字经济时代尤甚。 数据极富价值,堪比新时代的石油。数字经济时代,数据价值如何快速、高效地释放显得尤为重要。自20...

关键字: 软件 IO SSD CPU

Linux内核是从V2.6开始引入设备树的概念,其起源于OF:OpenFirmware, 用于描述一个硬件平台的硬件资源信息,这些信息包括:CPU的数量和类别、内存基地址和大小、总线和桥、外设连接、中断控制器和中断使用情...

关键字: Linux内核 硬件 CPU

(微控制单元 MCU(Microcontroller Unit),又称单片机,是把中央处理器(CentralProcess Unit; CPU)的频率与规格做适当缩减,并将内存(memory)、计数器(Timer)、US...

关键字: 单片机 芯片 CPU

2018年10月26日,深圳星河丽思卡尔顿酒店,ARM中国CEO吴雄昂在ARM年度技术论坛上对记者如是说,彼时的吴坚定,温雅,意气风发。时隔两年,ARM中国CEO吴雄昂再次回到媒体视线,这一次,ARM中国与来自投资方和剑...

关键字: ARM 芯片 集成电路

智能硬件

22006 篇文章

关注

发布文章

编辑精选

技术子站

关闭