一种数据处理系统、方法和装置

文档序号:1520724 发布日期:2020-02-11 浏览:15次 >En<

阅读说明:本技术 一种数据处理系统、方法和装置 (Data processing system, method and device ) 是由 刘均 刘权列 于 2019-10-30 设计创作,主要内容包括:本申请实施例公开了一种数据处理系统、方法和装置,当第一寄存器接收到数据时,触发DMA控制器将数据从第一寄存器传输至第一缓存队列,以便于处理器根据有效数据地址从第一缓存队列中读取数据。通过触发DMA控制器将数据从寄存器传输至缓存队列,处理器无需进入中断程序,有效的提升了数据的接收效率。处理器检测到第二缓存队列接收到数据时,将有效数据地址以及有效长度发送至DMA控制器;DMA控制器根据有效数据地址以及有效长度,从第二缓存队列中读取目标数据传输至第二寄存器。通过DMA控制器和缓存队列的配合进行高效率的数据的收发处理,降低了数据的丢失,有效的提升了收发数据的处理效率。(The embodiment of the application discloses a data processing system, a method and a device, when a first register receives data, a DMA controller is triggered to transmit the data from the first register to a first cache queue, so that a processor can read the data from the first cache queue according to an effective data address. By triggering the DMA controller to transmit the data from the register to the cache queue, the processor does not need to enter an interrupt program, and the data receiving efficiency is effectively improved. When the processor detects that the second cache queue receives data, the processor sends an effective data address and an effective length to the DMA controller; and the DMA controller reads the target data from the second cache queue according to the effective data address and the effective length and transmits the target data to the second register. The DMA controller is matched with the cache queue to carry out efficient data receiving and sending processing, so that data loss is reduced, and the data receiving and sending processing efficiency is effectively improved.)

一种数据处理系统、方法和装置

技术领域

本申请涉及数据传输技术领域,特别是涉及一种数据处理系统、方法和装置。

背景技术

在现有的数据传输中,普遍使用中断接收数据,通过中断把数据放入软件维护的先进先出队列(First In First Out,FIFO),然后在主程序中读取FIFO缓冲区,进行数据处理。串口波特率使用1.5M BPS,即6.7us/byte,由于速率太快,会导致频繁进入中断,使得CPU处理效率降低。且容易出现当串口接收中断优先级较低时,等待其它中断处理后,丢失数据的现象。

发送数据时,采用等待查询或者中断发送的方式。若是等待查询方式,在发送多个数据字节时,会把数据填充到发送寄存器中,然后等待发送完成,接着发送下一个数据,造成CPU资源的浪费,数据传输效率偏低。若采用中断发送方式,使用软件维护一个发送的FIFO队列,发送数据时,把数据暂时存入FIFO缓存,然后查询FIFO中的数据,进行开启发送中断,在中断中发送数据并维护发送FIFO。同样使用中断发送方式,由于串口速率较快,导致频繁进入中断,数据的传输效率较低。

可见,如何提升数据的传输效率,是本领域技术人员需要解决的问题。

发明内容

本申请实施例的目的是提供一种数据处理系统、方法和装置,可以提升数据的传输效率。

为解决上述技术问题,本申请实施例提供一种数据处理系统,包括处理器、与所述处理器连接的DMA控制器,分别与所述DMA控制器连接的第一缓存队列、第二缓存队列、第一寄存器和第二寄存器;

当所述第一寄存器接收到数据时,触发所述DMA控制器将所述数据从所述第一寄存器传输至所述第一缓存队列,以便于处理器根据有效数据地址从所述第一缓存队列中读取数据;

所述处理器还用于当检测到所述第二缓存队列接收到数据时,将有效数据地址以及有效长度发送至所述DMA控制器;相应的,所述DMA控制器,用于根据所述有效数据地址以及所述有效长度,从所述第二缓存队列中读取目标数据传输至所述第二寄存器。

可选地,所述第一缓存队列和所述第二缓存队列均为FIFO队列。

可选地,所述有效数据地址包括有效数据头地址和有效数据尾地址;

所述DMA控制器具体用于每向所述第一缓存队列写入一个数据报文时,则将有效数据头地址加1;每从所述第二缓存队列读取一个数据报文时,则将有效数据尾地址加1。

可选地,所述DMA控制器还用于当有效数据头地址达到预设的最大地址时,则重新返回所述第一缓存队列的初始首地址记录数据报文。

可选地,所述DMA控制器还用于当所述有效数据尾地址与所述有效长度的累加和大于预设的最大地址时,则按照所述预设的最大地址与所述有效数据尾地址从所述第二缓存队列中读取数据报文。

本申请实施例还提供了一种数据处理方法,适用于DMA控制器,所述方法包括:

当第一寄存器接收到数据时,将数据从第一寄存器传输至第一缓存队列,以便于处理器根据有效数据地址从所述第一缓存队列中读取数据;

根据处理器传输的有效数据地址以及有效长度,从第二缓存队列中读取目标数据传输至第二寄存器。

可选地,所述第一缓存队列和所述第二缓存队列均为FIFO队列。

可选地,所述有效数据地址包括有效数据头地址和有效数据尾地址;

相应的,所述将数据从第一寄存器传输至第一缓存队列包括:

每向所述第一缓存队列写入一个数据报文时,则将有效数据头地址加1;

所述从第二缓存队列中读取目标数据传输至第二寄存器包括:

每从所述第二缓存队列读取一个数据报文时,则将有效数据尾地址加1。

可选地,在所述每向所述第一缓存队列写入一个数据报文时,则将有效数据头地址加1之后还包括:

当有效数据头地址达到预设的最大地址时,则重新返回所述第一缓存队列的初始首地址记录数据报文。

可选地,所述根据处理器传输的有效数据地址以及有效长度,从第二缓存队列中读取目标数据传输至第二寄存器包括:

当所述有效数据尾地址与所述有效长度的累加和大于预设的最大地址时,则按照所述预设的最大地址与所述有效数据尾地址从所述第二缓存队列中读取数据报文。

本申请实施例还提供了一种数据处理装置,适用于DMA控制器,所述装置包括传输单元和读取单元;

所述传输单元,用于当第一寄存器接收到数据时,将数据从第一寄存器传输至第一缓存队列,以便于处理器根据有效数据地址从所述第一缓存队列中读取数据;

所述读取单元,用于根据处理器传输的有效数据地址以及有效长度,从第二缓存队列中读取目标数据传输至第二寄存器。

可选地,所述第一缓存队列和所述第二缓存队列均为FIFO队列。

可选地,所述有效数据地址包括有效数据头地址和有效数据尾地址;

相应的,所述传输单元具体用于每向所述第一缓存队列写入一个数据报文时,则将有效数据头地址加1;

所述读取单元具体用于每从所述第二缓存队列读取一个数据报文时,则将有效数据尾地址加1。

可选地,还包括返回单元;

所述返回单元,用于当有效数据头地址达到预设的最大地址时,则重新返回所述第一缓存队列的初始首地址记录数据报文。

可选地,所述读取单元具体用于当所述有效数据尾地址与所述有效长度的累加和大于预设的最大地址时,则按照所述预设的最大地址与所述有效数据尾地址从所述第二缓存队列中读取数据报文。

由上述技术方案可以看出,数据处理系统包括处理器、与处理器连接的DMA控制器,分别与DMA控制器连接的第一缓存队列、第二缓存队列、第一寄存器和第二寄存器;当第一寄存器接收到数据时,触发DMA控制器将数据从第一寄存器传输至第一缓存队列,以便于处理器根据有效数据地址从第一缓存队列中读取数据。通过触发DMA控制器将数据从寄存器传输至缓存队列,处理器无需进入中断程序,有效的提升了数据的接收效率。处理器还用于当检测到第二缓存队列接收到数据时,将有效数据地址以及有效长度发送至所述DMA控制器;以便于DMA控制器根据有效数据地址以及有效长度,从第二缓存队列中读取目标数据传输至第二寄存器。通过使用DMA控制器和缓存队列配合的方式进行高效率的数据的发送与接收处理,降低了数据的丢失,有效的提升了收发数据的处理效率。

附图说明

为了更清楚地说明本申请实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供的一种数据处理系统的结构示意图;

图2为本申请实施例提供的一种数据处理方法的流程图;

图3为本申请实施例提供的一种数据处理装置的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本申请保护范围。

为了使本技术领域的人员更好地理解本申请方案,下面结合附图和具体实施方式对本申请作进一步的详细说明。

接下来,详细介绍本申请实施例所提供的一种数据处理系统。图1为本申请实施例提供的一种数据处理系统的结构示意图,包括处理器10、与处理器10连接的直接内存存取(Direct Memory Access,DMA)控制器即DMA控制器11,分别与DMA控制器11连接的第一缓存队列12、第二缓存队列13、第一寄存器14和第二寄存器15。

当第一寄存器14接收到数据时,触发DMA控制器11将数据从第一寄存器14传输至第一缓存队列12,以便于处理器10根据有效数据地址从第一缓存队列12中读取数据。

处理器10可以采用中央处理器(Central Processing Unit,CPU)。

第一寄存器14用于接收数据,当第一寄存器14接收到数据时,会触发DMA控制器11,此时DMA控制器11会根据配置把数据从第一寄存器14传输到第一缓存队列12中,应用程序使用u32usart_ReadData(u8*data,u32 len)函数可以从第一缓存队列12中读取数据。若没有数据,则返回0,若有数据,则返回已接收的数据长度。

第二寄存器15用于存储待发送的数据。应用程序中使用u32usart_SendData(u8*data,u32 len)函数发送数据,返回发送数据的长度。当第二缓存队列13接收到数据时,处理器10会计算第二缓存队列13当前的有效数据地址,然后将有效数据地址以及所需读取数据的有效长度发送给DMA控制器11。相应的,DMA控制器11可以根据有效数据地址以及有效长度,从第二缓存队列13中读取目标数据传输至第二寄存器15。

在本申请实施例中,第一缓存队列12和第二缓存队列13均可以采用FIFO队列。

根据FIFO队列先进先出的性能,有效数据地址可以包括有效数据头地址和有效数据尾地址。初始状态下,也即FIFO队列没有缓存数据的状态下,有效数据头地址和有效数据尾地址相等,均可设置为0。

对于数据的接收,DMA控制器11可以每向第一缓存队列12写入一个数据报文时,则将有效数据头地址加1。对于数据的发送,DMA控制器11可以每从第二缓存队列13读取一个数据报文时,则将有效数据尾地址加1。

FIFO队列缓存的数据量有限,根据有效数据头地址的累加原则,可以结合FIFO队列的缓存空间大小,设置最大地址。

在数据的接收过程中,当有效数据头地址达到预设的最大地址时,则说明第一缓存队列12已经缓存到最后一个位置,此时对于新接收的到数据报文,DMA控制器11可以重新返回第一缓存队列12的初始首地址记录数据报文。

在数据的读取过程中,有效数据尾地址代表了读取数据的起始位置,根据起始位置以及所需读取的有效长度可以确定出所需读取的具体的数据。

但是在实际应用中,可能会出现有效数据尾地址与有效长度的累加和大于预设的最大地址的情况,针对于该种情况,则可以按照预设的最大地址与有效数据尾地址从第二缓存队列13中读取数据报文。

例如,最大地址为10,有效数据尾地址为8,有效长度为4,此时有效数据尾地址和有效长度的累加和为12,超过了最大地址10,此时需要将有效长度调整为10-8=2,即从有效数据尾地址为8的位置向后读取2个数据报文。然后再从第二缓存队列13的初始首地址向后读取2个数据报文,通过两次读取获得4个数据报文。

由上述技术方案可以看出,数据处理系统包括处理器、与处理器连接的DMA控制器,分别与DMA控制器连接的第一缓存队列、第二缓存队列、第一寄存器和第二寄存器;当第一寄存器接收到数据时,触发DMA控制器将数据从第一寄存器传输至第一缓存队列,以便于处理器根据有效数据地址从第一缓存队列中读取数据。通过触发DMA控制器将数据从寄存器传输至缓存队列,处理器无需进入中断程序,有效的提升了数据的接收效率。处理器还用于当检测到第二缓存队列接收到数据时,将有效数据地址以及有效长度发送至所述DMA控制器;以便于DMA控制器根据有效数据地址以及有效长度,从第二缓存队列中读取目标数据传输至第二寄存器。通过使用DMA控制器和缓存队列配合的方式进行高效率的数据的发送与接收处理,降低了数据的丢失,有效的提升了收发数据的处理效率。

图2为本申请实施例提供的一种数据处理方法的流程图,适用于DMA控制器,方法包括:

S201:当第一寄存器接收到数据时,将数据从第一寄存器传输至第一缓存队列,以便于处理器根据有效数据地址从第一缓存队列中读取数据。

在本申请实施例中,可以将用于接收数据的寄存器称作第一寄存器,与第一寄存器相配合的用于缓存数据的缓存队列称作第一缓存队列。将用于向外发送数据的寄存器称作第二寄存器,与第二寄存器相配合的用于缓存数据的缓存队列称作第二缓存队列。

当第一寄存器接收到数据时,会触发DMA控制器将数据从第一寄存器传输至第一缓存队列,应用程序使用u32 usart_ReadData(u8*data,u32 len)函数可以从第一缓存队列中读取数据。

S202:根据处理器传输的有效数据地址以及有效长度,从第二缓存队列中读取目标数据传输至第二寄存器。

有效数据地址表示所需读取的数据的起始位置,有效长度表示所需读取的数据的数据长度。DMA控制器根据有效数据地址以及有效长度可以从第二缓存队列中读取出目标数据,并将目标数据传输至第二寄存器。

可选地,第一缓存队列和第二缓存队列均为FIFO队列。

可选地,有效数据地址包括有效数据头地址和有效数据尾地址;

相应的,将数据从第一寄存器传输至第一缓存队列包括:

每向第一缓存队列写入一个数据报文时,则将有效数据头地址加1;

从第二缓存队列中读取目标数据传输至第二寄存器包括:

每从第二缓存队列读取一个数据报文时,则将有效数据尾地址加1。

可选地,在每向第一缓存队列写入一个数据报文时,则将有效数据头地址加1之后还包括:

当有效数据头地址达到预设的最大地址时,则重新返回第一缓存队列的初始首地址记录数据报文。

可选地,根据处理器传输的有效数据地址以及有效长度,从第二缓存队列中读取目标数据传输至第二寄存器包括:

当有效数据尾地址与有效长度的累加和大于预设的最大地址时,则按照预设的最大地址与有效数据尾地址从第二缓存队列中读取数据报文。

图2所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,DMA控制器当第一寄存器接收到数据时,将数据从第一寄存器传输至第一缓存队列,以便于处理器根据有效数据地址从第一缓存队列中读取数据。通过触发DMA控制器将数据从寄存器传输至缓存队列,处理器无需进入中断程序,有效的提升了数据的接收效率。DMA控制器根据处理器传输的有效数据地址以及有效长度,从第二缓存队列中读取目标数据传输至第二寄存器。通过使用DMA控制器和缓存队列配合的方式进行高效率的数据的发送与接收处理,降低了数据的丢失,有效的提升了收发数据的处理效率。

图3为本申请实施例提供的一种数据处理装置的结构示意图,适用于DMA控制器,装置包括传输单元31和读取单元32;

传输单元31,用于当第一寄存器接收到数据时,将数据从第一寄存器传输至第一缓存队列,以便于处理器根据有效数据地址从第一缓存队列中读取数据;

读取单元32,用于根据处理器传输的有效数据地址以及有效长度,从第二缓存队列中读取目标数据传输至第二寄存器。

可选地,第一缓存队列和第二缓存队列均为FIFO队列。

可选地,有效数据地址包括有效数据头地址和有效数据尾地址;

相应的,传输单元具体用于每向第一缓存队列写入一个数据报文时,则将有效数据头地址加1;

读取单元具体用于每从第二缓存队列读取一个数据报文时,则将有效数据尾地址加1。

可选地,还包括返回单元;

返回单元,用于当有效数据头地址达到预设的最大地址时,则重新返回第一缓存队列的初始首地址记录数据报文。

可选地,读取单元具体用于当有效数据尾地址与有效长度的累加和大于预设的最大地址时,则按照预设的最大地址与有效数据尾地址从第二缓存队列中读取数据报文。

图3所对应实施例中特征的说明可以参见图1所对应实施例的相关说明,这里不再一一赘述。

由上述技术方案可以看出,DMA控制器的传输单元用于当第一寄存器接收到数据时,将数据从第一寄存器传输至第一缓存队列,以便于处理器根据有效数据地址从第一缓存队列中读取数据。通过触发DMA控制器的传输单元将数据从寄存器传输至缓存队列,处理器无需进入中断程序,有效的提升了数据的接收效率。DMA控制器的读取单元,用于根据处理器传输的有效数据地址以及有效长度,从第二缓存队列中读取目标数据传输至第二寄存器。通过使用DMA控制器和缓存队列配合的方式进行高效率的数据的发送与接收处理,降低了数据的丢失,有效的提升了收发数据的处理效率。

以上对本申请实施例所提供的一种数据处理系统、方法和装置进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的方法而言,由于其与实施例公开的系统相对应,所以描述的比较简单,相关之处参见系统部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

10页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:存储设备、操作存储设备的方法以及系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!