CN103685578B - 主从设备的数据传输方法 - Google Patents

主从设备的数据传输方法 Download PDF

Info

Publication number
CN103685578B
CN103685578B CN201410009475.7A CN201410009475A CN103685578B CN 103685578 B CN103685578 B CN 103685578B CN 201410009475 A CN201410009475 A CN 201410009475A CN 103685578 B CN103685578 B CN 103685578B
Authority
CN
China
Prior art keywords
data
slave unit
main equipment
slave
packet
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
CN201410009475.7A
Other languages
English (en)
Other versions
CN103685578A (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.)
Allwinner Technology Co Ltd
Original Assignee
Allwinner 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 Allwinner Technology Co Ltd filed Critical Allwinner Technology Co Ltd
Priority to CN201410009475.7A priority Critical patent/CN103685578B/zh
Publication of CN103685578A publication Critical patent/CN103685578A/zh
Application granted granted Critical
Publication of CN103685578B publication Critical patent/CN103685578B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Communication Control (AREA)

Abstract

本发明提供一种主从设备的数据传输方法,该方法包括主设备响应从设备发出的数据传输中断请求后,接收从设备传输的包含有链接有效性的数据,判断链接有效性是否为有效,如是,继续接收从设备传输的数据,否则,终止接收数据。本发明能提高主设备与从设备之间的数据传输效率。

Description

主从设备的数据传输方法
技术领域
本发明涉及数据传输领域,具体地,是一种主设备与从设备之间数据传输的方法。
背景技术
现代的通信系统中,尤其在无线网络设备中,通常采取主从设备的架构,即通信系统包括一个主设备以及一个或多个从设备,主设备与从设备之间进行数据交换。
通常,主设备上运行一个大型操作系统,从设备上运行一个微型嵌入式系统。参见图1,主设备(Host)10具有主机(master)11、中央处理器12以及随机存储器(RAM)13,主机11可以接收中央处理器12输出的命令,并且可以通过DMA(直接存储器访问)的方式访问随机存储器13。从设备(Device)16具有从机(slaver)17、中央处理器18以及随机存储器(RAM)19,从机17可以接收中央处理器18输出的命令,并且可以通过DMA(直接存储器访问)的方式访问随机存储器19。
由于主设备10与从设备16之间的数据接收发送等对实时性要求很高,且所需要的硬件加速工作在从机17的芯片中进行,数据的上层协议处理则转交给主设备10处理,这样分工能充分发挥硬件加速模块的作用以尽量降低主设备10的负载。在主设备10和从设备16之间需要一个传输接口来承担数据发送接收的作用,该接口可以是SPI、SDIO、USB等接口。
当主设备10需要向从设备16传输数据或者从设备16向主设备10传输数据时,通常会产生一个数据传输的中断请求信号,因此每一个单元的数据传输都会在主设备10和从设备16上各产生一次中断请求信号。现有的数据传输过程控制逻辑简洁,容错性要求低,并且在从设备16上能及时释放缓冲区以充分利用有限的存储空间。对于主设备10与从设备16之间数据的传输速率要求不高的情况下,上述的方案是一种稳定高效的处理方式。
如图1所示,当从设备16有数据需要传输到主设备10的时候,从设备16的中央处理器18通过操作从机17的寄存器,把从设备16中的待传输数据的地址以及长度等信息发送给从机17。然后,从机17向主机11发起数据传输的请求中断信号。主机11收到从机17的中断请求信号后,向主设备10的中央处理器12发起中断请求,主设备10的中央处理器12响应中断请求,并从从机17的寄存器中获取待传输数据的长度信息,然后通过主机11向从机17发起数据读取操作。最后,从机17通过DMA的方式读取从设备16随机存储器19上的数据并传输到主机11,主机11把收到的数据写到主设备10的随机存储器13上。这样,就完成了一次从设备16到主设备10的数据传输。
当主设备10有数据需要传输到从设备16时,从设备16的中央处理器18需要向从机17的寄存器写入数据的目标地址,并把从设备16的状态置为准备状态。然后,主设备10的中央处理器12通过寄存器的操作,把数据源地址、数据长度以及其他一些必要的传输参数配置到主机11,主机11把数据传输到从机17,从机17通过DMA方式将数据写入到从设备16的随机存储器19的目标地址。数据传输完成后,从机17向从设备16的中央处理器18发起传输完毕中断请求,通知其进行数据的后续处理。在中断处理过程中,从设备16把新的目标地址发送给从机17,并把从设备16的工作状态重新置为准备状态,准备下一次数据的接收。
由于现有的数据传输模式下,无论是从设备16向主设备10传输数据,还是从主设备10向从设备16传输数据,均会引起一次中断请求。由于主设备10上往往运行的是多任务系统,中断请求会导致主设备10中上下文的切换。并且,很多时候从设备16向主设备10发送的数据都是突发和分片的,当从设备16进行大量数据的传输时,大量的中断会导致主设备10的中央处理器12的执行效率减低,而且数据的传输效率也会较低。
对于从设备16而言,为了保证数据处理的有序可靠,只有在从设备16完成了中断请求的处理后,主设备10才能进行下一次的传输。这样,从设备16处理中断的时间也算进了数据的传输时间当中,这样数据的传输效率就大大的下降了。
随着通信行业技术的发展,无线网络对数据传输速度的要求越来越高,对主设备10与从设备16之间的数据传输速率要求也越来越高,传统的实现方式使得主设备10与从设备16之间的传输接口成为整个数据通路上的瓶颈。
发明内容
本发明的主要目的是提供一种数据传输效率高的主从设备的数据传输方法。
为了实现上述的主要目的,本发明提供的主从设备数据传输方法包括主设备响应从设备发出的数据传输中断请求后,接收从设备传输的包含有链接有效性的数据,判断链接有效性是否为有效,如是,继续接收从设备传输的数据,否则,终止接收数据。
由上述方案可见,主设备接收到数据后,分析所接收的数据中的链接有效性来判断是否还需要继续接收数据,如还需要继续接收数据,则不再等待中断请求信号,直接接收下一数据。这样,从设备不需要每一次传输数据前向主设备发出一次中断请求,只要在最开始向主设备发出一次中断请求后连续地向主设备传输数据,主设备也能连续地接收数据,提高数据的传输效率。
一个优选的方案是,链接有效性的数据为从设备向主设备传输的数据中的链接有效性标志信息,用于标识从设备发送的下一数据的有效性。
由此可见,链接有效性用于表示从设备向主设备发送的下一数据的有效性,主设备根据链接有效性可以确定是否需要接收下一数据,有利于实现一次中断请求接收多个数据的目的。
进一步的方案是,从设备在发送的数据包为连续发送的最后一个数据包时,将当前数据包的链接有效性置为无效。
可见,从设备通过链接有效性来标识所传输的数据是否为最后一个数据包,主设备可以方便地了解所接收到数据包是否为最后一个数据包,从而确定是否需要继续接收数据,避免从设备多次发送中断请求信号,主设备也无需多次响应中断请求信号。
更进一步的方案是,主设备向从设备传输的数据前,判断从设备的存储器是否处于全满状态,如是,终止向从设备传输数据,否则,向从设备传输数据。
由此可见,由于主设备向从设备传输数据前,均判断从设备的存储器能否存储新的数据,因此主设备能够确保所传输的数据能够写入到从设备中。因此主设备向从设备发送数据后,从设备无需向其自身的中央处理器发出中断请求信号,提高数据的传输效率。
更进一步的方案是,从设备接收到主设备传输的数据后,将所接收到数据直接传递至后级处理,并根据所接收的数据的长度计算新的从设备数据读取目标地址。
可见,从设备接收到数据后,并不需要向中央处理器发送中断请求信号就直接将数据传输至中央处理器,减小从设备产生中断请求信号的次数,提高数据传输效率。
附图说明
图1是现有主从设备数据传输的结构框图。
图2是应用本发明主从设备数据传输方法实施例的主从设备的结构框图。
图3是应用本发明主从设备数据传输方法实施例的从设备随机存储器的数据存储结构图。
图4是应用本发明主从设备数据传输方法实施例的一个数据块的数据存储结构图。
图5是本发明主从设备数据传输方法实施例中主设备向从设备传输数据时从设备存储器的存储状态结构图。
图6是本发明主从设备数据传输方法实施例中从设备向主设备传输数据时从设备存储器的存储状态结构图。
图7是本发明主从设备数据传输方法实施例中主设备向从设备传输数据时主设备的工作流程图。
图8是本发明主从设备数据传输方法实施例中主设备向从设备传输数据时从设备的工作流程图。
图9是本发明主从设备数据传输方法实施例中从设备向主设备传输数据时从设备的工作流程图。
图10是本发明主从设备数据传输方法实施例中从设备向主设备传输数据时主设备的工作流程图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
本发明应用在主从设备中并用于实现主从设备之间的数据传输,包括主设备将数据传输至从设备,也包括从设备将数据传输至主设备。应用本发明方案的主设备与从设备不限于无线网络设备,其他主从设备见的数据传输也可以应用本发明的方案。
参见图2,本发明应用在具有主设备20与从设备26的系统中,主设备20具有主机21、中央处理器22以及随机存储器23,从设备26具有从机27、中央处理器28以及随机存储器29,主设备20与从设备26通信时,主机21与从机27通过传输接口实现数据的传输。
主机21可以向中央处理器22发出中断请求信号,并且接收中央处理器22读写主机21的寄存器的命令,主机21还可以通过直接存储器访问的方式对随机存储器23进行读写操作。从机27可以接收中央处理器28读写从机27的寄存器的命令,并且可以通过直接存储器访问的方式对随机存储器29进行读写操作。
应用本发明时,从设备26向主设备20传输数据时不再采样传输一次数据产生一次中断请求的模式,而是采用产生一次中断请求传输多次数据的模式,也就是主设备20在没有接收到中断请求信号的情况下也可以主动地读取从设备26上的数据。在这种传输模式下,有些数据的传输是没有中断请求的,这时,从设备26的中央处理器28无法知道主设备20什么时候会读取数据、主设备20读取数据的次数,从设备26无法在适当的时候把数据的源地址和长度信息发送给从机27。所以,主设备20的中央处理器22在读取从设备20的数据之前需要获取数据的源地址和长度信息。
当从设备26有数据需要传给主设备20时,先检查从机27中的主设备20操作状态寄存器,如果主设备20在读取数据的状态,则等待主设备20读取数据;否则,向主设备20发出数据传输的中断请求信号。
主设备20的主机21收到从机27的发出的中断请求信号后,向中央处理器22发出中断请求信号,中央处理器22响应该中断请求后,主机21从从机27的寄存器中获取待传输数据的长度信息,然后读取从设备26相应的数据,并且把从机27中的状态寄存器设为读取状态。
主机21通过解析上一个数据的所携带信息,判断是否还有待读取的数据,如果还有待传输的数据,主设备20继续读取从设备26的下一数据,如此循环,直到没有待传输的数据为止。最后,主机21将从机27中的状态寄存器设为非读取状态。这样,从设备26发出一次中断请求信号可以实现多次数据的传输。
当主设备20有数据需要传输至从设备26时,从机27不向从设备26的中央处理器28发出中断请求信号,即主设备20向从设备26传输数据是非中断传输模式。在缺少中断请求信号的情况下,从设备26的中央处理器28无法知道从机27在什么时候向随机存储器29写入了多少的数据。
因此,当主设备20有待传输的数据,首先获取从设备26的待写入地址和从设备26的数据状态,如果有足够的剩余空间,则主设备20的中央处理器22通过主机21将待传输数据的源地址、数据长度以及目标地址传到从机27,从机27把接收到的数据写到主机21指定的从设备26的随机存储器29的目标地址上。如果主设备20判断从设备26随机存储器29剩余空间不够,则停止数据的传输。如果主设备20的随机存储器23上还有剩余数据待传输,则重复执行数据传输步骤,直到所有数据传输完毕,或者直到从设备26的随机寄存器29剩余存储空间不足为止。
为了实现上述的方案,从设备26必须满足以下三个条件:1、从设备26的从机27对随机存储器29进行读写操作时,数据的存储必须连续。2、从机27必须能够解析主机21发出的命令中的地址信息,并能够转译为从设备26的随机存储器29的数据地址。实际应用时,从机27将主机21发出的命令中的地址作为偏移量信息,加上随机存储器29的起始地址,即可以得到对应的从设备26的随机存储器29的数据地址。3、从机27需要定义一组寄存器,用于记录主设备20最后一次读写数据的目标地址、主设备20的读写状态以及从设备26随机存储器29的剩余空间的信息。
从设备26的随机存储器29的存储结构如图3所示,数据的存储是从起始地址连续地存储到终止地址,其中pkt表示随机存储器29中的数据块,free表示随机存储器29中的空白部分,即没有存储有用数据的部分。
不管是主设备20向从设备26写入的数据还是从设备26需要写入到主设备20的数据,均存储在随机存储器29中,但主设备20向从设备26写入的数据与从设备26需要写入到主设备20的数据的存储区域不相同,因此两种数据不会相互影响。并且,数据的存储是循环存储的,当到存储的数据达到或者逼近随机存储器29的终止地址时会重新回到起始地址。
主设备20向从设备26写入数据后,数据暂存在随机存储器29内,当从设备26将主设备20写入的数据处理后,将主设备20写入的数据的存储空间标识为free,即将对应的存储空间释放,用于存储新的数据。从设备26待传输至主设备20的数据也存储在随机存储器29中,当从设备26将数据传输至主设备20后,也会将已经传输的数据对应的存储空间标识为free,以便于释放存储空间,继续存储待传输的数据。
参见图4,主设备20与从设备26之间传输的数据结构包括数据信息以及数据实体,数据信息位于数据实体之前,数据信息包括以下内容:lencheck,数据长度的取反,用于数据长度的校验;length:数据块的长度,不包括填充区;flag:数据包的一些标志信息,包括数据包是否有效的链接有效性标志信息、组合包等;seq:数据包的主机发送序列号;nextlen:下一个待传输数据的长度,包括填充区;addr:下一个待传输数据的地址,实际应用中是指相对于起始地址的地址偏移;credit:用于记录从设备26的数据读取地址。其中,数据包中包含的有关于下一数据包的相关信息,诸如nextlen等,均为链接信息。
图4所示的数据结构中,payload表示待传输的数据实体,padding是填充区,使用二进制数0填充字节,使整个需要传输的数据包的长度满足四个字节对齐的长度要求。
由于主设备20与从设备26之间的数据传输不基于中断请求实现,因此主设备20与从设备26传输数据前,必须了解随机存储器29的数据存储状态。本发明将随机存储器29的数据存储状态设定为三种状态:普通状态、全空状态、全满状态。
另外,本发明还需要使用以下四个地址:主设备20写入数据的目标地址HW地址,主设备20读取数据的目标地址HR地址,从设备26写入数据的目标地址DW地址,从设备26读取数据的目标地址DR地址。上述四个地址均是指向随机存储器29上的地址,且上述四个地址在初始化时都是在随机存储器29的起始地址,并且连续地移动向终止地址,当上述四个地址达到或者逼近随机存储器29的终止地址时会重新回到起始地址。并且,从机27设有寄存器存储HW地址以及HR地址,优选地,从机27还存储DW地址以及DR地址。
在主设备20向从设备26传输数据时,随机存储器29的数据存储状态可能出现如图5所示的五种状态,此时随机存储器29的数据存储状态只与HW地址与DR地址有关。
如图5(a)所示的状态中,HW地址在DR地址之后,则HW地址和DR地址之间的数据为从设备26接收并待处理的数据,其他的部分为剩余的存储空间。当剩余的存储空间足以容纳下一个数据包时,从机27判断数据的存储状态处于普通状态。
如图5(b)所示的状态中,HW地址在DR地址之前,则HW地址和DR地址之间的存储空间为剩余空间,其他的部分的数据为从设备26接收并待处理数据。当剩余空间足以容纳下一个数据包时,从机27判断随机存储器29处于普通状态。
如图5(c)所示的状态中,HW地址与DR地址相等,表示随机存储器29中没有待处理等数据,此时判断数据存储状态为全空状态。
如图5(d)所示的状态中,HW地址在DR地址之后,则HW地址和DR地址之间的数据为待处理数据,其他的部分为剩余的存储空间,当剩余的存储空间不足以容纳下一个数据包时,从机27判断数据的存储状态处于全满状态。
如图5(e)所示的状态中,HW地址在DR地址之前,则HW地址和DR地址之间的存储空间为剩余空间,其他的部分的数据为从设备26接收并待处理数据。当剩余空间不足以容纳下一个数据包时,从机27判断随机存储器29处于全满状态。
相同地,在从设备26向主设备20传输数据的时候,从设备26也会判断随机存储器29的存储状态。此时,从设备26根据DW地址与HW地址判断随机存储器29的存储状态。随机存储器29的存储状态如图6所示。
如图6(a)所示状态下,DW地址在HR地址之后,则DW地址和HR地址之间的数据为从设备26写入到随机存储器29并待传输至主设备20的数据,其他的部分为剩余存储空间。当剩余存储空间足以容纳下一个数据包时,从设备26判断随机存储器29处于普通状态。
如图6(b)所示状态下,DW地址在HR地址之前,则DW地址和HR地址之间的空间为剩余存储空间,其他的数据为待传输至主设备20的数据。当剩余存储空间足以容纳下一个数据包时,从设备26判断随机存储器29的存储状态处于普通状态。
如图6(c)所示状态下,HR地址与DW地址相等,表示随机存储器29中没有待传输等数据,此时从设备26判断数据存储状态为全空状态。
如图6(d)所示状态下,DW地址在HR地址之后,则DW地址和HR地址之间的数据为待传输至主设备20的数据,其他的存储空间为剩余存储空间,当剩余存储空间不足以容纳下一个数据包时,从设备26判断随机存储器29的存储状态处于全满状态。
如图6(e)所示状态下,DW地址在HR地址之前,则DW地址和HR地址之间的存储空间为剩余存储空间,其他的数据为待传输至主设备20的数据。当剩余存储空间不足以容纳下一个数据包时,从设备26判断随机存储器29的存储状态处于全满状态。
本发明中,由于从设备26向主设备20传输的数据包括链接有效性的标志信息,用于标志下一传输数据的有效性,因此本发明对链接有效性进行如下定义:当从设备26连续地向主设备20传输数据,当传输最后一个数据包时,不再传输下一个数据包,则认为下一个数据包不存在,此时将链接有效性设置为无效。此外,下一个数据包的存储区域不能和当前数据包的存储区域发生重叠,下一个数据包的存储区域也不能超出随机存储器29的存储区域,下一个数据包的长度也不能小于预设的最小长度。如果从设备26待传输的下一个数据包满足上述的条件,则认为下一个数据包是有效的,将当前的数据包的链接有效性置为有效,否则将链接有效性置为无效。主设备20一旦检测某一个数据包的链接有效性为无效,则读取当前数据包后,不再继续读取数据包,在收到下次数据中断请求信号之前,不会再进行数据的读取。
从设备26向主设备20传输的数据包中包含有标识信息flag,其中包括链接有效性标志信息,例如使用二进制数“1”表示链接有效性为有效,使用二进制数“0”表示链接有效性为无效。
当然,主设备20接收到从设备26传输的信息后,在判断从设备26传输的数据中链接有效性为有效时,还会对数据的链接有效性进行一次检测,如判断从设备26下一个需要传输的数据包的长度小于预设最小长度、下一个需要传输的数据包存储区域与当前数据包的存储区域发生重叠、下一个需要传输的数据包存储区域超出主设备20的存储器的存储区域时,都会将当前数据包的链接有效性置为无效。因此,即使从设备26传输的数据中链接有效性为有效,主设备20也可能将当前数据包的链接有效性置为无效,并不再从从设备26读取数据,直至接收到下一次的数据传输中断请求为止。
下面结合图7与图8说明主设备20向从设备26传输数据的流程。主设备20首先执行步骤S1,判断是否有待传输的数据,如有,则执行步骤S2,从上一次主设备读取数据的流程中所接收到的数据包中获取credit字段的信息,也就是获取DR地址。如果上一次所接收的数据包中credit字段的信息是无效的,则从从机27的寄存器中获取credit字段的值。并且,通过上一次的HW地址加上上一次传输数据的长度得到出当前的HW地址。然后,执行步骤S3,根据获得的DR地址与HW地址判断随机存储器29是否处于全满状态,如是,则直接结束数据传输流程,否则,执行步骤S4,主机21将数据传输至从机27,从机27根据主机21所发送的数据存储的目标地址,将所接收到的数据存储至随机存储器29指定的目标地址上。
从设备26接收到主机21传输的数据后,首先执行步骤S11,根据寄存器所存储的HW地址以及DR地址确定随机存储器29的存储状态,判断随机存储,29是否为全空状态,如不是,则执行步骤S12,对所接收的数据进行容错校验处理,数据的容错校验具体步骤后面将详细说明。如果所接收的数据没有错误,从机27直接将所接收的数据传递至后级进行处理,即执行步骤S13。最后,待对所接收的数据进行后续处理后,从机27对数据进行定界,即更新DR地址,确定哪些数据已经处理完毕,已经处理完毕的数据的存储空间将被释放,用于存储新的数据。
由于主设备20每次向从设备26传输数据前均对随机存储器29的存储状态进行判断,只有确定随机存储器29能够接收数据的情况下才传输数据。且从机27在接收到数据后不需要向中央处理器28发送中断请求信号,提高数据的传输效率。
下面结合图9与图10说明从设备26向主设备20传输数据的流程。从设备26有待传输的数据时,首先执行步骤S21,从设备26的中央处理器28从从机27的寄存器中获取HR地址。然后,根据获取的HR地址以及待写入到随机存储器29的DW地址判断随机存储器29的存储状态,即执行步骤S22,判断随机存储器29是否为全满状态,如是,则跳过步骤S23,执行后面的步骤,否则,执行步骤S23,将待传输的数据写入到随机存储器29,接着设置数据的链接信息并更新DW地址。
然后,中央处理器28执行步骤S24,再次从从机27的寄存器中获取HR地址,这是因为主设备20与从设备26之间的通信是异步的。接着,从设备26判断随机存储器29是否为全空状态,即执行步骤S25,如不是,则继续执行步骤S26,判断主设备20是否处于数据读取状态,如是,则等待主设备20继续读取数据,否则,执行步骤S27,将配置数据信息发送给从机27,从机27执行步骤S28,向主设备20的主机21发出数据传输的中断请求信息。
由于从机27中设有寄存器存储有主设备20工作状态的标志,在主设备20读取从设备26的数据时,从机27将主设备20的工作状态标记为读取状态,否则,将主设备20的工作状态标记为非读取状态。因此,从设备26有待传输的数据时,实际上判断主设备20是否处于数据读取状态,如主设备20处于数据读取状态,则继续由主设备20读取数据,也就是不发出中断请求信号,继续向主设备20传输数据,否则,向主设备20发出中断请求信号。当主设备20读取数据完毕后,从设备26的从机27修改状态寄存器,将主设备20的工作状态修改为非读取状态。
主设备20接收到数据传输的中断请求信号后,执行步骤S31,进入数据读取状态,然后,主设备20的主机21执行步骤S32,获取所读取数据地址以及长度,其中第一次获取的数据地址以及数据长度等信息可以从从机27的寄存器中获取。
接着,主机21执行步骤S33,主机21根据获取的数据地址以及数据长度读取从设备26上的数据。读取数据完毕后,执行步骤S34,对所读取的数据进行容错校验处理,如果数据没有错误,则执行步骤S35,将数据传递至后级处理。最后,主设备20执行步骤S36,判断所读取的数据的链接有效性,即判断从设备26是否还有下一数据需要传输或者下一数据是否有效,如链接有效性为有效,返回执行步骤S32,继续读取数据,否则,结束数据读取流程。
由于主设备20读取从设备26的数据过程中,根据链接有效性判断是否还需要读取下一数据,因此从设备26只需要发送一次数据传输的中断请求信号即可以传输多次数据,减小主设备20响应中断请求信号的次数,提高数据传输的效率。
以下说明主设备20或者从设备26对所接收的数据进行容错校验处理。数据发生错误的类型主要有两种原因,一是总线传输错误,也就是物理上传输发生错误,二是传输控制错误,也就是传输控制信息被没有正确被配置或者丢失,导致传输不能有序进行。
如果是总线传输错误,对于有数据校验的总线而言,可以由硬件来检测并要求重传进行数据的恢复。对于没有数据校验的总线而言,总线传输错误可以由软件来进行检测并要求重传。重传超过一定的次数,则放弃数据的传输。由于在传输接口中,数据读写的发起方都是主设备20,所以重传机制在主设备20上实现。在主设备20向从设备26传输数据的过程中,如果发生了总线传输错误,从机27将通知主机21,然后由主设备20对数据进行重发。在从设备26向主设备20传输数据的过程中,如果主机21检测到数据错误后,主设备20会对数据进行重读。
如果由于软件的某些潜在错误行为导致传输控制信息出现错误,则错误的检测和恢复都需要软件来完成,下面说明对各种信息的错误进行处理。
如果在主设备20向从设备26传输数据的过程中出现length信息错误,则从设备26将丢弃当前的数据包,并通过四字节的步长来读取数据,当遇到下一个数据包时,其识别主要依靠length信息和lencheck信息、seq信息等。如果在从设备26向主设备20传输数据过程出现length信息错误,则主设备20丢弃接收到的数据包,结束数据接收流程,等待下一次的数据传输中断请求。
从设备26向主设备20传输数据过程出现nextlen信息错误,主设备20将放弃连续读取数据包。
在主设备20向从设备26传输数据的过程中,如果出现nxtpkt_addr信息错误的情况,主设备20放弃连续读取数据包。
如果出现序列号seq信息错误的情况,主设备20只会发出警告,不会丢弃数据包。
如果出现信息标志flag错误的情况,一般情况下无法单独判断其正确性,必须结合相关的信息进行判断。
在从设备26向主设备20传输数据的过程中,可能出现credit信息错误,即DR地址不正确的情况。所以当出现起始地址加上credit的数值大于终止地址的情况时,就判断该数据无效,主设备20需要从从机27的寄存器更新DR地址。
当然,上述实施例仅是本发明较佳的实施方式,实际应用时,还可以有更多的改变,例如,对数据容错校验的方式可以根据实际情况改变;或者,链接有效性的判断条件也可以根据实际情况改变,这样的改变也能实现本发明的目的。
最后需要强调的是,本发明不限于上述实施方式,如数据信息结构的改变、存储器类型的改变等变化也应该包括在本发明权利要求的保护范围内。

Claims (8)

1.主从设备的数据传输方法,主设备与从设备均为无线网络设备,其特征在于:包括
主设备响应从设备发出的数据传输中断请求后,接收从设备传输的包含有链接有效性的数据,判断所述链接有效性是否为有效,如是,继续接收所述从设备传输的数据,否则,所述主设备检测某一个数据包的链接有效性为无效时,则读取当前数据包后,不再继续读取数据包,终止接收数据,直至接收到下次数据中断请求信号;
所述从设备在发送的数据包为连续发送的最后一个数据包时,将当前数据包的链接有效性置为无效;
其中,所述链接有效性的数据为所述从设备向所述主设备传输的数据中的链接有效性标志信息,用于标识所述从设备发送的下一数据的有效性;
当所述从设备连续地向所述主设备传输数据,当传输最后一个数据包时,不再传输下一个数据包,则认为下一个数据包不存在,此时将链接有效性设置为无效。
2.根据权利要求1所述的主从设备的数据传输方法,其特征在于:
所述主设备根据接收的当前数据包的链接信息判断所述从设备下一个需要传输的数据包的长度小于预设最小长度或者下一个需要传输的数据包存储区域与当前数据包的存储区域发生重叠或者下一个需要传输的数据包存储区域超出存储器的存储区域时,将当前数据包的链接有效性置为无效。
3.根据权利要求1或2所述的主从设备的数据传输方法,其特征在于:
所述从设备在所述主设备接收数据时标记所述主设备的状态为读取状态,在所述主设备终止接收数据后,将所述主设备的状态标记为非读取状态;
所述从设备向所述主设备传输数据前,判断所述主设备是否处于非读取状态,如是,向所述主设备发出数据传输中断请求,否则,不发出数据传输中断请求,继续向所述主设备传输数据。
4.根据权利要求1所述的主从设备的数据传输方法,其特征在于:
所述主设备向所述从设备传输的数据前,判断所述从设备的存储器是否处于全满状态,如是,终止向所述从设备传输数据,否则,向所述从设备传输数据。
5.根据权利要求4所述的主从设备的数据传输方法,其特征在于:
所述主设备判断所述从设备的存储器处于全满状态的步骤是:读取所述从设备的存储器上从设备数据读取目标地址与主设备数据写入目标地址,根据所述从设备数据读取目标地址与所述主设备数据写入目标地址判断所述存储器没有足够存储空间存储所需要传输的数据时,判断所述存储器处于全满状态。
6.根据权利要求5所述的主从设备的数据传输方法,其特征在于:
所述主设备从上一次从所述从设备接收的数据中或者所述从设备的寄存器中获取所述从设备数据读取目标地址。
7.根据权利要求4至6任一项所述的主从设备的数据传输方法,其特征在于:
所述从设备接收到所述主设备传输的数据后,将所接收到数据直接传递至后级处理,并根据所接收的数据的长度计算新的从设备数据读取目标地址。
8.根据权利要求4至6任一项所述的主从设备的数据传输方法,其特征在于:
所述从设备接收所述主设备传输的数据后,对所接收的数据进行容错校验处理。
CN201410009475.7A 2014-01-08 2014-01-08 主从设备的数据传输方法 Active CN103685578B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410009475.7A CN103685578B (zh) 2014-01-08 2014-01-08 主从设备的数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410009475.7A CN103685578B (zh) 2014-01-08 2014-01-08 主从设备的数据传输方法

Publications (2)

Publication Number Publication Date
CN103685578A CN103685578A (zh) 2014-03-26
CN103685578B true CN103685578B (zh) 2017-08-04

Family

ID=50321851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410009475.7A Active CN103685578B (zh) 2014-01-08 2014-01-08 主从设备的数据传输方法

Country Status (1)

Country Link
CN (1) CN103685578B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104253667A (zh) * 2013-06-28 2014-12-31 联芯科技有限公司 一种应用于手机平台的串行同步总线校验反馈系统和方法
CN107704404B (zh) * 2017-09-29 2021-03-12 湖南国科微电子股份有限公司 一种提高usb从设备读取速度的方法
CN108563518A (zh) * 2018-04-08 2018-09-21 广州视源电子科技股份有限公司 主从机通信方法、装置、终端设备及存储介质
CN109471814A (zh) * 2018-10-31 2019-03-15 龙迅半导体(合肥)股份有限公司 一种数据传输的方法、装置及主控制端
CN115543877B (zh) * 2022-11-29 2023-03-10 苏州浪潮智能科技有限公司 一种pcie数据传输方法及相关装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101056316A (zh) * 2007-06-22 2007-10-17 中兴通讯股份有限公司 一种pci以太网媒体访问控制器传输数据的方法
CN102253909A (zh) * 2011-06-30 2011-11-23 济南大学 Fpga环境下多用途pci接口及其数据传输方法
CN103166821A (zh) * 2011-12-12 2013-06-19 深圳市华为安捷信电气有限公司 实现串口通信的方法、设备及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101056316A (zh) * 2007-06-22 2007-10-17 中兴通讯股份有限公司 一种pci以太网媒体访问控制器传输数据的方法
CN102253909A (zh) * 2011-06-30 2011-11-23 济南大学 Fpga环境下多用途pci接口及其数据传输方法
CN103166821A (zh) * 2011-12-12 2013-06-19 深圳市华为安捷信电气有限公司 实现串口通信的方法、设备及系统

Also Published As

Publication number Publication date
CN103685578A (zh) 2014-03-26

Similar Documents

Publication Publication Date Title
CN103685578B (zh) 主从设备的数据传输方法
US5428766A (en) Error detection scheme in a multiprocessor environment
CN104702474B (zh) 一种基于FPGA的EtherCAT主站装置
US5245703A (en) Data processing system with multiple communication buses and protocols
CN1307570C (zh) 控制数据处理系统间经由存储器的数据流的方法和装置
US6871237B2 (en) System for controlling data transfer protocol with a host bus interface
CN102985889B (zh) 用于使用多个控制器进行通信的方法、系统和设备
CN101611383B (zh) 串行高级技术附件(sata)和串行附加的小型计算机系统接口(sas)桥接
US6668299B1 (en) Software interface between a parallel bus and a packet network
CN108595353A (zh) 一种基于PCIe总线的控制数据传输的方法及装置
CN109710548A (zh) 一种dma控制数据传输方法、系统及设备
JPS60500195A (ja) デイジタル通信リンクに円滑に割込む方法と装置
CN105978997A (zh) 数据传输方法和系统
US20070088874A1 (en) Offload engine as processor peripheral
CN103049240B (zh) Pci-e设备及其接收数据重排序方法
CN201626437U (zh) 一种多功能车辆总线控制器和多功能车辆总线网卡
CN102165739A (zh) 使用散列对经由rdma写入的消息的可靠接收
CN204733178U (zh) 一种基于FPGA的EtherCAT主站装置
US20010051994A1 (en) Computer system and a data transfer method thereof
CN101447931B (zh) 一种排他操作的实现方法和装置
CN103368703B (zh) 数据包重传方法、数据包接收方法及装置
CN105989537A (zh) 一种证券及金融衍生品交易风险控制系统及风险控制方法
US20120096195A1 (en) Data transfer device and data transfer method
US7032080B2 (en) Plural station memory data sharing system
CN109542834A (zh) 一种确定nc芯片连接错误的方法及nc芯片

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant