CN115913468A - 集成电路、通信方法和通信系统 - Google Patents
集成电路、通信方法和通信系统 Download PDFInfo
- Publication number
- CN115913468A CN115913468A CN202110939065.2A CN202110939065A CN115913468A CN 115913468 A CN115913468 A CN 115913468A CN 202110939065 A CN202110939065 A CN 202110939065A CN 115913468 A CN115913468 A CN 115913468A
- Authority
- CN
- China
- Prior art keywords
- packet
- data packet
- data
- sequence number
- received
- 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
-
- 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
Abstract
本发明实施例公开了一种集成电路、通信方法和通信系统。其中,本发明实施例首先对接收到的数据包进行数据校验,在数据校验通过后对数据包的序列号进行检测,生成序列号检测结果,并根据序列号检测结果生成并发送反馈信息,由此,可以提高数据传输的可靠性。
Description
技术领域
本发明涉及通信技术领域,更具体地,涉及一种集成电路、通信方法和通信系统。
背景技术
随着人工智能高速发展,人类正进入全面智能时代。在全面智能的背景下,相应硬件设备需要处理的数据量越来越大,对硬件计算能力的需求也越来越强。目前,为了提高硬件计算能力,集成电路应用广泛,因此如何提高集成电路中各端之间的数据传输可靠性是至关重要的。
发明内容
有鉴于此,本发明实施例提供一种集成电路、通信方法和通信系统,以提高数据传输的可靠性。
第一方面,本发明实施例提供一种通信方法,所述方法包括:
接收数据包;
对所述数据包进行数据校验;
响应于所述数据包通过校验,对所述数据包的序列号进行检测,生成序列号检测结果;
根据所述序列号检测结果生成反馈信息。
可选的,根据所述序列号检测结果生成反馈信息包括:
响应于所述数据包的序列号与待接收序列号相同,生成第一反馈消息,所述第一反馈消息表征所述数据包为正常包;
根据所述第一反馈消息和所述待接收序列号生成反馈信息。
可选的,根据所述序列号检测结果生成反馈信息包括:
响应于所述数据包的序列号小于待接收序列号,生成第二反馈消息,所述第二反馈消息用于表征所述数据包为重复包;
根据所述第二反馈消息和所述待接收序列号生成反馈信息。
可选的,根据所述序列号检测结果生成反馈信息包括:
响应于所述数据包的序列号大于待接收序列号,生成第三反馈消息,所述第三反馈消息用于表征所述数据包为无效包;
根据所述第三反馈消息和所述待接收序列号生成反馈信息。
可选的,所述反馈信息包括数据包检测结果的类型和最近一次接收到的对应数据发送端的正常包的序列号。
可选的,对所述数据包进行数据校验包括:
根据所述数据包中的校验码的类型确定目标校验方法;
根据所述目标校验方法对所述数据包进行数据校验。
可选的,所述方法还包括:
响应于所述数据包未通过校验,过滤所述数据包。
第二方面,本发明实施例提供一种集成电路,所述集成电路包括:
校验电路,被配置为对接收到的数据包进行数据校验,生成校验信息;
错误包过滤单元,被配置为根据所述校验信息对所述数据包进行过滤;
序列号检测单元,被配置为对接收到的数据包的序列号进行检测,生成序列号检测结果;以及
控制单元,被配置为根据所述序列号检测结果生成并发送反馈信息。
可选的,所述控制单元包括正常包过滤模块;
所述序列号检测单元进一步被配置为响应于所述序列号检测结果为所述数据包的序列号与待接收序列号相同,将所述序列号检测结果发送至所述正常包过滤模块;
所述正常包过滤模块被配置为根据所述序列号检测结果生成第一反馈消息,所述第一反馈消息表征所述数据包为正常包。
可选的,所述控制单元包括重复包过滤模块;
所述序列号检测单元进一步被配置为响应于所述序列号检测结果为所述数据包的序列号小于待接收序列号,将所述序列号检测结果发送至所述重复包过滤模块;
所述重复包过滤模块被配置为根据所述序列号检测结果生成第二反馈消息,所述第二反馈消息表征所述数据包为重复包。
可选的,所述控制单元包括无效包过滤模块;
所述序列号检测单元进一步被配置为响应于所述序列号检测结果为所述数据包的序列号大于待接收序列号,将所述序列号检测结果发送至所述无效包过滤模块;
所述无效包过滤模块被配置为根据所述序列号检测结果生成第三反馈消息,所述第三反馈消息表征所述数据包为无效包。
可选的,所述控制单元包括:
信息反馈模块,被配置为生成并发送所述反馈信息,所述反馈信息包括数据包检测结果的类型和最近一次接收到的对应数据发送端的正常包的序列号。
可选的,所述集成电路还包括超时监测单元;
所述错误包过滤单元还被配置为响应于所述数据包为错误包,将数据包错误消息发送至所述超时监测单元;
超时监测单元,被配置为响应于接收到数据包错误的消息,在预设监测时间后将所述序列号检测单元和所述信息反馈模块进行复位,以清除错误包。
可选的,所述校验电路进一步被配置根据所述数据包中的校验码的类型确定目标校验方法,根据所述目标校验方法对所述数据包进行数据校验。
第三方面,本发明实施例提供一种通信系统,所述通信系统包括:
至少一个如上所述的集成电路;以及
至少一个远端集成电路,被配置为发送数据包。
可选的,所述远端集成电路还被配置响应于发送的数据包为正常包或重复包,删除发送过的正常包或重复包。
可选的,所述远端集成电路还被配置响应于发送的数据包为无效包,根据反馈信息中的序列号发送下一数据包。
本发明实施例首先对接收到的数据包进行数据校验,在数据校验通过后对数据包的序列号进行检测,生成序列号检测结果,并根据序列号检测结果生成并发送反馈信息,由此,可以提高数据传输的可靠性。
附图说明
通过以下参照附图对本发明实施例的描述,本发明的上述以及其它目的、特征和优点将更为清楚,在附图中:
图1是相关技术的d2d系统的示意图;
图2是相关技术的通信方法的流程图;
图3是本发明实施例的通信方法的流程图;
图4是本发明实施例的数据包的示意图;
图5是本发明实施例的反馈信息的示意图;
图6是本发明实施例的集成电路的示意图;
图7是本发明实施例的通信系统的示意图;
图8是本发明实施例的通信方法的交互流程图;
图9是本发明实施例的数据校验示意图。
具体实施方式
以下基于实施例对本发明进行描述,但是本发明并不仅仅限于这些实施例。在下文对本发明的细节描述中,详尽描述了一些特定的细节部分。对本领域技术人员来说没有这些细节部分的描述也可以完全理解本发明。为了避免混淆本发明的实质,公知的方法、过程、流程、元件和电路并没有详细叙述。
此外,本领域普通技术人员应当理解,在此提供的附图都是为了说明的目的,并且附图不一定是按比例绘制的。
除非上下文明确要求,否则在说明书的“包括”、“包含”等类似词语应当解释为包含的含义而不是排他或穷举的含义;也就是说,是“包括但不限于”的含义。
在本发明的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
在硬件设备中,集成电路作为主要部件,而芯片大多是集成电路的核心。由此,芯片的工艺,计算能力,决定了硬件产品的数据处理上限。随着摩尔定律的发展,芯片设计和制造越来越接近摩尔定律的极限,但硬件数据处理需求还在不断攀升。其中,摩尔定律是由英特尔(Intel)创始人之一戈登·摩尔提出的,其内容为:集成电路上可以容纳的晶体管数目大约每隔两年便会增加一倍。在此背景下,芯片的小形化(chiplet),多芯片裸片(die)封装化成为了未来处理大数据的硬件设计趋势。
小芯片封装,即将多个芯片裸片封装成一个芯片(chip),可以提升芯片的量产良率,降低设计风险。不同的芯片裸片相当于不同的小芯片系统,而在不同的小芯片中,可能有不同的数据源需要和不同的芯片进行数据通信,在实际中,不同芯片裸片中的数据源都要通过die to die(d2d,裸片到裸片)子系统进行通信,而d2d间的通信模块,往往要用到模拟器件,模拟器件在通信过程中会有BER(Bit error rate,误码率)的存在,因此当出现错误时候,接收端如何正确丢掉出错的数据,保证接收数据的完整性,成为芯片间可靠传输的关键。
图1是相关技术的d2d系统的示意图。如图1所示,d2d系统1包括两个芯片21和22,每个芯片内部主要包括SoC逻辑(System on Chip,片上系统)和d2d子系统逻辑(d2dsubsys)。以芯片21为例,芯片21包括SoC211和d2d子系统逻辑212。d2d子系统逻辑212包括d2d控制模块2121和d2d物理层电路2122。其中,d2d控制模块为控制器数字电路逻辑(d2dcontroller)。
芯片21和芯片22通过d2d subsys进行数据传输通信。而d2d subsys中的d2d物理层电路(d2d phy)在高速数据传输中会存在BER现象,也即不能保证传输的数据100%正确,因此在接收端将有一定概率出错,对于出错数据的丢帧处理,是保证接收端数据处理可靠的关键。
图2是相关技术的通信方法的流程图。如图2所示,相关技术的通信方法包括以下步骤:
步骤S110,芯片A接收来自芯片B的数据包或心跳包。其中,数据包为包含数据信息和ID(IDentity)信息,心跳包仅包含ID信息。在通信传输中,可通过周期性发送心跳包以通过心跳包中的ID信息进行丢包检测。其中,ID信息也即数据包或心跳包的序列号,用于标识数据包或心跳包。
步骤S120,芯片A读取心跳包或数据包中的ID信息,用于与最近一次发送芯片B的数据包ID进行比较。其中,芯片A会向芯片B发送数据包,并维护向芯片B发送的数据包的ID。该最近一次发送芯片B的数据包ID,是指距当前最近一次芯片A向芯片B发送的数据包的ID信息。
步骤S130,判断芯片A读取的心跳包或数据包中的ID信息是否与芯片A中存储的其最近一次发送给芯片B的数据包ID是否相等,若相等,执行步骤S140,若不相等,执行步骤S150。
在相关技术中,芯片A向芯片B发送数据包a后,存储该数据包a的ID信息,芯片B接收到该数据包a后,向芯片A发送数据包b(或心跳包b),该数据包b(或心跳包b)中包含其最近接收到的来自芯片A的数据包a的ID信息,由此,芯片A可以通过判断存储中的数据包a的ID信息与接收到的数据包b中的ID信息是否一致,来确定芯片B是否成功接收到了其最近一次发送的数据包,以保证通信传输的可靠性。
步骤S140,确定芯片B成功接收到芯片A最近一次发送的数据包,芯片A更新对应的ID信息并添加到下一次发送给芯片B的数据包中。也就是说,在芯片A接收到的数据包的ID信息与其存储的最近一次发送给芯片B的数据包的ID相等时,确定芯片B成功接收到了芯片A最近一次发送的数据包,芯片A更新对应的ID信息并添加到下一次发送给芯片B的数据包中。例如,假设ID信息是根据发送数据包的数量依次累加,芯片A中存储的最近一次发送给芯片B的数据包的ID信息为5,接收到来自芯片B的数据包的ID信息也为5,则确定芯片B成功接收到芯片A最近一次发送的数据包,且在芯片A下一次发送给芯片B的数据包时,芯片A将对应的ID信息更新为6,并将该更新后的ID信息6添加至下一次发送给芯片B的数据包中,以用于对该下一次发送的数据包的可靠性进行判断。
步骤S150,确定芯片B未接收到芯片B最近一次发送的数据包,芯片A更新对应的ID信息并添加到最近一次发送的数据包中,将该数据包发送给芯片B。也就是说,在芯片A接收到的数据包的ID信息与其存储的最近一次发送给芯片B的数据包的ID不相等时,确定芯片B未接收到芯片A最近一次发送的数据包,芯片A更新对应的ID信息并添加到最近一次发送的数据包中,将该数据包发送给芯片B。例如,同样假设ID信息是根据发送数据包的数量依次累加,芯片A中存储的最近一次发送的ID信息为5,接收到来自芯片B的数据包的ID信息为4,则确定芯片B只接收到芯片A发送的确认ID为4对应的数据,未接收到芯片A最近一次发送的ID信息为5对应的数据包,也即产生了丢包现象。正常发送时需要将该ID信息加一后发送,此时,芯片A将对应的ID信息更新为5,即保持不变,并将该更新后的ID信息5添加到最近一次发送的数据包中,将该数据包发送给芯片B,也即重新向芯片B发送最近一次发送的数据包。
在相关技术中,通信两端的芯片均在本地记录对方发送过的数据包的ID以及本地最近向对方发送的数据包的ID,通过对比以确定是否存在丢包现象,从而提高通信的可靠性。但是这种方式需要双倍处理逻辑增加了实现复杂度。并且,在片间大数据通信且片间延迟较大的时候,例如数据发送端连续发送ID=0,1,2的数据包,此时芯片发送端本地记录的是ID=2,由于延迟问题,在0到达接收芯片时候,数据包1,2已经从发送芯片发出,且在发送的路上,接收端只接收到的ID=0数据包,则接收端接收的包ID=0,即数据包1,2已从发送端发出但接收端还未收到,此时接收端要向发送端反馈的数据包的ID=0,而发送端本地记录的是ID=2,进而会出现发送端ID统计匹配错误,因此这种方式通信传输的可靠性较低。由此,本实施例提供一种集成电路、通信方法和通信系统,以提供通信传输的可靠性。
图3是本发明实施例的通信方法的流程图。如图3所示,本实施例的通信方法包括以下步骤:
步骤S210,接收数据包。以d2d系统为例,芯片接收远端芯片发送的数据包。其中,数据包中包括原始数据和对应的序列号,该原始数据是指待传输的数据。其中,数据包的格式可概述为包括包头位置和非包头位置,非包头位置即为原始数据位置,包头位置中的数据为数据包的控制信息,例如包类型、包长度、序列号等信息。
图4是本发明实施例的数据包的示意图。如图4所示,数据包4中的原始数据的数据长度可以为0~1024DW(Data word,字长度,4个字节)之间的任一长度。数据包4中的序列号的长度可以为12bit,也即序列号可以为0~4095(十进制表示)。应理解,本实施例中的数据包结构仅仅为示例性的,其数据长度及序列号可以基于具体应用场景进行设置,若发送的原始数据较长并且数据量较多,则可适应性扩大原始数据所在位置的数据长度以及序列号的位数。
步骤S220,对该数据包进行数据校验。
在一种可选的实现方式中,以d2d系统为例,芯片的物理层电路(d2dphy)接收数据包后会对该数据包进行数据完整性校验,并给出指示消息rx_err,以表征数据包中的数据正确性。其中,数据包中的数据有错误可表述为数据包有错误,其包括两种情况,即包头位置数据有错误,或者非包头位置数据有错误。
在一种可选的实现方式中,数据包中还包括校验码,步骤S220包括:根据该数据包中的校验码的类型确定目标校验方法,根据目标校验方法对该数据包进行数据校验。也就是说,数据接收端的数据校验方法与数据发送端对数据的处理相对应。例如,若数据发送端在数据中加入循环冗余校验码,则数据接收端采用相对应的循环冗余校验方法进行数据校验,若数据发送端在数据中加入其他校验码,例如奇偶校验码、海明校验码等,则数据接收端需要采用相对应的校验方法对数据包进行数据校验。
步骤S230,响应于该数据包通过校验,对该数据包的序列号进行检测,生成序列号检测结果。
在一种可选的实现方式中,在数据包通过数据完整性校验后,根据待接收序列号对该数据包中的序列号进行检测,生成序列号检测结果。其中,待接收序列号为下一个待接收的来自对应数据发送端的数据包的序列号。由于该待接收序列号是在接收端维护的,因此接收端可以通过将该本地维护的待接收序列号与当前接收的数据包中的序列号比较,来判断当前接收的数据包是否异常。例如,假设最近一次接收到的数据发送端的数据包的序列号为5,则下一个待接收的来自对应数据发送端的数据包的序列号为6,即待接收序列号为6。则如果数据传输无异常的话,当前接收到的数据包中的序列号应该是6。
可选的,通过比较该数据包的序列号与待接收序列号的关系,以生成序列号检测结果。其中,序列号检测结果可以为该数据包的序列号与待接收序列号相同、或该数据包的序列号位于待接收序列号之前、或该数据包的序列号位于待接收序列号之后。
在一种可选的实现方式中,若该数据包未通过物理层电路的数据完整性校验,即该数据包存在错误,则过滤该数据包。进一步可选的,由于数据包中的数据错误可能发生在中间位置,检测到数据错误时数据并未接收完全,因此在本实施例中,在等待预定的监测时间后,清除残留的数据包,以确保完全清除错误数据包。接收端将错误的数据包过滤后可能无法向发送端反馈该错误的数据包的信息,可选的,数据发送端设置有超时机制,若超过预定时间未接收到关于该数据包的反馈信息,即确定该数据包出错,重新发送该数据包。
步骤S240,根据序列号检测结果生成反馈信息。可选的,反馈信息包括数据包检测结果的类型和最近一次接收到对应数据发送端的正常包的序列号。其中,该数据包检测结果的类型用于表征数据包的序列号的检测结果,例如数据正常、数据重复、数据无效等。最近一次接收到对应数据发送端的正常包的序列号,是指距当前时间点最近的一个正常包的序列号,例如,假设当前接收的数据包的序列号为5,前一接收的数据包为正常包其序列号为4,如果经过步骤S230确定该当前接收的数据包为正常包,则该最近一次接收到对应数据发送端的正常包的序列号为5。如果经过步骤S230确定该当前接收的数据包不是正常包,则该最近一次接收到对应数据发送端的正常包的序列号为4。
图5是本发明实施例的反馈信息的示意图。如图5所示,反馈信息5包括消息类型(也即数据包检测结果的类型)和最近一次接收到的正常包的序列号。可选的,反馈信息5中的消息类型占有4bit、序列号占有12bit,应理解,本实施例并不对此进行限制。可选的,设置1000(二进制表示)对应的消息类型表征本次接收到的数据包为正常包,设置1001对应的消息类型表征本次接收到的数据包为重复包,设置1010对应的消息类型表征本次接收到的数据包为无效包,其他值保留扩展使用。应理解,上述设置仅仅是示例性的,本实施例并不对此进行限制。
在一种可选的实现方式中,步骤S240包括:响应于该数据包的序列号与待接收序列号相同,生成第一反馈消息。其中,第一反馈消息表征数据包为正常包。在确定该数据包为正常数据包后,则可进一步生成向发送端反馈该正常包的信息。在一种可选的实现方式中,若序列号检测结果为该数据包的序列号与待接收序列号相同,生成第一反馈消息,并根据该第一反馈消息和待接收序列号生成反馈信息。在此情况下,反馈信息中的消息类型表征本次接收到的数据包为正常包,反馈信息中的序列号为最近一次接收到的该数据发送端发送的正常包的序列号(也即当前接收到的数据包的序列号)。例如,当前接收到的数据包的序列号为5,待接收序列号也为5,该数据包为正常包,则反馈信息中的消息类型为1000,序列号为5。
在一种可选的实现方式中,步骤S240包括:响应于该数据包的序列号小于待接收序列号,生成第二反馈消息。其中,第二反馈消息用于表征所述数据包为重复包。在确定该数据包为正常重复包后,则可过滤该重复包,同时生成向发送端反馈该重复包的信息,以使得发送端发正常的数据包。在一种可选的实现方式中,若序列号检测结果为该数据包的序列号小于待接收序列号,生成第二反馈消息,并根据第二反馈消息和待接收序列号生成反馈信息。在此情况下,反馈信息中的消息类型表征本次接收到的数据包为重复包,反馈信息中的序列号为最近一次接收到的正常包的序列号(也即待接收序列号的前一序列号)。例如,当前接收到的数据包的序列号为3,待接收序列号也为5。其中,待接收序列号为5,也即数据接收端已经成功接收到了对应数据发送端发送的序列号为0-4的数据包,也即当前接收到的序列号为3的数据包是重复包,而最近一次接收到对应数据发送端的正常包的序列号为4,则反馈信息中的消息类型为1001,序列号为4,以通知对应的数据发送端已成功接收到了对应数据发送端发送的序列号为0-4的数据包,使得数据发送端发送序列号为5的数据包。
在一种可选的实现方式中,步骤S240包括:响应于该数据包的序列号大于待接收序列号,生成第三反馈消息。其中,第三反馈消息用于保证所述数据包为无效包。在确定该数据包为正常无效包后,则可过滤该无效包,同时生成向发送端反馈该无效包的信息,以使得发送端发正常的数据包。在一种可选的实现方式中,若序列号检测结果为该数据包的序列号大于待接收序列号,生成第三反馈消息,并根据第三反馈消息和待接收序列号生成反馈信息。在此情况下,反馈信息中的消息类型表征本次接收到的数据包为无效包,反馈信息中的序列号为最近一次接收到的正常包的序列号(也即待接收序列号的前一序列号)。例如,当前接收到的数据包的序列号为7,待接收序列号也为5。其中,待接收序列号为5,也即数据接收端已经成功接收到了对应数据发送端发送的序列号为0-4的数据包,但还没有接收到在序列号4之后的数据包,正常情况下当前接收到的数据包的序列号应该为5,因此当前接收到的序列号为7的数据包是无效包,最近一次接收到对应数据发送端的正常包的序列号为4,则反馈信息中的消息类型为1010,序列号为4,以通知对应的数据发送端已成功接收到了对应数据发送端发送的序列号为0-4的数据包,使得数据发送端发送序列号为5的数据包。
由此,在本实施例中,数据发送端无需执行最近一次发送给对应数据接收端的数据包的序列号与接收到的来自数据接收到数据包或心跳包中的序列号的判断逻辑,其可以基于自身的超时机制以及数据接收端的反馈信息来确定是否出现BER现象,并基于反馈信息向数据接收端发送正确的数据包,或者在激发超时机制时基于保存的最近一次发送给对应数据包的序列号重新发送对应的数据包,也即本实施例只需要数据接收端执行接收到的数据包的序列号与待接收序列号的判断逻辑即可,相对于现有技术的双倍处理逻辑减小了实现复杂度。并且,由于数据发送端根据反馈信息中的序列号发送下一个数据包而无需对反馈信息中的序列号与存储的序列号信息进行核验,因此本发明实施例还避免了匹配错误的情况,进一步提高了通信传输的可靠性。
本发明实施例首先对接收到的数据包进行数据校验,在数据校验通过后对数据包的序列号进行检测,生成序列号检测结果,并根据序列号检测结果生成并发送反馈信息,由此,可以提高数据传输的可靠性。
图6是本发明实施例的集成电路的示意图。如图6所示,本发明实施例的集成电路6包括校验电路61(相当于图1中的d2d物理层电路2122)、错误包过滤电源62、序列号监测单元63和控制单元64。进一步可选的,控制单元64还包括信息反馈模块644。可选的,集成电路6还包括超时监测单元65。其中,以集成电路6为d2d系统中的芯片为例,则校验电路61相当于图1中的d2d物理层电路2122,错误包过滤电源62、序列号监测单元63、控制单元64以及超时监测单元65相当于图1中的d2d控制模块2121。
其中,校验电路61被配置为对接收到的数据包进行数据校验,生成校验信息。可选的,校验电路61接收数据包后会对数据进行数据完整性校验,并给出指示消息rx_err,以表征数据包中的数据正确性。可选的,数据包中还包括校验码。校验电路61基于数据发送端在数据中加入的校验码的类别采用对应的校验方法对接收到的数据包进行数据校验。例如,若数据发送端在数据中加入循环冗余校验码,则数据接收端采用相对应的循环冗余校验方法进行数据校验,若数据发送端在数据中加入其他校验码,例如奇偶校验码、海明校验码等,则数据接收端需要采用相对应的校验方法对数据包进行数据校验。
在一种可选的实现方式中,校验信息包括数据包rx_pkt和指示消息rx_err。其中,数据包rx_pkt的数据格式如图4所示,包括原始数据和对应的序列号。指示消息rx_err用于表征数据包的正确性。例如,指示消息rx_err为1表征数据包有错误,其中,数据包的格式可概述为包括包头位置和非包头位置(即原始数据位置),数据包有错误包括两种情况,即包头位置数据有错误,或者非包头位置数据有错误。指示消息rx_err为0表征数据包是正确的,即包头位置数据是正确的,且非包头位置数据是正确的。进一步可选的,校验信息还包括数据指示信息rx_valid和包头指示信息rx_head,用于进一步定位出错位置。数据指示信息rx_valid用于表征数据包是否有效,其中,数据包有效是指数据包中的原始数据位置或者数据包中的包头位置是有数据的。包头指示信息rx_head用于表征包头位置。例如,数据指示信息rx_valid为1表征数据包中的原始数据位置或者数据包中的包头位置是有数据的;数据指示信息rx_valid为0表征数据包中的原始数据位置且数据包中的包头位置都没有数据。包头指示信息rx_head为1表示当前接收的数据是包头,即表示数据包的包头位置;包头指示信息rx_head为0表征当前接收的数据不是一个包头,即表示数据包的非包头位置。由此,若校验电路61校验出数据包中的数据出错,可以通过数据指示信息rx_valid和包头指示信息rx_head确定数据出错的位置。如图9所示,具体的判断逻辑为:在rx_valid=1的前提下,即接收的数据是有效的情况下,若rx_head=1且rx_err=1,表征数据包的包头有错误;若rx_head为0且rx_err为1时,表征数据包的非包头位置有错误。如果rx_valid为0,说明接收的是无效数据包,则可不用进行进一步的判断。如果rx_valid为1且rx_err为0,说明数据包的包头位置和非包头位置都没有错误。
在一种可选的实现方式中,校验电路61向错误包过滤单元62并行发送数据包rx_pkt、指示消息rx_err、数据指示信息rx_valid和包头指示信息rx_head。可选的,也可采用串行发送上述信息、或者将上述信息进行打包发送等,本实施例并不对此进行限制。
错误包过滤单元62被配置为根据上述校验信息对该数据包进行过滤。在一种可选的实现方式中,错误包过滤单元62根据指示消息rx_err确认该数据包中的数据是否存在错误,若存在错误,则将该错误信息进行过滤。
进一步可选的,错误包过滤单元62还被配置为响应于数据包为错误包,将数据包错误消息发送至超时监测单元65。超时监测单元65被配置为响应于接收到数据包错误的消息,在预设监测时间后将序列号检测单元和信息反馈模块进行复位,以清除错误包。由于数据包中的数据错误可能发生在中间位置,检测到数据错误时数据并未接收完全且已经由错误包过滤单元62向后续单元发送了部分数据,因此在本实施例中超时监测单元65在等待预定的监测时间后,将序列号检测单元63和信息反馈模块644进行复位,以清除其中残留的数据包,从而确保完全清除错误数据包。可选的,数据发送端设置有超时机制,若超过预定时间为接收到关于该数据包的反馈信息,即确定该数据包出错,重新发送该数据包。
在本实施例中,错误包过滤单元62根据指示消息rx_err确认该数据包中的数据不存在错误,则将该数据包发送至序列号检测单元63。
序列号检测单元63被配置为对接收到的数据包的序列号进行检测,生成序列号检测结果,控制单元64被配置为根据序列号检测结果生成反馈信息。可选的,反馈信息包括数据包检测结果的类型和最近一次接收到对应数据发送端的正常包的序列号。在其他可选的实现方式中,反馈信息中的序列号还可以为待接收序列号。其中,该数据包检测结果的类型用于表征数据的序列号的检测结果,例如数据正常、数据重复、数据无效等。
在一种可选的实现方式中,序列号检测单元63根据待接收序列号对该数据包中的序列号进行检测,生成序列号检测结果。其中,待接收序列号也即下一个待接收的来自对应数据发送端的数据包的序列号。例如,假设最近一次接收到的数据发送端的数据包序列号为5,则待接收序列号为6,即如果数据传输无异常的话,当前接收到的数据包中的序列号应该是6。
可选的,序列号检测单元63通过比较该数据包的序列号与待接收序列号的关系,以生成序列号检测结果。其中,序列号检测结果可以为该数据包的序列号与待接收序列号相同、或该数据包的序列号小于待接收序列号、或该数据包的序列号大于待接收序列号。
在一种可选的实现方式中,控制单元64包括无效包过滤模块641。其中,序列号检测单元63进一步被配置为响应于序列号检测结果为数据包的序列号大于待接收序列号,将序列号检测结果发送至无效包过滤模块641。无效包过滤模块641被配置为根据该序列号检测结果生成第三反馈消息。其中,第三反馈消息表征数据包为无效包。
在一种可选的实现方式中,无效包过滤模块641还被配置为将第三反馈消息发送至信息反馈模块644,信息反馈模块644根据第三反馈消息生成反馈信息并向数据发送端反馈该反馈信息。可选的,在本实施例中,反馈信息的消息格式如图5所示。其中,反馈信息中的消息类型表征本次接收到的数据包为无效包,反馈信息中的序列号为最近一次接收到的正常包的序列号。例如,当前接收到的数据包的序列号为7,待接收序列号也为5。其中,待接收序列号为5,也即数据接收端已经成功接收到了对应数据发送端发送的序列号为0-4的数据包,但还没有接收到在序列号4之后的数据包,因此当前接收到的序列号为7的数据包是无效包,则反馈信息中的消息类型为1010,序列号为4,以通知对应的数据发送端已成功接收到了对应数据发送端发送的序列号为0-4的数据包,使得数据发送端发送序列号为5的数据包。
在一种可选的实现方式中,控制单元64包括重复包过滤模块642。其中,序列号检测单元63进一步被配置为响应于序列号检测结果为数据包的序列号小于待接收序列号,将序列号检测结果发送至重复包过滤模块642。重复包过滤模块642被配置为根据该序列号检测结果生成第二反馈消息。其中,第二反馈消息表征数据包为重复包。
在一种可选的实现方式中,重复包过滤模块642还被配置为将第二反馈消息发送至信息反馈模块644,信息反馈模块644根据第二反馈消息生成反馈信息并向数据发送端反馈该反馈信息。其中,反馈信息中的消息类型表征本次接收到的数据包为重复包,反馈信息中的序列号为最近一次接收到的正常包的序列号。例如,当前接收到的数据包的序列号为3,待接收序列号也为5。其中,待接收序列号为5,也即数据接收端已经成功接收到了对应数据发送端发送的序列号为0-4的数据包,也即当前接收到的序列号为3的数据包是重复包,则反馈信息中的消息类型为1001,序列号为4,以通知对应的数据发送端已成功接收到了对应数据发送端发送的序列号为0-4的数据包,使得数据发送端发送序列号为5的数据包。
在一种可选的实现方式中,控制单元64包括正常包过滤模块643。序列号检测单元63进一步被配置为响应于序列号检测结果为该数据包的序列号与待接收序列号相同,将该序列号检测结果发送至正常包过滤模块643。正常包过滤模块643被配置为根据该序列号检测结果生成第一反馈消息。其中,第一反馈消息表征该数据包为正常包。
在一种可选的实现方式中,正常包过滤模块643还被配置为将第一反馈消息发送至信息反馈模块644,信息反馈模块644根据第一反馈消息生成反馈信息并向数据发送端反馈该反馈信息。其中,反馈信息中的消息类型表征本次接收到的数据包为正常包,反馈信息中的序列号为最近一次接收到的该数据发送端发送的正常包的序列号(也即当前接收到的数据包的序列号)。例如,当前接收到的数据包的序列号为5,待接收序列号也为5,则反馈信息中的消息类型为1000,序列号为5。
在一种可选的实现方式中,本实施例的集成电路6还包括SoC系统66。正常包过滤模块643将该数据包发送至SoC系统66,以对该数据包进行解析或者处理。
由此,在本实施例中,数据发送端无需执行最近一次发送给对应数据接收端的数据包的序列号与接收到的来自数据接收到数据包或心跳包中的序列号的判断逻辑,其可以基于自身的超时机制以及数据接收端的反馈信息来确定是否出现BER现象,并基于反馈信息向数据接收端发送正确的数据包,或者在激发超时机制时基于保存的最近一次发送给对应数据包的序列号重新发送对应的数据包,也即本实施例只需要数据接收端执行接收到的数据包的序列号与待接收序列号的判断逻辑即可,相对于现有技术的双倍处理逻辑减小了实现复杂度。并且,由于数据发送端根据反馈信息中的序列号发送下一个数据包而无需对反馈信息中的序列号与存储的序列号信息进行核验,因此本发明实施例还避免了匹配错误的情况,进一步提高了通信传输的可靠性。
本发明实施例首先对接收到的数据包进行数据校验,在数据校验通过后对数据包的序列号进行检测,生成序列号检测结果,并根据序列号检测结果生成并发送反馈信息,由此,可以提高数据传输的可靠性。
图7是本发明实施例的通信系统的示意图。如图7所示,本发明实施例的通信系统7包括至少一个集成电路71和至少一个远端集成电路72。其中,集成电路71可以为上述实施例中的集成电路6,在此不再赘述。
在本实施例中,远端集成电路72被配置为发送数据包。在一种可选的实现方式中,远端集成电路72还被配置响应于发送的数据包为正常包或重复包,删除发送过的正常包或重复包。可选的,远端集成电路72接收到集成电路71发送的反馈信息,若反馈信息中的消息类型表征对应的数据包为正常包或重复包,也即该数据包已经成功发送至集成电路71,则删除该数据包,以释放存储空间,同时,根据反馈信息中的序列号发送下一数据包。例如,反馈信息中的序列号为5,则发送序列号6对应的数据包。
在一种可选的实现方式中,远端集成电路72还被配置响应于发送的数据包为无效包,根据反馈信息中的序列号发送下一数据包。可选的,远端集成电路72接收到集成电路71发送的反馈信息,若反馈信息中的消息类型表征对应的数据包为无效包,也即该数据包之前的数据包还未发送成功,则根据反馈信息中的序列号发送下一数据包。例如,反馈信息中的序列号为5,则发送序列号6对应的数据包。
在一种可选的实现方式中,远端集成电路72设置有超时机制。远端集成电路72还被配置为响应于若在预定时间内未接收到关于该数据包的反馈信息,即确定该数据包出错,重新发送该数据包。
由此,在本实施例中,数据发送端无需执行最近一次发送给对应数据接收端的数据包的序列号与接收到的来自数据接收到数据包或心跳包中的序列号的判断逻辑,其可以基于自身的超时机制以及数据接收端的反馈信息来确定是否出现BER现象,并基于反馈信息向数据接收端发送正确的数据包,或者在激发超时机制时基于保存的最近一次发送给对应数据包的序列号重新发送对应的数据包,也即本实施例只需要数据接收端执行接收到的数据包的序列号与待接收序列号的判断逻辑即可,相对于现有技术的双倍处理逻辑减小了实现复杂度。并且,由于数据发送端根据反馈信息中的序列号发送下一个数据包而无需对反馈信息中的序列号与存储的序列号信息进行核验,因此本发明实施例还避免了匹配错误的情况,进一步提高了通信传输的可靠性。
图8是本发明实施例的通信方法的交互流程图。如图8所示,本实施例的通信方法的交互流程包括以下步骤:
步骤S1:远端集成电路72向集成电路71发送数据包a。其中,数据包a的序列号为7。
步骤S2:集成电路71对数据包a进行数据校验。其中,具体校验方法与上述实施例类似,在此不再赘述。
步骤S3:集成电路71响应于数据包a通过校验,对数据包a的序列号进行检测。可选的,根据集成电路71计算确定的待接收序列号对数据包a进行检测,确定数据包a的序列号与待接收序列号之间的关系。
步骤S4:假设待接收序列号为6,集成电路71响应于数据包a的序列号7大于待接收序列号6,生成对应的反馈信息a'。其中,反馈信息a'中的数据类型表征数据包a为无效包,反馈信息a'中的序列号为最近一次成功接收到的数据包的序列号5。
步骤S5,集成电路71向远端集成电路72发送反馈信息a'。
远端集成电路72接收到反馈信息a',确定该反馈信息a'对应的数据包是无效包,根据反馈信息a'中的序列号确定下次发送的数据包b。
步骤S6,远端集成电路72向集成电路71发送数据包b。其中,数据包b的序列号为6。
步骤S7,集成电路71对数据包b进行数据校验,在数据包b通过数据校验后对数据包b的序列号进行检测。可选的,根据集成电路71计算确定的待接收序列号对数据包b进行检测,确定数据包b的序列号与待接收序列号之间的关系。如上所述,上次接收到的数据包a为无效包,因此待接收序列号仍为6,集成电路71响应于数据包b的序列号6与待接收序列号6相同,生成对应的反馈信息b'。其中,反馈信息b'中的数据类型表征数据包b为正常包,反馈信息b'中的序列号为最近成功接收到的数据包的序列号6,集成电路71更新待接收序列号为7。
步骤S8,集成电路71向远端集成电路72发送反馈信息b'。
步骤S9,远端集成电路72接收到反馈信息b',确定该反馈信息b'对应的数据包b是正常包,远端集成电路72将对应的数据包b删除。
步骤S10,远端集成电路72向集成电路71发送数据包c。其中,数据包c的序列号为3。
步骤S11,集成电路71对数据包c进行数据校验,在数据包c通过数据校验后对数据包c的序列号进行检测。可选的,根据集成电路71计算确定的待接收序列号对数据包c进行检测,确定数据包c的序列号与待接收序列号之间的关系。如上所述,上次接收到的数据包b为正常包,因此待接收序列号更新为7,集成电路71响应于数据包c的序列号3小于待接收序列号7,生成对应的反馈信息c'。其中,反馈信息c'中的数据类型表征数据包c为重复包,反馈信息c'中的序列号为最近一次成功接收到的数据包的序列号6。
步骤S12,集成电路71向远端集成电路72发送反馈信息c'。
步骤S13,远端集成电路72接收到反馈信息c',确定该反馈信息c'对应的数据包c是重复包,远端集成电路72将对应的数据包c删除。
步骤S14,远端集成电路72基于反馈信息c'向集成电路71发送数据包a。远端集成电路72根据反馈信息c'中的序列号确定上一个成功发送的数据包的序列号为6,进而确定下一个要发送的数据包的序列号为7,也即数据包a。
步骤S15,集成电路71对接收到的数据包a进行数据校验,响应于数据包a未通过校验,过滤数据包a。
步骤S16,远端集成电路72响应于预定时间内未接收到对应的反馈信息,向集成电路71重新发送数据包a。
由此,本实施例可以通过首先对接收到的数据包进行数据校验,在数据校验通过后对数据包的序列号进行检测,生成序列号检测结果,并根据序列号检测结果生成并发送反馈信息,由此,可以准确地确定数据出错的数据包、接收到的正常包、无效包和重复包,进而可以提示数据发送端重新发送正常包,由此,本实施例可以提高数据传输的可靠性。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (12)
1.一种通信方法,其特征在于,所述方法包括:
接收数据包;
对所述数据包进行数据校验;
响应于所述数据包通过校验,对所述数据包的序列号进行检测,生成序列号检测结果;
根据所述序列号检测结果生成反馈信息。
2.根据权利要求1所述的方法,其特征在于,根据所述序列号检测结果生成反馈信息包括:
响应于所述数据包的序列号与待接收序列号相同,生成第一反馈消息,所述第一反馈消息表征所述数据包为正常包;
根据所述第一反馈消息和所述待接收序列号生成反馈信息。
3.根据权利要求1所述的方法,其特征在于,根据所述序列号检测结果生成反馈信息包括:
响应于所述数据包的序列号小于待接收序列号,生成第二反馈消息,所述第二反馈消息用于表征所述数据包为重复包;
根据所述第二反馈消息和所述待接收序列号生成反馈信息。
4.根据权利要求1所述的方法,其特征在于,根据所述序列号检测结果生成反馈信息包括:
响应于所述数据包的序列号大于待接收序列号,生成第三反馈消息,所述第三反馈消息用于表征所述数据包为无效包;
根据所述第三反馈消息和所述待接收序列号生成反馈信息。
5.根据权利要求1-4任一项所述的方法,其特征在于,对所述数据包进行数据校验包括:
根据所述数据包中的校验码的类型确定目标校验方法;
根据所述目标校验方法对所述数据包进行数据校验。
6.一种集成电路,其特征在于,所述集成电路包括:
校验电路,被配置为对接收到的数据包进行数据校验,生成校验信息;
错误包过滤单元,被配置为根据所述校验信息对所述数据包进行过滤;
序列号检测单元,被配置为对接收到的数据包的序列号进行检测,生成序列号检测结果;以及
控制单元,被配置为根据所述序列号检测结果生成并发送反馈信息。
7.根据权利要求6所述的集成电路,其特征在于,所述控制单元包括正常包过滤模块;
所述序列号检测单元进一步被配置为响应于所述序列号检测结果为所述数据包的序列号与待接收序列号相同,将所述序列号检测结果发送至所述正常包过滤模块;
所述正常包过滤模块被配置为根据所述序列号检测结果生成第一反馈消息,所述第一反馈消息表征所述数据包为正常包。
8.根据权利要求6所述的集成电路,其特征在于,所述控制单元包括重复包过滤模块;
所述序列号检测单元进一步被配置为响应于所述序列号检测结果为所述数据包的序列号小于待接收序列号,将所述序列号检测结果发送至所述重复包过滤模块;
所述重复包过滤模块被配置为根据所述序列号检测结果生成第二反馈消息,所述第二反馈消息表征所述数据包为重复包。
9.根据权利要求6所述的集成电路,其特征在于,所述控制单元包括无效包过滤模块;
所述序列号检测单元进一步被配置为响应于所述序列号检测结果为所述数据包的序列号大于待接收序列号,将所述序列号检测结果发送至所述无效包过滤模块;
所述无效包过滤模块被配置为根据所述序列号检测结果生成第三反馈消息,所述第三反馈消息表征所述数据包为无效包。
10.根据权利要求6-9任一项所述的集成电路,其特征在于,所述控制单元包括:
信息反馈模块,被配置为生成并发送所述反馈信息,所述反馈信息包括数据包检测结果的类型和最近一次接收到的对应数据发送端的正常包的序列号。
11.根据权利要求10所述的集成电路,其特征在于,所述集成电路还包括超时监测单元;
所述错误包过滤单元还被配置为响应于所述数据包为错误包,将数据包错误消息发送至所述超时监测单元;
超时监测单元,被配置为响应于接收到数据包错误的消息,在预设监测时间后将所述序列号检测单元和所述信息反馈模块进行复位,以清除错误包。
12.一种通信系统,其特征在于,所述通信系统包括:
至少一个如权利要求6-11任一项所述的集成电路;以及
至少一个远端集成电路,被配置为发送数据包。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110939065.2A CN115913468A (zh) | 2021-08-16 | 2021-08-16 | 集成电路、通信方法和通信系统 |
PCT/CN2022/107454 WO2023020202A1 (zh) | 2021-08-16 | 2022-07-22 | 集成电路、通信方法和通信系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110939065.2A CN115913468A (zh) | 2021-08-16 | 2021-08-16 | 集成电路、通信方法和通信系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115913468A true CN115913468A (zh) | 2023-04-04 |
Family
ID=85239452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110939065.2A Pending CN115913468A (zh) | 2021-08-16 | 2021-08-16 | 集成电路、通信方法和通信系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115913468A (zh) |
WO (1) | WO2023020202A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143073A (zh) * | 2011-03-23 | 2011-08-03 | 深圳创维数字技术股份有限公司 | 一种数据传输方法及系统 |
WO2015067823A1 (en) * | 2013-11-11 | 2015-05-14 | Telefonaktiebolaget L M Ericsson (Publ) | Discarding a duplicate protocol data unit associated with a data transmission via a first signaling radio bearer or a second signaling radio bearer |
CN107294581A (zh) * | 2016-03-30 | 2017-10-24 | 景略半导体(上海)有限公司 | 多天线发射、单天线接收、多天线传输系统及方法 |
CN111786748B (zh) * | 2019-08-29 | 2023-05-30 | 北京京东尚科信息技术有限公司 | 数据重传方法和系统、网卡、装置、服务器和存储介质 |
CN111147196A (zh) * | 2019-12-18 | 2020-05-12 | 深圳市元征科技股份有限公司 | 数据传输方法、数据发送设备及数据接收设备 |
-
2021
- 2021-08-16 CN CN202110939065.2A patent/CN115913468A/zh active Pending
-
2022
- 2022-07-22 WO PCT/CN2022/107454 patent/WO2023020202A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023020202A1 (zh) | 2023-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7047475B2 (en) | CRC encoding scheme for conveying status information | |
US7609724B1 (en) | Enhanced frame aggregation in a wireless network system | |
US8312352B2 (en) | Communication apparatus and communication method | |
WO2006096879A1 (en) | System and method for tolerating communication lane failures | |
US9652322B2 (en) | User station of a bus system and method for transmitting messages between user stations of a bus system | |
EP3070865B1 (en) | Method and device for protecting a data transport block against memory errors and transmission errors | |
CN113783662B (zh) | 自适应数据传输方法、装置、计算机设备及可读存储介质 | |
CN110166354B (zh) | 一种包含片上网络容错路由的数据处理系统 | |
CN104866454A (zh) | 面向板级高速总线的写报文前瞻处理方法及装置 | |
CN113364559B (zh) | 一种面向多路径的数据安全传输方法、设备和系统 | |
CN108337069B (zh) | 一种改进的降低误码率的末端并行分组crc校验系统 | |
CN106372026B (zh) | 一种链路检测方法和接收设备 | |
US7436777B2 (en) | Failed link training | |
CN113806108A (zh) | 一种重传方法、内存控制器、处理器系统及电子设备 | |
WO2009037079A1 (en) | Improved data structure boundary synchronization between a transmitter and receiver | |
CN115913468A (zh) | 集成电路、通信方法和通信系统 | |
CN110381050B (zh) | 数据包的多协议转化校验方法和装置 | |
WO2002093820A1 (fr) | Procede de communication, dispositif de transmission, dispositif de reception, et systeme de communication equipe de ces dispositifs | |
CN105634894A (zh) | 一种增强型can总线数据重发方法和装置 | |
CN114337915A (zh) | 基于串行通讯的私有协议容错处理方法、装置及存储介质 | |
US8898526B1 (en) | Using forward error correction coding to diagnose communication links | |
US7310762B2 (en) | Detection of errors | |
JP2000349792A (ja) | データ伝送装置 | |
US20050154968A1 (en) | Detection of errors | |
US20110161767A1 (en) | Apparatus and method of communicating automatic repeat request (arq) feedback in a wireless communication network |
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 |