CN114978426B - 数据传输方法及系统 - Google Patents
数据传输方法及系统 Download PDFInfo
- Publication number
- CN114978426B CN114978426B CN202210538993.2A CN202210538993A CN114978426B CN 114978426 B CN114978426 B CN 114978426B CN 202210538993 A CN202210538993 A CN 202210538993A CN 114978426 B CN114978426 B CN 114978426B
- Authority
- CN
- China
- Prior art keywords
- data
- data packet
- index
- packet
- actual load
- 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
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 156
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000012795 verification Methods 0.000 claims abstract description 29
- 230000002452 interceptive effect Effects 0.000 claims description 47
- 238000005538 encapsulation Methods 0.000 claims description 26
- 239000000872 buffer Substances 0.000 claims description 23
- 230000007246 mechanism Effects 0.000 claims description 19
- 238000012544 monitoring process Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 14
- 238000004806 packaging method and process Methods 0.000 claims description 11
- 238000013507 mapping Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 description 10
- 230000006854 communication Effects 0.000 description 8
- 238000004458 analytical method Methods 0.000 description 7
- 230000009471 action Effects 0.000 description 6
- 238000012546 transfer Methods 0.000 description 6
- 238000004364 calculation method Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000012790 confirmation Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012482 interaction analysis Methods 0.000 description 3
- 238000003032 molecular docking Methods 0.000 description 3
- 230000003139 buffering effect Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000014759 maintenance of location Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1806—Go-back-N protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种数据传输方法及系统,其中数据传输方法,包括:发送端将每次待传输的数据的实际内容以及所述实际内容的校验信息封装为实际载荷数据包,同时将所述待传输的数据的索引信息以及所述索引信息的校验信息封装为索引数据包,所述索引数据包的数据量小于所述实际载荷数据包;发送端将所述实际载荷数据包与其对应的索引数据包成组发送给接收端;接收端优先对每一组实际载荷数据包及其索引数据包中的所述索引数据包进行解析并校验,当所述索引数据包校验失败时,则重传NUM(auto_resend)次,若重传N次失败,则判定传输介质故障,所述NUM(auto_resend)大于等于1,所述N≤NUM(auto_resend)。本发明可以尽快发现传输介质故障。
Description
技术领域
本发明涉及数据通信传输的技术领域,尤其涉及一种可尽早发现传输介质故障的数据传输方法及系统。
背景技术
在数据通信过程中,由于各种干扰因素的存在,无论是电磁干扰或者传输介质不稳定引入带来的干扰,在数据的通信传输过程出现错误总是不可避免。为了提高数据传输的可靠性,现有技术中在发送端对数据进行处理,加入了校验方式。接收端依赖发送端的发送方式和校验方式对接收数据的进行校验,从而达到数据传输的正确性的检查目的。而且在数据通信过程中,数据传输的正确性必须保证。例如关键数据的发行和下载,如果没有校准机制,错误的数据直接引入系统,会导致严重的系统问题。再例如置于otp中启动程序的发行失败可能会导致芯片复位后无法正常启动。再例如应用程序下载过程中由于数据出错会导致芯片无法正常工作的问题。
在确保数据通信正确的同时,对于数据传输而言,单次传输的数据量越大,则传输效率越高。这样会导致现有技术的校验方式的弊端,通常需要接收大量数据,并对大量数据进行校验完成之后,才能发现通信错误,因而纠错效率较低。尤其是传输介质故障时,现有技术需要经过很长时间才能发现。
因此,在数据通信过程中,除了对数据传输的正确性关注之外,还需要考虑实时性的问题,因为如果一个系统某个环节或某个模块在识别或处理传输错误问题的效率很低,那势必会影响整个系统的整体运行效率。
因此,如何提供一种发现故障的实时性更高的数据传输方法是业界亟待解决的技术问题。
发明内容
为了解决现有技术中数据传输时若传输介质发生故障现有技术应对实时性不够高的技术问题,本发明提出了数据传输方法及系统。
本发明提出的数据传输方法,包括:
发送端将每次待传输的数据的实际内容以及所述实际内容的校验信息封装为实际载荷数据包,同时将所述待传输的数据的索引信息以及所述索引信息的校验信息封装为索引数据包,所述索引数据包的数据量小于所述实际载荷数据包;
所述发送端将所述实际载荷数据包与其对应的索引数据包成组发送给接收端;
所述接收端优先对每一组实际载荷数据包及其索引数据包中的所述索引数据包进行解析并校验,当所述索引数据包校验失败时,则重传NUM(auto_resend)次,若重传N次失败,则判定传输介质故障,所述NUM(auto_resend)大于等于1,所述N≤NUM(auto_resend)。
进一步,所述发送端优先发送每一组实际载荷数据包及其索引数据包中的所述索引数据包,等待所述索引数据包校验成功后,再发送所述索引数据包对应的实际载荷数据包;和/或
所述接收端优先接收每一组实际载荷数据包及其索引数据包中的所述索引数据包,等待所述索引数据包校验成功后,再接收所述索引数据包对应的实际载荷数据包。
进一步,所述索引信息包括:所述实际内容的实际载荷长度、所述索引数据包的包边界特征字。
进一步,所述接收端根据解析所述索引数据包得到的所述实际内容的实际载荷长度选择该索引数据包对应的实际载荷数据包进行接收。
进一步,所述索引信息还包括:所述实际载荷数据包的访问操作属性、所述实际载荷数据包的承载数据属性、定制扩展位域当中的至少一种。
进一步,当所述实际载荷数据包校验失败时,则重传NUM(auto_resend)次。
进一步,所述NUM(auto_resend)通过公式NUM(auto_resend) = T(tran_delay_para) / T(tran_delta_time)计算得到,所述T(tran_delay_para)为预设的最大延迟时间,所述T(tran_delta_time)为实时监测得到的当前校验失败的所述索引数据包或所述载荷数据包在传输介质内的包传输跨度时间。
进一步,所述实际载荷数据包的最大数据量根据所述预设的最大延迟时间进行配置。
进一步,所有所述实际载荷数据包对应的索引数据包的数据长度均为相同定长。
进一步,数据传输方法还包括:
当本次待传输的数据包含不同类型的数据时,先将所述待传输的数据进行分类,将不同类别的数据封装为属性不同的属性数据包,再将各属性数据包分别封装为各属性数据包对应的所述实际载荷数据包和索引数据包。
进一步,所述属性数据包包括寄存器配置属性对应的属性数据包;
所述寄存器配置属性对应的属性数据包的索引数据包包括:用于表征寄存器配置写访问或查询读访问的访问操作属性、承载数据属性、用于表征配置寄存器总量的实际载荷长度、用于表征数据结构的定制扩展位域;
所述寄存器配置属性对应的属性数据包的实际载荷数据包包括:写操作对应的目标模块寄存器的映射地址和目标模块寄存器的有效位域的配置参数。
进一步,所述校验信息为CRC校验信息。
本发明提出的数据传输系统,包括发送端和接收端,以及连接发送端和接收端的传输介质,所述发送端和接收端采用上述技术方案所述的数据传输方法实现待传输的数据在所述传输介质中的传输。
进一步,所述发送端包括:
索引数据封装单元,用于封装所述索引数据包;
实际载荷数据封装单元,用于封装所述实际载荷数据包;
封装数据校验信息生成单元,用于生成所述索引信息的校验信息以及所述实际内容的校验信息;
交互式的数据包发送单元,用于发送所述索引数据包及其对应的实际载荷数据包。
进一步,所述发送端还包括:
基于属性的数据包封装单元,用于当待传输的数据包含不同类型的数据时,将所述待传输的数据进行分类,将不同类别的数据封装为属性不同的属性数据包。
进一步,所述发送端还包括:
数据包队列下行管道单元,用于缓冲待发送的所述索引数据包及其对应的实际载荷数据包;
下行队列超时监视单元,监视数据包队列下行管道单元内部缓冲区的写状态。
进一步,所述交互式的数据包发送单元包括:
重发机制的发送缓冲单元,实时监视接收端反馈的校验失败信息,若收到校验失败信息,则进行重传,直至校验成功或者重传次数达到N;
包传输跨度时间监视单元,对所述索引数据包或者实际载荷数据包的包传输跨度时间进行监视。
进一步,所述接收端包括交互式的数据包接收单元,所述交互式的数据包接收单元包括:
封装数据包边界识别单元,用于识别所述索引数据包的包头特征字;
索引数据包处理单元,对所述索引数据包进行校验,若校验失败则反馈给发送端,若校验成功则将得到的索引信息提供给实际载荷数据包处理单元;
实际载荷数据包处理单元,根据所述索引信息确定实际载荷数据包的区间以及校验信息,对所述实际载荷数据包进行校验,若校验失败则反馈给发送端,若校验成功则传递给待分发数据的缓冲单元;
待分发数据的缓冲单元,对校验成功的实际载荷数据包进行缓冲。
本发明提出有效载荷数据包的关联数据的思想,索引数据包的长度远小于实际载荷数据包长度;索引数据包是早于实际载荷数据包出现在数据通道(交互传输层)。索引数据包的较小长度定义对交互传输层的介质导致CRC错误问题能够提早识别;或者在整个实际传输过程中由于电气特性等相关异常波动导致的CRC错误问题能够提高识别效率。
本发明提出有效载荷数据包的关联数据的思想,索引数据包内包含实际载荷数据包的关联数据或关联信息。索引数据包的CRC错误反馈,能够预判并阻断对应后续实际载荷数据包的无效发送行为,降低交互传输层无效传输的带宽问题。
本发明对外部输入的数据进行属性划分,得到属性数据包,经过定制化封装后形成索引数据包、实际载荷数据包,各自附带CRC信息。索引数据包包含实际载荷数据包的长度等摘要信息,实际载荷数据包的的解析依赖索引数据包的定义,两者之间存在数据信息关联的状态,但又彼此在传输过程中保持先后顺序,是本发明交互式传输的数据结构定义的核心。
本发明还提出重发机制的方法,在发送端(交互式的数据包发送单元)自动识别CRC错误的反馈信息,自动确定重发次数。在接收端(交互式的数据包接收单元)基于索引数据包、实际载荷数据包的新型的数据结构定义,自动完成封装数据包边界识别、计算任务、反馈任务、确认任务,并通过CRC检验实时反馈通道实时反馈CRC校验结果至交互式传输的发送单元,辅助发送端(交互式的数据包发送单元)重发机制的实施。
本发明定义的数据结构以及自动上报校验错误、自动识别校验错误、自动生成重发次数,都为实现数据通信领域传输纠错、传输正确性、传输实时性,带来新的方法和思路。
附图说明
下面结合实施例和附图对本发明进行详细说明,其中:
图1是本发明一实施例的整体流程图。
图2是本发明一实施例的结构示意图。
图3是本发明一实施例的数据包的组成结构示意图。
图4是本发明一实施例的交互式的数据包发送单元的结构示意图。
图5是本发明一实施例的交互式的数据包接收单元的结构示意图。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
由此,本说明书中所指出的一个特征将用于说明本发明的一个实施方式的其中一个特征,而不是暗示本发明的每个实施方式必须具有所说明的特征。此外,应当注意的是本说明书描述了许多特征。尽管某些特征可以组合在一起以示出可能的系统设计,但是这些特征也可用于其他的未明确说明的组合。由此,除非另有说明,所说明的组合并非旨在限制。
如图1所示,本发明提出的数据传输方法,发送端将每次待传输的数据的实际内容以及所述实际内容的校验信息封装为实际载荷数据包,同时将该待传输的数据的索引信息以及索引信息的校验信息封装为索引数据包,封装好的索引数据包的数据量远小于实际载荷数据包。在一个具体实施例中,本发明的校验信息为CRC校验信息,采用CRC校验信息可以具备更好的实时性。
接着,发送端将实际载荷数据包与其对应的索引数据包成组发送给接收端。本发明所指的成组在带宽允许的情况下可以是索引数据包和实际载荷数据包一起发送,也可以是一组索引数据包和实际载荷数据包按序进行发送,例如先发送索引数据包,待索引数据包发送成功(校验成功)后,再发送索引数据包对应的实际载荷数据包。
由于索引数据包的数据量远小于实际载荷数据包,因此,索引数据包的发送速度更快,同样的解析速度、校验速度也会更快,因此接收端优先对每一组实际载荷数据包及其索引数据包中的索引数据包进行解析并校验,当索引数据包校验失败时,则重传NUM(auto_resend)次,如果重传N次该索引数据包仍旧失败,则判定传输介质故障,NUM(auto_resend)大于等于1,N≤NUM(auto_resend)。
公开号为CN109787713A、专利名称为“一种循环冗余校验CRC计算方法和装置”的现有专利中也利用了CRC校验,该现有专利公开了当数据传输在“传输跨度范围的前期阶段”或者对应“传输数据的首部”由于一些链路电气特性故障的原因,导致“当前实际传输的数据”和“当前期望传输的数据不一致”,由于依赖整个数据传输结束的时刻才能校验出“实际传输数据的CRC值”和“期望传输数据的CRC值”不匹配,相当于早期传输错误未能及时监视到,发送端没有接收到错误反馈,导致后续数据传输属于无意义的状态,造成传输带宽有效利用率降低的问题。基于CRC的数据传输数据块,通常的做法,整个数据块需要满足CRC的校验正确性后,才能进入应用解析的流程。由于依赖整个数据传输结束的时刻,才能推断出“实际传输数据的CRC值”和“期望传输数据的CRC值”匹配。在一些实时性较高的解析应用场景,由于数据包传输的时间跨度大(数据包封装数据量过大原因),应用需要分配缓冲资源进行数据缓冲,当一些应用依赖于“传输包内的位域”的提取、译码、运算结果才能执行特定的任务时,导致应用解析的滞后性,从而影响解析效率。通过对比可以发现,本发明很好地解决了该现有技术发现问题不够及时的问题。本发明通过将每次待传输的数据封装为索引数据包和实际载荷数据包,并且接收端优先对数据量很小的索引数据包进行解析并校验,这样可以尽早发现传输介质的问题。
在一个最优实施例中,所有实际载荷数据包对应的索引数据包的数据长度均为相同定长。这样方便软件内部结构体设计和程序调用。索引数据包中的定制扩展位域支持定制的设计,可以针对不同的CPU取指令和取数据的操作、驱动程序的入口的控制参数进行定义。新定义的内容或参数放置在定制扩展位域中。
而实际载荷数据包的长度设计为“可定制化的变长”。可定制化的变长的数据包格式,除了兼顾或兼容不同系统对传输包的传输的承载量、数据包的缓冲区的差异性之外,也是本发明实现交互式的数据传输的具体实施的基础。
在一个较优实施例中,发送端优先发送每一组实际载荷数据包及其索引数据包中的索引数据包,等待索引数据包校验成功后,再发送索引数据包对应的实际载荷数据包;和/或接收端优先接收每一组实际载荷数据包及其索引数据包中的索引数据包,等待索引数据包校验成功后,再接收索引数据包对应的实际载荷数据包。这几种较优实施例都是优先发送和/或接收索引数据包,由于索引数据包所占据的带宽少,因而用少量带宽少量时间就可以快速发现传输介质的故障。
在一个实施例中,索引信息包括:本次待传输的数据的实际内容的实际载荷长度、本次待传输的数据的索引数据包的包边界特征字。那么这意味着索引数据包的最小数据量为2word,1word=4bytes,接收端优先解析索引数据包,可以根据解析索引数据包得到的实际内容的实际载荷长度选择该索引数据包对应的实际载荷数据包进行接收,避免索引数据包及其对应的实际载荷数据包无法同批次进行处理。
在进一步的实施例中,索引信息还包括:实际载荷数据包的访问操作属性、实际载荷数据包的承载数据属性、定制扩展位域当中的至少一种。在这个实施例中,索引数据包的数据量的大小范围为[5word:5+n],即索引数据包的数据量最少为5word,最大为5word+nword,相对较于实际载荷数据包来说,数据量大小依旧非常小。
在一个实施例中,如果当本次待传输的数据包含不同类型的数据时,先将待传输的数据进行分类,将不同类别的数据封装为属性不同的属性数据包,再将各属性数据包分别封装为各属性数据包对应的实际载荷数据包和索引数据包,然后再一组组进行发送。
从上述技术方案可以看出,本发明提出的定制化封装的思想在构建传输数据包目标时,为结构相对固定、内容可定制的数据封装思想。基于本发明的结构相对固定的封装思想,使得数据处理过程中的解析流程的环节相对固定,不管是硬件方面的设计、还是软件方面的设计,很容易构建流水线的操作方式,提升交互效率和交互的吞吐率。基于本发明结构相对固定的封装思想,可以有效地控制数据传输的颗粒度,从而满足重传机制下数据传输实时性、吞吐率的需求。基于本发明结构相对固定的封装思想,可以降低硬件设计实现资源,例如使用状态机设计中,减少状态分支设计的定义,减少状态跳转切换的逻辑。降低实现难度的同时还能兼顾效率性能方面的指标。基于本发明的结构相对固定、内容可定制的封装思想,给予软件应用开发灵活性的同时,也给硬件设计升级和扩展方面带来便利性。
上述技术方案中,如果实际载荷数据包校验失败时,则也对实际载荷数据包重传NUM(auto_resend)次。索引数据包的NUM(auto_resend)的取值与实际载荷数据包的NUM(auto_resend)的取值并不相同。具体的, NUM(auto_resend)通过公式NUM(auto_resend)= T(tran_delay_para) / T(tran_delta_time)计算得到,其中T(tran_delay_para)为预设的最大延迟时间,其时间跨度的大小由以下因素决定:索引数据包的定长决定,或者实际载荷数据包的 “可定制化的变长”的实际定制长度规格决定。在本发明的具体实施例中,T(tran_delta_time)参数由包传输跨度时间监视单元进行实时提取。在本发明实施例中,作为一个外部配置参数引入到本实施例的装置中。T(tran_delta_time)为实时监测得到的当前校验失败的索引数据包或载荷数据包在传输介质内的包传输跨度时间。
为了可以实现重传,实际载荷数据包的最大数据量根据预设的最大延迟时间进行配置。例如,配置预设的最大延迟时间为60秒,那么实际载荷数据包的最大数据量可以配置为需要传输11秒,对应的索引数据包数据量相对较小,则可能只需要传输1秒。那么实时监测得到的当前校验失败的索引数据包在传输介质内的包传输跨度时间为1秒,则索引数据包可以重传60次,即NUM(auto_resend)的取值为60,如果发送N次,索引数据包依旧发送失败,则可以判定传输介质故障,例如索引数据包传输10次,依旧不成功,则判断传输介质故障。而实时监测得到的当前校验失败的实际载荷数据包在传输介质内的包传输跨度时间为11秒,则实际载荷数据包的重传次数最多为5次,该实际载荷数据包对应的NUM(auto_resend)的取值为5。通过比较可以发现,通过索引数据包使得数据传输系统可以用少量的时间就能发现传输介质故障。即便是索引数据包重传60次再判定传输介质故障,由于索引数据包的数据量很小,传输、解析和校验非常快,依旧会比大数据量的实际载荷数据包重传5次再判定传输介质故障要快得多。
如图2所示,本发明的数据传输系统包括发送端和接收端,以及连接发送端和接收端的传输介质,其中发送端和接收端采用上述技术方案的数据传输方法实现待传输的数据在传输介质中的传输。
具体的,发送端至少包括索引数据封装单元、实际载荷数据封装单元、封装数据校验信息生成单元以及交互式的数据包发送单元。
索引数据封装单元用于封装索引数据包。
实际载荷数据封装单元用于封装实际载荷数据包。
封装数据校验信息生成单元用于生成索引信息的校验信息以及实际内容的校验信息。图2中所示的实施例中,封装数据校验信息生成单元具体为封装数据CRC生成单元。封装数据CRC生成单元将属性数据包经过定制化封装后两类数据包(索引数据包、实际载荷数据包)分别进行CRC校验数据生成,本发明不对CRC具体实现对应的多项式进行限定。本发明实施例中,封装数据CRC生成单元默认采用标准CRC32,采用全零初值,保证每个定制化封装数据包之间的CRC结果互不影响。
交互式的数据包发送单元用于发送索引数据包及其对应的实际载荷数据包。交互式的数据包发送单元进一步包括重发机制的发送缓冲单元以及包传输跨度时间监视单元。
重发机制的发送缓冲单元用于当对应的数据包校验失败时,对对应的数据包进行重发。包传输跨度时间监视单元则用于实时监测得到的当前校验失败的索引数据包或载荷数据包在传输介质内的包传输跨度时间。重发机制的发送缓冲单元实时监视来自交互式的数据包接收单元的CRC_ERROR的反馈状态,启动“包级”颗粒度(索引数据包或实际载荷数据包)的重发。本实施例中定义的CRC校验实时反馈状态通道,可以是反馈信号的物理连接,或者是“主机”访问“从机”获取状态的数据返回方式。
在本实施例中包传输跨度时间监视单元,定义两个时刻点的差值为包传输跨度时间。包传输跨度起点时间:索引数据包或实际载荷数据包的起始数据进入数据通道的时刻。包传输跨度终点时间:索引数据包或实际载荷数据包对应的CRC数据位域进入数据通道的时刻。包传输跨度时间=包传输跨度终点时间-包传输跨度起点时间。
发送端还可以包括基于属性的数据包封装单元,基于属性的数据包封装单元用于当待传输的数据包含不同类型的数据时,将待传输的数据进行分类,将不同类别的数据封装为属性不同的属性数据包。
发送端还可以包括数据包队列下行管道单元以及下行队列超时监视单元。
数据包队列下行管道单元用于缓冲待发送的索引数据包及其对应的实际载荷数据包。
下行队列超时监视单元监视数据包队列下行管道单元内部缓冲区的写状态。
为了方便描述,进一步把属性数据包定义为(data_packet),定制化封装的索引数据包定义为(index_packet),定制化封装的实际载荷数据包定义为(payload_packet)。封装数据CRC生成单元对索引数据包(index_packet)对应生成CRC参考值(CRC_index_packet),附在索引数据包(index_packet)的尾部,发送至数据包队列下行管道单元。封装数据CRC生成单元对实际载荷数据包(payload_packet)对应生成CRC参考值(CRC_payload_packet),附在实际载荷数据包(payload_packet)的尾部,发送至数据包队列下行管道单元。
数据包队列下行管道单元在本实施例中主要是缓冲待发送的数据包,包括:附带CRC参考值(CRC_index_packet)的索引数据包(index_packet)、附带CRC参考值(CRC_payload_packet)的实际载荷数据包(payload_packet)。
下行队列超时监视单元在本实施例中主要是监视数据包队列下行管道单元内部缓冲区的写状态,当重发机制下,存在下行队列数据长时间滞留在数据包队列下行管道单元的状态(定义为:管道数据滞留超时状态)。管道数据滞留超时状态的定义为以下两个条件同时满足:条件1下行队列有数据 、条件2下行管道单元内部缓冲区的无写状态。
接收端包括交互式的数据包接收单元,还可以包括数据路由分发单元,数据路由分发单元将交互式的数据包接受单元内的正确的有效载荷数据包,结合当前“有效载荷数据包“对应的”索引数据包“中的关联索引信息,将有效载荷数据包分发到下位机或下位机多个内部模块。
上述交互式的数据包接收单元进一步包括封装数据包边界识别单元、索引数据包处理单元、实际载荷数据包处理单元、待分发数据的缓冲单元。
封装数据包边界识别单元用来识别索引数据包的封装边界,即解析索引数据包上边界数据。本实施例定义索引数据包上边界为:包头特征字符。
索引数据包处理单元需要执行计算任务、反馈任务、确认任务。
计算任务:计算索引数据包“索引CRC位域之外”的CRC计算结果为crc_result(index)。本发明定义索引CRC位域为crc_expect(index),位于索引数据包的尾部。
反馈任务:当计算crc_result(payload)和期望crc_expect(index)不匹配,说明索引数据包传输过程出现错误。CRC校验出错产生实时反馈动作,反馈给交互式的数据包发送单元。交互式的数据包发送单元启动当前索引数据包(index_packet)的重传,阻止对应的实际载荷数据包(payload_packet)无效传输动作。本发明定义的索引数据包中包含有效载荷数据包的长度的定义,索引数据包出现CRC校验失败表征的实际载荷长度的信息可能不可靠。
本发明定义的“关联数据跨包传输”的思想(索引数据包中的“实际载荷长度”表征实际载荷数据包的有效数据总量),将“数据索引信息”、”数据的实际内容”分开传输,并单独基于CRC算法生成校验信息,避免错误数据污染传输的问题。本发明提到的污染传输:CRC校验出错的索引数据包中的“实际载荷长度位域”,去界定实际载荷数据包的边界或长度是错误的。
本发明定义的“关联数据跨包传输”的思想,通常实际载荷数据包的长度会远远大于索引数据包的长度,索引数据包是早于有效载荷数据包出现在数据通道(交互传输层),所以属性数据包经过定制化封装成索引数据包,可以提早发现数据通道(传输交互层)类似于传输介质故障导致CRC错误的问题,从而避免无效的大块数据传输结束后才能发现CRC错误的问题。
确认任务:当匹配期望crc_result(index)和crc_expect(index)匹配,说明索引数据包传输过程没有出现错误。解析出当前索引包中的关联有效载荷数据包的“实际载荷长度”payload_len(from-index),提供给实际载荷数据包处理单元。
实际载荷数据包处理单元,对实际载荷数据包进行相应的处理。其包含四个任务:识别有效数据边界任务、计算任务、反馈任务、确认任务。
确定有效数据边界任务:根据索引数据包处理单元提供的实际载荷长度信息(payload_len(from-index) ),界定实际载荷数据包的区间(包括上边界、下边界)、有效数据CRC位域。
计算任务:实际载荷数据包“实际载荷CRC位域之外”的CRC计算结果为crc_result(payload)。本发明定义实际载荷CRC位域为crc_expect(payload),位于有效载荷数据包的尾部。
反馈任务:当计算crc_result(payload)和期望crc_expect(index)不匹配,说明有效载荷数据包传输过程出现错误。CRC校验出错产生实时反馈动作,反馈给交互式的数据包发送单元。交互式的数据包发送单元启动当前有效载荷数据包(payload_packet)的重传,阻止下一个的“索引数据包”(index_packet)传输动作。
确认任务:当匹配期望crc_result(payload)和crc_expect(payload)匹配,说明有效载荷数据包传输过程没有出现错误。
待分发数据的缓冲单元用于缓冲CRC校验完全正确的实际载荷数据包。
如图2、图3所示,为更好的描述本发明的具体实施例,本发明定义的数据传输系统为图中的边框内的区域,在描述本发明的实施例之前, 先声明定义本发明的数据传输系统的输入和输出对接定义,即本实施例的输入对接模块为上位机、输出对接模块为下位机,下位机包括多种形态:单个下位机、多个下位机、或者是单个下位机内部多个模块等,不限于图中所示出的这一种方式。
本发明的数据传输系统工作时,先对下行文件系统文件(即本发明的数据传输系统的输入数据)的属性进行分类,封装得到不同的属性数据包。属性数据包经过定制化封装后对应形成索引数据包、实际载荷数据包。索引数据包、实际载荷数据包各自附带CRC校验数据后,进入传输介质(传输介质包括数据通道、CRC校验实时反馈通道)。交互式的数据包发送单元和交互式的数据包接收单元通过传输交互层进行交互式数据传输。交互式的数据包发送单元中支持重发机制,在定义的数据传输延迟参数的范围内(即预设的最大延迟时间的范围内)、自动统计定制封装数据包的传输跨度时间、自动识别CRC错误的反馈信息(来自交互式的数据包接收单元)、自动统计重发次数、自动完成定制封装数据包的重发任务。交互式的数据包接收单元将经过CRC校验的正确封装数据包提供给数据路由分发单元,从而实现不同数据类型从上位机到下位机的正确传输。采用本发明的上述方法或系统后,满足上位机到下位机的数据传输方面的快速封装和识别的需求、CRC错误情况下自适应的重传机制的实时性需求、数据传输正确性和可靠性的要求。本发明的数据传输系统所实现的实时交互解析包括多种实现形态,也就是本发明所指的传输介质的可应用的具体场景包括:软件驱动任务的相互交互解析方式、芯片设计逻辑模块之间的相互交互解析方式、板级器件之间的相互交互解析方式等。
其中,基于属性的数据包封装单元,接收上位机的数据(包括直接文本数据、外设输入数据等形式)。从应用场景角度可以定义多种数据类型,多种数据属性。本发明所定义的属性并没有覆盖本发明的全部定义,仅从方便理解的角度去举例定义以下几种属性:包括寄存器配置属性、CPU运行程序属性(用于下载或加载)、DMA调度数据属性等。
基于属性的数据包封装单元输出的属性数据包,可以包含以下类型,如寄存器配置属性的单个数据包、CPU运行程序属性(用于下载或加载)的单个数据包、DMA调度数据属性的单个数据包、寄存器配置属性的数据包的多个切片数据包、CPU运行程序属性(用于下载或加载)的数据包的多个切片数据包、DMA调度数据属性的数据包的多个切片数据包等具体应用形态。
索引数据封装单元和实际载荷数据封装单元,针对基于属性的数据包封装单元的输出(属性数据包),经过索引数据封装单元和实际载荷数据封装单元后,定制化封装成属性数据包的索引数据包(也可以简称为:索引数据包)、属性数据包的实际载荷数据包(也可以简称为:实际载荷数据包)。
在一个实施例中,本发明的索引数据封装单元将属性数据包定制化封装成索引数据包(结构相对固定、内容可定制)。索引数据包包含应用解析的直接操作定义内容,直接操作定义内容包括:包边界特征字(用于识别索引数据包的上边界)、访问操作属性(写访问、读访问等)、承载数据属性(程序属性、数据属性等)、实际载荷长度(当前索引数据包对应关联实际载荷数据包的内容长度)、定制扩展位域(保留位域,用于今后的设计扩展,未使用可以将该保留位域预置成全0/1)、索引CRC(即对索引数据包中除索引CRC位域之外的内容进行CRC运算的结果)。
在一个实施例中,本发明的实际载荷封装单元将属性数据包定制化封装成实际载荷数据包(结构相对固定、内容可定制)。属性数据包的实际载荷数据包含:载荷内容(对应索引数据包的待操作数据)、实际载荷CRC(即对实际载荷数据包中除实际载荷CRC位域之外的内容进行CRC运算的结果)。
为了更好理解本发明提到的结构相对固定、内容可定制的数据封装思想,本发明进一步详细举例3种属性数据包,即:寄存器配置属性对应的属性数据包、CPU运行程序属性(下载或加载)、DMA调度数据对应的属性数据包,下面详细描述三种属性数据包封装为索引数据包和实际载荷数据包之后所包含的具体内容。
其中,寄存器配置属性的索引数据包,包括:访问操作属性(配置写访问、查询读访问);承载数据属性(数据属性);实际载荷长度(配置寄存器总量);定制扩展位域(数据结构)。
寄存器配置属性的实际载荷数据包,包括:实际载荷数据(写操作对应的目标模块寄存器的映射地址和目标模块寄存器的有效位域的配置参数。
本实施例利用实际载荷数据包的数据实现对模块寄存器的配置,执行配置的对象可以是通常的CPU,也可以是非CPU的其它主设备,解析出”寄存器地址“”寄存器内容“参数,就能对目标寄存器执行配置动作。可见,采用本发明定义可定制封装数据包,可以跳过CPU取指、译码、执行的流程,或者释放CPU总线访问,直接操作目标寄存器。
CPU运行程序属性(下载或加载)的索引数据包,包括:访问操作属性(程序下载、程序加载);承载数据属性(程序属性);实际载荷长度(下载、加载程序总量);定制扩展位域(下载或加载程序的起始地址)。
CPU运行程序属性(下载或加载)的实际载荷数据包,包括:实际载荷数据(通常是可执行程序的二进制文件内容)。
本实施例中,CPU运行程序属性(下载或加载)的索引数据包中的定制扩展位域,根据应用扩展成 “下载或加载程序的起始地址”。索引数据包针对“寄存器配置属性”和“CPU运行程序属性(下载或加载)”保持结构上一致,只是在定制扩展位域做了差异化扩展标记。这也是本发明提出的结构相对固定、内容可定制的数据封装思想的具体实施体现。
DMA调度数据的索引数据包,包括:访问操作属性(DMA调度数据属性);承载数据属性(数据属性);实际载荷长度(DMA搬运数据总量);定制扩展位域(DMA搬运源地址、DMA搬运目的地址)。
DMA调度数据的实际载荷数据包:实际载荷数据(DMA搬运的源数据)。
本实施例中,DMA调度数据属性的的索引数据包中的定制扩展位域,根据应用扩展成 “DMA搬运源地址、DMA搬运目的地址”。索引数据包针对“寄存器配置属性”、“CPU运行程序属性(下载或加载)”和“DMA调度数据属性”保持结构上一致,只是在定制扩展位域做了差异化扩展标记。这也是本发明提出的结构相对固定、内容可定制的数据封装思想的具体实施体现。
本发明中定义的时间采用计数器计数的线性映射关系。
当出现CRC校验出错的场景时,即重发机制下,交互式的数据包发送单元实时监视到交互式的数据包接收单元的第1次CRC_ERROR的反馈状态,如果1*T(tran_delta_time)<T(tran_delay_para), 发起1次重传。
当出现CRC校验出错的场景时,即重发机制下,交互式的数据包发送单元实时监视到交互式的数据包接收单元的第2次CRC_ERROR的反馈状态,如果2*T(tran_delta_time)<T(tran_delay_para), 发起2次重传。
当出现CRC校验出错的场景时,即重发机制下,交互式的数据包发送单元实时监视到交互式的数据包接收单元的第3次CRC_ERROR的反馈状态,如果3*T(tran_delta_time)<T(tran_delay_para), 发起3次重传。
当出现CRC校验出错的场景时,如果n*T(tran_delta_time) > T(tran_delay_para) ,不会再重发,只会发起n-1次重传,如果接收端仍然无法收到正确的数据包,该情况可能是传输交互层的介质问题导致传输数据的错误。
在更优的实施例中,重发机制下,交互式的数据包发送单元实时监视到交互式的数据包接收单元的连续多次CRC_ERROR的反馈状态(即校验失败的反馈状态),通过事件或中断的方式通知上位机,避免本实施例的装置长时间处于数据传输阻塞的状态。
在更优的实施例中,重发机制的数据包发送单元,采用乒乓缓冲的机制,可以降低当前“重发包”和“重发包后续数据包”的时间间隔,避免重发机制下,带来的系统传输延迟的负面影响。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。本领域技术人员知悉的,在不脱离本发明的精神和范围的情况下,可以对这些特征和实施例进行各种改变或等效替换。另外,在本发明的教导下,可以对这些特征和实施例进行修改以适应具体的情况及材料而不会脱离本发明的精神和范围。因此,本发明不受此处所公开的具体实施例的限制,所有落入本申请的权利要求范围内的实施例都属于本发明所保护的范围内。
Claims (17)
1.一种数据传输方法,其特征在于,包括:
发送端将每次待传输的数据的实际内容以及所述实际内容的校验信息封装为实际载荷数据包,同时将所述待传输的数据的索引信息以及所述索引信息的校验信息封装为索引数据包,所述索引数据包的数据量小于所述实际载荷数据包;
所述发送端将所述实际载荷数据包与其对应的索引数据包成组发送给接收端;
所述接收端优先对每一组实际载荷数据包及其索引数据包中的所述索引数据包进行解析并校验,当所述索引数据包校验失败时,则重传NUM(auto_resend)次所述索引数据包,若重传N次失败,则判定传输介质故障,所述NUM(auto_resend)大于等于1,所述N≤NUM(auto_resend)。
2.如权利要求1所述的数据传输方法,其特征在于,所述发送端优先发送每一组实际载荷数据包及其索引数据包中的所述索引数据包,等待所述索引数据包校验成功后,再发送所述索引数据包对应的实际载荷数据包;和/或
所述接收端优先接收每一组实际载荷数据包及其索引数据包中的所述索引数据包,等待所述索引数据包校验成功后,再接收所述索引数据包对应的实际载荷数据包。
3.如权利要求2所述的数据传输方法,其特征在于,所述索引信息包括:所述实际内容的实际载荷长度、所述索引数据包的包边界特征字。
4.如权利要求3所述的数据传输方法,其特征在于,所述接收端根据解析所述索引数据包得到的所述实际内容的实际载荷长度选择该索引数据包对应的实际载荷数据包进行接收。
5.如权利要求3所述的数据传输方法,其特征在于,所述索引信息还包括:所述实际载荷数据包的访问操作属性、所述实际载荷数据包的承载数据属性、定制扩展位域当中的至少一种。
6.如权利要求2所述的数据传输方法,其特征在于,当所述实际载荷数据包校验失败时,则重传NUM(auto_resend)次所述实际载荷数据包。
7. 如权利要求6所述的数据传输方法,其特征在于,所述NUM(auto_resend)通过公式NUM(auto_resend) = T(tran_delay_para) / T(tran_delta_time)计算得到,所述T(tran_delay_para)为预设的最大延迟时间,所述T(tran_delta_time)为实时监测得到的当前校验失败的所述索引数据包或所述载荷数据包在传输介质内的包传输跨度时间。
8.如权利要求7所述的数据传输方法,其特征在于,所述实际载荷数据包的最大数据量根据所述预设的最大延迟时间进行配置。
9.如权利要求1所述的数据传输方法,其特征在于,所有所述实际载荷数据包对应的索引数据包的数据长度均为相同定长。
10.如权利要求1至9任意一项所述的数据传输方法,其特征在于,还包括:
当本次待传输的数据包含不同类型的数据时,先将所述待传输的数据进行分类,将不同类别的数据封装为属性不同的属性数据包,再将各属性数据包分别封装为各属性数据包对应的所述实际载荷数据包和索引数据包。
11.如权利要求10所述的数据传输方法,其特征在于,所述属性数据包包括寄存器配置属性对应的属性数据包;
所述寄存器配置属性对应的属性数据包的索引数据包包括:用于表征寄存器配置写访问或查询读访问的访问操作属性、承载数据属性、用于表征配置寄存器总量的实际载荷长度、用于表征数据结构的定制扩展位域;
所述寄存器配置属性对应的属性数据包的实际载荷数据包包括:写操作对应的目标模块寄存器的映射地址和目标模块寄存器的有效位域的配置参数。
12.如权利要求1至9任意一项所述的数据传输方法,其特征在于,所述校验信息为CRC校验信息。
13.一种数据传输系统,包括发送端和接收端,以及连接发送端和接收端的传输介质,其特征在于,所述发送端和接收端采用如权利要求1至12任意一项所述的数据传输方法实现待传输的数据在所述传输介质中的传输。
14.如权利要求13所述的数据传输系统,其特征在于,所述发送端包括:
索引数据封装单元,用于封装所述索引数据包;
实际载荷数据封装单元,用于封装所述实际载荷数据包;
封装数据校验信息生成单元,用于生成所述索引信息的校验信息以及所述实际内容的校验信息;
交互式的数据包发送单元,用于发送所述索引数据包及其对应的实际载荷数据包。
15.如权利要求14所述的数据传输系统,其特征在于,所述发送端还包括:
基于属性的数据包封装单元,用于当待传输的数据包含不同类型的数据时,将所述待传输的数据进行分类,将不同类别的数据封装为属性不同的属性数据包。
16.如权利要求14所述的数据传输系统,其特征在于,所述交互式的数据包发送单元包括:
重发机制的发送缓冲单元,实时监视接收端反馈的校验失败信息,若收到校验失败信息,则进行重传,直至校验成功或者重传次数达到N;
包传输跨度时间监视单元,对所述索引数据包或者实际载荷数据包的包传输跨度时间进行监视。
17.如权利要求13所述的数据传输系统,其特征在于,所述接收端包括交互式的数据包接收单元,所述交互式的数据包接收单元包括:
封装数据包边界识别单元,用于识别所述索引数据包的包头特征字;
索引数据包处理单元,对所述索引数据包进行校验,若校验失败则反馈给发送端,若校验成功则将得到的索引信息提供给实际载荷数据包处理单元;
实际载荷数据包处理单元,根据所述索引信息确定实际载荷数据包的区间以及校验信息,对所述实际载荷数据包进行校验,若校验失败则反馈给发送端,若校验成功则传递给待分发数据的缓冲单元;
待分发数据的缓冲单元,对校验成功的实际载荷数据包进行缓冲。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210538993.2A CN114978426B (zh) | 2022-05-18 | 2022-05-18 | 数据传输方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210538993.2A CN114978426B (zh) | 2022-05-18 | 2022-05-18 | 数据传输方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114978426A CN114978426A (zh) | 2022-08-30 |
CN114978426B true CN114978426B (zh) | 2024-05-03 |
Family
ID=82983645
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210538993.2A Active CN114978426B (zh) | 2022-05-18 | 2022-05-18 | 数据传输方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114978426B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062870A (zh) * | 2018-06-29 | 2018-12-21 | 平安科技(深圳)有限公司 | 服务器、业务数据校验的方法及存储介质 |
CN112039955A (zh) * | 2020-08-13 | 2020-12-04 | 上海宿龙半导体科技有限公司 | 一种文件数据传输方法及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8261154B2 (en) * | 2007-11-12 | 2012-09-04 | Motorola Mobility Llc | Continuous redundancy check method and apparatus |
-
2022
- 2022-05-18 CN CN202210538993.2A patent/CN114978426B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109062870A (zh) * | 2018-06-29 | 2018-12-21 | 平安科技(深圳)有限公司 | 服务器、业务数据校验的方法及存储介质 |
CN112039955A (zh) * | 2020-08-13 | 2020-12-04 | 上海宿龙半导体科技有限公司 | 一种文件数据传输方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114978426A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106664290B (zh) | 一种光电混合网络的数据传输方法及装置 | |
CN112769939B (zh) | 一种用于实时通讯的大数据可靠传输方法 | |
US8631110B2 (en) | Combined header processing for network packets | |
CN118260237A (zh) | 一种接口控制器、通信方法、系统、存储介质及程序产品 | |
CN110704133B (zh) | 一种基于有限状态机的卫星分包遥控接收控制方法 | |
WO2021134418A1 (zh) | 一种数据校验方法及装置 | |
CN114978426B (zh) | 数据传输方法及系统 | |
WO2024131009A1 (zh) | 芯片间通信方法及存储介质 | |
CN117294400A (zh) | 一种数据传输方法、装置及电子设备 | |
WO2011095012A1 (zh) | 一种查找引擎实时系统内数据传输的方法和系统 | |
US20180191467A1 (en) | Method for transmitting data through system bus between main controller and node of robot, and device thereof | |
CN103838691B (zh) | 实现高速数据传输的方法及通用接口芯片 | |
CN106685854A (zh) | 一种数据发送方法及系统 | |
CN107181657B (zh) | 一种wtb链路层接口适配器及其实现方法 | |
US20030154288A1 (en) | Server-client system and data transfer method used in the same system | |
CN110928828B (zh) | 处理器间业务处理系统 | |
CN113541865A (zh) | 组态传输方法、装置、电子设备和存储介质 | |
Stangaciu et al. | PARSECS_RT: A real-time PARSECS-based communication protocol stack for critical sensing applications | |
CN116938934B (zh) | 一种基于报文的任务切换控制方法及系统 | |
CN113301121B (zh) | 一种机器人遥操作中指令的传输方法及系统 | |
US20240214111A1 (en) | Network interface device with frame sequence value checking | |
CN113301130A (zh) | 缝纫设备控制器的通讯方法、装置、终端设备及存储介质 | |
CN116760510B (zh) | 一种消息发送方法、消息接收方法、装置和设备 | |
CN117376273A (zh) | 一种数据传输方法、装置、设备及介质 | |
CN117459571A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |