基于EMIF接口和双口RAM实现DSP与FPGA高速通信方法技术领域
本发明属DSP和FPGA之间通信技术领域,具体涉及一种基于EMIF接口和双
口RAM实现DSP与FPGA高速通信方法。
背景技术
随着导航技术,卫星技术和现代电子技术的快速发展,机载设备日益向
着数字化、模块化、集成化方向发展,机载设备不仅需要采集、接收、处理、
发送大量外部数据,同时设备内部各CPU之间也需要进行大量数据和信息的及
时处理和高速传输。现在通用的计算机平台为FPGA+DSP结构,能充分发挥DSP
的运算速度的优势及FPGA数据采集处理和接口通讯优势,能很好满足数据采
集、处理及外部通讯需要。内部DSP与FPGA数据传输是否及时、有效传输直
接决定着机载设备的性能精度和实时性。现有技术采用异步FIFO和同步FIFO
来实现DSP与FPGA数据的连续传输,但不能解决数据传输的实时性,因此有必
要提出改进。
发明内容
本发明解决的技术问题:提供一种基于EMIF接口和双口RAM实现DSP与
FPGA高速通信方法,在FPGA内部建立双口RAM,双口RAM一端以存储器模式
通过EMIF接口与DSP通信,另一端与FPGA内部CPU通信,实现FPGA和DSP对
该双口RAM的独立读写,解决大量数据需要及时处理与传输的问题。
本发明采用的技术方案:基于EMIF接口和双口RAM实现DSP与FPGA高速通
信方法,包括下述步骤:1)提供FPGA,为所述FPGA内部配置RAM,所述RAM包
括第一存储区、第二存储区、第一端口和第二端口;2)提供DSP和EMIF接口,
将所述DSP通过所述EMIF接口与所述第一端口连接,所述第一端口与所述第一
存储区连接;3)将所述FPGA与所述第二端口连接,所述第二端口与所述第二
存储区连接;4)所述FPGA与所述DSP实现高速通信。
优选的,1)所述FPGA通过所述第二端口在所述第二存储区内写入数据;
2)所述FPGA的内部逻辑电路产生中断信号,向所述DSP的中断控制器模块申
请中断;3)所述DSP响应中断请求,查询数据集状态信息,根据状态信息,
确定读取更新的数据集,通过所述EMIF接口从所述第二存储区中读出数据。
优选的,1)所述DSP通过所述第一端口在所述第一存储区内写入数据;2)
完成后所述DSP通过GPIO模块以软中断方式产生中断信号,向所述FPGA的中断
控制器模块申请中断;3)所述FPGA响应中断请求,查询数据集状态信息,根
据状态信息,确定读取更新的数据集,读出所述第一存储区的数据。
优选的,所述第一存储区包括第一数据集状态存储区和第一数据集存储
区,所述第一数据集状态存储区用于存储数据集更新状态信息,所述第一数
据集存储区用于存储数据。
优选的,所述第二存储区包括第二数据集状态存储区和第二数据集存储
区,所述第二数据集状态存储区用于存储数据集更新状态信息,所述第二数
据集存储区用于存储数据。
相较于现有技术,本发明通过EMIF接口实现了DSP与FPGA之间的数据双
向快速传输,有效解决了大量的数据需要实时传输与处理的问题该方法可以
广泛应用于信号处理系统方面,尤其可应用于各种实时信号处理。
附图说明:
图1为本发明中数据流向框图。
具体实施方式
下面结合附图1描述本发明的实施例:基于EMIF接口和双口RAM实现DSP与
FPGA高速通信方法,包括下述步骤:
1)提供FPGA,为FPGA内部配置RAM,RAM包括第一存储区、第二存储区、第
一端口和第二端口;FPGA器件的数据位宽可以根据不同的应用场合配置为8
位、16位、32位、64位、128位;第一端口和第二端口有各自的数据线、地址
线、读写控制线,可以允许不同的系统同时对其共享的存储空间进行访问,
实现用DSP和FPGA同时对FPGA内部的RAM共享的存储空间进行访问;
2)提供DSP和EMIF接口,将DSP通过EMIF接口与第一端口连接,第一端口
与第一存储区连接;EMIF是外部存储器和TMS320C6713片内单元之间通信的接
口,DSP访问外存储器时必须通过EMIF接口,将EMIF接口与FPGA内部RAM对应
的管脚连接实现DSP访问FPGA内部RAM;
3)将FPGA与第二端口连接,第二端口与第二存储区连接;
4)FPGA与DSP实现高速通信。
FPGA向DSP传输数据的方法,包括下述步骤:
1)FPGA通过第二端口在第二存储区内写入数据;
2)FPGA的内部逻辑电路产生中断信号,向DSP的中断控制器模块申请中断;
3)DSP响应中断请求,查询数据集状态信息,根据状态信息,确定读取更
新的数据集,通过EMIF接口从第二存储区中读出写入数据。
DSP向FPGA传输数据的方法,包括下述步骤:
1)DSP通过第一端口在第一存储区内写入数据;
2)完成后DSP通过GPIO模块以软中断方式产生中断信号,向FPGA的中断控
制器模块申请中断;
3)FPGA响应中断请求,查询数据集状态信息,根据状态信息,确定读取
更新的数据集,读出第一存储区的数据。
在本实施例中,所述内部逻辑电路、中断控制器模块及GPIO模块均通过
CPU模块控制信号传输。
通过以上两个传输方法,不仅能实现数据在DSP和FPGA中的快速传输,也
能实现数据在DSP中的快速处理。这种方式能有效的发挥DSP和FPGA的优势,
以达到最优的信号传输与处理的效果,在单位时间内能处理的数据量更大以
及数据的快速传输。
具体的,为了实现FPGA与DSP的正确通信,首先要实现两者之间的物理连
接,将RAM的第一端口用于DSP通过EMIF接口访问FPGA内部RAM,第二端口用于
FPGA访问RAM。DSP通过第一端口来访问共享的存储空间,FPGA通过第二端口
访问共享的存储空间。其中EMIF的数据线分别连接到RAM的数据输入端口和数
据输出端口,由AOE信号对数据的传输方向进行控制,EMIF接口的地址线和RAM
第一端口的地址线连接,EMIF接口时钟输出信号ECLKOUT1与RAM的时钟信号引
脚连接,AOE、ARE、AWE、CE信号经FPGA组合逻辑与RAM相应信号相连,以实
现DSP对FPGA内部RAM的读写功能。FPGA内部通过地址线、数据线和控制线连
接RAM第二端口,实现FPGA对RAM的读写功能。
进一步的,第一存储区包括第一数据集状态存储区和第一数据集存储区,
第一数据集状态存储区用于存储数据集更新状态信息,第一数据集存储区用
于存储数据;第二存储区包括第二数据集状态存储区和第二数据集存储区,
第二数据集状态存储区用于存储数据集更新状态信息,第二数据集存储区用
于存储数据。
可以理解为,数据集存储区中的每个数据集对应指定的数据集状态存储
区。数据更新后将数据集状态存储区中数据集状态信息更新,可根据状态更
新信息读取变化的数据集,提高数据读取效率。根据这两种传输方式所要传
的数据集固定这两块存储区的大小和地址范围,DSP和FPGA每次访问固定地址
和长度的存储区。
综上,本发明提供的用DSP与FPGA高速通信方法通过EMIF接口实现了
DSP与FPGA之间的数据双向快速传输,有效解决了大量的数据需要实时传输
与处理的问题该方法可以广泛应用于信号处理系统方面,尤其可应用于各种
实时信号处理。
上述实施例,只是本发明的较佳实施例,并非用来限制本发明实施范围,
故凡以本发明权利要求所述内容所做的等效变化,均应包括在本发明权利要
求范围之内。