(中国航天科工集团第九总体设计部,湖北 武汉 430040)
:详细先容了TI公司TMS320C6678多核DSP高速外设模块EMIF16(外部存储器接口)的功能及特性,利用EMIF模块扩展存储空间大、通信速率快、硬件接口电路大略、性能稳定等特点,设计并实现了一种基于EMIF模块的DSP与FPGA异步通信接口,重点描述了接口通信系统架构设计和详细软件实现。测试验证表明基于该接口可进行DSP与FPGA之间多种格式数据传输,接口运行稳定可靠,扩展了TMS320C6678多核DSP处理芯片与外部器件通信系统接口的设计办法。

:EMIF;DSP;FPGA;异步接口

:TN911; TP39文献标识码:ADOI: 10.19358/j.issn.1674-7720.2017.07.007
引用格式:陈术涛,俞鹏先,沈志,等.基于高速外设模块的多核DSP与FPGA通信系统设计[J].微型机与运用,2017,36(7):22-25.
0弁言
随着信息与通信技能的快速发展和进步,其在图像处理、模式识别、雷达旗子暗记处理、电子对抗、无线通信、导航定位等领域得到越来越深入的运用,随之而来的对硬件平台高效稳定通信能力的需求也在同步增长。目前,旗子暗记处理系统的硬件平台大多采取高度集成的嵌入式系统,基于DSP+FPGA的硬件架构设计凭借其超强的处理能力和广泛的工程运用等上风,已经成为当前通用数字旗子暗记处理平台的首选。TMS320C6678多核高速DSP芯片是目前TI公司最新推出的高性能数字旗子暗记处理芯片,处理能力领先,基于该芯片的硬件处理平台市场运用前景广泛。本文针对TMS320C6678DSP芯片和Xilinx公司Kintex7系列FPGA组成的旗子暗记处理系统进行研究,设计了一种基于EMIF16模块的DSP与FPGA通信接口。该接口充分利用EMIF接口高速、稳定、设计大略等特性,同时合营FPGA逻辑处理能力强、可编程等优点进行接口逻辑设计,事情性能稳定,数据处理能力强,功能灵巧可扩展,可适应多种通信需求,很好地办理了DSP与FPGA之间的通信问题。
1EMIF16接口模块特色
1.1EMIF16接口简介
图1EMIF16接口模块框图EMIF16是DSP芯片自带的外部存储器接口模块,其紧张功能是支持内核CPU对外部扩展存储空间的访问,EMIF16可与ASRAM、NOR Flash、NARD Flash等类型的异步存储设备连接,异步访问地址空间最大可扩展为256 MB,接口模块供应4个片选旗子暗记,每个片选旗子暗记可选中64 MB独立存储空间。该接口模块具有可编程能力,通过设置模块掌握寄存器的不同参数可调节接口读写时序和传输数据宽度等传输特性,EMIF16模块接口构造如图1所示[1]。
由图1可见,EMIF16模块框图紧张由一系列旗子暗记引脚组成,各接口管脚功能如下:EMIFD[15:0]表示EMIF模块读写数据的16位数据总线;EMIFA[23:0]表示EMIF模块访问存储空间的24位地址总线;EMIFCE[3:0]表示EMIF模块片选旗子暗记,低电平有效,分别对应DSP的CE0~CE3片选区间;EMIFBE[1:0]表示EMIF模块字节使能旗子暗记;EMIFWE表示EMIF模块写操作使能旗子暗记,低电平有效;EMIFOE表示EMIF模块输出使能旗子暗记,低电平有效;EMIFWAIT[1:0]表示EMIF模块等待旗子暗记;EMIFRnW表示EMIF模块的读写使能旗子暗记[2]。通过对上述的数据总线、地址总线及掌握旗子暗记的编程设计实现EMIF16接口与外部存储器的通信功能。
1.2EMIF16接口连接及异步读写时序
EMIF16模块外接不同类型存储芯片时旗子暗记管脚的接口设置也不相同,本系统设计的通信系统中多核DSP的EMIF16模块接口直接与FPGA连接,由FPGA端设计多个FIFO空间供DSP进行读写,EMIF16模块外接时序设计采取8-bit NOR Flash接口时序,详细接口框图如图2所示[3]。
EMIF16接口的每个读/写周期分为三个阶段:建立韶光(Setup)、触发韶光(Strobe)和保持韶光(Hold),每个阶段的相应参数都可通过对EMIF16模块掌握寄存器编程进行设置,详细参数设置在接口驱动程序中实现。接口读写时序参数是EMIF接口设计中较为主要的参数,DSP端与FPGA端接口时序必须保持同等才能实现数据稳定传输,EMIF异步读时序如图3所示,EMIF异步写时序如图4所示。
图3、图4中Setup、Strobe、Hold等参数设置皆以EMIF16时钟周期为基准,本系统设计中EMIF16模块默认利用DSP系统输出时钟中的SysClk7时钟旗子暗记,该时钟频率为芯片主频的1/6分频,本系统中利用的TMS320C6678多核DSP主频配置为1 GHz,以是EMIF16接口时钟频率可达到166.67 MHz,能够知足高速串行通信需求[4]。
2DSP与FPGA通信系统设计
本文设计的DSP与FPGA通信接口基于图2所示的异步 8bit NOR Flash接口连接图哀求进行硬件电路设计,同时,基于该硬件平台设计一种通信运用系统,实现DSP与FPGA之间数据的稳定快速传输,本系统所设计的通信系统架构如图5所示。
图5描述了一种基于EMIF16接口模块的DSP与FPGA通信系统运用框图。FPGA端供应多个8 bit宽的FIFO供DSP进行读写,DSP端除了利用EMIF模块外,同时调用了CPU中断系统资源合营传输。FPGA将写入FIFO后发送相应掌握旗子暗记触发DSP中断,DSP收到读中断后启动EMIF接口读取消息;DSP端发送时可直接将数据写入EMIF模块对应的寄存器,EMIF模块在异步写周期内将数据写入FPGA供应的存储FIFO中。此框架中FPGA真个读/写存储区分别供应多个FIFO进行通信,从而使该系统可进行多种种别或者多协议的通信,提高了系统运用的适应性;在DSP数据吸收端利用了缓存机制设计,EMIF接口模块吸收的每一条首先存入缓存区,然后再由CPU对缓存区逐条进行校验和处理,这样操作不仅提高了EMIF模块吸收的效率,而且将吸收和处理两个CPU紧张线程进行了分离,防止在未处理时被覆盖或者修改,担保了缓冲区数据的完全性和精确性,从而提高旗子暗记处理的稳定与可靠性。
3通信系统软件设计与实现
3.1通信接口软件设计
根据EMIF16模块接口特性,系统可扩展访问地址空间最大为256 MB, 存储地址范围为0x70000000~0x7FFFFFFF,均匀分为4个CE地址空间,每个CE空间支持外接NAND、NOR及SRAM存储器,每个CE空间都有单独的异步配置寄存器(ACR)对其利用配置,EMIF16模块寄存器地址空间为0x20C00000~0x20C00FF,共256 B,该地址空间内包括EMIF16模块的版本及状态寄存器(RCSR)、异步等待周期寄存器 (AWCCR)、4个异步配置寄存器(ACR)及EMIF模块中断干系寄存器(IRR、IMR、IMSR、IMCR)等。要实现本系统所设计的通信接口功能,首先需对DSP的EMIF16模块进行驱动初始化编程,即对上述相应寄存器进行编程配置,寄存器编程配置时可根据须要进行重点位域编码,与系统功能实现无关的寄存器位域可选择默认值配置。驱动配置完成后方可进行上层运用系统的设计及实现,本系统所设计的基于EMIF16接口的DSP与FPGA异步通信系统软件流程如图6所示。
如图6所示,基于EMIF的接口通信程序完成系统初始化后即可与外界进行通信,本文所设计的通信系统紧张完成的吸收与发送功能:吸收端采取被动吸收模式,需依赖系统奉告EMIF模块进行数据吸收,本系统设计中利用中断赞助实现数据吸收功能,系统中利用GPIO9管脚上升沿旗子暗记作为中断事宜触发CPU中断,当FPGA端将数据准备好后即对GPIO9管脚进行拉高电平操作,DSP端收到GPIO9上升沿旗子暗记后触发INT9,CPU收到中断旗子暗记后实行中断做事函数,在中断做事函数中对吸收掌握寄存器(RCR)进行判断并实行相应吸收操作;发送端采取主动发送模式,由CPU直接操作EMIF模块进行数据发送,为了担保DSP与FPGA发送的稳定性,每次DSP发送时需查询FPGA端对应准备状态,当发送掌握寄存器(TCR)对应状态准备完成时才能进行发送。
3.2通信掌握寄存器设计
吸收掌握寄存器(RCR)和发送掌握寄存器(TCR)是通信系统中为保障系统稳定实行而设计的赞助寄存器,并非芯片内部固有寄存器,赞助寄存器RCR和TCR由FPGA芯片设计供应,详细位域所表示的信息根据系统需求制订。DSP芯片端在进行读写操作时对指定地址进行访问即可得到寄存器当前有效信息,通过赞助寄存器的实时值剖析可以剖断系统当前通信过程中类型及系统事情状态等信息,从而担保通信过程的可控性与稳定性。
吸收掌握寄存器如表1所示,当某类已经准备好吸收时,其对应的标志位RxTypeX会被FPGA置1,反之则置0;发送端采取主动发送模式,由CPU直接操作EMIF模块进行数据发送,为了担保DSP与FPGA发送的稳定性,每次DSP发送时需查询FPGA端对应准备状态,当发送掌握寄存器(TCR)对应状态准备完成时才能进行发送,发送掌握寄存器如表2所示,当某类准备好发送时,其对应的标志位TxRdyX会被FPGA置1,反之则置0。
RC:吸收总标志。
RxTypeA:1:类型为A;0:无该类型。
RxTypeB:1:类型为B;0:无该类型。
RxTypeC:1:类型为C;0:无该类型。
RxTypeD:1:类型为D;0:无该类型。
RSV:保留。
TC:发送准备状态总标志。
TxRdyA:1:A类准备好;0:未准备好。
TxRdyB:1:B类准备好;0:未准备好。
TxRdyC:1:C类准备好;0:未准备好。
TxRdyD:1:D类准备好;0:未准备好。
RSV:保留。
3.3接口测试与验证
针对上文所设计的接口和系统流程进行了测试与验证,选取CE0空间地址设置多个8 bit宽的FIFO,个中FIFO0地址为0x71000000,用于吸收DSP端发送来的数据,数据流向为从DSP到FPGA,测试数据采取升序;FIFO1地址为0x71010000,用于向DSP端发送数据,数据流向为从FPGA到DSP,测试数据采取降序。测试结果如图7、图8所示。
实验结果表明,本文设计的DSP与FPGA之间的通信系统能够按照设计哀求事情,传输数据长度及地址可以根据须要进行多种配置,经由多次测试,数据读写精确,接口事情稳定,知足系统设计需求。
4结束语
本系统实现了基于EMIF16模块的DSP与FPGA异步通信接口,系统设计大略、性能稳定,实现了DSP与FPGA之间的双向高速通信,扩展了多核DSP处理芯片与外图界的通信办法。采取DSP与FPGA联合设计的办法,可实现多种格式的高速数据传输,同时软件架构设计简洁稳定,有利于工程实现及运用。
参考文献
[1] Texas Instruments. TMS320C6678 multicore fixed and floatingpoint digital signal processor[S].2014.
[2] 卞红雨.TMS320C6000系列DSP的CPU与外设[M].北京:清华大学出版社,2007.
[3] Texas Instruments.External Memory Interface (EMIF16) for KeyStone devices user guide[S].2011.
[4] Texas Instruments.KeyStone architecture external memory interface (EMIF16) user guide[S].2011.






