协议栈通信的数据检测方法及机器人与流程

文档序号:33984563发布日期:2023-04-29 12:06阅读:33来源:国知局
协议栈通信的数据检测方法及机器人与流程

本发明涉及协议栈通信,特别涉及一种协议栈通信的数据检测方法及机器人。


背景技术:

1、协议栈(protocol stack),又称协议堆叠,是计算机网络协议套件的一个具体的软件实现,反映了一个网络中文件传输的过程。目前,协议栈的通信过程中通常包括如下几个具体步骤:1)硬件层按照固定时间周期轮流对每一种协议数据进行时分切片,产生每一种协议数据各对应的数据片段,并对各自对应的数据片段打包,发送给网络层;2)网络层逐一对接收到的每个数据包携带的标志位进行信息校验,以确定是否有数据丢失;3)在没有数据丢失的情况下,向应用层发送经过信息校验的数据包,应用层按照数据包携带的协议类型将同一种协议类型的数据进行聚合,得到同一种协议类型的所有数据,以提供给软件使用。

2、在实现本发明实施例过程中,发明人发现以上相关技术中至少存在如下问题:目前通过协议栈实现通信,尤其是实现机器人的上位机和底盘之间的通信时,只能够定时采集某种协议在硬件层的某一片段时间的所有原始数据,而无法确定数据在协议栈中是否发生传输错误、丢失等异常状态,也无法定位数据在协议栈中发生异常的位置。


技术实现思路

1、本技术实施例提供了一种协议栈通信的数据检测方法及机器人,能够解决现有技术中无法定位数据在协议栈发生异常时的位置的技术问题。

2、本发明实施例的目的是通过如下技术方案实现的:

3、为解决上述技术问题,第一方面,本发明实施例中提供了一种协议栈通信的数据检测方法,应用于机器人,机器人包括上位机,所述数据检测方法包括:控制上位机发送一组第一数据至协议栈的最低层;所述第一数据到达所述协议栈的最低层后,在所述协议栈的各个层级中依次向上传输;在所述第一数据到达所述协议栈的最高层且确定所述第一数据无异常后,通过所述协议栈的最高层发送一组第二数据,所述第二数据在所述协议栈的各个层级中依次向下传输;在所述第二数据到达所述协议栈的最低层且所述第二数据无异常时,将所述第二数据发送至所述上位机,以完成测试;其中,在数据每次从所述协议栈的一个层级传输至所述协议栈的另一个层级后,计算所述数据中数据段的校验值,并比较所述校验值与所述数据中的校验位,以确定所述数据是否异常、以及数据异常发生的位置。

4、在一些实施例中,所述比较所述校验值与所述数据中的校验位,以确定所述数据是否异常,包括:若所述校验值与所述校验位不同,则确定所述数据发生异常;若所述校验值与所述校验位相同,则确定所述数据未发生异常。

5、在一些实施例中,所述方法还包括:若所述上位机在预设时间范围内未收到所述第二数据,则确定所述数据发生异常。

6、在一些实施例中,所述方法还包括:在所述第一数据每次从下一个层级传输至上一个层级后,上传次数加一;或者,在所述第二数据每次从上一个层级传输至下一个层级后,下传次数加一;所述上位机根据所述上传次数或者所述下传次数,确定数据在所述协议栈的层级中发生异常的位置。

7、在一些实施例中,所述协议栈的每一层级都包括接收缓存区和发送缓存区,所述根据所述上传次数或者所述下传次数,确定数据在所述协议栈的层级中发生异常的位置,包括:所述第一数据在所述协议栈的各个层级中依次向上传输时,若在当前层级计算得到的校验值与所述校验位不同,则确定数据异常发生在当前层级的接收缓存区和上一个层级的发送缓存区;或者,所述第二数据在所述协议栈的各个层级中依次向下传输时,若在当前层级计算得到的校验值与所述校验位不同,则确定数据异常发生在当前层级的接收缓存区和上一个层级的发送缓存区。

8、在一些实施例中,所述协议栈的层级至少包括:应用层、传输层、数据链路层、物理层,其中,所述应用层为所述协议栈的最高层,所述物理层为所述协议栈的最低层;所述第一数据到达所述协议栈的最低层后,在所述协议栈的各个层级中依次向上传输,包括:在所述第一数据到达物理层时,在物理层计算所述第一数据的数据段的第一校验值,将所述第一校验值作为第一校验位加在所述第一数据的数据段的字段之后,将携带所述第一校验位的第一数据发送至数据链路层;在所述第一数据到达所述数据链路层时,在数据链路层计算所述第一数据的数据段的第二校验值,比较所述第二校验值与所述第一校验位是否相同,若所述第二校验值与所述第一校验位相同,删除所述第一校验位,并将所述第二校验值作为第二校验位加在所述第一数据的数据段的字段之后,将携带所述第二校验位的第一数据发送至传输层;在所述第一数据到达所述传输层时,在传输层计算所述第一数据的数据段的第三校验值,比较所述第三校验值与所述第二校验位是否相同,若所述第三校验值与所述第二校验位相同,删除所述第二校验位,并将所述第三校验值作为第三校验位加在所述第一数据的数据段的字段之后,将携带所述第三校验位的第一数据发送至应用层;在所述第一数据到达所述应用层时,在应用层计算所述第一数据的数据段的第四校验值,比较所述第四校验值与所述第三校验位是否相同,若所述第四校验值与所述第三校验位相同,确定所述第一数据无异常、上传测试成功。

9、在一些实施例中,所述第一数据在所述协议栈的各个层级中依次向上传输时,所述计算所述数据中数据段的校验值,并比较所述校验值与所述数据中的校验位,以确定所述数据是否异常、以及数据异常发生的位置,包括:第一数据在所述协议栈的各个层级中依次向上传输时,若所述第二校验值与所述第一校验位不相同,则确定数据异常发生在所述物理层的发送缓存区和所述数据链路层的接收缓存区;第一数据在所述协议栈的各个层级中依次向上传输时,若所述第三校验值与所述第二校验位不相同,则确定数据异常发生在所述数据链路层的发送缓存区和所述传输层的接收缓存区;第一数据在所述协议栈的各个层级中依次向上传输时,若所述第四校验值与所述第三校验位不相同,则确定数据异常发生在所述传输层的发送缓存区和所述应用层的接收缓存区。

10、在一些实施例中,所述协议栈的层级至少包括:应用层、传输层、数据链路层、物理层,其中,所述应用层为所述协议栈的最高层,所述物理层为所述协议栈的最低层;所述通过所述协议栈的最高层发送一组第二数据,所述第二数据在所述协议栈的各个层级中依次向下传输,包括:在所述第二数据在所述应用层时,在应用层计算所述第二数据的数据段的第五校验值,将所述第五校验值作为第五校验位加在所述第二数据的数据段的字段之后,将携带所述第五校验位的第二数据发送至传输层;在所述第二数据到达所述传输层时,在传输层计算所述第二数据的数据段的第六校验值,比较所述第六校验值与所述第五校验位是否相同,若所述第六校验值与所述第五校验位相同,删除所述第五校验位,并将所述第六校验值作为第六校验位加在所述第二数据的数据段的字段之后,将携带所述第六校验位的第二数据发送至数据链路层;在所述第二数据到达所述数据链路层时,在数据链路层计算所述第二数据的数据段的第七校验值,比较所述第七校验值与所述第六校验位是否相同,若所述第七校验值与所述第六校验位相同,删除所述第六校验位,并将所述第七校验值作为第七校验位加在所述第二数据的数据段的字段之后,将携带所述第七校验位的第二数据发送至物理层;在所述第二数据到达所述物理层时,在物理层计算所述第二数据的数据段的第八校验值,比较所述第八校验值与所述第七校验位是否相同,若所述第八校验值与所述第七校验位相同,确定所述第二数据无异常、下传测试成功。

11、在一些实施例中,所述第二数据在所述协议栈的各个层级中依次向下传输时,所述计算所述数据中数据段的校验值,并比较所述校验值与所述数据中的校验位,以确定所述数据是否异常、以及数据异常发生的位置,包括:第二数据在所述协议栈的各个层级中依次向下传输时,若所述第六校验值与所述第五校验位不相同,则确定数据异常发生在所述应用层的发送缓存区和所述传输层的接收缓存区;第二数据在所述协议栈的各个层级中依次向下传输时,若所述第七校验值与所述第六校验位不相同,则确定数据异常发生在所述传输层的发送缓存区和所述数据链路层的接收缓存区;第二数据在所述协议栈的各个层级中依次向下传输时,若所述第八校验值与所述第七校验位不相同,则确定数据异常发生在所述数据链路层的发送缓存区和所述物理层的接收缓存区。

12、为解决上述技术问题,第二方面,本发明实施例提供了一种机器人,包括:至少一个处理器;以及,与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上第一方面所述的协议栈通信的数据检测方法的步骤。

13、与现有技术相比,本发明的有益效果是:区别于现有技术的情况,本发明实施例中提供了一种协议栈通信的数据检测方法及机器人,该方法首先控制上位机发送一组第一数据至协议栈的最低层,第一数据到达所述协议栈的最低层后,在所述协议栈的各个层级中依次向上传输并在到达最高层且确定无异常后,通过所述协议栈的最高层发送一组第二数据,所述第二数据在所述协议栈的各个层级中依次向下传输,且在所述第二数据到达所述协议栈的最低层且所述第二数据无异常时,将所述第二数据发送至所述上位机以完成测试,数据每次从所述协议栈的一个层级传输至所述协议栈的另一个层级后,计算所述数据中数据段的校验值,并比较所述校验值与所述数据中的校验位,以确定所述数据是否异常、以及数据异常发生的位置,本发明实施例提供的数据检测方法能够测试协议栈通信过程中是否存在数据异常的状态,且能够根据各层级的校验情况来定位数据异常发生的位置。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1