一种基于PXIe接口的DMA控制器制造技术

技术编号:15762918 阅读:206 留言:0更新日期:2017-07-05 23:22
本发明专利技术公开了一种基于PXIe接口的DMA控制器。该DMA控制器包括配置寄存器,用于配置根据数据传输量和数据传输目的地址;DMA控制单元,用于当数据传输量大于128Byte,则根据数据传输量和数据传输目的首地址将数据分段进行传输:计算4K边界前不足4K的数据段的数据传输目的首地址以及数据传输量,计算满足4K的数据段的数据传输目的首地址和数据传输量,以及计算4K边界后的数据段的数据传输目的首地址和数据传输量;根据每个数据段的数据传输目的首地址和数据传输量传输所有数据。本发明专利技术解决了在数据传输中不能跨越4KB边界的问题,而且不需要CPU多次配置DMA参数,节约CPU时间,提高系统运行效率。

A DMA controller based on PXIe interface

The invention discloses a DMA controller based on an PXIe interface. The DMA controller includes a configuration register, for disposition according to the amount of data transmission and data transmission destination address; the DMA control unit is used when the data quantity is greater than 128Byte, the data is segmented transmission according to the amount of data transmission and data transmission to the first address: data transmission to the first address data calculation of the 4K boundary less than 4K of the former and the amount of data transmission, data transmission to the first address to meet the calculation of the amount of data transmission and data 4K, and calculate the data segment 4K after the boundary data transmission to the first address and the amount of data transmission; the transmission of all data according to the data transmission to the first address and the amount of data transmission of each data segment. The invention solves the problem that the 4KB boundary can not be crossed in the data transmission, and the DMA parameter is not needed to be repeatedly configured by the CPU, thereby saving the CPU time and improving the operation efficiency of the system.

【技术实现步骤摘要】
一种基于PXIe接口的DMA控制器
本专利技术涉及测控
,尤其涉及一种基于PXIe接口的DMA控制器。
技术介绍
随着技术的不断发展,设备对传输速度和带宽有更高的要求。在实际测控系统中,大量数据的传输会占用CPU较多的时间,使得在进行数据传输的时候,主机无法进行其他操作。为了提高CPU效率,测控系统中通常引入DMA控制器,使得数据的传输不占用CPU的时间,提高系统的运行效率。随着现代处理器技术的发展,在互连领域中,高度差分总线代替并行总线是大势所趋。与单端并行信号相比,高速差分信号可以使用更高的时钟频率,从而使用更少的信号线,完成之前需要许多单端并行信号数据才能达到的总线带宽。与PCI总线相比,PXIe总线可以每个通道独享带宽,支持双向传输模式和数据分通道传输模式。同时,PXIe总线基于点到点互连,可以有效提到系统的鲁棒性。基于PXIe总线的优势,可以用于DMA控制器与上位机之间的数据传输。但是当DMA控制通过PXIe总线与其他PXIe设备进行通信时,所传输的数据报文首先通过事务层被封装成TLP,之后才能通过PXIe总线的各个层析发送出去。但是PXIe总线规定被传送的数据区域不能跨域4KB边界。传统的解决方法是通过软件方式解决,但此方法的缺点是需要CPU多次对DMA控制器进行配置,需要占用CPU的时间。
技术实现思路
本专利技术所要解决的技术问题在于提供一种基于PXIe接口的DMA控制器,用以解决现有技术中CPU多次对DMA控制器进行配置,需要占用CPU的时间问题。依据本专利技术的一方面,提供一种基于PXIe接口的DMA控制器,包括:配置寄存器,用于配置数据传输量和数据传输目的首地址;DMA控制单元,用于判断数据传输量是否满足128Byte;当所述数据传输量大于128Byte,则根据所述数据传输量和所述数据传输目的首地址将数据分段进行传输:计算4K边界前不足4K的数据段的数据传输目的首地址以及数据传输量,并判断剩余数据传输量是否大于4K;当所述剩余数据传输量大于4K时,则计算满足4K的数据段的数据传输目的首地址和数据传输量,以及计算4K边界后的数据段的数据传输目的首地址和数据传输量;当所述剩余数据数据传输量小于或者等于4K时,则计算4K边界后数据段的数据传输目的首地址和数据传输量;根据每个数据段的数据传输目的首地址和数据传输量传输所有数据。优选地,所述DMA控制单元用于在数据传输前,根据所述配置寄存器中的复位寄存器进行复位。优选地,所述DMA控制单元用于在数据传输前,根据所述配置寄存器的启动寄存器进行启动。优选地,所述DMA控制单元用于根据所述配置寄存器中的数据传输方向寄存器控制将数据发送至上位机或者接收上位机发送的数据。优选地,所述DMA控制单元用于根据所述配置寄存器中的总线控制信号寄存器控制总线传输接口的打开或者关闭。优选地,所述DMA控制器集成于FPGA中。本专利技术具有以下技术效果:本专利技术所提供的基于PXIe接口的DMA控制器,通过对FPGA进行逻辑设计,解决了在数据传输中不能跨越4K边界的问题,而且不需要CPU多次配置DMA参数,减少了数据传输对CPU的占用时间,提高了系统的整体效率,而且在大宽带的要求中可以广泛应用。上述说明仅是本专利技术技术方案的概述,为了能够更清楚了解本专利技术的技术手段,而可依照说明书的内容予以实施,并且为了让本专利技术的上述和其它目的、特征和优点能够更明显易懂,以下特举本专利技术的具体实施方式。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1为本专利技术实施例中基于PXIe接口的DMA控制器的结构示意图;图2为本专利技术实施例中DMA控制器划分数据段的示意图;图3为本专利技术实施例中DMA控制器配置寄存器的流程图;图4为本专利技术实施例中DMA控制器控制传输数据的流程图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。参见图1,本专利技术所提供的基于PXIe接口的DMA控制器的结构示意图,DMA控制器采用FPGA实现,在DMA控制器进行写操作时,完成TLP数据从FPGA到上位机间的传输;在DMA控制器进行读操作时,完成TLP数据从上位机到FPGA的传输。本专利技术中一个TLP的最大负载数是128Byte,如果需要传输更多的数据需要传送多个TLP。由于PC机的内存是分页面管理的,一个页面大小为4KB,在向PC机内存写数据时,要求数据的传输不能跨越4KB边界,而且在PXIe协议中也要求不可以跨越4KB(简称4K)边界。本专利技术中的基于PXIe接口的DMA控制器,如图1所示,包括配置寄存器和DMA控制单元,具体地,配置寄存器,用于配置根据数据传输量和数据传输目的地址;DMA控制单元,用于判断数据传输量是否满足128Byte:当数据传输量小于或者等于128Byte时,直接通过PXIe口与上位机进行数据传输;当数据传输量大于128Byte,则根据数据传输量和数据传输目的首地址将数据分段进行传输。具体地,首先计算4K边界前不足4K的数据段的数据传输目的首地址以及数据传输量,并判断除去计算的4K边界前不足4K的数据传输量后剩余数据传输量是否大于4K:如图2所示,当剩余数据传输量大于4K时,则计算满足4K的数据段的数据传输目的首地址和数据传输量,以及计算4K边界后的数据段的数据传输目的首地址和数据传输量。在此情况下,将所传输的数据分为三段,而后根据三个数据段的数据传输目的首地址和数据传输量,在配置一次配置寄存器后将所有数据传输。而当剩余数据数据传输量小于或者等于4K时,则计算4K边界后数据段的数据传输目的首地址和数据传输量。在此情况下,将所传输的数据分为两段,根据两个数据段的数据传输目的首地址和数据传输量传输所有数据。通过上述方法,本专利技术有效解决了跨越4KB边界的问题。根据传输数据的目的地址以及传输数据量的大小判断是否跨越4KB边界。对于大于4KB边界的数据需要对其进行分段传输。具体地,DMA控制器将数据块的传输分阶段,第一阶段完成首地址到第一个4KB边界地址的数据;而后当剩余数据传输量大于4K时,将剩余数据量在分为两段;当当剩余数据传输量小于或者等于4K时,将剩余数据传输量作为单独的一数据段。这样可以在配置一次寄存器后,将所有的数据一次传输完毕,从而不需要CPU多次配置DMA参数,减少了数据传输对CPU的占用时间。DMA控制器控制用于数据传输的配置寄存器的信息,具体包括配置复位寄存器、数据目的地址寄存器、数据传输大小寄存器、数据传输方向寄存器、总线控制信号寄存器以及启动寄存器。在进行数据传输时,DMA控制器配置寄存器的过程,参见图3,包括如下步骤:首先初始化DMA句柄;其次配置复位寄存器,对DMA控制器进行复位;接着配置数据目的地址、数据传输大小、数本文档来自技高网...
一种基于PXIe接口的DMA控制器

【技术保护点】
一种基于PXIe接口的DMA控制器,其特征在于,包括:配置寄存器,用于配置数据传输量和数据传输目的首地址;DMA控制单元,用于判断所述数据传输量是否满足128Byte;当所述数据传输量小于或者等于128Byte时,直接通过PXIe口与上位机进行数据传输;当所述数据传输量大于128Byte,则根据所述数据传输量和所述数据传输目的首地址将数据分段进行传输:计算4K边界前不足4K的数据段的数据传输目的首地址以及数据传输量,并判断剩余数据传输量是否大于4K;当所述剩余数据传输量大于4K时,则计算满足4K的数据段的数据传输目的首地址和数据传输量,以及计算4K边界后的数据段的数据传输目的首地址和数据传输量;当所述剩余数据数据传输量小于或者等于4K时,则计算4K边界后数据段的数据传输目的首地址和数据传输量;根据每个数据段的数据传输目的首地址和数据传输量传输所有数据。

【技术特征摘要】
1.一种基于PXIe接口的DMA控制器,其特征在于,包括:配置寄存器,用于配置数据传输量和数据传输目的首地址;DMA控制单元,用于判断所述数据传输量是否满足128Byte;当所述数据传输量小于或者等于128Byte时,直接通过PXIe口与上位机进行数据传输;当所述数据传输量大于128Byte,则根据所述数据传输量和所述数据传输目的首地址将数据分段进行传输:计算4K边界前不足4K的数据段的数据传输目的首地址以及数据传输量,并判断剩余数据传输量是否大于4K;当所述剩余数据传输量大于4K时,则计算满足4K的数据段的数据传输目的首地址和数据传输量,以及计算4K边界后的数据段的数据传输目的首地址和数据传输量;当所述剩余数据数据传输量小于或者等于4K时,则计算4K边界后数据段的数据传输目的首地址和数据传输...

【专利技术属性】
技术研发人员:李丽斯王石记殷晔常路刘康丽
申请(专利权)人:北京航天测控技术有限公司
类型:发明
国别省市:北京,11

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

1