协议栈通信的数据检测方法及机器人技术

技术编号:37397191 阅读:20 留言:0更新日期:2023-04-30 09:25
本发明专利技术实施例涉及协议栈通信技术领域,公开了一种协议栈通信的数据检测方法及机器人。首先控制上位机发送一组第一数据至协议栈的最低层以在协议栈的各个层级中依次向上传输并在到达最高层且确定无异常后,通过协议栈的最高层发送一组第二数据以在协议栈的各个层级中依次向下传输,且在第二数据到达协议栈的最低层且第二数据无异常时,将第二数据发送至上位机以完成测试,数据每次从协议栈的一个层级传输至协议栈的另一个层级后,计算数据段的校验值,并与校验位比较以确定数据是否异常及异常发生的位置,该方法能够测试协议栈通信过程中是否存在数据异常的状态,且能够根据各层级的校验情况来定位数据异常发生的位置。级的校验情况来定位数据异常发生的位置。级的校验情况来定位数据异常发生的位置。

【技术实现步骤摘要】
协议栈通信的数据检测方法及机器人


[0001]本专利技术涉及协议栈通信
,特别涉及一种协议栈通信的数据检测方法及机器人。

技术介绍

[0002]协议栈(Protocol stack),又称协议堆叠,是计算机网络协议套件的一个具体的软件实现,反映了一个网络中文件传输的过程。目前,协议栈的通信过程中通常包括如下几个具体步骤:1)硬件层按照固定时间周期轮流对每一种协议数据进行时分切片,产生每一种协议数据各对应的数据片段,并对各自对应的数据片段打包,发送给网络层;2)网络层逐一对接收到的每个数据包携带的标志位进行信息校验,以确定是否有数据丢失;3)在没有数据丢失的情况下,向应用层发送经过信息校验的数据包,应用层按照数据包携带的协议类型将同一种协议类型的数据进行聚合,得到同一种协议类型的所有数据,以提供给软件使用。
[0003]在实现本专利技术实施例过程中,专利技术人发现以上相关技术中至少存在如下问题:目前通过协议栈实现通信,尤其是实现机器人的上位机和底盘之间的通信时,只能够定时采集某种协议在硬件层的某一片段时间的所有原始数据,而无法确定数据在协议栈中是否发生传输错误、丢失等异常状态,也无法定位数据在协议栈中发生异常的位置。

技术实现思路

[0004]本申请实施例提供了一种协议栈通信的数据检测方法及机器人,能够解决现有技术中无法定位数据在协议栈发生异常时的位置的技术问题。
[0005]本专利技术实施例的目的是通过如下技术方案实现的:
[0006]为解决上述技术问题,第一方面,本专利技术实施例中提供了一种协议栈通信的数据检测方法,应用于机器人,机器人包括上位机,所述数据检测方法包括:控制上位机发送一组第一数据至协议栈的最低层;所述第一数据到达所述协议栈的最低层后,在所述协议栈的各个层级中依次向上传输;在所述第一数据到达所述协议栈的最高层且确定所述第一数据无异常后,通过所述协议栈的最高层发送一组第二数据,所述第二数据在所述协议栈的各个层级中依次向下传输;在所述第二数据到达所述协议栈的最低层且所述第二数据无异常时,将所述第二数据发送至所述上位机,以完成测试;其中,在数据每次从所述协议栈的一个层级传输至所述协议栈的另一个层级后,计算所述数据中数据段的校验值,并比较所述校验值与所述数据中的校验位,以确定所述数据是否异常、以及数据异常发生的位置。
[0007]在一些实施例中,所述比较所述校验值与所述数据中的校验位,以确定所述数据是否异常,包括:若所述校验值与所述校验位不同,则确定所述数据发生异常;若所述校验值与所述校验位相同,则确定所述数据未发生异常。
[0008]在一些实施例中,所述方法还包括:若所述上位机在预设时间范围内未收到所述第二数据,则确定所述数据发生异常。
[0009]在一些实施例中,所述方法还包括:在所述第一数据每次从下一个层级传输至上一个层级后,上传次数加一;或者,在所述第二数据每次从上一个层级传输至下一个层级后,下传次数加一;所述上位机根据所述上传次数或者所述下传次数,确定数据在所述协议栈的层级中发生异常的位置。
[0010]在一些实施例中,所述协议栈的每一层级都包括接收缓存区和发送缓存区,所述根据所述上传次数或者所述下传次数,确定数据在所述协议栈的层级中发生异常的位置,包括:所述第一数据在所述协议栈的各个层级中依次向上传输时,若在当前层级计算得到的校验值与所述校验位不同,则确定数据异常发生在当前层级的接收缓存区和上一个层级的发送缓存区;或者,所述第二数据在所述协议栈的各个层级中依次向下传输时,若在当前层级计算得到的校验值与所述校验位不同,则确定数据异常发生在当前层级的接收缓存区和上一个层级的发送缓存区。
[0011]在一些实施例中,所述协议栈的层级至少包括:应用层、传输层、数据链路层、物理层,其中,所述应用层为所述协议栈的最高层,所述物理层为所述协议栈的最低层;所述第一数据到达所述协议栈的最低层后,在所述协议栈的各个层级中依次向上传输,包括:在所述第一数据到达物理层时,在物理层计算所述第一数据的数据段的第一校验值,将所述第一校验值作为第一校验位加在所述第一数据的数据段的字段之后,将携带所述第一校验位的第一数据发送至数据链路层;在所述第一数据到达所述数据链路层时,在数据链路层计算所述第一数据的数据段的第二校验值,比较所述第二校验值与所述第一校验位是否相同,若所述第二校验值与所述第一校验位相同,删除所述第一校验位,并将所述第二校验值作为第二校验位加在所述第一数据的数据段的字段之后,将携带所述第二校验位的第一数据发送至传输层;在所述第一数据到达所述传输层时,在传输层计算所述第一数据的数据段的第三校验值,比较所述第三校验值与所述第二校验位是否相同,若所述第三校验值与所述第二校验位相同,删除所述第二校验位,并将所述第三校验值作为第三校验位加在所述第一数据的数据段的字段之后,将携带所述第三校验位的第一数据发送至应用层;在所述第一数据到达所述应用层时,在应用层计算所述第一数据的数据段的第四校验值,比较所述第四校验值与所述第三校验位是否相同,若所述第四校验值与所述第三校验位相同,确定所述第一数据无异常、上传测试成功。
[0012]在一些实施例中,所述第一数据在所述协议栈的各个层级中依次向上传输时,所述计算所述数据中数据段的校验值,并比较所述校验值与所述数据中的校验位,以确定所述数据是否异常、以及数据异常发生的位置,包括:第一数据在所述协议栈的各个层级中依次向上传输时,若所述第二校验值与所述第一校验位不相同,则确定数据异常发生在所述物理层的发送缓存区和所述数据链路层的接收缓存区;第一数据在所述协议栈的各个层级中依次向上传输时,若所述第三校验值与所述第二校验位不相同,则确定数据异常发生在所述数据链路层的发送缓存区和所述传输层的接收缓存区;第一数据在所述协议栈的各个层级中依次向上传输时,若所述第四校验值与所述第三校验位不相同,则确定数据异常发生在所述传输层的发送缓存区和所述应用层的接收缓存区。
[0013]在一些实施例中,所述协议栈的层级至少包括:应用层、传输层、数据链路层、物理层,其中,所述应用层为所述协议栈的最高层,所述物理层为所述协议栈的最低层;所述通过所述协议栈的最高层发送一组第二数据,所述第二数据在所述协议栈的各个层级中依次
向下传输,包括:在所述第二数据在所述应用层时,在应用层计算所述第二数据的数据段的第五校验值,将所述第五校验值作为第五校验位加在所述第二数据的数据段的字段之后,将携带所述第五校验位的第二数据发送至传输层;在所述第二数据到达所述传输层时,在传输层计算所述第二数据的数据段的第六校验值,比较所述第六校验值与所述第五校验位是否相同,若所述第六校验值与所述第五校验位相同,删除所述第五校验位,并将所述第六校验值作为第六校验位加在所述第二数据的数据段的字段之后,将携带所述第六校验位的第二数据发送至数据链路层;在所述第二数据到达所述数据链路层时,在数据链路层计算所述第二数据的数据段的第七校验值,比较所述第七校验值与所述第六校验位是否相同,若所述第七校验值与所述第六校验位本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种协议栈通信的数据检测方法,其特征在于,应用于机器人,机器人包括上位机,所述数据检测方法包括:控制上位机发送一组第一数据至协议栈的最低层;所述第一数据到达所述协议栈的最低层后,在所述协议栈的各个层级中依次向上传输;在所述第一数据到达所述协议栈的最高层且确定所述第一数据无异常后,通过所述协议栈的最高层发送一组第二数据,所述第二数据在所述协议栈的各个层级中依次向下传输;在所述第二数据到达所述协议栈的最低层且所述第二数据无异常时,将所述第二数据发送至所述上位机;其中,在数据每次从所述协议栈的一个层级传输至所述协议栈的另一个层级后,计算所述数据中数据段的校验值,并比较所述校验值与所述数据中的校验位,以确定所述数据是否异常、以及数据异常发生的位置。2.根据权利要求1所述的数据检测方法,其特征在于,所述比较所述校验值与所述数据中的校验位,以确定所述数据是否异常,包括:若所述校验值与所述校验位不同,则确定所述数据发生异常;若所述校验值与所述校验位相同,则确定所述数据未发生异常。3.根据权利要求2所述的数据检测方法,其特征在于,所述方法还包括:若所述上位机在预设时间范围内未收到所述第二数据,则确定所述数据发生异常。4.根据权利要求1

3任一项所述的数据检测方法,其特征在于,所述方法还包括:在所述第一数据每次从下一个层级传输至上一个层级后,上传次数加一;或者,在所述第二数据每次从上一个层级传输至下一个层级后,下传次数加一;所述上位机根据所述上传次数或者所述下传次数,确定数据在所述协议栈的层级中发生异常的位置。5.根据权利要求4所述的数据检测方法,其特征在于,所述协议栈的每一层级都包括接收缓存区和发送缓存区;所述根据所述上传次数或者所述下传次数,确定数据在所述协议栈的层级中发生异常的位置,包括:所述第一数据在所述协议栈的各个层级中依次向上传输时,若在当前层级计算得到的校验值与所述校验位不同,则确定数据异常发生在当前层级的接收缓存区和上一个层级的发送缓存区;或者,所述第二数据在所述协议栈的各个层级中依次向下传输时,若在当前层级计算得到的校验值与所述校验位不同,则确定数据异常发生在当前层级的接收缓存区和上一个层级的发送缓存区。6.根据权利要求1所述的数据检测方法,其特征在于,所述协议栈的层级至少包括:应用层、传输层、数据链路层、物理层,其中,所述应用层为所述协议栈的最高层,所述物理层为所述协议栈的最低层;所述第一数据到达所述协议栈的最低层后,在所述协议栈的各个层级中依次向上传
输,包括:在所述第一数据到达物理层时,在物理层计算所述第一数据的数据段的第一校验值,将所述第一校验值作为第一校验位加在所述第一数据的数据段的字段之后,将携带所述第一校验位的第一数据发送至数据链路层;在所述第一数据到达所述数据链路层时,在数据链路层计算所述第一数据的数据段的第二校验值,比较所述第二校验值与所述第一校验位是否相同,若所述第二校验值与所述第一校验位相同,删除所述第一校验位,并将所述第二校验值作为第二校验位加在所述第一数据的数据段的字段之后,将携带所述第二校验位的第一数据发送至传输层;在所述第一数据到达所述传输层时,在传输层计算所述第一数据的数据段的第三校验值,比较所述第三校验值与所述第二校验位是否相同,若所述第三校验值与所述第二校验位相同,删除所述第二校验位,并将所述第三校验值作为第三校验位加在所述第一数据的数据段的字段之后,将携带所述第三校验位的第一数据发送至应用层;在所述第一数据到达所述应用层时,在应用层计算所述第一数据的数据段的第四校验值,比较所述第四校验值与所述第三校验位是否相同,若所述第四校验...

【专利技术属性】
技术研发人员:顾震江彭小康
申请(专利权)人:深圳优地科技有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1