基于ARM+FPGA+DSP架构的异步数据交互方法及系统技术方案

技术编号:26889874 阅读:49 留言:0更新日期:2020-12-29 16:04
本发明专利技术公开了一种基于ARM+FPGA+DSP架构的异步数据交互方法及系统,该方法包括:当ARM需要传输数据给DSP时,ARM将需要传输的数据进行封装,并将封装后的数据帧写入FPGA内部双口RAM中,完成后发送写完成信号给FPGA;FPGA收到所述写完成信号后,将FPGA内部双口RAM中的数据帧发送到DSP;DSP接收所述数据帧。本发明专利技术可提升数据传输的可靠性和传输效率,降低数据传输的误码率,提升用户体验。

【技术实现步骤摘要】
基于ARM+FPGA+DSP架构的异步数据交互方法及系统
本专利技术涉及控制系统领域,尤其涉及一种基于ARM+FPGA+DSP架构的异步数据交互方法及系统。
技术介绍
目前普遍采用的控制系统应用架构为ARM+FPGA+DSP,在此系统架构中,ARM主要提供丰富的外设接口和存储资源,可以实现通过以太网口完成与上位机的实时通信;FPGA主要完成数据预处理和转换;DSP主要负责数字信号处理和计算。此系统架构增强了系统控制和计算的灵活性,有利于提升整个系统的安全可靠性,但是衡量一个系统的整体性能需要考虑三个器件之间的通信接口和通信协议,避免在数据通信上消耗过多资源。针对上述系统架构,ARM的通信接口有FIFO、双口RAM、串行SPI、HPI等多种方式,DSP的通信接口有UPP、HPI、EMIF、串行SPI等多种方式,根据通信接口的不同,系统的通信方式有多种组合。考虑到整个系统的可拓展和灵活性,ARM与DSP之间一般采用双口RAM通信,有两种异步数据通信,第一种是通过物理双口RAM设备,ARM通过将通信数据写入到双口RAM设备,然后DSP通过查询方式进行数据接收,其通信流程如图1所示。该方式需要额外加入双口RAM芯片作为存储设备,在通信过程中需要DSP或者ARM设备对双口RAM进行轮询,根据是否有数据写入进行数据读取操作,通信效率低且通信延时无法确定。第二种是通过配置FPGA内部寄存器作为双口RAM,把ARM和DSP的相关控制逻辑引入FPGA,实现数据在三个芯片间的传输,其通信流程如图2所示。该方式通过配置FPGA内部寄存器,将双口RAM在FPGA内部实现,其通信速率最大为5MB/s,ARM与FPGA、DSP与FPGA之间通过双口RAM通信需要占用16根数据线、16根地址线以及3根控制线,需要占用大量FPGA外部硬件资源,且ARM和DSP同时对双口RAM同一地址读、写操作时,存在写操作失败情况,导致通信效率低下。针对工业领域,实时性要求非常高,在所有通信环节中,每个部分的通信延时如果可以确定,将有利于提升系统控制整体性能,上述问题带来的通信传输延时、通信效率低,都对整个系统的控制性能及设备运行的可靠性等有非常大的影响,导致产品的用户体验非常糟糕。
技术实现思路
本专利技术提供了一种基于ARM+FPGA+DSP架构的异步数据交互方法及系统,用以解决现有的ARM+FPGA+DSP控制系统应用架构的异步数据传输可靠性不高以及延时不确定的技术问题。为解决上述技术问题,本专利技术提出的技术方案为:一种基于ARM+FPGA+DSP架构的异步数据交互方法,包括以下步骤:当ARM需要传输数据给DSP时,ARM将需要传输的数据进行封装,并将封装后的数据帧写入FPGA内部双口RAM中,完成后发送写完成信号给FPGA;FPGA收到写完成信号后,将FPGA内部双口RAM中的数据帧发送到DSP;DSP接收数据帧。优选地,FPGA与DSP之间通过UPP接口连接,FPGA将FPGA内部双口RAM中的数据帧通过UPP接口发送到DSP;DSP通过UPP中断接收数据帧。优选地,ARM将需要传输的数据进行封装,包括在数据帧的数据头中插入心跳信号;DSP收到数据帧后获取数据头中的心跳信号并进行判断,如果心跳信号为DSP当前心跳的下一数值,则进行数据接收,否则退出中断。优选地,ARM将需要传输的数据进行封装,包括在数据帧的末尾加入数据校验;DSP将所有数据接收到DSP内存中,获取数据帧中的数据校验并判断数据校验与DSP计算结果是否一致,如果一致则进行数据解析,解析完成后向ARM发送成功信息,否则DSP向ARM发送数据校验失败信息,并退出中断。优选地,当ARM接收到数据校验失败信息,判断为数据发送失败,重新将封装后的数据帧写入FPGA内部双口RAM中,完成后发送写完成信号给FPGA;ARM通过判断接收到成功数据的心跳信号是否等于发送数据的心跳信号判断是否发送成功,在数据发送成功后,ARM将心跳信号加1,并将已完成发送的数据的下一段数据进行封装,将封装后的数据帧写入FPGA内部双口RAM中,完成后发送写完成信号给FPGA。优选地,方法还包括以下步骤:当DSP需要向ARM发送数据时,DSP将需要发送的数据进行封装,将封装好的数据帧通过UPP接口发送至FPGA;FPGA将通过UPP接口接收到的数据写入到内部双口RAM中;ARM通过循环查询的方式,查询是否有数据接收。优选地,写完成信号为电平信号,通过连接在ARM与FPGA的引脚之间的连接线进行传递。本专利技术还提供一种基于ARM+FPGA+DSP架构的异步数据交互系统,包括:ARM,用于在ARM需要传输数据给DSP时,将需要传输的数据进行封装,并将封装后的数据帧写入FPGA内部双口RAM中,完成后发送写完成信号给FPGA;FPGA,用于在收到写完成信号后,将内部双口RAM中的数据帧发送到DSP;DSP,用于接收数据帧。优选地,FPGA与DSP之间通过UPP接口连接;FPGA将FPGA内部双口RAM中的数据帧通过UPP接口发送到DSP;DSP通过UPP中断接收数据帧。优选地,ARM还用于在将需要传输的数据进行封装时,在数据帧的数据头中插入心跳信号;DSP还用于在收到数据帧后获取数据头中的心跳信号并进行判断,如果心跳信号为DSP当前心跳的下一数值,则进行数据接收,否则退出中断。优选地,ARM还用于将需要传输的数据进行封装,包括在数据帧的末尾加入数据校验;DSP还用于将所有数据接收到DSP内存中,获取数据帧中的数据校验并判断数据校验与DSP计算结果是否一致,如果一致则进行数据解析,否则DSP向ARM发送数据校验失败信息,并退出中断。优选地,ARM还用于在接收到数据校验失败信息时,判断为数据发送失败,重新将封装后的数据帧写入FPGA内部双口RAM中,完成后发送写完成信号给FPGA;ARM还用于通过判断接收到成功数据的心跳信号是否等于发送数据的心跳信号判断是否发送成功,在数据发送成功后,ARM将心跳信号加1,并将已完成发送的数据的下一段数据进行封装,将封装后的数据帧写入FPGA内部双口RAM中,完成后发送写完成信号给FPGA。优选地,DSP,还用于在DSP需要向ARM发送数据时,将需要发送的数据进行封装,将封装好的数据帧通过UPP接口发送至FPGA;FPGA,还用于将通过UPP接口接收到的数据写入到内部双口RAM中;ARM,还用于通过循环查询的方式,查询是否有数据接收。优选地,写完成信号为电平信号,ARM与FPGA的引脚之间设置有用于传递写完成信号的连接线。本专利技术具有以下有益效果:1、本专利技术的基于ARM+FPGA+DSP架构的异步数据交互方法及系统,ARM在写完成后发送写完成信号给FPGA,避免了轮询或者写操作失败情况,可显著提高通信效率;通过该异步数据交互方法,可实现数据在ARM本文档来自技高网
...

【技术保护点】
1.一种基于ARM+FPGA+DSP架构的异步数据交互方法,其特征在于,包括以下步骤:/n当ARM需要传输数据给DSP时,ARM将需要传输的数据进行封装,并将封装后的数据帧写入FPGA内部双口RAM中,完成后发送写完成信号给FPGA;/nFPGA收到所述写完成信号后,将FPGA内部双口RAM中的数据帧发送到DSP;/nDSP接收所述数据帧。/n

【技术特征摘要】
1.一种基于ARM+FPGA+DSP架构的异步数据交互方法,其特征在于,包括以下步骤:
当ARM需要传输数据给DSP时,ARM将需要传输的数据进行封装,并将封装后的数据帧写入FPGA内部双口RAM中,完成后发送写完成信号给FPGA;
FPGA收到所述写完成信号后,将FPGA内部双口RAM中的数据帧发送到DSP;
DSP接收所述数据帧。


2.根据权利要求1所述的基于ARM+FPGA+DSP架构的异步数据交互方法,其特征在于,所述FPGA与所述DSP之间通过UPP接口连接,所述FPGA将FPGA内部双口RAM中的数据帧通过UPP接口发送到DSP;DSP通过UPP中断接收所述数据帧。


3.根据权利要求2所述的基于ARM+FPGA+DSP架构的异步数据交互方法,其特征在于,所述ARM将需要传输的数据进行封装,包括在所述数据帧的数据头中插入心跳信号;
所述DSP收到数据帧后获取所述数据头中的心跳信号并进行判断,如果心跳信号为DSP当前心跳的下一数值,则进行数据接收,否则退出中断。


4.根据权利要求1所述的基于ARM+FPGA+DSP架构的异步数据交互方法,其特征在于,所述ARM将需要传输的数据进行封装,包括在所述数据帧的末尾加入数据校验;
所述DSP将所有数据接收到DSP内存中,获取所述数据帧中的数据校验并判断所述数据校验与DSP计算结果是否一致,如果一致则进行数据解析,解析完成后向ARM发送成功信息,否则DSP向ARM发送数据校验失败信息,并退出中断。


5.根据权利要求4所述的基于ARM+FPGA+DSP架构的异步数据交互方法,其特征在于,当所述ARM接收到数据校验失败信息,判断为数据发送失败,重新将封装后的数据帧写入FPGA内部双口RAM中,完成后发送写完成信号给FPGA;
所述ARM通过判断接收到成功信息的心跳信号是否等于发送数据的心跳信号判断是否发送成功,在数据发送成功后,所述ARM将心跳信号加1,并将已完成发送的数据的下一段数据进行封装,将封装后的数据帧写入FPGA内部双口RAM中,完成后发送写完成信号给FPGA。


6.根据权利要求1至5中任一项所述的基于ARM+FPGA+DSP架构的异步数据交互方法,其特征在于,所述方法还包括以下步骤:
当DSP需要向ARM发送数据时,DSP将需要发送的数据进行封装,将封装好的数据帧通过UPP接口发送至FPGA;
FPGA将通过UPP接口接收到的数据写入到内部双口RAM中;
ARM通过循环查询的方式,查询是否有数据接收。


7.根据权利要求1至5中任一项所述的基于ARM+FPGA+DSP架构的异步数据交互方法,其特征在于,所述写完成信号为电平信号,通过连接在ARM与FPGA的引脚之间的连接线进行传递。


8.一种基于ARM+FPGA...

【专利技术属性】
技术研发人员:李益李程王成杰文宇良付建国谭磊
申请(专利权)人:中车株洲电力机车研究所有限公司
类型:发明
国别省市:湖南;43

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1