[发明专利]基于ZYNQ的DMA数据传输方法在审
申请号: | 201911006278.9 | 申请日: | 2019-10-22 |
公开(公告)号: | CN112699070A | 公开(公告)日: | 2021-04-23 |
发明(设计)人: | 王洋;崔艳松;王茂义;刘彬;袁梦云 | 申请(专利权)人: | 北京华航无线电测量研究所 |
主分类号: | G06F13/32 | 分类号: | G06F13/32;G06F13/16;G06F13/40;G06F5/06 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 100013 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 zynq dma 数据传输 方法 | ||
本发明提供了一种基于ZYNQ的DMA数据传输方法,解决了ZYNQ芯片内部FPGA与ARM之间的数据传输问题。首先对数据包长度校验;其次将经过数据包长度校验后的数据存储在接收fifo;然后FPGA根据AXI DMA核的配置模式,通过AXI4‑Stream总线发送接收fifo中的数据至内存DDR,完成流式接口到内存映射的转换;最后ARM读取内存DDR中的数据,至此,完成一次FPGA到ARM的数据流传输。本发明通过DMA传输机制在系统内实现了高性能的数据传输,满足了ZYNQ芯片内部FPGA与ARM之间对于大数据高速传输和处理的要求,极大提升了ARM处理器的数据处理能力。
技术领域
本发明属于雷达信号处理领域,具体涉及一种基于ZYNQ的DMA数据传输方法。
背景技术
随着雷达信号处理技术的不断发展,系统对信号处理数据传输速率、传输性能的要求越来越高,数据处理需要具备实时性高、可靠性强、稳定性好等特点,因此,数据传输性能的高低也成为制约雷达整机系统性能的一个重要因素。目前,在ZYNQ芯片内部FPGA与ARM之间的传输方式通过AXI_GP接口,FPGA通过该接口访问ARM中的片内外设,但这样的传输方式每次传送一个字符都需要耗用较长的时间,大大影响了整机性能及工作效率,仅仅适用于少量数据的传送,而且ARM端需要占用大量CPU资源进行数据状态查询及数据搬移。
发明内容
本发明需解决的技术问题是提供一种ZYNQ芯片内部FPGA与ARM之间的高速数据传输方法。
为解决上述技术问题,本发明提供了一种基于ZYNQ的DMA数据传输方法,采取技术方案如下:
步骤1:FPGA对接收到的数据包进行长度校验;
步骤2:将经过数据包长度校验后的数据存储在接收fifo中;
步骤3:FPGA根据AXI DMA核的配置模式,通过AXI4-Stream总线发送接收fifo中的数据至内存DDR,完成流式接口到内存映射的转换;
步骤4:ARM读取内存DDR中的数据。
进一步的,
所述数据包长度校验,FPGA将接收到的数据包中一帧传输数据量进行计数,并与输入端口传递的所需传输的帧长度进行对比,若一帧数据量计数小于所需传输的帧长度,则计算数据量差值,将缺少的数据量用位数全‘1’补齐,将有效数据输出;若一帧数据量计数与所需传输的帧长度相等,则直接将有效数据输出。
FPGA根据任务需求设置每帧数据块大小FRAME_SIZE,同时,根据所需传输的经过数据包长度校验后的数据块大小设置接收fifo深度,将经过数据包长度校验后的数据按照设置的每帧数据块大小FRAME_SIZE存储在接收fifo中。所述接收fifo深度设置为1k/64k可选。
所述步骤3方法如下:
当FPGA监测到接收fifo数据量积累达到一帧数据量大小FRAME_SIZE的一半时,接收fifo开启准备发送数据状态,若此时AXI DMA核不具备传输状态,则接收fifo一直处于等待发送数据状态,若监测到AXI DMA核具备传输状态,则接收fifo发送数据;
FPGA根据AXI DMA核的配置模式,通过AXI4-Stream总线发送接收fifo中的数据至内存DDR,完成流式接口到内存映射的转换;
所述步骤4ARM读取内存DDR中的数据,方法为:AXI DMA核收到AXI4-Stream总线上的数据结束标识后,产生FPGA到ARM处理器的中断信号,ARM收到中断后从内存DDR中将数据读出,至此,完成一次FPGA到ARM的数据流传输。
根据上述技术方案,本发明的有益效果包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京华航无线电测量研究所,未经北京华航无线电测量研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201911006278.9/2.html,转载请声明来源钻瓜专利网。