CN103176932B - 一种dma数据传输方法及系统 - Google Patents

一种dma数据传输方法及系统 Download PDF

Info

Publication number
CN103176932B
CN103176932B CN201110439326.0A CN201110439326A CN103176932B CN 103176932 B CN103176932 B CN 103176932B CN 201110439326 A CN201110439326 A CN 201110439326A CN 103176932 B CN103176932 B CN 103176932B
Authority
CN
China
Prior art keywords
data
dma
transmission
control module
transmission control
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201110439326.0A
Other languages
English (en)
Other versions
CN103176932A (zh
Inventor
唐新东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Spreadtrum Communications Shanghai Co Ltd
Original Assignee
Keen (chongqing) Microelectronics Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Keen (chongqing) Microelectronics Technology Co Ltd filed Critical Keen (chongqing) Microelectronics Technology Co Ltd
Priority to CN201110439326.0A priority Critical patent/CN103176932B/zh
Publication of CN103176932A publication Critical patent/CN103176932A/zh
Application granted granted Critical
Publication of CN103176932B publication Critical patent/CN103176932B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Bus Control (AREA)

Abstract

本发明实施例公开了一种DMA数据传输方法及系统,能够降低CPU负担,提高数据传输的速度,从而提高系统整体性能。本发明实施例方法包括:中央处理器CPU将需要传输的传输数据写入传输数据缓冲区BUFFER进行缓存;当传输数据写入完成后,对数据传输控制模块中BUFFER的写指针进行更新;数据传输控制模块对所述BUFFER中的传输数据通过DMA方式进行传输。本发明实施例还提供一种DMA数据传输系统。本发明实施例能够有效降低CPU负担,提高数据传输的速度,从而提高系统整体性能。

Description

一种DMA数据传输方法及系统
技术领域
本发明涉及数据处理领域,尤其涉及一种DMA数据传输方法及系统。
背景技术
在芯片(特别是基带芯片)的工作过程中,通常需要将工作流程及各种状态信息,重要数据等通过数据传输接口送出,以便于确认工作流程运行是否正确及在异常情况发生后,进行问题的定位。
一般来说,传输数据的输出通常包括如下两步:
第一步:将传输数据存储在存储器(memory)中开辟的一块缓冲区(BUFFER)中缓存;
第二步:将BUFFER中的信息通过数据传输接口输出。
BUFFER通常采用回环BUFFER的方式实现,即这个BUFFER包括一个起始地址和一个结束地址,向此BUFFER写入数据时,当数据写到BUFFER的结束地址时,会将接下来的数据写到起始地址开始的memory中,即实现地址回环,从BUFFER中读取数据也需要做相似的回环处理。
将BUFFER中的数据通过数据传输接口输出通常采用直接内存访问(DMA,DirectMemory Access)模块完成,该模块具体完成启动DMA,DMA传输,DMA完成传输的中断处理等过程。
启动DMA的操作包括配置传输的读数据地址、写数据地址、数据类型、传输数据总长度以及每次响应请求传输的突发(Burst)数据长度等信息,之后启动DMA对应的通道开始传输。在DMA传输过程中,DMA模块每次接收到子模块的请求信号时,就向子模块发送响应信号,并进行burst长度数据的传输,照此进行工作,直到DMA完成传输总长度的数据传输。
DMA完成总数据长度的传输后,产生中断给中央处理器(CPU,CenterProcessingUnit),由CPU执行DMA中断处理函数中的操作,如设置状态、标志,以及启动下一次传输等操作。
将BUFFER中的传输数据通过数据传输接口进行传输时,通常可以包括如下情况:
情况1:当CPU向BUFFER中写入传输数据之后,判断DMA的运行状态,如果DMA没有运行,则根据数据量的大小启动DMA或者由CPU自己完成传输数据从BUFFER搬运到数据传输控制模块的操作,若DMA此时正在进行搬运操作,则不启动DMA;
情况2:当DMA完成传输之后,在DMA的完成中断处理函数中,CPU对BUFFER中的传输数据的数据量进行判断,根据判断结果决定是否再次启动DMA或者由CPU自己搬运传输数据。
现有技术的这种数据传输方式中,CPU需要完成多项任务,除了向BUFFER写入数据之外,还要完成配置、启动DMA,进行DMA中断处理以及对BUFFER的读、写指针进行维护等工作,大量的任务严重的增加了CPU的负担,降低了数据传输的速度,从而影响了系统整体性能。
发明内容
本发明实施例提供了一种DMA数据传输方法及系统,能够降低CPU负担,提高数据传输的速度,从而提高系统整体性能。
本发明实施例提供的DMA数据传输方法包括:
CPU将需要传输的数据写入传输数据缓冲区BUFFER进行缓存;
当传输数据写入完成后,对数据传输控制模块中的写指针进行更新;
数据传输控制模块对所述BUFFER中的传输数据通过DMA方式进行传输。
可选地,所述方法还包括:
启动周期性定时器,所述周期性定时器的定时间隔为预置数值;
所述数据传输控制模块对所述BUFFER中的传输数据通过DMA方式进行传输包括:
当所述周期性定时器超时之后,所述数据传输控制模块接收所述周期性定时器产生的中断;
所述数据传输控制模块根据读指针和写指针之间的差值,判断BUFFER中的有效数据长度;
所述数据传输控制模块根据判断结果进行相应的处理。
可选地,所述数据传输控制模块根据判断结果进行相应的处理包括:
若所述有效数据长度为0,则所述数据传输控制模块不作处理,所述周期性定时器保持之前的状态;
或,
若所述有效数据长度达到启动直接内存访问DMA传输的门限值N,则停止所述周期性定时器,所述数据传输控制模块配置并启动DMA模块进行所述传输数据的传输,所述N为预置数值;
或,
若所述有效数据长度未达到启动DMA传输的门限值N,但在M次收到所述周期性定时器产生的中断时所查询到的有效数据长度相同,则停止所述周期性定时器,所述数据传输控制模块配置并启动DMA模块进行所述传输数据的传输,所述M、N为预置数值。
可选地,所述CPU将需要传输的数据写入传输数据缓冲区BUFFER进行缓存之后包括:
CPU判断DMA模块是否运行,若没有运行,则通知数据传输控制模块启动DMA模块进行所述传输数据的传输。
可选地,所述启动DMA模块进行所述传输数据的传输包括:
DMA模块与数据接收模块进行请求和响应的握手流程;
DMA模块和数据传输控制模块一同完成传输数据的传输,完成传输后产生DMA完成中断;
数据传输控制模块接收到DMA完成中断后,更新数据传输控制模块的读指针;
数据传输控制模块查询BUFFER中的剩余传输数据的数据量,并根据查询结果进行相应处理。
可选地,所述数据传输控制模块根据查询结果进行相应处理包括:
若所述剩余传输数据的数据量达到所述门限值N,则数据传输控制模块配置并启动DMA模块进行所述传输数据的传输。
可选地,所述数据传输控制模块根据查询结果进行相应处理包括:
当采用周期性定时器模式时,若所述剩余传输数据的数据量未达到所述门限值N,则数据传输控制模块退出DMA完成中断处理,并启动所述周期性定时器。
可选地,所述数据传输控制模块根据查询结果进行相应处理包括:
当不采用周期性定时器模式时,若所述剩余传输数据的数据量未达到所述门限值N,则通知CPU进行所述剩余传输数据的传输,或设置所述门限值N为剩余传输数据长度,配置并启动DMA模块进行所述传输数据的传输。
可选地,所述数据传输控制模块中配置的参数包括:
BUFFER的起始地址、BUFFER的结束地址、写指针、读指针、所述N以及所述M;
所述写指针为BUFFER的写指针,所述读指针为BUFFER的读指针。
本发明实施例提供的DMA数据传输系统,包括:
CPU,用于将需要输出的传输数据写入传输数据缓冲区BUFFER进行缓存;
数据传输控制模块,用于当传输数据写入完成后,对数据传输控制模块的写指针进行更新,并对所述BUFFER中的传输数据通过DMA方式进行传输。
可选地,所述DMA数据传输系统还包括:
周期性定时器,用于按照预置的定时间隔进行计时。
可选地,所述DMA数据传输系统还包括:
DMA模块,用于在所述数据传输控制模块的控制下,完成传输数据的传输,并在传输完成后产生DMA完成中断。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,传输数据的传输过程由CPU、数据传输控制模块、DMA模块共同完成,由数据传输控制模块处理DMA传输数据过程中产生的中断,配置DMA传输参数,而不再完全依赖于CPU的操作,所以能够有效的降低CPU负担,提高数据传输的速度,从而提高系统整体性能。
附图说明
图1为本发明DMA数据传输方法一个实施例示意图;
图2为本发明DMA数据传输方法一个数据流程图;
图3为本发明DMA数据传输方法另一数据流程图;
图4为本发明DMA数据传输系统一个实施例示意图。
具体实施方式
本发明实施例提供了一种DMA数据传输方法及系统,能够降低CPU负担,提高数据传输的速度,从而提高系统整体性能。
请参阅图1,本发明DMA数据传输方法一个实施例包括:
101、CPU将需要传输的传输数据写入传输数据BUFFER进行缓存;
本实施例中,CPU负责响应传输数据的写请求,将这些传输数据写到BUFFER中,并更新数据传输控制模块中的写指针。
CPU通常会先读取读指针,并判断BUFFER中剩余的空间是否满足本次传输数据的输出,不满足则触发相应的错误处理机制。对于写指针的维护包括回环处理,即当其值到达BUFFER的尾部时,需要绕回BUFFER的首部,继续写入传输数据。
102、当传输数据写入完成后,对数据传输控制模块中的写指针进行更新;
本实施例中,数据传输控制模块中可以配置有如下参数:BUFFER的起始地址、BUFFER的结束地址、写指针、读指针、N以及M。
其中,该写指针为BUFFER的写指针,读指针为BUFFER的读指针,N的含义为启动DMA传输的有效数据长度门限值,M的含义为有效数据长度未达到N,但在M次收到所述周期性定时器产生的中断时所查询到的有效数据长度相同,则仍启动DMA传输。
当传输数据写入完成后,可以对数据传输控制模块中的写指针,即BUFFER的写指针进行更新。
103、数据传输控制模块对BUFFER中的传输数据通过DMA方式进行传输。
当BUFFER的写指针完成更新之后,数据传输控制模块可以配置DMA模块,BUFFER中的传输数据通过DMA方式进行传输。
本发明实施例中,传输数据的传输过程由CPU、数据传输控制模块、DMA模块共同完成,由数据传输控制模块处理DMA传输数据过程中产生的中断、配置DMA传输参数,而不再完全依赖于CPU的操作,所以能够有效的降低CPU负担,提高数据传输的速度,从而提高系统整体性能。
本实施例中的数据传输过程可以分为两种方式,下面分别进行描述:
一、使用周期性定时器:
具体数据传输过程包括:
(1)、数据传输控制模块接收周期性定时器产生的中断;
本方案中配置有周期性定时器,该周期性定时器的定时间隔为预置数值。
当周期性定时器超时之后,数据传输控制模块可以接收到周期性定时器产生的中断。
(2)、数据传输控制模块判断BUFFER中的有效数据长度;
当数据传输控制模块接收到周期性定时器产生的中断之后,可以根据BUFFER的读指针和写指针之间的差值,判断BUFFER中的有效数据长度。
(3)、数据传输控制模块根据判断结果进行相应的处理;
数据传输控制模块获知BUFFER中的有效数据长度之后,可以根据判断结果进行相应的处理,具体的处理方式可以分为如下三种情况:
A、有效数据长度为0:
若有效数据长度为0,则数据传输控制模块不作处理,周期性定时器保持之前的状态。
B、有效数据长度达到启动DMA传输的门限值N:
若有效数据长度达到启动DMA传输的门限值N,则停止周期性定时器,且数据传输控制模块配置并启动DMA模块进行传输数据的传输,该N为预置数值。
C、有效数据长度未达到启动DMA传输的门限值N,但在M次收到周期性定时器产生的中断时所查询到的有效数据长度相同:
若有效数据长度未达到启动DMA传输的门限值N,但在M次收到周期性定时器产生的中断时所查询到的有效数据长度相同,则说明BUFFER中的有效数据长度在一段时间内未发生变化,则停止周期性定时器,数据传输控制模块配置DMA传输数据总长度为有效数据长度并启动DMA模块进行传输数据的传输,M、N为预置数值。
(4)、执行DMA传输流程;
在数据传输过程中,DMA模块可以与数据接收模块进行请求和响应的握手流程(DMA每搬移一块数据,都要先和数据接收模块进行一次握手流程),然后DMA模块和数据传输控制模块一同完成传输数据的传输。
(5)、产生DMA完成中断;
当DMA模块和数据传输控制模块一同完成传输数据的传输之后,DMA模块可以产生DMA完成中断。
(6)、数据传输控制模块更新BUFFER的读指针;
数据传输控制模块接收到DMA完成中断后,可以更新BUFFER的读指针。
(7)、数据传输控制模块查询BUFFER中的剩余传输数据的数据量,并根据查询结果进行相应处理。
当数据传输控制模块更新BUFFER的读指针之后,可以查询BUFFER中的剩余传输数据的数据量,并根据查询结果进行相应处理,具体的处理可以分为以下两种情况:
A、剩余传输数据的数据量达到门限值N:
若剩余传输数据的数据量达到门限值N,则数据传输控制模块配置并启动DMA模块进行传输数据的传输。
B、剩余传输数据的数据量未达到门限值N:
若剩余传输数据的数据量未达到所述门限值N,则数据传输控制模块退出DMA完成中断处理,并启动周期性定时器。
上面介绍了使用周期性定时器的情况,下面介绍不使用周期性定时器的情况:
二、不使用周期性定时器:
(1)CPU在将传输数据写入BUFFER之后,判断DMA模块是否运行,若没有运行,则通知数据传输控制模块启动DMA模块进行传输数据的传输;
当CPU向BUFFER写完传输数据后,CPU判断DMA模块是否运行,若已经运行,则不作处理,若尚未运行,则通知数据传输控制模块启动DMA模块进行传输数据的传输。
(2)、执行DMA传输流程;
在数据传输过程中,DMA模块可以与数据接收模块进行请求和响应的握手流程(DMA每搬移一块数据,都要先和数据接收模块进行一次握手流程),然后DMA模块和数据传输控制模块一同完成传输数据的传输。
(3)、产生DMA完成中断;
当DMA模块和数据传输控制模块一同完成传输数据的传输之后,DMA模块可以产生DMA完成中断。
(4)、数据传输控制模块更新BUFFER的读指针;
数据传输控制模块接收到DMA完成中断后,可以更新BUFFER的读指针。
(5)、数据传输控制模块查询BUFFER中的剩余传输数据的数据量,并根据查询结果进行相应处理。
当数据传输控制模块更新BUFFER的读指针之后,可以查询BUFFER中的剩余传输数据的数据量,并根据查询结果进行相应处理,具体的处理可以分为以下两种情况:
A、剩余传输数据的数据量达到门限值N:
若剩余传输数据的数据量达到门限值N,则数据传输控制模块配置并启动DMA模块进行传输数据的传输。
B、剩余传输数据的数据量未达到门限值N:
若剩余传输数据的数据量未达到所述门限值N,则通知CPU进行剩余传输数据的传输,或设置门限值N为剩余传输数据长度,配置并启动DMA模块进行传输数据的传输。
本实施例中,传输数据的传输过程由CPU、数据传输控制模块、DMA模块共同完成,由数据传输控制模块处理DMA传输数据过程中产生的中断,配置DMA传输参数,而不再完全依赖于CPU的操作,所以能够有效的降低CPU负担,提高数据传输的速度,从而提高系统整体性能。
为便于理解,下面以两个具体的数据流程示意图对本发明DMA数据传输方法进行描述:
在下面的两个例子中,整个系统为跟踪信息的传输系统,本实施例中以跟踪数据作为传输数据的例子进行说明,同时,以跟踪控制模块作为数据传输控制模块的例子进行说明。
一、使用定时器模式:
请参阅图2,本系统开始运行后,周期性定时器也被启动,定时时间到达时,周期性定时器产生送给跟踪控制模块的中断,跟踪控制模块可以根据BUFFER的读指针和写指针之间的差值,判断BUFFER中的有效数据长度,并根据判断结果进行相应的处理,处理的三种情况与前述实施例中描述的一致,此处不再赘述。
在数据传输过程中,DMA模块可以与跟踪模块进行请求和响应的握手流程(DMA每搬移一块数据,都要先和数据接收模块进行一次握手流程),然后DMA模块和跟踪控制模块一同完成跟踪数据的传输,当DMA模块和跟踪控制模块一同完成跟踪数据的传输之后,DMA模块可以产生DMA完成中断。
跟踪控制模块接收到DMA完成中断后,可以更新BUFFER的读指针,跟踪控制模块查询BUFFER中的剩余跟踪数据的数据量,并根据查询结果进行相应处理,处理的两种情况与前述实施例中描述的一致,此处不再赘述。
二、不使用定时器模式:
请参阅图3,跟踪数据写入完成后,CPU判断DMA模块是否运行,若没有运行,则启动DMA模块。
在数据传输过程中,DMA模块可以与跟踪模块进行请求和响应的握手流程(DMA每搬移一块数据,都要先和数据接收模块进行一次握手流程),然后DMA模块和跟踪控制模块一同完成跟踪数据的传输,当DMA模块和跟踪控制模块一同完成跟踪数据的传输之后,DMA模块可以产生DMA完成中断。
跟踪控制模块接收到DMA完成中断后,可以更新BUFFER的读指针,跟踪控制模块查询BUFFER中的剩余跟踪数据的数据量,并根据查询结果进行相应处理,处理的两种情况与前述实施例中描述的一致,此处不再赘述。
上面描述了本发明DMA数据传输方法的实施例,下面对本发明的DMA数据传输系统进行描述,请参阅图4,本发明DMA数据传输系统包括:
CPU401,用于将需要传输的传输数据写入传输数据缓冲区BUFFER进行缓存;
数据传输控制模块402,用于当传输数据写入完成后,对BUFFER的写指针进行更新,并对所述BUFFER中的传输数据通过DMA方式进行传输。
本实施例中的DMA数据传输系统还可以进一步包括:
周期性定时器403,用于按照预置的定时间隔进行计时;由所述CPU在系统启动时配置并启动所述周期性定时器;所述数据传输控制模块在系统运行过程中控制所述周期性定时器的停止和启动。
本实施例中的DMA数据传输系统还可以进一步包括:
DMA模块404,用于在所述数据传输控制模块的控制下,完成传输数据的传输,并在传输完成后产生DMA完成中断。
需要说明的是,本实施例中的数据传输过程可以采用定时器模式,也可以不采用定时器模式,若不采用定时器模块,则本实施例中的DMA数据传输系统也可以不包括周期性定时器403。
本实施例DMA数据传输系统中的各模块之间的交互过程与前述方法实施例中描述的内容类似,此处不再赘述。
本实施例中,传输数据的传输过程由CPU401、数据传输控制模块402、DMA模块404共同完成,由数据传输控制模块402处理DMA传输数据过程中产生的中断,配置DMA传输参数,而不再完全依赖于CPU的操作,所以能够有效的降低CPU负担,提高数据传输的速度,从而提高系统整体性能。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (6)

1.一种DMA数据传输方法,其特征在于,包括:
CPU将需要传输的数据写入传输数据缓冲区BUFFER进行缓存;
当传输数据写入完成后,对数据传输控制模块中的写指针进行更新;
数据传输控制模块配置并启动DMA模块,通过控制所述DMA模块实现对所述BUFFER中的传输数据通过DMA方式进行传输;
所述数据传输控制模块配置并启动DMA模块,通过控制所述DMA模块实现对所述BUFFER中的传输数据通过DMA方式进行传输包括:
启动周期性定时器,所述周期性定时器的定时间隔为预置数值;
所述数据传输控制模块对所述BUFFER中的传输数据通过DMA方式进行传输,包括:
当所述周期性定时器超时之后,所述数据传输控制模块接收所述周期性定时器产生的中断;
所述数据传输控制模块根据读指针和写指针之间的差值,判断BUFFER中的有效数据长度;
所述数据传输控制模块根据判断结果进行相应的处理;
其中,所述数据传输控制模块根据判断结果进行相应的处理包括:
若所述有效数据长度为0,则所述数据传输控制模块不作处理,所述周期性定时器保持之前的状态;或,若所述有效数据长度达到启动直接内存访问DMA传输的门限值N,则停止所述周期性定时器,所述数据传输控制模块配置并启动DMA模块进行所述传输数据的传输,所述N为预置数值;或,若所述有效数据长度未达到启动DMA传输的门限值N,但在M次收到所述周期性定时器产生的中断时所查询到的有效数据长度相同,则停止所述周期性定时器,所述数据传输控制模块配置并启动DMA模块进行所述传输数据的传输,所述M、N为预置数值;
或者,
所述数据传输控制模块配置并启动DMA模块,通过控制所述DMA模块实现对所述BUFFER中的传输数据通过DMA方式进行传输包括:
CPU判断DMA模块是否运行,若没有运行,则通知数据传输控制模块启动DMA模块进行所述传输数据的传输;
其中,所述启动DMA模块进行所述传输数据的传输包括:
DMA模块与数据接收模块进行请求和响应的握手流程;
DMA模块和数据传输控制模块一同完成传输数据的传输,完成传输后产生DMA完成中断;
数据传输控制模块接收到DMA完成中断后,更新数据传输控制模块的读指针;
数据传输控制模块查询BUFFER中的剩余传输数据的数据量,并根据查询结果进行相应处理。
2.根据权利要求1所述的方法,其特征在于,所述数据传输控制模块根据查询结果进行相应处理包括:
若所述剩余传输数据的数据量达到所述门限值N,则数据传输控制模块配置并启动DMA模块进行所述传输数据的传输。
3.根据权利要求1所述的方法,其特征在于,所述数据传输控制模块根据查询结果进行相应处理包括:
当采用周期性定时器模式时,若所述剩余传输数据的数据量未达到门限值N,则数据传输控制模块退出DMA完成中断处理,并启动所述周期性定时器。
4.根据权利要求1所述的方法,其特征在于,所述数据传输控制模块根据查询结果进行相应处理包括:
当不采用周期性定时器模式时,若所述剩余传输数据的数据量未达到所述门限值N,则通知CPU进行所述剩余传输数据的传输,或设置DMA本次传输数据总长度为剩余传输数据长度,配置并启动DMA模块进行所述传输数据的传输。
5.根据权利要求1所述的方法,其特征在于,所述数据传输控制模块中配置的参数包括:
BUFFER的起始地址、BUFFER的结束地址、写指针、读指针、所述N以及所述M;
所述写指针为BUFFER的写指针,所述读指针为BUFFER的读指针。
6.一种DMA数据传输系统,其特征在于,包括:
CPU,用于将需要输出的传输数据写入传输数据缓冲区BUFFER进行缓存;
数据传输控制模块,用于当传输数据写入完成后,对数据传输控制模块的写指针进行更新,配置并启动DMA模块,通过控制所述DMA模块实现对所述BUFFER中的传输数据通过DMA方式进行传输;
所述DMA模块,用于在所述数据传输控制模块的控制下,完成传输数据的传输,并在传输完成后产生DMA完成中断;
所述数据传输控制模块用于对所述BUFFER中的传输数据通过DMA方式进行传输,具体用于:
当周期性定时器超时之后,接收所述周期性定时器产生的中断;根据读指针和写指针之间的差值,判断BUFFER中的有效数据长度;根据判断结果进行相应的处理;其中,所述周期性定时器用于按照预置的定时间隔进行计时;
所述数据传输控制模块用于根据判断结果进行相应的处理,具体用于:若所述有效数据长度为0,则所述数据传输控制模块不作处理,所述周期性定时器保持之前的状态;或,若所述有效数据长度达到启动直接内存访问DMA传输的门限值N,则停止所述周期性定时器,所述数据传输控制模块配置并启动DMA模块进行所述传输数据的传输,所述N为预置数值;或,若所述有效数据长度未达到启动DMA传输的门限值N,但在M次收到所述周期性定时器产生的中断时所查询到的有效数据长度相同,则停止所述周期性定时器,所述数据传输控制模块配置并启动DMA模块进行所述传输数据的传输,所述M、N为预置数值;
其中,所述启动DMA模块进行所述传输数据的传输包括:
DMA模块与数据接收模块进行请求和响应的握手流程;
DMA模块和数据传输控制模块一同完成传输数据的传输,完成传输后产生DMA完成中断;
数据传输控制模块接收到DMA完成中断后,更新数据传输控制模块的读指针;
数据传输控制模块查询BUFFER中的剩余传输数据的数据量,并根据查询结果进行相应处理。
CN201110439326.0A 2011-12-23 2011-12-23 一种dma数据传输方法及系统 Active CN103176932B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110439326.0A CN103176932B (zh) 2011-12-23 2011-12-23 一种dma数据传输方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110439326.0A CN103176932B (zh) 2011-12-23 2011-12-23 一种dma数据传输方法及系统

Publications (2)

Publication Number Publication Date
CN103176932A CN103176932A (zh) 2013-06-26
CN103176932B true CN103176932B (zh) 2017-04-26

Family

ID=48636821

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110439326.0A Active CN103176932B (zh) 2011-12-23 2011-12-23 一种dma数据传输方法及系统

Country Status (1)

Country Link
CN (1) CN103176932B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104518998B (zh) * 2014-12-12 2018-04-27 北京海尔集成电路设计有限公司 一种两个芯片之间进行数据交换的方法
CN105988953B (zh) * 2015-02-12 2019-03-12 深圳市中兴微电子技术有限公司 一种直接内存存取dma控制器及数据传输的方法
CN106874226B (zh) * 2015-12-10 2020-05-12 重庆川仪自动化股份有限公司 基于stm32f4芯片的串口数据接收、发送、传输装置及方法
CN107229531B (zh) * 2016-03-26 2020-04-21 上海冠瑞医疗设备股份有限公司 一种基于高压发生器通信中断数据处理的方法
CN107293316B (zh) * 2016-04-13 2020-01-03 青岛海信电器股份有限公司 一种音频数据处理方法及装置
CN106775477B (zh) * 2016-12-19 2021-01-01 湖南国科微电子股份有限公司 Ssd主控数据传输管理装置及方法
CN109484046B (zh) * 2018-10-15 2020-08-11 广东宝莱特医用科技股份有限公司 一种打印控制方法、控制系统及打印设备
CN110010167A (zh) * 2019-03-26 2019-07-12 记忆科技(深圳)有限公司 一种提高获取描述符状态的方法、装置、计算机设备及存储介质
CN111190843B (zh) * 2020-01-08 2023-06-27 珠海趣印科技有限公司 一种提高打印速度和打印效果的方法
CN111666237B (zh) * 2020-06-08 2022-06-28 王斌 具有高速缓存管理功能的dma控制器

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797378A (zh) * 2004-12-24 2006-07-05 华为技术有限公司 采用直接存储器访问方式进行数据交换的方法
CN101158930A (zh) * 2007-11-19 2008-04-09 中兴通讯股份有限公司 一种外部控制dma控制器的方法及其装置
CN201583943U (zh) * 2009-10-26 2010-09-15 福州瑞芯微电子有限公司 音频soc芯片的高效低功耗dma的ip结构

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10326249A (ja) * 1997-05-23 1998-12-08 Nec Yonezawa Ltd Dma転送領域の制御方法および装置
US20080263171A1 (en) * 2007-04-19 2008-10-23 Alacritech, Inc. Peripheral device that DMAS the same data to different locations in a computer

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1797378A (zh) * 2004-12-24 2006-07-05 华为技术有限公司 采用直接存储器访问方式进行数据交换的方法
CN101158930A (zh) * 2007-11-19 2008-04-09 中兴通讯股份有限公司 一种外部控制dma控制器的方法及其装置
CN201583943U (zh) * 2009-10-26 2010-09-15 福州瑞芯微电子有限公司 音频soc芯片的高效低功耗dma的ip结构

Also Published As

Publication number Publication date
CN103176932A (zh) 2013-06-26

Similar Documents

Publication Publication Date Title
CN103176932B (zh) 一种dma数据传输方法及系统
US7899944B2 (en) Open exchange limiting in an I/O processing system
CN105573789B (zh) 基于软核处理器的fpga多镜像升级加载方法及装置
US8001298B2 (en) Providing extended measurement data in an I/O processing system
EP2174227B1 (en) Reserved device access contention reduction
JP5661874B2 (ja) 電力管理のためのアイドル期間報告
CN106874224A (zh) 自动搬运且适应器件的多线SPI‑Flash控制器
US9411521B2 (en) Method and apparatus for improving sequential memory read preformance
US8494010B2 (en) Data transfer device, data transmitting device, data receiving device, and data transfer method
WO2016078343A1 (zh) 一种设备调度方法、任务管理器及存储介质
CN103064807A (zh) 多通道直接存储器存取控制器
US9563443B2 (en) Information processing device, peripheral device control method, and non-transitory computer readable medium storing filter driver for controlling a power state of a peripheral device
TWI712951B (zh) 電子存放裝置的任務管理方法、主機和存儲裝置
US9734102B2 (en) Data transfer
US10505757B2 (en) Network interface module and a method of changing network configuration parameters within a network device
US20170010992A1 (en) Power saving feature for storage subsystems
US20120303850A1 (en) Systems and methods for advanced interrupt scheduling and priority processing in a storage system environment
CN109684244A (zh) 用于多从机系统的i2c总线主机优化传输方法及装置
US10268606B2 (en) Method, device and system for switching access modes for data storage device
CN110795369B (zh) 基于gpio管脚实现mdio从机功能的方法及终端
KR20180049340A (ko) 스토리지 장치 및 그것의 링크 상태 제어 방법
WO2017036101A1 (zh) 一种更新寄存器的方法及装置
CN102385555B (zh) 一种缓存系统和数据缓存的方法
US8510583B2 (en) Asynchronous sleep mode for host controller
US9075784B2 (en) Communication device, communication method and computer-readable recording medium

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20170214

Address after: 401336 Chongqing Nan'an District Tea Garden Road, No. 8, software Incubation Park, building 1

Applicant after: Keen (Chongqing) Microelectronics Technology Co.,Ltd.

Address before: 400065 Chongqing Nan'an District huangjuezhen pass Fort Park No. 1

Applicant before: CHONGQING CYIT COMMUNICATION TECHNOLOGIES Co.,Ltd.

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20181102

Address after: 201203 Building 1, exhibition hall, 2288 lane, 2288 Chong, road, Zhangjiang hi tech park, Shanghai

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: 401336 Chongqing Nan'an District tea garden Jade Road 8 software Incubation Park 1 floor

Patentee before: Keen (Chongqing) Microelectronics Technology Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20190325

Address after: 361006 Xiamen Free Trade Pilot Area, Xiamen, Fujian Province, Unit X, 8th Floor, Unit 05, Building D, Xiamen International Shipping Center, 97 Xiangyu Road, Xiamen Section

Patentee after: Xinxin Finance Leasing (Xiamen) Co.,Ltd.

Address before: 201203 Building 1, exhibition hall, 2288 lane, 2288 Chong, road, Zhangjiang hi tech park, Shanghai

Patentee before: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

TR01 Transfer of patent right
EE01 Entry into force of recordation of patent licensing contract

Application publication date: 20130626

Assignee: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Assignor: Xinxin Finance Leasing (Xiamen) Co.,Ltd.

Contract record no.: X2021110000009

Denomination of invention: A DMA data transmission method and system

Granted publication date: 20170426

License type: Exclusive License

Record date: 20210317

EE01 Entry into force of recordation of patent licensing contract
TR01 Transfer of patent right

Effective date of registration: 20221019

Address after: 201203 Shanghai city Zuchongzhi road Pudong New Area Zhangjiang hi tech park, Spreadtrum Center Building 1, Lane 2288

Patentee after: SPREADTRUM COMMUNICATIONS (SHANGHAI) Co.,Ltd.

Address before: 361006 Xiamen Free Trade Pilot Area, Xiamen, Fujian Province, Unit X, 8th Floor, Unit 05, Building D, Xiamen International Shipping Center, 97 Xiangyu Road, Xiamen Section

Patentee before: Xinxin Finance Leasing (Xiamen) Co.,Ltd.

TR01 Transfer of patent right