一种DMA数据传输系统及数据传输方法与流程

文档序号:21030924发布日期:2020-06-09 20:11阅读:254来源:国知局
一种DMA数据传输系统及数据传输方法与流程

本发明涉及数据处理技术领域,具体涉及一种dma数据传输系统及数据传输方法。



背景技术:

arm处理器是一个32位精简指令集(risc)处理器架构,具有体积小、低功耗、低成本、高性能的特点,并且大量使用寄存器,指令执行速度更快,大多数数据操作均在寄存器中完成;fpga现场可编程门阵列,是在pal、gal、cpld等可编程器件的基础上进一步发展的产物,随着fpga技术的不断发展和创新,fpga在应对控制复杂度低、数据量大的运算时具有较强的优势。

然而fpga在复杂算法的实现上,fpga却远没有32位精简指令集arm处理器灵活方便,因此将arm处理器与fpga可编程逻辑结合成为新一代fpga发展的趋势,具有巨大的串行和并行处理能力,发挥了fpga逻辑控制对大量数据进行高速处理的优势以及arm软件编程灵活的特点。在实际应用中,如何借助arm处理器和fpga结合的结构,通过一种有效可靠的方法实现arm处理器和fpga之间的高速数据交互是目前急需解决的问题,而且能够保证数据交互的安全。

为了解决上述所存在的问题,人们一直在寻求一种理想的技术解决方案。



技术实现要素:

本发明的目的在于针对现有技术中存在的不足,从而提供一种dma数据传输系统及数据传输方法,通过设计fpga中的dma单元、arm处理器连接的ddr寄存器实现arm处理器和fpga之间的数据高速且可靠的传输,并且通过设置加解密单元进行数据的加解密处理保证数据的安全性。

为达到上述目的,本发明采用的技术方案如下:

一种dma数据传输系统,包括:arm处理器和fpga,所述arm处理器连接有ddr存储器,所述ddr存储器中设置有发送环单元和接收环单元,所述发送环单元和接收环单元分别设置有至少一个数据节点,所述fpga中包括有dma单元和加解密单元;

所述arm处理器通过axi_gp总线与所述fpga连接,所述fpga通过axi_hp总线与所述ddr存储器连接;所述axi_gp总线用于提供所述fpga与所述arm处理器之间的配置数据接口;所述axi_hp总线包括2个axi_hp接口,用于在高速通信时,通过所述fpga中的dma单元完成所述fpga与所述arm处理器之间的数据传输;

所述发送环单元用于所述arm处理器采用中断和轮询机制写入要发送的数据,以及用于所述fpga采用中断和轮询机制通过dma单元读取要接收的数据;所述接收环单元用于所述fpga采用中断和轮询机制通过dma单元写入要发送的数据,以及用于所述arm处理器采用中断和轮询机制读取要接收的数据;所述加解密单元用于对所述dma单元读取或写入的数据进行加解密处理。

基于上述,所述发送环单元和所述接收环单元中的所述数据节点包括数据节点的请求命令、状态、数据存放的地址信息。

基于上述,所述dma单元设置有并行的数据发送线路和数据接收线路,同时对ddr存储器进行批量的读取数据和写入数据操作。

基于上述,所述数据节点的请求命令包括读取操作和写入操作;所述数据节点的状态包括非空状态和非满状态;所述数据节点为非空状态时,进行数据的读取操作;所述数据节点为非满状态时,进行数据的写入操作。

基于上述,所述数据节点还包括有节点序号,对数据节点的处理按照节点序号依次向前处理。

本发明还提供一种应用所述dma数据传输系统的数据传输方法,所述数据传输方法包括dma单元读取ddr存储器中arm处理器写入的数据、arm处理器读取ddr存储器中dma单元写入的数据;

所述dma单元读取ddr存储器中arm处理器写入的数据的具体步骤包括:

步骤1,通过axi_gp总线构建所述fpga和所述arm处理器之间的配置通道;通过axi_hp总线构建所述fpga和所述arm处理器之间的高速数据通道;

步骤2,所述arm处理器对所述fpga中的dma单元进行配置和启动;

步骤3,所述dma单元响应所述arm处理器的配置及启动;

步骤4,所述arm处理器轮询检测到所述ddr存储器中发送环单元的数据节点为非满状态时,则将数据循环写入ddr存储器中发送环单元的数据节点;

步骤5,所述dma单元轮询检测到所述ddr存储器中发送环单元的数据节点状态为非空状态时,则dma单元循环读取所述发送环单元中数据节点的数据。

基于上述,所述arm处理器读取ddr存储器中dma单元写入的数据的具体步骤包括:

步骤s1,通过axi_gp总线构建所述fpga和所述arm处理器之间的配置通道;通过axi_hp总线构建所述fpga和所述arm处理器之间的高速数据通道;

步骤s2,所述arm处理器对所述fpga中的dma单元进行配置和启动;

步骤s3,所述dma单元响应所述arm处理器的配置及启动;

步骤s4,所述dma单元轮询检测到所述ddr存储器中接收环单元的数据节点为非满状态时,则将数据循环写入ddr存储器中接收环单元的数据节点;

步骤s5,所述arm处理器轮询检测到所述ddr存储器中接收环单元的数据节点状态为非空状态时,则arm处理器循环读取所述接收环单元中数据节点的数据。

基于上述,所述步骤5之后还包括:

所述dma单元将读取的数据传输至所述fpga的加解密单元进行加解密处理;

所述加解密单元将处理后的数据再返回给所述dma单元。

基于上述,所述步骤s4之前还包括:

所述dma单元将写入的数据传输至所述fpga的加解密单元进行加解密处理;

所述加解密单元将处理后的数据再返回给所述dma单元。

基于上述,所述arm处理器和所述dma单元分别进行轮询检测前还包括中断触发处理。

本发明具有突出的实质性特点和显著的进步,具体的说:

(1)通过在arm处理器连接的ddr存储器中设置发送环单元和接收环单元,并且所述arm处理器和所述dma单元采用中断和轮询的机制进行数据的读取和写入,有效保证数据传输的可靠性和高速性;

(2)通过fpga中的dma单元可同时完成对ddr存储器中数据的批量读取操作和写入操作,提高数据传输的速度;

(3)通过数据节点的状态来判断是否读取数据和写入数据,保证数据传输的可靠性;

(4)通过在fpga中设置有加解密单元,对dma单元读取或写入的数据进行加解密处理,保证数据的安全性。

附图说明

图1为本发明dma数据传输系统的结构框图。

具体实施方式

为了使本发明能够更加清楚,下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。

dma:(directmemoryaccess),即直接存储器存取,是一种快速传送数据的机制。数据传递可以从适配卡到内存,从内存到适配卡或从一段内存到另一段内存。

ddr:双倍速率同步动态随机存储器,则是一个时钟周期内传输两次数据,它能够在时钟的上升期和下降期各传输一次数据,因此称为双倍速率同步动态随机存储器。

axi-gp接口:是通用的axi接口,包括两个32位主设备接口和两个32位从设备接口,用过该接口可以访问ps中的片内外设。ps:处理系统,就是与fpga无关的arm的soc的部分。

axi-hp接口:是高性能/带宽的标准的接口,pl模块作为主设备连接。主要用于pl访问ps上的存储器。pl:可编程逻辑,就是fpga部分。

如图1所示,一种dma数据传输系统,包括:arm处理器和fpga,所述arm处理器连接有ddr存储器,所述ddr存储器中设置有发送环单元和接收环单元,所述发送环单元和接收环单元分别设置有至少一个数据节点,所述fpga中包括有dma单元和加解密单元;

所述arm处理器通过axi_gp总线与所述fpga连接,所述fpga通过axi_hp总线与所述ddr存储器连接;所述axi_gp总线用于提供所述fpga与所述arm处理器之间的配置数据接口;所述axi_hp总线包括2个axi_hp接口,用于在高速通信时,通过所述fpga中的dma单元完成所述fpga与所述arm处理器之间的数据传输;

所述发送环单元用于所述arm处理器采用中断和轮询机制写入要发送的数据,以及用于所述fpga采用中断和轮询机制通过dma单元读取要接收的数据;所述接收环单元用于所述fpga采用中断和轮询机制通过dma单元写入要发送的数据,以及用于所述arm处理器采用中断和轮询机制读取要接收的数据;所述加解密单元用于对所述dma单元读取或写入的数据进行加解密处理。

具体的,所述发送环单元和所述接收环单元中的所述数据节点包括数据节点的请求命令、状态、数据存放的地址信息。

具体的,所述dma单元设置有并行的数据发送线路和数据接收线路,同时对ddr存储器进行批量的读取数据和写入数据操作。

具体的,所述数据节点的请求命令包括读取操作和写入操作;所述数据节点的状态包括非空状态和非满状态;所述数据节点为非空状态时,进行数据的读取操作;所述数据节点为非满状态时,进行数据的写入操作。

具体的,所述数据节点还包括有节点序号,对数据节点的处理按照节点序号依次向前处理。

本发明还提供一种应用所述dma数据传输系统的数据传输方法,所述数据传输方法包括dma单元读取ddr存储器中arm处理器写入的数据、arm处理器读取ddr存储器中dma单元写入的数据;

所述dma单元读取ddr存储器中arm处理器写入的数据的具体步骤包括:

步骤1,通过axi_gp总线构建所述fpga和所述arm处理器之间的配置通道;通过axi_hp总线构建所述fpga和所述arm处理器之间的高速数据通道;

步骤2,所述arm处理器对所述fpga中的dma单元进行配置和启动;

步骤3,所述dma单元响应所述arm处理器的配置及启动;

步骤4,所述arm处理器轮询检测到所述ddr存储器中发送环单元的数据节点为非满状态时,则将数据循环写入ddr存储器中发送环单元的数据节点;

步骤5,所述dma单元轮询检测到所述ddr存储器中发送环单元的数据节点状态为非空状态时,则dma单元循环读取所述发送环单元中数据节点的数据。

具体的,所述arm处理器读取ddr存储器中dma单元写入的数据的具体步骤包括:

步骤s1,通过axi_gp总线构建所述fpga和所述arm处理器之间的配置通道;通过axi_hp总线构建所述fpga和所述arm处理器之间的高速数据通道;

步骤s2,所述arm处理器对所述fpga中的dma单元进行配置和启动;

步骤s3,所述dma单元响应所述arm处理器的配置及启动;

步骤s4,所述dma单元轮询检测到所述ddr存储器中接收环单元的数据节点为非满状态时,则将数据循环写入ddr存储器中接收环单元的数据节点;

步骤s5,所述arm处理器轮询检测到所述ddr存储器中接收环单元的数据节点状态为非空状态时,则arm处理器循环读取所述接收环单元中数据节点的数据。

具体的,所述步骤5之后还包括:

所述dma单元将读取的数据传输至所述fpga的加解密单元进行加解密处理;

所述加解密单元将处理后的数据再返回给所述dma单元。

具体的,所述步骤s4之前还包括:

所述dma单元将写入的数据传输至所述fpga的加解密单元进行加解密处理;

所述加解密单元将处理后的数据再返回给所述dma单元。

具体的,所述arm处理器和所述dma单元分别进行轮询检测前还包括中断触发处理。

本发明通过在arm处理器连接的ddr存储器中设置发送环单元和接收环单元,并且所述arm处理器和所述dma单元采用中断和轮询的机制进行数据的读取和写入,有效保证数据传输的可靠性和高速性;通过fpga中的dma单元可同时完成对ddr存储器中数据的批量读取操作和写入操作,提高数据传输的速度;通过数据节点的状态来判断是否读取数据和写入数据,保证数据传输的可靠性;通过在fpga中设置有加解密单元,对dma单元读取或写入的数据进行加解密处理,保证数据的安全性。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,所属领域的普通技术人员在不脱离本发明技术方案的精神下,对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换,其均应涵盖在本发明请求保护的技术方案范围当中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1