CN115617721A - 数据传输方法、dma装置及主控芯片 - Google Patents
数据传输方法、dma装置及主控芯片 Download PDFInfo
- Publication number
- CN115617721A CN115617721A CN202211380657.6A CN202211380657A CN115617721A CN 115617721 A CN115617721 A CN 115617721A CN 202211380657 A CN202211380657 A CN 202211380657A CN 115617721 A CN115617721 A CN 115617721A
- Authority
- CN
- China
- Prior art keywords
- address
- transmission
- data
- data packet
- ahb
- 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.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 311
- 238000000034 method Methods 0.000 title claims abstract description 48
- 229910002056 binary alloy Inorganic materials 0.000 claims description 22
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 7
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
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
- G06F13/282—Cycle stealing DMA
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
数据传输方法、DMA装置及主控芯片。本申请涉及一种数据传输方法、装置、设备及存储介质。该数据传输方法包括:获取待传输的数据包,其中所述数据包的基础信息包括传输地址、字节长度;判断当前所述传输地址是否满足AHB地址对齐:若满足,按照预先配置的第一传输模式对所述数据包进行传输;若不满足,切换成第二传输模式对所述数据包进行传输,其中所述第二传输模式为无需考虑所述AHB地址对齐的传输模式。本申请的技术方案能够满足AHB协议中关于地址对齐传输的标准,克服AHB的局限性。
Description
技术领域
本申请涉及DMA技术领域,尤其涉及一种数据传输方法、DMA装置及主控芯片。
背景技术
DMA(Direct Memory Access,直接存储器存储)可以接收中央处理器(CentralProcessing Unit,CPU)的指令,根据该指令将内存中待传输的数据从源地址传输至目的地址,从而在数据传输过程中解放CPU,使得CPU可以执行其他任务。
AHB(Advanced High Performance Bus,高级高性能总线)是一种总线接口,主要用于高性能模块(如CPU、DMA等)之间的连接,作为SOC(System On Chip,系统级芯片)的总线。
当DMA模块通过AHB传输数据时,DMA模块需要满足AHB协议中的地址对齐传输的标准,才能实现数据的传输,其中地址对齐体现在源端提前配置的地址格式与数据位宽是否相匹配,若匹配则地址对齐,若不匹配则地址不对齐,倘若DMA模块在传输数据时无法满足AHB协议中的地址对齐,AHB会反馈异常信号至DMA模块中,使得DMA模块强制结束数据传输的工作,严重影响DMA模块对数据传输工作。
发明内容
为了解决或者部分解决相关技术中的问题,本申请提供了一种数据传输方法、DMA装置及主控芯片,能够满足AHB协议中关于地址对齐传输的标准,克服AHB的局限性。
本申请第一方面提供一种数据传输方法,包括:
获取待传输的数据包,其中所述数据包的基础信息包括传输地址、字节长度;
判断当前所述传输地址是否满足AHB地址对齐:若满足,按照预先配置的第一传输模式对所述数据包进行传输;若不满足,切换成第二传输模式对所述数据包进行传输,其中所述第二传输模式为无需考虑所述AHB地址对齐的传输模式。
作为本申请一种可能的实施方式,在该实施方式中,在满足所述按
照预先配置的第一传输模式对所述数据包进行传输的条件下,还包括:
判断基于所述第一传输模式下是否满足以整字节的方式对所述数据包的当前剩余的所述字节长度传输完毕,若满足,则按照所述第一传输模式对所述数据包进行传输;若不满足,则切换成所述第二传输模式对所述数据包进行传输。
作为本申请一种可能的实施方式,在该实施方式中,所述第一传输模式按如下方式:
每个时钟周期下每传输2字节长度的数据,对当前所述传输地址后移一位;或
每个时钟周期下每传输4字节长度的数据,对当前所述传输地址后移一位;或
每个时钟周期下每传输8字节长度的数据,对当前所述传输地址后移一位。
作为本申请一种可能的实施方式,在该实施方式中,所述第二传输模式按如下方式:
每个时钟周期下每传输1字节长度的数据,对当前所述传输地址后移一位。
作为本申请一种可能的实施方式,在该实施方式中,所述判断当前所述传输地址是否满足AHB地址对齐,包括:
将当前所述传输地址转换成二进制;
若所述第一传输模式配置成每个时钟周期下每传输2字节长度的数据,对当前所述传输地址后移一位,则对当前所述传输地址的最低1位进行判断,若当前所述传输地址的最低1位等于0,则当前所述传输地址满足所述AHB地址对齐;否则,则当前所述传输地址不满足所述AHB地址对齐;
若所述第一传输模式配置成每个时钟周期下每传输4字节长度的数据,对当前所述传输地址后移一位,则对当前所述传输地址的最低2位进行判断,若当前所述传输地址的最低2位均等于0,则当前所述传输地址满足所述AHB地址对齐;否则,则当前所述传输地址不满足所述AHB地址对齐;
若所述第一传输模式配置成每个时钟周期下每传输8字节长度的数据,对当前所述传输地址后移一位,则对当前所述传输地址的最低3位进行判断,若当前所述传输地址的最低3位均等于0,则当前所述传输地址满足所述AHB地址对齐;否则,则当前所述传输地址不满足所述AHB地址对齐。
作为本申请一种可能的实施方式,在该实施方式中,所述传输地址包括源地址或目的地址。
作为本申请一种可能的实施方式,在该实施方式中,所述获取待传输的数据包,其中所述数据包的基础信息包括传输地址、字节长度之前,还包括:
获取模式配置信息,对数据传输进行模式配置,得到数据传输的所述第一传输模式和所述第二传输模式。
本申请第二方面提供一种DMA装置,包括:
数据包获取模块,用于获取待传输的数据包,其中所述数据包的基础信息包括传输地址、字节长度;
判断模块,用于判断当前所述传输地址是否满足AHB地址对齐:若满足,按照预先配置的第一传输模式对所述数据包进行传输;若不满足,切换成第二传输模式对所述数据包进行传输,其中所述第二传输模式为无需考虑所述AHB地址对齐的传输模式。
作为本申请一种可能的实施方式,在该实施方式中,所述传输地址包括源地址或目的地址。
本申请第三方面提供一种主控芯片,包括如上所述的DMA装置。
本申请的技术方案,包括:获取待传输的数据包,其中所述数据包的基础信息包括传输地址、字节长度;判断当前所述传输地址是否满足AHB地址对齐:若满足,按照预先配置的第一传输模式对所述数据包进行传输;若不满足,切换成第二传输模式对所述数据包进行传输,其中所述第二传输模式为无需考虑所述AHB地址对齐的传输模式。
本申请通过判断待传输数据包的传输地址是否与AHB地址对齐,来匹配数据传输预先配置的第一传输模式和第二传输模式,以实现对数据包的传输,能够满足AHB协议中关于地址对齐传输的标准,且在匹配为第二传输模式时,无需考虑AHB地址对齐的传输模式,能够克服AHB的局限性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
通过结合附图对本申请示例性实施方式进行更详细地描述,本申请的上述以及其它目的、特征和优势将变得更加明显,其中,在本申请示例性实施方式中,相同的参考标号通常代表相同部件。
图1是本申请一实施例示出的数据传输方法的流程示意图;
图2是本申请另一实施例示出的数据传输方法的流程示意图;
图3是本申请另一实施例中示出的数据传输的流程示意图;
图4是本申请另一实施例示出的数据传输方法的流程框图;
图5是本申请另一实施例示出的DMA装置的结构示意图;
图6是本申请另一实施例示出的DMA装置的结构示意图;
图7是本申请一实施例示出的主控芯片的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施方式。虽然附图中显示了本申请的实施方式,然而应该理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
相关技术中,因DMA模块通过AHB传输数据时会受到需要满足AHB协议中地址对齐的传输标准的制约,倘若DMA模块在传输数据时无法满足AHB协议中的地址对齐,AHB会反馈异常信号至DMA模块中,使得DMA模块强制结束数据传输的工作,严重影响DMA模块对数据传输工作。
因此,为了解决上述技术问题,本申请公开了一种数据传输方法,能够满足AHB协议中关于地址对齐传输的标准,克服AHB的局限性。
以下结合附图详细说明本申请实施例的技术方案。
图1示出了本申请一实施例中的数据传输方法的流程示意图。
请参阅图1,一种数据传输方法,包括如下步骤:
步骤S110、获取待传输的数据包,其中数据包的基础信息包括传输地址、字节长度。
其中,对于数据包而言,关于传输地址,如00101110(二进制表达),当然,传输地址不仅可通过二进制进行表达,还可采用其他进制来表达,如八进制、十进制、十六进制等,不同进制之间能够相互转换。关于字节长度,用于表示数据包的大小,其单位为字节,如512字节的数据包。
步骤S120、判断当前传输地址是否满足AHB地址对齐:若满足,按照预先配置的第一传输模式对数据包进行传输;若不满足,切换成第二传输模式对数据包进行传输,其中第二传输模式为无需考虑AHB地址对齐的传输模式。
传输模式为对数据包的传输方式,其规定了对于数据包每个周期下能够传输多少字节长度的数据包、数据包的传输地址变化和是否需要满足AHB地址对齐的条件。
其中,在本实施例中,第一传输模式可按如下方式:
1.每个时钟周期下每传输2字节长度的数据,对当前传输地址后移一位,例如数据包的源地址(二进制)为00111110,数据包的字节长度为512字节,在经1个时钟周期下传输2字节长度的数据后,源地址进行加1更新为00111111,同时数据包的字节长度剩余510字节;
对于1)中的第一传输模式,判断AHB地址对齐的条件为:如将当前传输地址转换成二进制,当数据包的源地址为00111110,在经1个时钟周期传输2字节长度的数据后,同时源地址加1,更新为00111111,判断当前更新地址的最低1位是否为0,即源地址00111111中最后一位“1”是否为0,可以看出源地址的最低1位不满足条件,则此时DMA模块判定此条件下不满足AHB地址对齐传输,若否之,则满足AHB地址对齐传输。
2.每个时钟周期下每传输4字节长度的数据,对当前传输地址后移一位,例如数据包的源地址(二进制)为00111110,数据包的字节长度为512字节,在经1个时钟周期下传输2字节长度的数据后,源地址进行加1更新为00111111,同时数据包的字节长度剩余508字节;
对于2)中的第一传输模式,判断AHB地址对齐的条件为:如将当前传输地址转换成二进制,当数据包的源地址为00111110,在经1个时钟周期传输4字节长度的数据后,同时源地址加1,更新为00111111,判断当前更新地址的最低2位是否均为0,即源地址00111111中最后2位“11”是否均为0,可以看出源地址的最低2位不满足条件,则此时DMA模块判定此条件下不满足AHB地址对齐传输,若否之,则满足AHB地址对齐传输。
3.每个时钟周期下每传输8字节长度的数据,对当前传输地址后移一位,例如数据包的源地址(二进制)为00111110,数据包的字节长度为512字节,在经1个时钟周期下传输8字节长度的数据后,源地址进行加1更新为00111111,同时数据包的字节长度剩余504字节;
对于3)中的第一传输模式,判断AHB地址对齐的条件为:如将当前传输地址转换成二进制,当数据包的源地址为00111110,在经1个时钟周期传输8字节长度的数据后,同时源地址加1,更新为00111111,判断当前更新地址的最低3位是否均为0,即源地址00111111中最后3位“111”是否均为0,可以看出源地址的最低3位不满足条件,则此时DMA模块判定此条件下不满足AHB地址对齐传输,若否之,则满足AHB地址对齐传输。
对于第一传输模式而言,用户能够在启动数据传输任务时预先在DMA模块中配置1)~3)种传输模式,同时在DMA模块中从1)~3)选择其中一种传输模式作为第一传输模式。
其中,在本实施例中,第二传输模式可按如下方式:
4)每个时钟周期下每传输1字节长度的数据,对当前传输地址后移一位,例如数据包的源地址(二进制)为00111110,数据包的字节长度为512字节,在经1个时钟周期下传输1字节长度的数据后,源地址进行加1更新为00111111,同时数据包的字节长度剩余511字节;
对于4)中的第二传输模式,不需要考虑AHB地址对齐的条件,在4)中的第二传输模式下,其满足AHB地址对齐的条件。
对于第二传输模式而言,用户能够在启动数据传输任务时预先在DMA模块中配置,即预先在DMA模块将4)中的传输模式作为第二传输模式。
在本实施例中,对于数据传输而言,可以基于当前传输地址是否满足AHB地址对齐,切换成不同的传输模式完成对数据包的传输任务,其中第一传输模式是需要满足AHB地址对齐的,而第二传输模式则不需要满足AHB地址对齐。因此,本实施例的技术方案不仅能够满足AHB协议中关于地址对齐传输的标准,还能克服AHB在数据传输时只能在地址对齐的情况下进行数据传输的局限性。
图2示出了本申请另一实施例中的一种数据传输方法的流程示意图。
请参阅图2,一种数据传输方法,包括如下步骤:
步骤S210、获取模式配置信息,对数据传输进行模式配置,得到数据传输的第一传输模式和第二传输模式。
其中,模式配置信息的获取,可以实现对数据包传输模式进行预先配置,且此过程是在DMA模块接收/发送数据之前,以便于后续DMA模块通过AHB进行数据传输;关于模式配置信息可以由操作者进行设定输入,以达到模式配置的目的,进而来满足AHB协议中关于地址对齐传输的标准,克服AHB的局限性。
步骤S220、获取待传输的数据包,其中数据包的基础信息包括传输地址、字节长度。
其中,对于数据包而言,传输地址包括源地址或目的地址,源地址为数据包的来源地址,对应于数据包的来源源端;目的地址为数据包的发送地址,对应于数据包的发送目的端。源地址和目的地址可通过二进制进行表达,还可采用其他进制来表达,如八进制、十进制、十六进制等,不同进制之间能够相互转换。关于字节长度,用于表示数据包的大小,其单位为字节,如512字节的数据包。
具体地,关于数据包的传输包括数据包接收以及数据包发送的过程,关于数据包接收是将源端发送的数据包进行接收的过程,关于数据包发送是将接收来的数据包发送至目的端的过程。
步骤S230、判断当前传输地址是否满足AHB地址对齐:若满足,按照预先配置的第一传输模式对数据包进行传输;若不满足,切换成第二传输模式对数据包进行传输,其中,第二传输模式为无需考虑AHB地址对齐的传输模式。
传输模式为对数据包的传输方式,其规定了对于数据包每个周期下能够传输多少字节长度的数据包、数据包的传输地址变化和是否需要满足AHB地址对齐的条件。
其中,在本实施例中,第一传输模式可按如下方式:
1.每个时钟周期下每传输2字节长度的数据,对当前传输地址后移一位,例如数据包的源地址(二进制)为00111110,数据包的字节长度为512字节,在经1个时钟周期下传输2字节长度的数据后,源地址进行加1更新为00111111,同时数据包的字节长度剩余510字节;
对于1)中的第一传输模式,判断AHB地址对齐的条件为:如将当前传输地址转换成二进制,在经1个时钟周期传输2字节长度的数据后,同时源地址加1,判断当前更新地址的最低1位是否为0,即源地址00111111中最后一位“1”是否为0,可以看出源地址的最低1位不满足条件,则此时DMA模块判定此条件下不满足AHB地址对齐传输,若否之,则满足AHB地址对齐传输。
2.每个时钟周期下每传输4字节长度的数据,对当前传输地址后移一位,例如数据包的源地址(二进制)为00111110,数据包的字节长度为512字节,在经1个时钟周期下传输2字节长度的数据后,源地址进行加1更新为00111111,同时数据包的字节长度剩余508字节;
对于2)中的第一传输模式,判断AHB地址对齐的条件为:如将当前传输地址转换成二进制,在经1个时钟周期传输4字节长度的数据后,同时源地址加1,判断当前更新地址的最低2位是否均为0,即源地址00111111中最后2位“11”是否均为0,可以看出源地址的最低2位不满足条件,则此时DMA模块判定此条件下不满足AHB地址对齐传输,若否之,则满足AHB地址对齐传输。
3.每个时钟周期下每传输8字节长度的数据,对当前传输地址后移一位,例如数据包的源地址(二进制)为00111110,数据包的字节长度为512字节,在经1个时钟周期下传输8字节长度的数据后,源地址进行加1更新为00111111,同时数据包的字节长度剩余504字节;
对于3)中的第一传输模式,判断AHB地址对齐的条件为:如将当前传输地址转换成二进制,在经1个时钟周期传输8字节长度的数据后,同时源地址加1,判断当前更新地址的最低3位是否均为0,即源地址00111111中最后3位“111”是否均为0,可以看出源地址的最低3位不满足条件,则此时DMA模块判定此条件下不满足AHB地址对齐传输,若否之,则满足AHB地址对齐传输。
对于第一传输模式而言,用户能够在启动数据传输任务时预先在DMA模块中配置1)~3)种传输模式,同时在DMA模块中从1)~3)选择其中一种传输模式作为第一传输模式。
其中,在本实施例中,第二传输模式可按如下方式:
4)每个时钟周期下每传输1字节长度的数据,对当前传输地址后移一位,例如数据包的源地址(二进制)为00111110,数据包的字节长度为512字节,在经1个时钟周期下传输1字节长度的数据后,源地址进行加1更新为00111111,同时数据包的字节长度剩余511字节;
对于4)中的第二传输模式,不需要考虑AHB地址对齐的条件,在4)中的第二传输模式下,其满足AHB地址对齐的条件。
对于第二传输模式而言,用户能够在启动数据传输任务时预先在DMA模块中配置,即预先在DMA模块将4)中的传输模式作为第二传输模式。
步骤S240、判断基于第一传输模式下是否满足以整字节的方式对数据包的当前剩余字节长度传输完毕,若满足,则按照第一传输模式对数据包进行传输;若不满足,则切换成第二传输模式对数据包进行传输。
其中,当源地址/目的地址满足AHB地址对齐的情况下,数据包基于第一传输模式中的1)~3)种传输模式进行模式切换,以进行数据传输后,仍不能以整字节方式对数据包当前剩余的字节长度传输完毕时,可以切换至第二传输模式进行剩余数据的传输,来使得数据包传输完毕。
举例而言,当需要接收/发送的数据包长度为511字节时,在当前源地址/目的地址满足AHB地址对齐的情况下,以DMA模块中配置的3)对数据包进行接收/发送,当接收/发送前面的63个8字节数据后,剩余7字节数据时,由于剩余的7字节数据以DMA模块中配置的3)无法整个接收/发送,也即上述所阐述的不能以整字节方式进行传输,此时DMA模块会自动切换成第二传输模式也即以DMA模块中配置的4)进行传输最后剩下的7字节数据,以按照每个时钟周期下接收/发送1字节数据,把最后剩下的7字节数据全部接收/发送完毕。
为了更好地理解本申请的技术方案原理,图3示出了本申请实施例中的一种数据传输方法的流程框图。
步骤S310、获取待传输的数据包,执行步骤S320。
其中,数据包的基础信息包括传输地址、字节长度,传输地址,如0010 1110(二进制表达),当然,传输地址不仅可通过二进制进行表达,还可采用其他进制来表达,如八进制、十进制、十六进制等,不同进制之间能够相互转换。关于字节长度,用于表示数据包的大小,其单位为字节,如512字节的数据包。
步骤S320、判断数据包的当前传输地址是否满足AHB地址对齐,若满足,则执行步骤S330;若不满足,则执行步骤S340。
其中,地址对齐体现在源端提前配置的地址格式与数据位宽是否相匹配,以通过判断地址是否对齐来执行不同的操作。
步骤S330、按照第一传输模式对数据包进行传输,执行步骤S350。
其中,第一传输模式请参阅上述阐述的在DMA模块中配置的1)~3)种传输模式,在此不再赘述。
步骤S340、切换成第二传输模式对数据包进行传输。
其中,第二传输模式请参阅上述阐述的在DMA模块中配置的4)种传输模式,在此不再赘述。
步骤S350、判断基于第一传输模式下是否满足以整字节的方式对数据包的当前剩余的字节长度传输完毕,若满足,则执行步骤S360;若不满足,则执行步骤S360。
其中,当以DMA模块中配置的1)~3)种传输模式进行模式切换,以进行数据传输后,仍剩余有字节数据时,该剩余字节数据无法按照当前数据传输模式将其全部接收/发送完毕。
举例而言,当需要接收/发送的数据包长度为511字节时,在当前源地址/目的地址满足AHB地址对齐的情况下,以DMA模块中配置的3)对数据包进行接收/发送,当接收/发送前面的63个8字节数据后,剩余7字节数据时,由于剩余的7字节数据以DMA模块中配置的3)无法接收/发送,也即上述所阐述的不能以整字节方式进行传输,此时DMA模块会自动切换成第二传输模式也即以DMA模块中配置的4)进行传输最后剩下的7字节数据,以按照每个时钟周期下接收/发送1字节数据,把最后剩下的7字节数据全部接收/发送完毕。
为了更好地理解本申请的技术方案,以下以具体两个应用场景来详细说明本申请的技术原理。
请参阅图4,数据传输具体划分为可以主要分成两个过程,一个是对数据包的接收过程,即DMA模块从源端接收数据包的过程,另一个则是对数据包的发送过程,即DMA模块将接收到的数据包往目的端发送的过程。
对于主控芯片中的DMA模块而言,不管是对数据包的接收过程还是发送过程,DMA模块都均需要满足主控芯片中关于AHB标准,AHB标准涉及的内容很多,其中一项是需要满足AHB地址对齐的条件,AHB地址对齐的条件是:在源端提前配置的地址格式与数据位宽是否相匹配,若匹配则地址对齐,若不匹配则地址不对齐。倘若DMA模块在传输数据时无法满足AHB协议中的地址对齐,AHB会反馈异常信号至DMA模块中,使得DMA模块强制结束数据传输的工作,严重影响DMA模块对数据传输工作。
因此,本申请的DMA模块为了克服AHB的局限性,以数据包接收过程和数据包发送过程的两个阶段,来说明如何支持AHB地址不对齐传输。
在此,设定数据包的基础信息:
源地址为00111110,目的地址为01000101,数据包的长度为513字节,在数据包接收阶段,配置的传输方式为第一传输模式中2)种传输模式,在数据包发送阶段,配置的传输方式为第一传输模式中3)种传输模式。
数据包的接收过程:
根据数据包的源地址00111110,判断数据包的源地址的最低2位是否均为0,即源地址00111110中的“10”是否均为0,可以看出源地址的最低2位无法满足条件,则此时DMA模块判定此条件下无法满足AHB地址对齐传输,DMA模块从2)切换成第二传输模式4)对数据包进行传输。
切换成4)后,DMA模块从原先每个时钟周期下接收4字节数据变成每个时钟周期下接收1字节数据,同时每接收1字节数据,则源地址会加1,即00111110+00000001=00111111,同时判断当前源地址是否满足AHB地址,可以看出,当前源地址00111111中的最低2位无法满足条件,则DMA模块继续以第二传输模式接收了1字节数据,当前源地址从原来的00111111变成01000000,此时DMA模块再次判断当前源地址是否满足AHB地址对齐,可以看出,当前源地址01000000中的最低2位均为0,此时DMA模块判定当前源地址满足地址对齐传输,则DMA模块切换成最开始配置的方式2对数据包进行接收,即变成每个时钟周期下接收4字节的数据,同时源地址加1,由于源地址已经满足了AHB地址对齐,后续则一直按照2)对剩余的511字节数据包进行接收。
从上述方案可以看出,本申请方案的DMA模块能够根据源地址是否满足AHB地址对齐的条件来进行自主切换,当前源地址满足AHB地址对齐传输的条件下,则按照预先配置的模式对数据包进行发送接收;当源地址不满足AHB地址对齐传输的条件下,则切换成第二传输模式4)来完成对数据包的接收,直到当前源地址满足了AHB地址对齐的条件,DMA模块则切换成预先配置的模式来完成对数据包的接收。
数据包的发送过程:
根据数据包的目的地址01000101,判断数据包的目的地址的最低3位是否均为0,即目的地址01000101中的“101”是否均为0,可以看出目的地址的最低3位无法满足条件,则此时DMA模块判定此条件下无法满足AHB地址对齐传输,DMA模块从方式3)切换成第二传输模式4)对数据包进行传输。
切换成4)后,DMA模块从原先每个时钟周期下发送8字节数据变成每个时钟周期下发送1字节数据,同时每发送1字节数据,则目的地址会加1,即01000101+00000001=01000110,同时判断当前源地址是否满足AHB地址,可以看出,当前源地址01000110中的最低3位无法满足条件,则DMA模块继续以第二传输模式接收1字节数据,01000110+00000001=01000111,同时判断当前源地址是否满足AHB地址,可以看出,当前源地址01000111的最低3位无法满足条件,则DMA模块继续以4)接收1字节数据,01000111+00000001=01001000,同时判断当前源地址是否满足AHB地址,可以看出,当前源地址01001000的最低3位满足条件,也即在DMA模块发送了3个字节后,源地址会从原来的00111110变成01001000,满足地址对齐传输的条件,则DMA模块又切换成最开始配置的3)对数据包进行发送,即变成每个时钟周期下发送8字节的数据,同时源地址加1,由于源地址已经满足了AHB地址对齐,后续则一直按照3)对剩余的489(即513-3*8=489)字节数据包进行发送。
从上述方案可以看出,本申请方案的DMA模块能够根据目的地址是否满足AHB地址对齐的条件来进行自主切换,当前目的地址满足AHB地址对齐传输的条件下,则按照预先配置的模式对数据包进行发送;当目的地址不满足AHB地址对齐传输的条件下,则切换成第二传输模式4)来完成对数据包的发送,直到当前目的地址满足了AHB地址对齐的条件,DMA模块则切换成预先配置的模式来完成对数据包的发送。
与前述的功能方法实施例相对应,本申请提供了一种DMA装置及相应的实施例。
图5示出了本申请另一实施例中的一种DMA装置的结构示意图。
请参阅图5,DMA装置500,包括:数据包获取模块510、第一判断模块520。
数据包获取模块510用于获取待传输的数据包,其中数据包的基础信息包括传输地址、字节长度;
第一判断模块520用于判断当前传输地址是否满足AHB地址对齐:若满足,按照预先配置的第一传输模式对数据包进行传输;若不满足,切换成第二传输模式对数据包进行传输,其中第二传输模式为无需考虑AHB地址对齐的传输模式。
需要说明的是,该实施例公开的DMA装置所实现的数据传输方法如上述实施例,故在此不再进行详细讲述。可选地,本实施例中的各个模块和上述其他操作或功能分别为了实现前述实施例中的方法。
图6示出了本申请另一实施例中的DMA装置的结构示意图。
请参阅图6,DMA装置500包括:模式配置模块530、数据包获取模块510、第一判断模块520、第二判断模块540。
其中,数据包获取模块510、第一判断模块520请参阅图5中的相关阐述,此处不再赘述。
模式配置模块530用于获取模式配置信息,对数据传输进行模式配置,得到数据传输的第一传输模式和第二传输模式。
第二判断模块540用于判断基于第一传输模式下是否满足以整字节的方式对数据包的当前剩余的字节长度传输完毕,若满足,则按照第一传输模式对数据包进行传输;若不满足,则切换成第二传输模式对数据包进行传输。
需要说明的是,该实施例公开的DMA装置所实现的数据传输方法如上述实施例,故在此不再进行详细讲述。可选地,本实施例中的各个模块和上述其他操作或功能分别为了实现前述实施例中的方法。
图7示出了本申请一实施例中的一种主控芯片的结构示意图。
参阅图7,本申请一实施例示出了一种主控芯片700,包括如上述实施例的DMA装置500。
其中,基于上述实施例可知DMA装置500能够满足AHB协议中关于地址对齐传输的标准,以克服AHB的局限性,在本实施例中,由于主控芯片700包括DMA装置500,进而主控芯片700在工作时(即对数据进行收发、处理时),在数据传输方面也同样能够满足AHB协议中关于地址对齐传输的标准,以克服AHB的局限性。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。
Claims (10)
1.一种数据传输方法,其特征在于,包括:
获取待传输的数据包,其中所述数据包的基础信息包括传输地址、字节长度;
判断当前所述传输地址是否满足AHB地址对齐:若满足,按照预先配置的第一传输模式对所述数据包进行传输;若不满足,切换成第二传输模式对所述数据包进行传输,其中所述第二传输模式为无需考虑所述AHB地址对齐的传输模式。
2.根据权利要求1所述的数据传输方法,其特征在于,在满足所述按
照预先配置的第一传输模式对所述数据包进行传输的条件下,还包括:
判断基于所述第一传输模式下是否满足以整字节的方式对所述数据包的当前剩余的所述字节长度传输完毕,若满足,则按照所述第一传输模式对所述数据包进行传输;若不满足,则切换成所述第二传输模式对所述数据包进行传输。
3.根据权利要求2所述的数据传输方法,其特征在于,所述第一传输模式按如下方式:
每个时钟周期下每传输2字节长度的数据,对当前所述传输地址后移一位;或
每个时钟周期下每传输4字节长度的数据,对当前所述传输地址后移一位;或
每个时钟周期下每传输8字节长度的数据,对当前所述传输地址后移一位。
4.根据权利要求2所述的数据传输方法,其特征在于,所述第二传输模式按如下方式:
每个时钟周期下每传输1字节长度的数据,对当前所述传输地址后移一位。
5.根据权利要求3所述的数据传输方法,其特征在于,所述判断当前所述传输地址是否满足AHB地址对齐,包括:
将当前所述传输地址转换成二进制;
若所述第一传输模式配置成每个时钟周期下每传输2字节长度的数据,对当前所述传输地址后移一位,则对当前所述传输地址的最低1位进行判断,若当前所述传输地址的最低1位等于0,则当前所述传输地址满足所述AHB地址对齐;否则,则当前所述传输地址不满足所述AHB地址对齐;
若所述第一传输模式配置成每个时钟周期下每传输4字节长度的数据,对当前所述传输地址后移一位,则对当前所述传输地址的最低2位进行判断,若当前所述传输地址的最低2位均等于0,则当前所述传输地址满足所述AHB地址对齐;否则,则当前所述传输地址不满足所述AHB地址对齐;
若所述第一传输模式配置成每个时钟周期下每传输8字节长度的数据,对当前所述传输地址后移一位,则对当前所述传输地址的最低3位进行判断,若当前所述传输地址的最低3位均等于0,则当前所述传输地址满足所述AHB地址对齐;否则,则当前所述传输地址不满足所述AHB地址对齐。
6.根据权利要求1~5中任意一项所述的数据传输方法,其特征在于,所述传输地址包括源地址或目的地址。
7.根据权利要求1中所述的数据传输方法,其特征在于,所述获取待传输的数据包,其中所述数据包的基础信息包括传输地址、字节长度之前,还包括:
获取模式配置信息,对数据传输进行模式配置,得到数据传输的所述第一传输模式和所述第二传输模式。
8.一种DMA装置,其特征在于,包括:
数据包获取模块,用于获取待传输的数据包,其中所述数据包的基础信息包括传输地址、字节长度;
判断模块,用于判断当前所述传输地址是否满足AHB地址对齐:若满足,按照预先配置的第一传输模式对所述数据包进行传输;若不满足,切换成第二传输模式对所述数据包进行传输,其中所述第二传输模式为无需考虑所述AHB地址对齐的传输模式。
9.根据权利要求8中所述的DMA装置,其特征在于,所述传输地址包括源地址或目的地址。
10.一种主控芯片,其特征在于,包括如权利要求8或9所述的DMA装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211380657.6A CN115617721B (zh) | 2022-11-05 | 2022-11-05 | 数据传输方法、dma装置及主控芯片 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211380657.6A CN115617721B (zh) | 2022-11-05 | 2022-11-05 | 数据传输方法、dma装置及主控芯片 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115617721A true CN115617721A (zh) | 2023-01-17 |
CN115617721B CN115617721B (zh) | 2023-11-21 |
Family
ID=84877665
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211380657.6A Active CN115617721B (zh) | 2022-11-05 | 2022-11-05 | 数据传输方法、dma装置及主控芯片 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115617721B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020062408A1 (en) * | 2000-09-08 | 2002-05-23 | Jahnke Steven R. | Micro-controller DMA operation with adjustable word size transfers and address alignment/incrementing |
US20020093504A1 (en) * | 2001-01-13 | 2002-07-18 | Lsi Logic Corporation | Burst signal generation for pipelined access to AMBA bus |
US20040044812A1 (en) * | 2002-08-28 | 2004-03-04 | Holm Jeffrey J. | Byte-enabled transfer for a data bus having fixed-byte data transfer |
CN101162448A (zh) * | 2007-11-20 | 2008-04-16 | 杭州中天微系统有限公司 | 一种usb高速数据隧道的硬件传输方法 |
JP2009237790A (ja) * | 2008-03-26 | 2009-10-15 | Yamaha Corp | Dmaコントローラ |
CN111061663A (zh) * | 2019-12-15 | 2020-04-24 | 苏州浪潮智能科技有限公司 | 一种数据传输方法、装置及相关组件 |
-
2022
- 2022-11-05 CN CN202211380657.6A patent/CN115617721B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020062408A1 (en) * | 2000-09-08 | 2002-05-23 | Jahnke Steven R. | Micro-controller DMA operation with adjustable word size transfers and address alignment/incrementing |
US20020093504A1 (en) * | 2001-01-13 | 2002-07-18 | Lsi Logic Corporation | Burst signal generation for pipelined access to AMBA bus |
US20040044812A1 (en) * | 2002-08-28 | 2004-03-04 | Holm Jeffrey J. | Byte-enabled transfer for a data bus having fixed-byte data transfer |
CN101162448A (zh) * | 2007-11-20 | 2008-04-16 | 杭州中天微系统有限公司 | 一种usb高速数据隧道的硬件传输方法 |
JP2009237790A (ja) * | 2008-03-26 | 2009-10-15 | Yamaha Corp | Dmaコントローラ |
CN111061663A (zh) * | 2019-12-15 | 2020-04-24 | 苏州浪潮智能科技有限公司 | 一种数据传输方法、装置及相关组件 |
Also Published As
Publication number | Publication date |
---|---|
CN115617721B (zh) | 2023-11-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR100239973B1 (ko) | 데이타 처리장치에서의 데이타교환 및/또는 신호처리의 동기를 위한 구조화 메시지방법 | |
EP3605881B1 (en) | Method and device for transmitting and receiving network management information, transmitting apparatus and receiving apparatus | |
JP2010272971A (ja) | 制御システム及び制御プログラム書換方法 | |
CN108600011B (zh) | 通信网络数据传输的方法、装置、存储介质及终端设备 | |
CN112422485B (zh) | 一种传输控制协议的通信方法及装置 | |
EP1033657B1 (en) | Packet communication apparatus provided with manager means for managing packet labels | |
CN100388696C (zh) | 数据传送方法和数据传送系统 | |
CN115617721B (zh) | 数据传输方法、dma装置及主控芯片 | |
CN115913816B (zh) | 一种主从设备间通讯的通讯转换装置及方法 | |
US20230198648A1 (en) | Time synchronization method, device and apparatus, and storage medium | |
CN115189977B (zh) | 一种基于axi协议的广播传输方法、系统及介质 | |
CN115460036B (zh) | 基于uart实现多路can数据收发的系统、方法、设备及存储介质 | |
CN111464386A (zh) | 用于数据传输的通信转换方法和装置、通信系统 | |
CN116185929A (zh) | 主从设备间通讯的通讯转换装置 | |
JP4453449B2 (ja) | 車載通信モジュールおよび車載機 | |
CN111130678B (zh) | 数据传输方法、装置、设备及计算机可读存储介质 | |
KR100226781B1 (ko) | 노드(node)인식(recognition)방법 | |
CN113886296B (zh) | 数据传输方法、装置、设备和存储介质 | |
CN103269319A (zh) | 一种数据传输方法、设备及系统 | |
CN116185936B (zh) | 一种spi通信数据收发异常检测控制系统及检测方法 | |
CN113157610B (zh) | 数据保存方法及装置、存储介质、电子装置 | |
JP3992340B2 (ja) | データ通信方法及びデータ通信装置 | |
CN114553797B (zh) | 具有命令转发机制的多芯片系统及地址产生方法 | |
CN113133010B (zh) | 一种无线组网方法、装置、终端设备及存储介质 | |
CN110505038B (zh) | 一种数据传输方法及相关装置 |
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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 518000 402-406, floor 4, building 4, Tianan Yungu Industrial Park, Gangtou community, Bantian street, Longgang District, Shenzhen, Guangdong Province Applicant after: Shenzhen Sandi Yixin Electronics Co.,Ltd. Address before: 518000 402-406, floor 4, building 4, Tianan Yungu Industrial Park, Gangtou community, Bantian street, Longgang District, Shenzhen, Guangdong Province Applicant before: SHENZHEN SANDIYIXIN ELECTRONIC Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |