基于EMIF接口和双口RAM的DSP与FPGA双向通信
文中提供了一种以FPGA内部扩展双端口RAM作为共享存储器,通过EMIF接口实现DSP与FPG双向通信方法;该方法采用数据集和数据集状态信息匹配的据通信方式,以软中断和硬中断配合的中断控制机制,能有效提高数据传输的效率,保证数据传输实时性。通过试验测试,该方法实现了数据的高效实时有效传输。
标签:EMIF;IP核;GPIO;双口RAM
0 引言
随着导航技术和现代电子技术的快速发展,机载设备日益向着数字化、模块化、集成化方向发展,机载设备不仅需要采集、接收、处理、发送大量外部数据,同时设备内部各CPU之间也需要进行大量数据、信息的及时处理和高速传输。现在通用的计算机平台为FPGA+DSP结构,充分利用了FPGA数据采集处理、接口通讯以及DSP的运算速度优势,能很好满足数据采集、处理及外部通讯需要。DSP与FPGA之间数据传输能否及时、有效直接决定着机载设备的性能精度。
本文提供了一种基于EMIF接口和双口RAM实现DSP与FPG双向通信方法。该方法采用数据集和数据集状态信息匹配的数据通信方式,以软中断和硬中断配合的中断控制机制,能有效的提高数据传输的效率,满足机载设备实时性的要求。
1FPGA内部双口RAM配置
文中采用Xilinx公司的Spartan6系列XC6SLX150T的FPGA器件,此FPGA上自带
片上RAM,因此可以利用开发环境自带的IP核,根据不同的应用场合配置生成单口RAM 、简单双端口RAM 、真正双端口RAM,数据位宽也可以配置为8位、16位、32位、64位,片上双端口RAM速度性能可以达到450 MHz。
因为要实现数据的双向传输,故文中在Xilinx公司的XPS嵌入式开发环境下添加Block Bram IP核,配置为真正的双端口RAM,数据位宽配置为32位,存储深度16K,配置双口RAM的过程和配置完成的双端口RAM原理图符号。真正的双端口RAM 有两个完全独立的端口(端口A和端口B)用于访问共享的存储空间。双口RAM的每个端口有各自的数据线、地址线、读写控制线,可以允许两个独立的系统同时对其共享的存储空间进行随机访问。
2DSP EMIF接口配置
EMIF是外部存储器和TMS320C6713片内单元之间的接口,DSP访问片外存储器时必须通过EMIF接口,因此要实现DSP访问FPGA内部双口RAM,必须将EMIF接口与FPGA内部双口RAM通过组合逻辑转换对应起来,双口RAM的一个端口A给DSP EMIF接口,用于DSP通过EMIF接口访问FPGA内部RAM;另一个端口B给FPGA的片内逻辑,用于FPGA访问双口RAM。
EMIF接口与FPGA内的双口RAM连接,主要包括时钟信号、数据/地址信号和控制信号的连接。EMIF时钟输出信号ECLKOUT1与双口RAM的时钟信号引脚连接;EMIF的数据线分别与双口。
RAM的数据输入端和数据输出端连接,由AOE信号对数据的传输方向进行控制,EMIF的地址线和双口RAM端口A的地址线连接;EMIF与FPGA进行数据传输时,只用到了片
选空间使能信号CE、DSP往数据总线写使能信号AWE、DSP读取数据总线使能信号AOE。AOE、ARE、AWE、CE信号经FPGA组合逻辑与双口RAM相应信号相连,以实现DSP对FPGA内部双口RAM的读写功能。FPGA内部通过地址线、数据线和控制线连接双口RAM端口B,实现FPGA对双口。
RAM的读写功能。
3. FPGA与DSP 双向通信的实现机制
3.1双口RAM存储空间的组成及访问
DSP和FPGA在任何时候都能对双口RAM进行读写操作,为了达到数据在DSP和FPGA之间实时双向传输的目的,对双口RAM存储空间进行了划分,并确定了访问权限,如表1所示。
从表1可知,首先将双口RAM的存储空间分成两部分。其中,存储区一用于FPGA写入数据,DSP读取数据,存储区二用于DSP写入数据,FPAG读取数据。其次采用数据集和数据集状态信息匹配的通讯方式。存储区中划分出数据集状态区和数据集区,分别用来存储数据集更新状态信息和数据集,数据集区与数据集状态区一一对应。需要传输数据集時,同时更新数据集状态信息。数据读取方接收到中断后,读取状态信息,依据状态集的相应信息,读取对应的数据集,以此缩短双口RAM读取访问时间,提高数据读取效率。
3.2 软中断和硬中断配合的中断控制机制
FPGA和DSP在对双口RAM进行读取操作时,采用软中断和硬中断配合的中断控制
机制。软中断可由软件控制,用于中断信号发生触发数据读取,硬中断用于数据接收,保证数据接收实时性。
图1给出了FPGA和DSP数据双向通信的流程图,具体传输过程如下。FPGA接收外来的数据,存储于双口RAM的存储区一后,同时更新数据集状态信息,存储数据完成后FPGA内部逻辑电路产生硬中断信号,向DSP中断控制器模块申请中断;DSP响应中断请求后,读取状态信息,依据状态集的相应信息,则通过EMIF接口从存储区一中读取对应的数据集在DSP内部进行复杂的算法计算;算法计算结束后, DSP通过EMIF接口将传输数据存入存储区二中,同时更新数据集状态信息,数据存入完成后DSP通过GPIO模块以软中断方式产生中断信号,向FPGA中断控制器模块申请中断,FPGA响应中断请求后,读取状态信息,依据状态集的相应信息,则通过EMIF接口从存储区二中读取对应的数据集中的数据。
4 验证与结论
为验证本发明方法的有效性,评估其数据传输的准确性和实时性。设计一块信号处理板,信号处理板上的FPGA负责接收从前端传来的IMU数据,FPGA将接收到的IMU数据存储在双口RAM,通过EMIF接口发送到DSP;DSP主要负责IMU数据处理和导航计算,DSP通过EMIF接口从双口RAM中读出IMU数据并处理,将处理后的导航结果通过EMIF接口存储到FPGA双口RAM中。实验测试结果表明,该方法实现了数据的实时和正确传输。
参考文献:
[1]王胜奎. 基于IP核双口RAM的FPGA与DSPEMIF的接口设计[J]. 导航,2010.
[2]万东,章国宝.基于EMIF接口的数据采集系统的设计 [J].电子设计工程,2011.
[3]杨龙,李范鸣,刘士建. DSP EMIF与FPGA双口RAM高速通信实现 [J]. 现代电子技术,2014.
刘玉霞(1981—),性别:女,学位:博士,职称:高级工程师,研究方向:惯性导航/组合导航。
因篇幅问题不能全部显示,请点此查看更多更全内容