您好,  [请登录] [QQ登录]  [支付宝登录[免费注册]

商品分类

分享到: 百度搜藏 搜狐微博 新浪微博 腾讯微博 QQ收藏 人人网 Facebook Twitter

ARM/DSP双核体系的通讯接口计划

发布日期:2011-04-17

择要:ARM/DSP体系平台是采取ARM7和DSP双CPU构建的嵌入式体系开辟平台。体系通过基于ARMDSP搭建完备的嵌入式体系硬件平台。通过基于ARM的嵌入式Linux操纵体系、MicroWindows图形界面以及大量网络办事步伐,在ARM上构建完备的软件体系。通过主机高速并行接口(HPI)实现ARMDSP之间的数据互换,将数据处理惩罚和及时控制交给DSP完成。软件平台完全依照GPL标准,通过提供完备的嵌入式软件及其源代码,以及平台机动的可裁剪性,可以方便地开辟出基于该平台的嵌入式产品。本文细致先容体系的总体计划以及ARMDSP的通讯接口计划。

关键词:ARM DSP 双核嵌入式体系 通讯接口

引 言


  嵌入式体系的内核是嵌入衰落处理惩罚器和嵌入式操纵体系。早期的嵌入式体系硬件内核是种种范例的8位和16位单片机;而比年来32位处理惩罚器以其高性能、低代价,得到了遍及的应用。比年来,又出现了另一类数据麋集处理惩罚型芯片DSPDSP由于其特别的布局、专门的硬件乘法器和特别的指令,使其能快速地实现种种数字信号处理惩罚及餍足种种高及时性请求。随着当代嵌入式体系的巨大度越来越高,操纵体系已成为嵌入式体系不可缺少的部分。免费的嵌入式操纵体系,如Linux等,随着自身不绝的改进,得到了飞速的生长。Linux是一个免费的、强大的、可信托的、具有可伸缩性与扩充性的操纵体系。Linux实现了很多当代化操纵体系的理论,并且支持完备的硬件驱动步伐、网络通讯协议与多处理惩罚器的架构,其源码的公然更有利于操纵体系嵌入式应用。

  基于上述阐发,笔者开辟了基于ARMDSP芯片的双核嵌入式体系。体系充分利用了ARMDSP的各自特点,既可以利用ARMDSP芯片举行协同开辟,也可以利用ARMDSP举行独立开辟。操纵体系选用了Linux,以利于充分发挥体系的效能。

1 体系的总体计划

  由于ARM芯片的控制性能较强,在嵌入式体系中ARM重要用于控制和少量的数据处理惩罚。如许,一方面请求CPU要低功耗和有充足的时钟频率来运行操纵体系,以餍足便携式的请求;另一方面也请求其有充足种类的接口,以利于性能的扩展。基于以上思量,在开辟平台中选用HY7202作为CPU。

  DSP作为数据运算部分,可以充分发挥其对数字信号处理惩罚的独特上风。TI公司的C54xx系列16位定点DSP以其高性价比广泛应用于种种通讯、便携式应用当中。思量到对数字视频和数字图像等大数据吞吐量应用场合的处理惩罚请求,选用TI公司的TMS320C5416芯片。当时钟频率最高可到达206 MHz,体系总体框图如图1所示。
    
              图1.体系团体硬件布局框图

   体系软件平台布局如图2所示,软件平台分ARM部分和DSP部分,以及ARMDSP的接口软件计划部分。ARM部分以Hynix公司PATCH的ARM Linux Version 2.4.18为操纵体系,并在此底子之上移植Linux标准库GLIBC、LIBJPG、LIBPNG、IMLIB、LIBWWW、LIBFLASH及汉字库。图形界面以Microwindows 0.9及其控件库FLNX提供嵌入式图形界面平台。体系平台具有强大的网络通讯成果,通过平台WEBSERVER、FTP、TELNET、INETD等网络东西和应用步伐能方便地开辟基于Internet的网络终端、长途控制、长途数据征求、长途数据处理惩罚产品。在应用步伐层上,体系平台集成窗口办理步伐,全中文化网络欣赏器(支持HTML、XML),Flash播放器(支持Flash4、Flash5、Flash6),文本编辑器,游戏等用于PDA开辟,机顶盒上彀办理方案,以及可用于嵌入式数据征求、处理惩罚的假造示波器等。
     
               图2.体系软件的总体布局

  DSP部分通过提供完备的HPI驱动步伐(DSP部分)及通讯协议,通过增长相应数据处理惩罚程控制算法步伐,利用HPI并行接口与主机ARM通讯举行数据互换,可用于种种及时处理惩罚,控制范畴。

  别的,DSPARM可以各自作为独立的体系利用,它们均有完备的子体系软件。子体系之间接洽的内核是DSP器件本身带有的HPI接口。

2 ARMDSP的通讯接口计划

(1) DSP的HPI口先容

  HPI是TMS320C54X等芯片提供的一种并行端口,专门用于DSP和外部主机并行通讯。HPI接口有标准HPI接口和加强型HPI接口。对付C5416和C5420DSP器件,它们的主机接口为加强型主机接口。标准HPI接口是一个8位总线接口,通过2个8位字节组合在一起形成1个16字。加强型HPI接口分8位和16位两种。8位加强型主机接口和标准HPI接口操纵时序一样,重要区别在于标准型只能访问2 KB专用RAM,而加强型可以访问DSP的整个RAM区。16位加强型HPI接口采取16位总线,只要一个主机操纵就能完成访问操纵。

(2) HPI硬件连接

  HMS30C7202与TMS320C5416接口电路如图3所示。体系将HPI接口全部控制寄存器、地点寄存器、数据寄存器同一编址,映射到HMS30C7202物理地点0X0C000000开始的I/O内存空间。
      
              图3. DSP和主机双向通讯

  利用地点线RA/[3:0/]孕育产生HPI访问所需的控制信号。A0与A1决定访问寄存器范例。A2决定访问的是第一个字节还是第二个字节:A2=0时,表现写入的数据为第一个字节;A2=1时,表现写入的数据为第二个字节。在HPI-8中全部地点线和控制线是在HDS1和HDS2的降落沿采样,而不是由HR/W决定,因此HR/W通过地点线A3表现当前操纵是读还是写,而数据锁存信号由nRCS3和nRW0相与后共同孕育产生。KSCAN[2]设置为HMS30C7202的PORTA停止输入脚,DSP通过停止方法与Linux底层HPI驱动步伐通讯。

3 ARMDSP的通讯接口驱动步伐计划

  Linux是Unix操纵体系的一种变种。在Linux下编写驱动步伐的原理和头脑完全雷同于其他的Unix体系,但它和DOS或Window环境下的驱动步伐有很大的区别。Linux驱动步伐可以编译进内核,也可以模块情势动态地参加和卸载。Linux的这种特点可根据目标体系淘汰内核,更得当于嵌入式体系。

(1) Linux驱动步伐基源头根本理

  在Linux中全部配置分为字符配置、块配置和网络配置三种,全部配置都当作平凡文件,因此可以通过用利用平凡文件雷同的体系调用来打开、封闭、读取和写入配置。体系中每个配置都用一种配置特别文件来表现。

  在Linux中,配置驱动步伐是一组相干函数的聚集。它包括配置办事子步伐和停止处理惩罚步伐,每个配置办事子步伐只处理惩罚一种配置大概精密相干的配置。其目标便是从与配置无关的软件中担当抽象的下令并实行。当实行一条恳求时,详细操纵是根据控制器驱动步伐提供的接口,并利用停止机制去调用停止办事子步伐共同配置来完成这个恳求。配置步伐利用布局file_operations与文件体系接洽起来。在Linux下驱动步伐装载如图4所示。
     
                图4.模块连接到内核表示

(2) HPI驱动步伐

  HPI接口可用I/O端口方法,也可以用I/O存取方法。体系平台采取I/O存取方法,将HPI访问控制寄存器、数据寄存器、地点寄存器,映射到内存物理地点为0X0C000000开始的空间,通过访问存储器指令对HPI举行操纵。HPI详细物理地点定义如下:
#defineHPI_BASE0X0C000000//HPI基地点
#define HPD_READ_LOWHPI_BASE+0X0012
//读数据寄存器第一字节

#define HPA_WRITE_HIGHHPI_BASE+0X000C
//写地点寄存器第二字节

  在Linux下,雷同Windows,步伐不克不及直接访问物理地点。配置驱动步伐是内核的一部分,它像内核中其他代码一样运行在内核模式,驱动步伐要是堕落就会使体系受到紧张粉碎,因此必要将物理地点映射到内核空间。在Linux下通过virtul_address=(u32)ioremap(HPI_BASE,HPI_LENGTH)实现。驱动步伐重要布局如下:
struct file_operations hpi_fops={
owner:THIS_MODULE,
read: hpi_read,
write: hpi_write,
poll : hpi_poll,
open: hpi_open,
release: hpi_release,
};

  HPI通讯协议采取帧布局,由于加强型HPI接口容许访问DSP内部RAM全部空间,体系通讯在DSP内部分派2 K字(16位)作为帧缓冲区,读写各1 K字,协议采取一位滑动窗口协议。帧格局如表1所列。
     

结语

  本文先容了利用ARMDSP双CPU构成的双核嵌入式体系的硬件平台,以及源代码开放的Linux作为嵌入式体系中操纵体系的要领,给出了体系计划的总体框图,细致先容了ARMDSP通讯接口的计划。这一计划要领可以实用于大多数当代嵌入式体系的计划,有肯定的实用代价。

                  参考文献
1 http://www.kernel.org
2 www.linuxdevices.com
3 http://kernelnewbies.org/documents/kdoc
4 Michacl K.Johnson Erik W.Troan. LINUX编程权势巨子指南. 龙华乔,胡以迳译. 北京:中国电力出版社,2001
5 徐盛,胡剑凌. 数字信号处理惩罚器开辟实践. 上海:上海交通大学出版社,2003
6 胡剑凌,徐盛. 数字信号处理惩罚体系的应用和计划. 上海:上海交通大学出版社,2003