CN116266164A - 数据传输方法、dma设备、装置、通信外设和介质 - Google Patents
数据传输方法、dma设备、装置、通信外设和介质 Download PDFInfo
- Publication number
- CN116266164A CN116266164A CN202211594254.1A CN202211594254A CN116266164A CN 116266164 A CN116266164 A CN 116266164A CN 202211594254 A CN202211594254 A CN 202211594254A CN 116266164 A CN116266164 A CN 116266164A
- Authority
- CN
- China
- Prior art keywords
- dma
- target data
- level signal
- determining
- transmission mode
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Communication Control (AREA)
Abstract
本申请实施例提供一种数据传输方法、DMA设备、装置、通信外设和介质,其中,该方法包括:接收通信外设发送的DMA请求,DMA请求是通信外设在接收到目标数据后发送的,DMA请求中包括DMA高电平信号;确定DMA高电平信号的周期数;基于DMA高电平信号的周期数和预设的脉宽检测阈值,确定目标数据的目标传输方式;基于目标传输方式从通信外设中读取目标数据。本实施例中,通信外设接收到目标数据之后,DMA设备则会接收到基于目标数据的DMA请求,使得目标数据能够基于DMA设备进行数据传输,避免调用CPU资源影响传输效率的问题,有效提升数据传输效率。
Description
技术领域
本申请实施例涉及通信领域,尤其涉及一种数据传输方法、DMA设备、装置、通信外设和介质。
背景技术
直接存储器访问(DirectMemoryAccess,DMA)设备,能够支持数据的直接传输,如读取通信外设中寄存器接收的数据,并将此数据写入至其他寄存器中。
相关技术中,通信外设在接收到数据之后,会根据接收的数据的字节数确定是否向DMA设备发送DMA请求,当DMA设备接收到DMA请求时,才会进行数据读取,举例而言,在通信外设的寄存器的数据对应的字节数小于预先设定的传输阈值时,通信外设不会向DMA设备发起DMA请求,此数据不会通过DMA设备进行传输,需要调用中央处理器(centralprocessing unit,CPU)资源实现数据传输。
然而,采用上述数据传输方式,数据传输效率不高。
发明内容
鉴于上述问题,本申请实施例提供了一种数据传输方法、DMA设备、装置、通信外设和介质,克服了上述数据传输效率不高的问题。
第一方面,提供了一种数据传输方法,应用于直接存储器访问DMA设备,包括:
接收通信外设发送的DMA请求,所述DMA请求是所述通信外设在接收到目标数据后发送的,所述DMA请求中包括DMA高电平信号;
确定所述DMA高电平信号的周期数;
基于所述DMA高电平信号的周期数和预设的脉宽检测阈值,确定所述目标数据的目标传输方式;
基于所述目标传输方式从所述通信外设中读取所述目标数据。
在一种可选的方式中,所述确定所述DMA高电平信号的周期数,包括:
在检测到所述DMA高电平信号对应的上升沿后,统计所述上升沿至所述DMA高电平信号对应的下降沿之间的计数值;
确定所述计数值为所述DMA高电平信号的周期数。
在一种可选的方式中,所述基于所述DMA高电平信号的周期数和预设的脉宽检测阈值,确定所述目标数据的目标传输方式,包括:
在所述DMA高电平信号的周期数大于或等于预设的脉宽检测阈值时,确定所述目标数据的目标传输方式为第一传输方式,所述第一传输方式用于描述连续DMA传输;
在所述DMA高电平信号的周期数小于预设的所述脉宽检测阈值时,确定所述目标数据的目标传输方式为第二传输方式,所述第二传输方式用于描述单次DMA传输。
在一种可选的方式中,还包括:
在所述目标数据读取完成后,向所述通信外设发送传输完成信号:
第二方面,提供了一种数据传输方法,应用于通信外设,包括:
接收目标数据;
基于所述目标数据的字节数,向DMA设备发送DMA请求,所述DMA请求中包括DMA高电平信号,以使所述DMA设备执行如下:
确定所述DMA高电平信号的周期数;基于所述DMA高电平信号的周期数和预设的脉宽检测阈值,确定所述目标数据的目标传输方式;基于所述目标传输方式从所述通信外设中读取所述目标数据。
在一种可选的方式中,所述基于所述目标数据的字节数,向DMA设备发送DMA请求,包括:
获取预设的寄存器阈值;
基于所述目标数据的字节数和预设的所述寄存器阈值,确定向所述DMA设备发送DMA请求的周期数;
向所述DMA设备发送所述周期数对应的高电平信号。
在一种可选的方式中,所述基于所述目标数据的字节数和预设的所述寄存器阈值,确定向所述DMA设备发送DMA请求的周期数,包括:
在所述目标数据的字节数大于或等于预设的所述寄存器阈值时,确定向所述DMA设备发送DMA请求的周期数为第一数值;
在所述目标数据的字节数小于预设的所述寄存器阈值时,确定向所述DMA设备发送DMA请求的周期数为第二数值;
其中,所述第一数值大于所述第二数值。
在一种可选的方式中,所述确定向所述DMA设备发送DMA请求的周期数为第二数值,包括:
更新预设的所述寄存器阈值为第三数值;
基于所述第三数值,确定向所述DMA设备发送DMA请求的周期数为第二数值。
第三方面,提供了一种DMA设备,包括:脉宽检测电路和DMA处理器;
所述脉宽检测电路,用于接收通信外设发送的DMA请求,所述DMA请求是所述通信外设在接收到目标数据后发送的,所述DMA请求中包括DMA高电平信号;确定所述DMA高电平信号的周期数;基于所述DMA高电平信号的周期数和预设的脉宽检测阈值,确定所述目标数据的目标传输方式;
所述DMA处理器,用于基于所述目标传输方式从所述通信外设中读取所述目标数据。
第四方面,提供了一种数据传输装置,配置于通信外设中,包括:
接收模块,用于接收目标数据;
发送模块,用于基于所述目标数据的字节数,向DMA设备发送DMA请求,所述DMA请求中包括DMA高电平信号,以使所述DMA设备执行如下:确定所述DMA高电平信号的周期数;基于所述DMA高电平信号的周期数和预设的脉宽检测阈值,确定所述目标数据的目标传输方式;基于所述目标传输方式从所述通信外设中读取所述目标数据。
第五方面,提供了一种通信外设,包括存储器和处理器,存储器中存储有计算机程序,处理器执行计算机程序时实现如以上任意一个实施例中数据传输方法的步骤。
第六方面,提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如以上任意一个实施例中数据传输方法的步骤。
本申请实施例中提供的数据传输方法,通信外设在接收到目标数据后向DMA设备发起DMA请求,DMA请求中包括DMA高电平信号,DMA设备通过确定出的DMA高电平信号的周期数以及预设的脉宽检测阈值,确定目标数据的目标传输方式,通过目标传输方式从通信外设中读取目标数据,如此,通信外设在接收到目标数据之后,无需判定是否向DMA设备发起DMA请求,可在接收到目标数据后直接发起DMA请求,便于DMA设备读取通信外设中的目标数据,从而,在通信外设接收到目标数据之后,DMA设备则会接收到基于目标数据的DMA请求,使得目标数据能够基于DMA设备进行数据传输,避免调用CPU资源影响传输效率的问题,有效提升数据传输效率。
上述说明仅是本申请实施例技术方案的概述,为了能够更清楚了解本申请实施例的技术手段,而可依照说明书的内容予以实施,并且为了让本申请实施例的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本实施例中提供的一种DMA设备和通信外设的交互示意图;
图2为本实施例中提供的一种DMA设备的时序示意图;
图3为本实施例中提供的一种DMA设备与通信外设的连接示意图;
图4为本实施例中提供的一种DMA设备的结构示意图;
图5为本实施例中提供的一种脉宽检测电路的接收示意图;
图6为本实施例中提供的一种数据传输装置的结构示意图;
图7为本实施例中提供的一种通信外设的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语“实施例”并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:存在A,同时存在A和B,存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
此外,本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序,可以明示或者隐含地包括一个或者更多个该特征。
在本申请的描述中,除非另有说明,“多个”的含义是指两个以上(包括两个),同理,“多组”指的是两组以上(包括两组)。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
图1为实施例提供的一种DMA设备和通信外设的交互示意图,可以如下包括。
S110、通信外设接收目标数据。
其中,通信外设可作为一个数据接收方,具有对数据进行接收、转送和存储的功能,与通信外设对应的数据发送方可为另一个通信外设,其同样具有对数据进行接收、转送和存储的功能。
通信外设可包括但不限于是:通用异步收发传输器(Universal AsynchronousReceiver/Transmitter,UART)、串行外设接口(Serial Peripheral Interface,SPI)、I2C总线、安全数字输入输出(Secure Digital Input and Output,SDIO)等。
通信外设的结构内部会设置一个或多个接收数据的寄存器如rx_fifo,rx_fifo可接收并存储另一个通信外设发送的目标数据,以便于后续DMA设备从rx_fifo中读取目标数据。
rx_fifo可持续或间断性的接收到另一个/多个其它通信外设发送的目标数据,如,rx_fifo在连续的多个时钟周期内持续接收到6个字节的目标数据,或者,rx_fifo在第一个时钟周期内接收到1个字节的目标数据,在第二个时钟周期至第三个时钟周期内通信暂停,未接收到目标数据,在第四个时钟周期内又接收到1个字节的目标数据。
S120、通信外设基于目标数据的字节数,向DMA设备发送DMA请求,DMA请求中包括DMA高电平信号。
其中,目标数据的字节数能够有效反映出目标数据的数据量。通信外设在接收到目标据之数后,可基于目标数据的字节数,产生一次DMA请求。
DMA请求中可包括DMA高电平信号,DMA高电平信号可为多个时钟周期对应的脉冲信号,也就是,DMA高电平信号可由多个时钟周期组成的脉冲信号的形式显示。
S130、DMA设备确定DMA高电平信号的周期数。
其中,DMA设备中设置脉宽检测电路,脉宽检测电路可根据检测到的DMA高电平信号的上升沿和下降沿,判定DMA高电平信号的周期数。
S140、DMA设备基于DMA高电平信号的周期数和预设的脉宽检测阈值,确定目标数据的目标传输方式。
其中,目标传输方式可用于描述DMA设备读取通信外设中目标数据的读取方式。目标传输方式可包括多种,能够在DMA高电平信号的周期数和预设的脉宽检测阈值的不同情况下,有效读取通信外设中的目标数据。
在一些实施例中,DMA设备基于DMA高电平信号的周期数和预设的脉宽检测阈值,确定目标数据的目标传输方式,可包括:
在DMA高电平信号的周期数大于或等于预设的脉宽检测阈值时,确定目标数据的目标传输方式为第一传输方式,第一传输方式用于描述连续DMA传输;在DMA高电平信号的周期数小于预设的脉宽检测阈值时,确定目标数据的目标传输方式为第二传输方式,第二传输方式用于描述单次DMA传输。
其中,预设的脉宽检测阈值pulse_width可根据实际需求进行自适应设置,本实施例中,可选的,pulse_width=2。
第一传输方式可为实现连续DMA传输的burst,burst为在同一行中相邻的存储单元连续进行数据传输的方式,连续传输所涉及到存储单元(列)的数量就是突发长度,burst可支持一次性传输多个数据。
第二传输方式可为实现单次DMA传输的single,single为一次传输单个数据的传输方式,可支持一次仅传输单个数据。
从而,DMA设备能够根据DMA高电平信号的周期数和预设的脉宽检测阈值,确定出目标数据的目标传输方式,来保证通信外设中目标数据均可通过DMA设备传输完成。
S150、DMA设备基于目标传输方式从通信外设中读取目标数据。
结合上述举例,在确定出目标传输方式为burst时,可采用burst从通信外设的rx_fifo中依次读取多个目标数据,在确定出目标传输方式为single时,可采用single从通信外设的rx_fifo中读取单个目标数据。
在本实施例中,通信外设在接收到目标数据后向DMA设备发起DMA请求,DMA请求中包括DMA高电平信号,DMA设备通过确定出的DMA高电平信号的周期数以及预设的脉宽检测阈值,确定目标数据的目标传输方式,通过目标传输方式从通信外设中读取目标数据,如此,通信外设在接收到目标数据之后,无需判定是否向DMA设备发起DMA请求,可在接收到目标数据后直接发起DMA请求,便于DMA设备读取通信外设中的目标数据,从而,在通信外设接收到目标数据之后,DMA设备则会接收到基于目标数据的DMA请求,使得目标数据能够基于DMA设备进行数据传输,避免调用CPU资源影响传输效率的问题,有效提升数据传输效率。
在一些实施例中,通信外设基于目标数据的字节数,向DMA设备发送DMA请求,可包括:
获取预设的寄存器阈值;基于目标数据的字节数和预设的寄存器阈值,确定向DMA设备发送DMA请求的周期数;向DMA设备发送周期数对应的高电平信号。
其中,预设的寄存器阈值dma threshold可根据通信外设的rx_fifo的深度进行设置,如rx_fifo的深度为8时,dma threshold可设置为6。
通信外设向DMA设备发送周期数对应的高电平信号,能够使得DMA设备检测到脉冲信号的周期数,便于进行数据传输。
其中,基于目标数据的字节数和预设的寄存器阈值,确定向DMA设备发送DMA请求的周期数,可包括:
在目标数据的字节数大于或等于预设的寄存器阈值时,确定向DMA设备发送DMA请求的周期数为第一数值;在目标数据的字节数小于预设的寄存器阈值时,确定向DMA设备发送DMA请求的周期数为第二数值;其中,第一数值可大于第二数值。
如图2示例性所示,预设的寄存器阈值dma threshold=6,在目标数据的字节数为6时,通信外设在下一个系统时钟产生2个周期的高电平信号dma_req,则可得到通信外设向DMA设备发送DMA请求的周期数为第一数值,其中,第一数值为2。
在目标数据的字节数为2(即<6)时,通信外设在下一个系统时钟产生1个周期的高电平信号dma_req信号,则可得到通信外设向DMA设备发送DMA请求的周期数为第二数值,其中,第二数值为1。从而,通信外设能够根据目标数据的字节数与预设的寄存器阈值之间的大小关系,产生相应的dma_req信号,进而确定出向DMA设备发送DMA请求的周期数。
在一些实施例中,通信外设确定向DMA设备发送DMA请求的周期数为第二数值,包括:
更新预设的寄存器阈值为第三数值;基于第三数值,确定向DMA设备发送DMA请求的周期数为第二数值。
其中,通信外设内部设置有寄存器,通信外设在检测到rx_fifo中连续高电平的数量超过寄存器的值,则置起timeout,产生timeout事件,同时判断rx_fifo内的目标数据是否有效,在rx_fifo内的目标数据有效时,通过硬件自动将寄存器阈值dma threshold切为1。使得目标传输状态可由burst切换为single,便于实现不同目标传输状态的切换。
rx_fifo中可存在两种数据存储状态,如非空状态和空状态。其中,非空状态表示rx_fifo中存在有效数据,即上述目标数据有效,空状态表示rx_fifo中不存在有效数据,即上述目标数据无效。可基于rx_fifo中的读指针数和写指针数判定数据是否有效,如,读指针数与写指针数相同,则rx_fifo不存在有效数据,读指针数与写指针数不同,则rx_fifo存在有效数据。
在一些实施例中,DMA设备确定DMA高电平信号的周期数,可包括:
在检测到DMA高电平信号对应的上升沿后,统计上升沿至DMA高电平信号对应的下降沿之间的计数值;确定计数值为DMA高电平信号的周期数。
其中,DMA设备中的脉宽检测电路会持续检测是否存在DMA高电平信号的上升沿和下降沿,在检测到上升沿时,开始进行周期计数,在检测到下降沿时,停止计数,并统计上升沿至DMA高电平信号对应的下降沿之间的计数值,以确定为计数值为DMA高电平信号的周期数,便于实现DMA高电平信号的周期数的准确检测。
本实施例还可以包括:
DMA设备在目标数据读取完成后,向通信外设发送传输完成信号。
其中,传输完成信号dma_ack可为周期性的脉冲信号,DMA设备在目标数据读取完成后,向通信外设发送传输完成信号,能够使得通信外设获知数据传输进度。
本实施例提供了一个数据传输的具体实例,dma_threshold的初始预设值为6。参见图2所示。
其中,通信外设rx_fifo接收到6个字节数据后,在下一个系统时钟产生2个周期高电平的dma_req信号。DMA设备接收到dma_req信号时,通过脉宽检测电路判断dma_reqq信号的高电平周期为2,结合pulse_width=2,确定出DMA设备进入到burst传输状态,采用burst从通信外设rx_fifo中读取6个字节数据,读取完成后反馈dma_ack到通信外设。
在上述6个字节数据读取完成后,通信外设rx_fifo又接收到2个字节数据后通讯暂停,通信外设检测到连续高电平的数量超过寄存器的值,则置起timeout,此时,rx_fifo内存储2个有效数据,则硬件将dma_threshold由6切换为1,使得通信外设在下一个系统时钟能够产生1个周期高电平的dma_req信号。
DMA设备接收到dma_req信号时,可通过脉宽检测电路判断出dma_req信号的高电平周期为1,此时,DMA设备进入到single传输状态,采用single从通信外设rx_fifo中读取1个字节数据,读取完成后反馈dma_ack到通信外设。
DMA设备反馈dma_ack之后,通信外设rx_fifo内还剩余1个字节数据,此时,通信外设继续产生1个周期高电平的dma_req信号,DMA设备再次检测出dma_req信号的高电平周期为1,DMA设备再次进入到single传输状态,采用single从通信外设rx_fifo中读取剩余的1个字节数据,读取完成后反馈dma_ack到通信外设。
此时,通信外设rx_fifo的数据字节数为0,无有效数据。timeout在新的传输开始时可通过硬件清除,或通过软件提前清除,此时dma_threshold可由1切换为6,便于下次进行数据传输。
参见图3所示,通信外设310中包括:第一控制模块311、接口312、寄存器313和总线314。接口312在接收到另一个通信外设传输的目标数据后,将目标数据存储至第一控制模块311的寄存器rx_fifo中。处理器可通过总线314在寄存器313中写入dma threshold或timeout等寄存器,由第一控制模块311产生timeout事件。第一控制模块311中的dmathreshold的预设值和timeout check logic之间的逻辑,确定dma threshold的当前值,以此通过第一控制模块311中的dma request generator产生dma_req信号发送至DMA设备320中的脉宽检测电路323。
DMA设备320包括:第二控制模块321、总线322和脉宽检测电路323。脉宽检测电路323在接收到dma_req信号后,判断其周期数,确定出目标数据的目标传输方式,由第二控制模块321基于目标传输方式从通信外设310中读取目标数据,通过总线322从第二控制模块321中读取目标数据以写入至其他寄存器或其他存储器中。
其中,在通信外设310内增加寄存器313,若通信外设310检测到无效数据的个数超过寄存器313的值,则会产生timeout事件,当通信外设310检测到timeout事件后,判断通信外设310rx_fifo内是否存在有效数据,若不存在,则dma threshold来自寄存器,如dmathreshold=6,若存在,则硬件将外设dma threshold切为1。
其中,当rx_fifo内的有效数据传输完成后,或者timeout事件被清除时,dmathreshold又会变为寄存器的值,如将dmathreshold由1切换为6。
图4为本实施例提供的一种DMA设备的结构示意图,其中,DMA设备包括:脉宽检测电路410和DMA处理器420。
脉宽检测电路410,用于接收通信外设发送的DMA请求,DMA请求是通信外设在接收到目标数据后发送的,DMA请求中包括DMA高电平信号;确定DMA高电平信号的周期数;基于DMA高电平信号的周期数和预设的脉宽检测阈值,确定目标数据的目标传输方式。
DMA处理器420,用于基于目标传输方式从通信外设中读取目标数据。
在一些实施例中,可选的,如图5示例性所示,脉宽检测电路410包括:检测器411和计数器412。
检测器411,用于检测DMA高电平信号对应的上升沿和下降沿。
计数器412,用于统计上升沿至下降沿之间的计数值;确定计数值为DMA高电平信号的周期数。
在一些实施例中,可选的,脉宽检测电路410还包括:比较器413。
比较器413,用于在DMA高电平信号的周期数大于或等于预设的脉宽检测阈值时,确定目标数据的目标传输方式为第一传输方式,第一传输方式用于描述连续DMA传输;在DMA高电平信号的周期数小于预设的脉宽检测阈值时,确定目标数据的目标传输方式为第二传输方式,第二传输方式用于描述单次DMA传输。
其中,在检测器411(如dma_req edge detect模块)检测到dma_req信号上升沿时,high level counter enable=1,计数器(如high level counter模块)从0开始计数,在检测器411检测到dma_req下降沿时,可执行如下操作。
high level counter enable=0,high level counter模块停止计数。在比较器中比较high level counter计数值与pulse width寄存器值的大小,产生DMA设备传输类型信号trans_type,并送到DMA处理器420;若high level counter大于或等于pulse width,则trans_type=1,即此次传输为burst传输;若high level counter小于pulse width,则trans_type=0,即此次传输为single传输。同时,将high level couter的计数值清零,便于下次计数。
在一些实施例中,可选的,DMA处理器420,还用于在目标数据读取完成后,向通信外设发送传输完成信号。
本发明实施例所提供的DMA设备可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果,这里不再赘述。
图6为本实施例提供的一种数据传输装置的结构示意图,其中,数据传输装置配置于通信外设中,可包括:接收模块610和发送模块620。
接收模块610,用于接收目标数据。
发送模块620,用于基于所述目标数据的字节数,向DMA设备发送DMA请求,所述DMA请求中包括DMA高电平信号,以使所述DMA设备执行如下:确定所述DMA高电平信号的周期数;基于所述DMA高电平信号的周期数和预设的脉宽检测阈值,确定所述目标数据的目标传输方式;基于所述目标传输方式从所述通信外设中读取所述目标数据。
在一些实施例中,可选的,发送模块620,具体用于:
获取预设的寄存器阈值;基于所述目标数据的字节数和预设的所述寄存器阈值,确定向所述DMA设备发送DMA请求的周期数;向所述DMA设备发送所述周期数对应的高电平信号。
在一些实施例中,可选的,发送模块620,具体用于:
在所述目标数据的字节数大于或等于预设的所述寄存器阈值时,确定向所述DMA设备发送DMA请求的周期数为第一数值;在所述目标数据的字节数小于预设的所述寄存器阈值时,确定向所述DMA设备发送DMA请求的周期数为第二数值;其中,所述第一数值大于所述第二数值。
在一些实施例中,可选的,发送模块620,具体用于:
更新预设的所述寄存器阈值为第三数值;基于所述第三数值,确定向所述DMA设备发送DMA请求的周期数为第二数值。
本发明实施例所提供的数据传输装置可执行本发明任意实施例所提供的方法,具备执行方法相应的功能模块和有益效果,这里不再赘述。
本申请实施例还提供了一种通信外设。具体请参阅图7,图7为本实施例通信外设基本结构框图。
通信外设包括通过系统总线相互通信连接存储器710和处理器720。需要指出的是,图中仅示出了具有组件710-720的通信外设,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的通信外设是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(Application Specific IntegratedCircuit,ASIC)、可编程门阵列(Field-Programmable Gate Array,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
存储器710至少包括一种类型的可读存储介质,可读存储介质包括非易失性存储器(non-volatile memory)或易失性存储器,例如,闪存(flashmemory)、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(random access memory,RAM)、只读存储器(read-onlymemory,ROM)、可擦写可编程只读存储器(erasable programmable read-onlymemory,EPROM)、电可擦写可编程只读存储器(electrically erasable programmableread-only memory,EEPROM)、可编程只读存储器(programmable read-only memory,PROM)、磁性存储器、磁盘、光盘等,RAM可以包括静态RAM或动态RAM。在一些实施例中,存储器710可以是通信外设的内部存储单元,例如,该通信外设的硬盘或内存。在另一些实施例中,存储器710也可以是通信外设的外部存储设备,例如该通信外设上配备的插接式硬盘、智能存储卡(Smart Media Card,SMC)、安全数字(Secure Digital,SD)卡或闪存卡(FlashCard)等。当然,存储器710还可以既包括通信外设的内部存储单元也包括其外部存储设备。本实施例中,存储器710通常用于存储安装于通信外设的操作系统和各类应用软件,例如上述方法的程序代码等。此外,存储器710还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器720通常用于执行通信外设的总体操作。本实施例中,存储器710用于存储程序代码或指令,程序代码包括计算机操作指令,处理器720用于执行存储器710存储的程序代码或指令或者处理数据,例如运行上述方法的程序代码。
本文中,总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外设部件互连标准(Peripheral Component Interconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该总线系统可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请的另一实施例还提供一种计算机可读介质,计算机可读介质可以是计算机可读信号介质或者计算机可读介质。计算机中的处理器读取存储在计算机可读介质中的计算机可读程序代码,使得处理器能够执行在上述方法中每个步骤、或各步骤的组合中规定的功能动作;生成实施在框图的每一块、或各块的组合中规定的功能动作的装置。
计算机可读介质包含但不限于电子、磁性、光学、电磁、红外的存储器或半导体系统、设备或者装置,或者前述的任意适当组合,存储器用于存储程序代码或指令,程序代码包括计算机操作指令,处理器用于执行存储器存储的上述方法的程序代码或指令。
存储器和处理器的定义,可以参考前述通信外设实施例的描述,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
在本申请各个实施例中的各功能单元或模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台通信外设(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。本申请描述的“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了装置若干的单元权利要求中,这些装置中的若干个单元可以是通过同一个硬件项来具体体现。第一、第二、以及第三等的使用不表示任何顺序,可将这些单词解释为名称。上述实施例中的步骤,除有特殊说明外,不应理解为对执行顺序的限定。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (15)
1.一种数据传输方法,其特征在于,应用于直接存储器访问DMA设备,包括:
接收通信外设发送的DMA请求,所述DMA请求是所述通信外设在接收到目标数据后发送的,所述DMA请求中包括DMA高电平信号;
确定所述DMA高电平信号的周期数;
基于所述DMA高电平信号的周期数和预设的脉宽检测阈值,确定所述目标数据的目标传输方式;
基于所述目标传输方式从所述通信外设中读取所述目标数据。
2.根据权利要求1所述的方法,其特征在于,所述确定所述DMA高电平信号的周期数,包括:
在检测到所述DMA高电平信号对应的上升沿后,统计所述上升沿至所述DMA高电平信号对应的下降沿之间的计数值;
确定所述计数值为所述DMA高电平信号的周期数。
3.根据权利要求1所述的方法,其特征在于,所述基于所述DMA高电平信号的周期数和预设的脉宽检测阈值,确定所述目标数据的目标传输方式,包括:
在所述DMA高电平信号的周期数大于或等于预设的脉宽检测阈值时,确定所述目标数据的目标传输方式为第一传输方式,所述第一传输方式用于描述连续DMA传输;
在所述DMA高电平信号的周期数小于预设的所述脉宽检测阈值时,确定所述目标数据的目标传输方式为第二传输方式,所述第二传输方式用于描述单次DMA传输。
4.根据权利要求1所述的方法,其特征在于,还包括:
在所述目标数据读取完成后,向所述通信外设发送传输完成信号。
5.一种数据传输方法,其特征在于,应用于通信外设,包括:
接收目标数据;
基于所述目标数据的字节数,向DMA设备发送DMA请求,所述DMA请求中包括DMA高电平信号,以使所述DMA设备执行如下:
确定所述DMA高电平信号的周期数;基于所述DMA高电平信号的周期数和预设的脉宽检测阈值,确定所述目标数据的目标传输方式;基于所述目标传输方式从所述通信外设中读取所述目标数据。
6.根据权利要求5所述的方法,其特征在于,所述基于所述目标数据的字节数,向DMA设备发送DMA请求,包括:
获取预设的寄存器阈值;
基于所述目标数据的字节数和预设的所述寄存器阈值,确定向所述DMA设备发送DMA请求的周期数;
向所述DMA设备发送所述周期数对应的高电平信号。
7.根据权利要求6所述的方法,其特征在于,所述基于所述目标数据的字节数和预设的所述寄存器阈值,确定向所述DMA设备发送DMA请求的周期数,包括:
在所述目标数据的字节数大于或等于预设的所述寄存器阈值时,确定向所述DMA设备发送DMA请求的周期数为第一数值;
在所述目标数据的字节数小于预设的所述寄存器阈值时,确定向所述DMA设备发送DMA请求的周期数为第二数值;
其中,所述第一数值大于所述第二数值。
8.根据权利要求7所述的方法,其特征在于,所述确定向所述DMA设备发送DMA请求的周期数为第二数值,包括:
更新预设的所述寄存器阈值为第三数值;
基于所述第三数值,确定向所述DMA设备发送DMA请求的周期数为所述第二数值。
9.一种DMA设备,其特征在于,包括:脉宽检测电路和DMA处理器;
所述脉宽检测电路,用于接收通信外设发送的DMA请求,所述DMA请求是所述通信外设在接收到目标数据后发送的,所述DMA请求中包括DMA高电平信号;确定所述DMA高电平信号的周期数;基于所述DMA高电平信号的周期数和预设的脉宽检测阈值,确定所述目标数据的目标传输方式;
所述DMA处理器,用于基于所述目标传输方式从所述通信外设中读取所述目标数据。
10.根据权利要求9所述的设备,其特征在于,所述脉宽检测电路包括:检测器和计数器;
所述检测器,用于检测所述DMA高电平信号对应的上升沿和下降沿;
所述计数器,用于统计所述上升沿至所述下降沿之间的计数值;确定所述计数值为所述DMA高电平信号的周期数。
11.根据权利要求9所述的设备,其特征在于,所述脉宽检测电路还包括:比较器;
所述比较器,用于在所述DMA高电平信号的周期数大于或等于预设的脉宽检测阈值时,确定所述目标数据的目标传输方式为第一传输方式,所述第一传输方式用于描述连续DMA传输;在所述DMA高电平信号的周期数小于预设的所述脉宽检测阈值时,确定所述目标数据的目标传输方式为第二传输方式,所述第二传输方式用于描述单次DMA传输。
12.根据权利要求9所述的设备,其特征在于,所述DMA处理器,还用于在所述目标数据读取完成后,向所述通信外设发送传输完成信号。
13.一种数据传输装置,其特征在于,配置于通信外设中,包括:
接收模块,用于接收目标数据;
发送模块,用于基于所述目标数据的字节数,向DMA设备发送DMA请求,所述DMA请求中包括DMA高电平信号,以使所述DMA设备执行如下:确定所述DMA高电平信号的周期数;基于所述DMA高电平信号的周期数和预设的脉宽检测阈值,确定所述目标数据的目标传输方式;基于所述目标传输方式从所述通信外设中读取所述目标数据。
14.一种通信外设,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序时实现如权利要求5至8中任一项所述的数据传输方法的步骤。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求5至8中任一项所述的数据传输方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211594254.1A CN116266164A (zh) | 2022-12-13 | 2022-12-13 | 数据传输方法、dma设备、装置、通信外设和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211594254.1A CN116266164A (zh) | 2022-12-13 | 2022-12-13 | 数据传输方法、dma设备、装置、通信外设和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116266164A true CN116266164A (zh) | 2023-06-20 |
Family
ID=86744324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211594254.1A Pending CN116266164A (zh) | 2022-12-13 | 2022-12-13 | 数据传输方法、dma设备、装置、通信外设和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116266164A (zh) |
-
2022
- 2022-12-13 CN CN202211594254.1A patent/CN116266164A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7752374B2 (en) | Method and apparatus for host messaging unit for peripheral component interconnect busmaster devices | |
US4630041A (en) | Enhanced reliability interrupt control apparatus | |
CN101777034B (zh) | 具有硬件定时发送功能的rs422异步串行卡及其通信方法 | |
CN112015445A (zh) | 固件更新装置以及固件更新方法 | |
CN112765082B (zh) | 多主机仲裁方法、装置和可读存储介质 | |
CN114826542B (zh) | 基于异步串行通信的数据传输方法、装置、设备及介质 | |
CN108369565B (zh) | 通信装置、通信方法、存储介质、以及通信系统 | |
US5590372A (en) | VME bus transferring system broadcasting modifiers to multiple devices and the multiple devices simultaneously receiving data synchronously to the modifiers without acknowledging the modifiers | |
CN116266164A (zh) | 数据传输方法、dma设备、装置、通信外设和介质 | |
CN116340217A (zh) | 数据处理方法及相关装置 | |
CN115840724A (zh) | 一种位宽转换电路及数据传输系统 | |
CN115834739A (zh) | 一种台区智能融合终端spi通信中不定长数据帧的接收方法 | |
US5577260A (en) | Data processing system having a serial interface comprising an end-of-transmission flag | |
US6058449A (en) | Fault tolerant serial arbitration system | |
CN117112480B (zh) | 一种两线通信方法、装置及芯片 | |
US6931075B2 (en) | Event detection with a digital processor | |
CN114884768B (zh) | 一种总线空闲状态的检测装置、系统及检测方法 | |
CN112445743A (zh) | 一种去除毛刺的方法、装置及状态机 | |
CN116466996B (zh) | 基于多线程的通信方法及上位机 | |
US5091870A (en) | Apparatus for measuring the speed of transmission of digital characters | |
CN116361095B (zh) | 功耗验证方法、系统、设备及存储介质 | |
JP2764452B2 (ja) | バス転送応答方法 | |
EP0629954A1 (en) | Adapter for transferring blocks of data having a variable length on a system bus | |
US20030182486A1 (en) | Demand DMA | |
JPS63228856A (ja) | 通信制御装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |