信息传输方法、装置、通信设备和存储介质与流程

文档序号:32605707发布日期:2022-12-17 21:39阅读:65来源:国知局
信息传输方法、装置、通信设备和存储介质与流程

1.本技术涉及通信技术领域,特别是涉及一种信息传输方法、装置、通信设备和存储介质。


背景技术:

2.信息传输通常在信号发送设备和信号接收设备之间产生,例如机器人与基站之间就需要传输信息。信息传输的方式多种多样,常见的有通过一种低速的半双工射频模块进行通信。一般来说,设备既可以作为信号发送设备也可以作为信号接收设备,通信时,信号发送设备和信号接收设备事先设定一个基础通讯频率,基于基础频率再细分出若干个信道,一方在某个信道上发送消息,另一方只有在相同的信道上才能接收到消息,使信号发送设备和信号接收设备相互之间报告各自的状态信息与控制消息。
3.但是,在这种通信方式下,信号接收设备并不知道对方何时会发送消息,且在某些情况下,通信的两个设备会同时发送消息,造成消息碰撞发生。在半双工情况下,导致双方都无法正常接收到对方的消息,也不会回复应答包,导致信息传输失败。


技术实现要素:

4.基于此,有必要针对上述技术问题,提供一种信息传输方法、装置、通信设备和存储介质。
5.第一方面,本技术提供了一种信息传输方法。所述方法包括:
6.获取待发送信息;
7.基于所述待发送信息的原计划发送时刻,以及当前规划的各时间槽以及各所述时间槽的预计和事实收发状态,确定发送所述待发送信息的目标时间槽;其中,所述当前规划的各时间槽为以最近计时起点为起点设置的多个时间间隔,一个时间间隔对应一个所述时间槽,所述时间槽包括交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽,所述最近计时起点为上一个信息发送完毕中断时刻或上一个信息接收完毕中断时刻,所述时间间隔大于所述待发送信息的前导码传输时间;
8.将所述待发送信息在所述目标时间槽进行发送。
9.第二方面,本技术还提供了一种信息传输装置。所述装置包括:
10.待发送信息获取模块,用于获取待发送信息;
11.目标时间槽确定模块,基于所述待发送信息的原计划发送时刻,以及当前规划的各时间槽以及各所述时间槽的预计和事实收发状态,确定发送所述待发送信息的目标时间槽;其中,所述当前规划的各时间槽为以最近计时起点为起点设置的多个时间间隔,一个时间间隔对应一个所述时间槽,所述时间槽包括交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽,所述最近计时起点为上一个信息发送完毕中断时刻或上一个信息接收完毕中断时刻,所述时间间隔大于所述待发送信息的前导码传输时间;
12.信息发送模块,用于将所述待发送信息在所述目标时间槽进行发送。
13.第三方面,本技术还提供了一种通信设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现以下步骤:
14.获取待发送信息;
15.基于所述待发送信息的原计划发送时刻,以及当前规划的各时间槽以及各所述时间槽的预计和事实收发状态,确定发送所述待发送信息的目标时间槽;其中,所述当前规划的各时间槽为以最近计时起点为起点设置的多个时间间隔,一个时间间隔对应一个所述时间槽,所述时间槽包括交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽,所述最近计时起点为上一个信息发送完毕中断时刻或上一个信息接收完毕中断时刻,所述时间间隔大于所述待发送信息的前导码传输时间;
16.将所述待发送信息在所述目标时间槽进行发送。
17.第四方面,本技术还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
18.获取待发送信息;
19.基于所述待发送信息的原计划发送时刻,以及当前规划的各时间槽以及各所述时间槽的预计和事实收发状态,确定发送所述待发送信息的目标时间槽;其中,所述当前规划的各时间槽为以最近计时起点为起点设置的多个时间间隔,一个时间间隔对应一个所述时间槽,所述时间槽包括交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽,所述最近计时起点为上一个信息发送完毕中断时刻或上一个信息接收完毕中断时刻,所述时间间隔大于所述待发送信息的前导码传输时间;
20.将所述待发送信息在所述目标时间槽进行发送。
21.第五方面,本技术还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
22.获取待发送信息;
23.基于所述待发送信息的原计划发送时刻,以及当前规划的各时间槽以及各所述时间槽的预计和事实收发状态,确定发送所述待发送信息的目标时间槽;其中,所述当前规划的各时间槽为以最近计时起点为起点设置的多个时间间隔,一个时间间隔对应一个所述时间槽,所述时间槽包括交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽,所述最近计时起点为上一个信息发送完毕中断时刻或上一个信息接收完毕中断时刻,所述时间间隔大于所述待发送信息的前导码传输时间;
24.将所述待发送信息在所述目标时间槽进行发送。
25.上述信息传输方法、装置、通信设备和存储介质,获取待发送信息后,基于待发送信息的原计划发送时刻,以及当前规划的各时间槽以及各时间槽的预计和事实收发状态,确定发送待发送信息的目标时间槽,其中,当前规划的各时间槽为以最近计时起点为起点设置的多个时间间隔,一个时间间隔对应一个时间槽,时间槽包括交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽,最近计时起点为上一个信息发送完毕中断时刻或上一个信息接收完毕中断时刻,时间间隔大于待发送信息的前导码传输时间,然后将待发送信息在目标时间槽进行发送。时间间隔大于待发送信息的前导码传输时间,使在时间槽内可以正常接收到前导信号,以上一个信息发送完毕中断时刻或上一个信息接收完毕中断时刻为起点设置多个交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽,
根据原计划发送时刻和各时间槽的预计和事实收发状态,确定发送待发送信息的目标时间槽,然后将待发送信息在目标时间槽发送,使信息发送和接收只在特定时间槽中进行,在一个时间槽中进行一次信息收发传输,从而避免了双方同时发送信息所导致的消息碰撞,提高了信息传输的有效性,工作可靠。
附图说明
26.图1为一个实施例中信息传输方法的流程示意图;
27.图2为另一个实施例中信息传输方法的流程示意图;
28.图3为又一个实施例中信息传输方法的流程示意图;
29.图4为再一个实施例中信息传输方法的流程示意图;
30.图5为一个实施例中三个中断信号的产生示意图;
31.图6为一个实施例中时间槽与预计状态规划示意图;
32.图7为一个实施例中发送对齐与中断检测示意图;
33.图8为一个实施例中时间槽和预计状态的动态重规划示意图;
34.图9为一个实施例中信息发送示意图;
35.图10为另一个实施例中信息发送示意图;
36.图11为又一个实施例中信息发送示意图;
37.图12为再一个实施例中信息发送示意图;
38.图13为再一个实施例中信息发送示意图;
39.图14为一个实施例中基站取消规划,机器人收发消息恢复规划示意图;
40.图15为一个实施例中机器人和基站都取消规划示意图;
41.图16为一个实施例中信息传输装置的结构示意图。
具体实施方式
42.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
43.本技术实施例提供的信息传输方法,可以应用于通讯模组,由通讯模组执行,例如可应用在清洁机器人和基站的通讯模组中,清洁机器人和基站通过设置于自身的通讯模组进行信息传输。
44.在一个实施例中,如图1所示,提供了一种信息传输方法,以该方法应用于通讯模组为例进行说明,包括以下步骤:
45.步骤102,获取待发送信息。
46.其中,待发送信息是指计划要发送的信息。一般地,信息包括前导码、分隔符和消息负载,前导码一般为形如01010101..这样的位码,长度为4~1023字节不定。消息负载部分一般包括消息头、消息内容、校验码等,长度为1~65535字节不定。通讯模组发送一个消息的时间根据消息的长度和通讯速率的不同而不同。在低速10khz的通讯速率下,发送30字节的消息需要大约24毫秒。
47.信号发送端和信号接收端进行通讯时,信号发送端和信号接收端上的通讯模组一
般会包括接收状态和发送状态。信号发送端和信号接收端上的通讯模组收发消息时,在没有发生碰撞的理想情况下,一方发送消息,另一方同步接收消息,然后接收端转换状态为发送状态,并发送应答包,原发送端同步转换为接收状态并接收应答。
48.步骤104,基于待发送信息的原计划发送时刻,以及当前规划的各时间槽以及各时间槽的预计和事实收发状态,确定发送待发送信息的目标时间槽。
49.其中,当前规划的各时间槽为以最近计时起点为起点设置的多个时间间隔,一个时间间隔对应一个时间槽,时间槽包括交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽,最近计时起点为上一个信息发送完毕中断时刻或上一个信息接收完毕中断时刻,时间间隔大于待发送信息的前导码传输时间。
50.上一个信息发送完毕中断时刻,为上一个信息发送完之后,产生发送完毕中断信号的时刻,上一个信息接收完毕中断时刻,为上一个信息接收完之后,产生接收完毕中断信号的时刻。通讯模组在上一个信息发送完或上一个信息接收完后,以上一个信息发送完毕中断时刻或上一个信息接收完毕中断时刻为起点,设置多个时间间隔,一个时间间隔对应一个时间槽。各个时间槽的长度均相等,便于时间槽对齐。时间间隔大于待发送信息的前导码传输时间,即每一个时间槽的长度大于前导码的传输时间,使前导码在时间槽的起始时刻发送时,可以在当前时间槽内被检测到。
51.时间槽包括交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽,通讯模组基于待发送信息的原计划发送时刻,判断原计划发送时刻落入哪个时间槽内,并确定当前时间槽的类型为预计信息发送状态时间槽还是预计信息接收状态时间槽。进一步地,通讯模组结合当前规划的各时间槽以及各时间槽的预计和事实收发状态,确定发送待发送信息的目标时间槽。各时间槽的预计收发状态是指当前时间槽为信息预计发送时间槽或信息预计接收时间槽。各时间槽的事实状态是指当前时间槽上是否正在进行信息收发行为,以是否检测到前导码中断信号为事实依据。根据原计划发送时刻对应的时间槽,确定发送待发送信息的目标时间槽,即确定待发送消息要在什么类型的时间槽发送,具体在哪一个时间槽发送等。
52.通讯模组一般都可以设置前导码的长度,例如设置前导码长度为5个字节,在10khz的速度下,前导码传输时间为4ms。可以理解,在其他实施例中,前导码长度也可以为其他。
53.步骤106,将待发送信息在目标时间槽进行发送。
54.确定好目标时间槽后,将待发送信息安排在目标时间槽进行发送,具体可在目标时间槽的起始时刻发送。使信息发送和接收只在特定时间槽中进行,在一个时间槽中按照对齐的时刻进行一次信息收发传输,从而避免了双方同时发送信息所导致的消息碰撞,提高了信息传输的有效性。
55.信息预计发送时间槽用于将来发送信息,信息预计接收时间槽用于将来接收信息,从而收发双方在不同类型的时间槽内完成对应的的信息收发动作,避免因为双方同时发送信息而导致的消息碰撞问题。
56.在一个实施例中,如图2所示,步骤104包括步骤204。
57.步骤204,若原计划发送时刻落入预计信息接收状态时间槽,基于落入的预计信息接收状态时间槽的信息收发事实,确定目标时间槽。
58.具体地,落入的预计信息接收状态时间槽的信息收发事实是指落入的预计信息接收状态时间槽内是否真实发生了信息发送或信息接收。若原计划发送时刻落入预计信息接收状态时间槽,基于落入的预计信息接收状态时间槽的信息收发事实确定目标时间槽,可以综合考虑落入的预计信息接收状态时间槽的工作状态,减少对正在进行的落入的预计信息接收状态时间槽的信息收发工作的影响。
59.在一个实施例中,如图3所示,步骤204包括步骤304。
60.步骤304,若落入的预计信息接收状态时间槽的信息收发事实为无信息收发,将与落入的预计信息接收状态时间槽相邻的下一个预计信息发送状态时间槽,确定为目标时间槽。
61.若落入的预计信息接收状态时间槽的信息收发事实为无信息收发,考虑此时落入的预计信息接收状态时间槽没有接收消息,则将与落入的预计信息接收状态时间槽相邻的下一个预计信息发送状态时间槽,确定为目标时间槽,使待发送信息在与落入的预计信息接收状态时间槽相邻的下一个预计信息发送状态时间槽发送。将待发送信息在预计信息接收状态时间槽发送,可以避免信息碰撞。
62.进一步地,如图3所示,步骤204还包括步骤306和步骤308。
63.步骤306,若落入的预计信息接收状态时间槽的信息收发事实为有信息收发,则在信息收发完毕后,以信息收发完毕的时刻为起点重新规划各时间槽。
64.若落入的信息接收时间槽的信息收发事实为有信息收发,则在信息收发完毕后,以信息收发完毕中断的时刻为起点,重新规划各时间槽。重新规划的各时间槽的长度和之前规划的时间槽的长度相同,并给重新规划的时间槽重新分配预计的状态,即将重新规划后的时间槽设置为交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽。重新规划各时间槽可以校准和对齐发送端和接收端的时间刻度,避免长时间后累计误差导致的刻度不对齐的问题。
65.步骤308,将重新规划后的各时间槽中的第一个预计信息发送状态时间槽,确定为目标时间槽。
66.将重新规划后的各时间槽中的第一个预计信息发送状态时间槽,确定为目标时间槽,使待发送信息在重新规划后的各时间槽中的第一个预计信息发送状态时间槽发送,避免信息碰撞。
67.在一个实施例中,判断落入的预计信息接收状态时间槽的信息收发事实是否为有信息收发的具体方式为:若在落入的预计信息接收状态时间槽内存在前导码中断信号,确定落入的预计信息接收状态时间槽的信息收发事实为有信息收发。通讯模组在检测到合法的前导码时,会产生一个前导码中断信号。因此,若在落入的预计信息接收状态时间槽内存在前导码中断信号,则可以确定落入的预计信息接收状态时间槽的信息收发事实为有信息收发,判断过程简单。
68.在一个实施例中,判断在落入的预计信息接收状态时间槽内是否存在前导码中断信号的具体方式为:若在落入的预计信息接收状态时间槽内,读取的寄存器中的前导中断标志位为中断发生位置位,则确定落入的预计信息接收状态时间槽内存在前导码中断信号。
69.具体地,通讯模组内设置有寄存器,通过i2c或spi总线读取寄存器中的中断标志
位,一般情况下,标志位为1表示有中断发生,为0表示无中断发生。若读取的寄存器中的中断标志位为中断发生位置位,在本实施例中中断发生标志位为1,则确定落入的预计信息接收状态时间槽内存在前导码中断信号。
70.或者,判断在落入的预计信息接收状态时间槽内是否存在前导码中断信号的具体方式还可以为:若在落入的预计信息接收状态时间槽内,记录的中断发生次数相对于上一时刻的预计信息接收状态时间槽的中断发生次数有更新,则确定落入的预计信息接收状态时间槽内存在前导码中断信号。检查中断是否已经发生的另一种方法是用一个计数器变量来跟踪记录,该变量在每次中断发生时都会更新,若在落入的预计信息接收状态时间槽内,记录的中断发生次数相对于上一时刻的预计信息接收状态时间槽的中断发生次数有更新,表示有中断发生,落入的预计信息接收状态时间槽内存在前导码中断信号,若无更新则表示无中断发生。
71.在一个实施例中,如图2所示,步骤104包括步骤206。
72.步骤206,若原计划发送时刻落入预计信息发送状态时间槽,基于原计划发送时刻与落入的预计信息发送状态时间槽的起始时刻的时间差值,确定发送待发送信息的目标时间槽。
73.若原计划发送时刻落入预计信息发送状态时间槽,考虑当前预计信息发送状态时间槽可能可以用于发送待发送信息,则进一步基于原计划发送时刻与落入的预计信息发送状态时间槽的起始时刻的时间差值,确定发送待发送信息的目标时间槽是否可以为当前预计信息发送状态时间槽。基于原计划发送时刻与落入的预计信息发送状态时间槽的起始时刻的时间差值,可以得到原计划发送时刻位于落入的预计信息发送状态时间槽的哪个位置,作为判断待发送信息是否可以在当前预计信息发送状态时间槽内成功发送完毕的依据,再确定发送待发送信息的目标时间槽,可以提高信息发送的成功率。
74.在一个实施例中,如图4所示,步骤206包括步骤406。
75.步骤406,若原计划发送时刻与落入的预计信息发送状态时间槽的起始时刻的时间差值小于或等于预设时间差值,将落入的预计信息发送状态时间槽确定为目标时间槽。
76.预设时间差值的具体取值并不是唯一的,例如可以为0.1ms。若原计划发送时刻与落入的预计信息发送状态时间槽的起始时刻的时间差值小于或等于预设时间差值,考虑若原计划发送时刻与落入的预计信息发送状态时间槽的起始时刻的时间差值较小,在允许的对齐误差范围内,此时将落入的预计信息发送状态时间槽确定为目标时间槽,将待发送信息在落入的预计信息发送状态时间槽内发送,可以使待发送信息在当前预计信息发送状态时间槽内发送成功。
77.在一个实施例中,如图4所示,步骤206包括步骤408。
78.步骤408,若原计划发送时刻与落入的预计信息发送状态时间槽的起始时刻的时间差值大于预设时间差值,将落入的预计信息发送状态时间槽之后的下一个预计信息发送状态时间槽,确定为目标时间槽。
79.预设时间差值的具体取值并不是唯一的,例如可以为0.1ms。若原计划发送时刻与落入的预计信息发送状态时间槽的起始时刻的时间差值大于预设时间差值,考虑若原计划发送时刻与落入的预计信息发送状态时间槽的起始时刻的时间差值较大,当前落入的预计信息发送状态时间槽可能无法满足信息发送需求。则将落入的预计信息发送状态时间槽之
后的下一个预计信息发送状态时间槽,确定为目标时间槽,以确保信息成功发送。
80.在一个实施例中,如图4所示,步骤206还包括步骤410和步骤412。
81.步骤410,在将落入的预计信息发送状态时间槽之后的下一个预计信息发送状态时间槽,确定为目标时间槽之后,若落入的预计信息发送状态时间槽之后的预计信息接收状态时间槽中有信息收发事实,则在信息收发事实完毕后,以消息收发事实完毕的时刻为起点,重新规划各时间槽和预计状态。
82.具体地,在将落入的预计信息发送状态时间槽之后的下一个预计信息发送状态时间槽,确定为目标时间槽之后,若落入的预计信息发送状态时间槽之后的预计信息接收状态时间槽中有信息收发事实,则在信息收发事实完毕后,以消息收发事实完毕的时刻为起点,重新规划各时间槽。各重新规划的时间槽的长度和之前规划的时间槽的长度相同,并给重新规划的时间槽重新分配预计的状态,即将重新规划后的时间槽设置为包括交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽。重新规划各时间槽可以校准和对齐发送端和接收端的时间刻度,避免长时间后累计误差导致的刻度不对齐的问题。
83.步骤412,将重新规划后的各时间槽中的第一个预计信息发送状态时间槽,确定为目标时间槽。
84.将重新规划后的各时间槽中的第一个预计信息发送状态时间槽,确定为目标时间槽,使待发送信息在重新规划后的各时间槽中的第一个预计信息发送状态时间槽发送,避免信息碰撞。
85.在一个实施例中,重新规划后的各时间槽中的第一个时间槽,为预计信息发送状态时间槽。
86.若落入的预计信息接收状态时间槽的信息收发事实为有信息收发,则在信息收发事实完毕后,以信息收发事实完毕的时刻为起点重新规划各时间槽,或者,在将落入的预计信息发送状态时间槽之后的下一个预计信息发送状态时间槽,确定为目标时间槽之后,若落入的预计信息发送状态时间槽之后的预计信息接收状态时间槽中有信息收发事实,则在信息收发事实完毕后,以消息收发事实完毕的时刻为起点重新规划各时间槽。在这两种情况下,均以消息收发事实完毕的时刻为起点重新规划各时间槽,则将重新规划后的各时间槽中的第一个时间槽,设置为预计信息发送状态时间槽,可以在信息接收完毕后,紧跟着规划一个预计信息发送状态时间槽,用于发送信息,形成交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽,便于信息传输。
87.在一个实施例中,在将与原计划发送时刻落入的预计信息接收状态时间槽相邻的下一个预计信息发送状态时间槽,确定为目标时间槽,或将重新规划后的各时间槽中的第一个预计信息发送状态时间槽,确定为目标时间槽,或将落入的预计信息发送状态时间槽之后的下一个预计信息发送状态时间槽,确定为目标时间槽时,在需要发送待发送消息时,如图2所示,步骤106包括步骤208。
88.步骤208,将待发送信息的发送时刻与目标时间槽的起始时刻对齐后,在目标时间槽的起始时刻发送待发送信息。
89.将待发送信息的发送时刻与目标时间槽的起始时刻对齐后,在目标时间槽的起始时刻发送待发送信息,可以使待发送信息的前导信息在目标时间槽内发送成功。
90.在一个实施例中,如图2所示,步骤106之后,信息传输方法还包括步骤210。
91.步骤210,若在预设时间段内的若干个预计信息接收状态时间槽中未收到对方端的应答包,则将当前通讯状态改为连续性接收状态。
92.其中,预设时间段的时长大于时间槽的时长。预设时间段的时长大于时间槽的时长,通讯模组在发送信息之后,至少等待一个时间槽的长度,判断是否能接收到应答包。通讯模组在发送信息后,若接收端成功接收信息,则接收端会发送应答包至发送方的通讯模组。若通讯模组在预设时间段内的若干个预计信息接收状态时间槽中未收到对方端的应答包,考虑可能发生了丢包等异常问题,则通讯模组将当前通信状态改变为连续性接收状态,等待接收信息。
93.在一个实施例中,如图3所示,步骤210包括步骤310。
94.步骤310,取消对时间槽的重新规划,并将当前通信状态改变为不受时间槽约束的连续性接收状态。
95.若在预设时间段内的若干个预计信息接收状态时间槽中未收到对方端的应答包,考虑时间槽可能失效,此时通讯模组重规划时间槽和预计状态是没有意义的,因为接收端没有收到信息,就不会重规划,导致发送端和接收端两边的时间槽不再对齐。此时,通讯模组取消对时间槽的重新规划,并将当前通信状态改变为不受时间槽约束的连续性接收状态,等待接收数据。预设时间段的取值并不是唯一的,例如可以为100ms等。
96.在一个实施例中,如图2所示,步骤210之后,信息传输方法还包括步骤212。
97.步骤212,若接收到对方端发送的数据包,以接收到数据包的时刻为起点重新规划各时间槽。
98.其中,对方端一般为接收端。接收端发送的数据包可以是数据包或其他信息等,在此不做限定。通讯模组若接收到接收端发送的数据包,考虑可以正常接收信息,则以接收到数据包的时刻为起点重新规划各时间槽,重新规划的时间槽的长度与之前规划的时间槽的长度相等,以实现对齐时间槽。
99.在一个实施例中,如图2所示,信息传输方法还包括步骤214。
100.步骤214,若收发双方在连续的预设数目个时间槽中,均未进行信息收发,确定时间槽失效,取消时间槽规划,并将当前通信状态改变为连续性接收状态。
101.若收发双方在连续的预设数目个时间槽中,均未进行信息收发,此时通讯模组重规划时间槽和预计状态是没有意义的,因为接收端没有收到信息,就不会重规划,导致发送端和接收端两边的时间槽不再对齐。此时,确定时间槽失效,并当前通信状态改变为连续性接收状态,等待接收数据。预设数目的取值并不是唯一的,例如可以为10个等。
102.在一个实施例中,若最近计时起点为上一个信息发送完毕中断时刻,则自最近计时起点规划的各时间槽中的第一个时间槽,为预计信息接收状态时间槽,若最近计时起点为上一个信息接收完毕中断时刻,则自最近计时起点规划的各时间槽中的第一个时间槽,为预计信息发送状态时间槽。通过这种时间槽规划方式,可以使通讯模组在接收完信息后可以发送信息,在发送完信息后可以接收信息,信息收发交替进行,保障正常信息传输。
103.上述信息传输方法,获取待发送信息后,基于待发送信息的原计划发送时刻,以及当前规划的各时间槽以及各时间槽的预计和事实收发状态,确定发送待发送信息的目标时间槽,其中,当前规划的各时间槽为以最近计时起点为起点设置的多个时间间隔,一个时间间隔对应一个时间槽,时间槽包括交替排列的预计信息发送状态时间槽和预计信息接收状
态时间槽,最近计时起点为上一个信息发送完毕中断时刻或上一个信息接收完毕中断时刻,时间间隔大于待发送信息的前导码传输时间,然后将待发送信息在目标时间槽进行发送。时间间隔大于待发送信息的前导码传输时间,使在时间槽内可以正常接收到前导信号,以上一个信息发送完毕中断时刻或上一个信息接收完毕中断时刻为起点设置多个交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽,根据原计划发送时刻和各时间槽的预计和事实收发状态,确定发送待发送信息的目标时间槽,然后将待发送信息在目标时间槽发送,使信息发送和接收只在特定时间槽中进行,在一个时间槽中进行一次信息收发传输,从而避免了双方同时发送信息所导致的消息碰撞,提高了信息传输的有效性,工作可靠。
104.为了更好地理解上述实施例,以下结合一个具体的实施例进行详细的解释说明。在一个实施例中,信息传输方法应用于扫地机器人和基站上的通讯模组,两个通讯模组分别为发送端和接收端。通讯模组一般都可以设置前导码的长度,例如设置前导码长度为5个字节,在10khz的速度下,前导码传输时间为4ms。消息长度不定,整个包的传输平均时间假设为20ms。
105.如图5所示,通讯模组一般都可以使能前导码检测中断、包接收完毕中断、包发送完毕中断。当模组检测到合法的前导码时,会产生一个中断信号通知软件来处理,当接收到一个完整的包时也会产生一个中断通知主控制器cpu中的软件来处理,当发送完一个完整的包时也会产生中断。当中断条件满足时,通讯模组通过硬件引脚来中断主控制器,运行在主控制器上的软件可以通过i2c或spi总线来查询通讯模组寄存器的中断标志位来判断究竟是哪一种中断发生。
106.发送端发送完一个包后,会产生一个发送完毕中断,发送端软件在中断处理程序中开始计时。发送端软件规划若干连续的时间刻度,刻度之间的时间槽长度需要略大于前导码的传输时间,例如前导码传输时间为4ms,则时间槽长度可设置为5ms,但不限定于这个值。接收端接收完一个包后,会产生一个接收完毕中断,接收端软件在中断处理程序中开始计时。接收端软件规划若干连续的时间刻度,时间长度和发送端的时间长度保持一致,都为5ms。由于发送端的发送完毕中断和接收端的接收完毕中断几乎是同时的,所以发送端的时间刻度规划和接收端的时间刻度规划在一段时间范围内是几乎相同的,这样保证了两者的时间槽在一段时间范围内是对齐的。
107.如图6所示,每一个时间槽下面包括两种预计状态,即预计信号接收状态和预计信号发送状态。将发送端的第一个时间槽设定为预计信息接收状态时间槽。即rx’,第二个设定为预计信息发送状态时间槽,即tx’,依次类推。将接收端的第一个时间槽设定为预计信息发送状态时间槽,第二个设定为预计信息接收状态时间槽,依次类推。
108.在预计信息发送状态时间槽中,如果有消息需要发送,则可以与时间槽的起始刻度对齐发送。允许一定的对齐误差,误差可以设定为但不限于0.1ms,若误差大于0.1ms,则延后到下一个信息预计信息发送状态时间槽的起始刻度对齐发送。
109.如图7所示,在预计信息接收状态时间槽中,在预计信息接收状态时间槽的末端4ms~5ms范围内(注1部分)检查是否有前导码有效中断发生。如果检测到有中断发生,则表示该时间槽内对方有消息正在发送,否则表示该时间槽内对方没有消息在发送。检测中断是否已经发生的一种方法是通过i2c或spi总线读取寄存器中的中断标志位,一般情况下,
标志位为1表示有中断发生,为0表示无中断发生。检查中断是否已经发生的另一种方法是用一个计数器变量来跟踪记录,该变量在每次中断发生时都会更新,检查如果有更新表示有中断发生,无更新则表示无中断发生。图7中注1部分为机器人在预计的rx’周期末端未检测到中断,证明基站在该时间槽内未发送消息。注2部分为基站在预计的rx’周期末端未检测到中断,证明机器人在该时间槽内未发送消息。注3部分为基站在该tx’周期的起始时刻发送消息,并在机器人一侧触发前导有效检测中断。注4部分为机器人在预计的rx’周期末端检测到中断,证明基站在该时间槽内正在发送消息。
110.如图8所示,发送端在每次发送完毕后,以发送完毕中断的触发时刻对齐,重新规划时间刻度,时间槽的长度和之前规划的值一致,并给时间槽重新分配预计的状态。接收端以接收完毕中断的触发时刻对齐,重新规划时间槽,并给时间槽重新分配预计的状态。重新规划的目的是校准和对齐发送端和接收端的时间刻度,避免长时间后累计误差导致刻度不对齐的问题。图8中注1部分为发送端接收到发送完毕中断后,重新规划后续时间槽,并重新设置预计状态。注1部分为接收端接收到接收完毕中断后,重新规划后续时间槽,并重新设置预计状态。
111.具体地,如图9所示,若用户原计划发送的时刻落入预计信息接收状态时间槽中,而此刻的时间槽内并无实际消息收发,则需要将计划发送的消息重新安排到后续预计信息发送状态时间槽的起始时刻发送。如图10所示,若用户原计划发送消息的时刻落入预计信息接收状态时间槽中,而此刻的时间槽正在收发消息,则先完成消息的收发,并重新规划时间槽和预计状态,之后将原计划发送的消息安排到重规划后的预计信息发送状态时间槽的起始时刻发送。如图11所示,若用户原计划发送消息的时刻落入预计信息发送状态时间槽中,如果此刻时间点与时间槽的起始时刻的时间差值小于0.1ms,则可以安排在此刻立即发送消息。如图12所示,若用户原计划发送消息的时刻落入预计信息发送状态时间槽中,如果此刻时间点与时间槽的起始时刻的时间差值大于0.1ms,则将消息安排到下一个预计信息发送状态时间槽的起始时刻发送。如图13所示,若用户原计划发送消息的时刻落入预计信息发送状态时间槽中,如果此刻时间点与时间槽的起始时刻的时间差值大于0.1ms,则起初将消息安排到下一个预计信息发送状态时间槽的起始时刻发送。然而在稍后的预计信息接收状态时间槽中,若正巧有消息收发,则先完成消息的收发,并重新规划时间槽和预计状态,之后将消息重新安排到重规划后的预计信息发送状态时间槽的起始时刻发送。其中,图13的注1部分表示第一次重安排的发送时刻,注2部分表示受基站消息b影响,重新规划时间槽后的第二次安排的发送时刻。
112.因各种原因,a方在发送完消息之后,b方并未检测到有效的前导码中断信号,此时a方重规划时间槽和预计状态是没有意义的,因为b方没有收到包,就不会重规划,导致a方和b方两边的时间槽不再对齐。对于这个情况,需要做几个方面的改进:
113.1)a方增加一个ack应答包的超时预判,如果a方在发送完非ack包之后,在预期的时间内的若干预计接收时间槽中未收到ack应答包,则视为时间槽失效,则a方应该主动取消时间槽重规划。
114.2)a方取消时间槽后,需要改变状态为连续性rx状态,并主动等待b方发送的包。
115.3)a方若在连续性rx状态的一段时间(如100ms)后没有收到任何包,则重新发送之前的包,然后再进入连续性rx状态。
116.4)a方若在连续性rx状态中一旦收到b方的任何包,则a方重新开启时间槽规划和设置预计状态。
117.5)如果a/b双方在开启时间槽规划功能情况下,在连续n(例如10)个rx’+tx’时间槽内没有任何消息收发动作,则视为时间槽失效,则a/b方应该主动取消时间槽规划,并设置为连续性rx接收状态,直到某一方需要发送消息从而转换到tx状态。
118.6)a/b方一旦收到对方的任何包,则重新开启时间槽规划和设置预计状态。图14为基站取消规划,机器人收发消息恢复规划示意图,图15为机器人和基站都取消规划,基站100ms后重发消息恢复规划。
119.该信息传输方法,避免了状态不可预测导致的发送碰撞问题,增加了时间槽规划和状态预测功能,在较高的收发频率下,因状态可预测和验证,能大大减少碰撞的机率。此外,因限制了时间槽的长度,使得维持了较好的消息实时性(平均延时小于5毫秒)。
120.应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
121.基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的信息传输方法的信息传输装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个信息传输装置实施例中的具体限定可以参见上文中对于信息传输方法的限定,在此不再赘述。
122.在一个实施例中,请参见图16,提供一种信息传输装置,包括待发送信息获取模块110、目标时间槽确定模块112和信息发送模块114,其中:
123.待发送信息获取模块110,用于获取待发送信息。
124.目标时间槽确定模块112,用于基于待发送信息的原计划发送时刻,以及当前规划的各时间槽以及各时间槽的预计和事实收发状态,确定发送待发送信息的目标时间槽;其中,当前规划的各时间槽为以最近计时起点为起点设置的多个时间间隔,一个时间间隔对应一个时间槽,时间槽包括交替排列的预计信息发送状态时间槽和预计信息接收状态时间槽,最近计时起点为上一个信息发送完毕中断时刻或上一个信息接收完毕中断时刻,时间间隔大于待发送信息的前导码传输时间。
125.信息发送模块114,用于将待发送信息在目标时间槽进行发送。
126.在一个实施例中,目标时间槽确定模块112还用于若原计划发送时刻落入预计信息接收状态时间槽,基于落入的预计信息接收状态时间槽的信息收发事实,确定目标时间槽。
127.在一个实施例中,目标时间槽确定模块112还用于若落入的预计信息接收状态时间槽的信息收发事实为无信息收发,将与落入的预计信息接收状态时间槽相邻的下一个预计信息发送状态时间槽,确定为目标时间槽。
128.在一个实施例中,目标时间槽确定模块112还用于若落入的预计信息接收状态时
间槽的信息收发事实为有信息收发,则在信息收发完毕后,以信息收发完毕的时刻为起点,重新规划各时间槽,将重新规划后的各时间槽中的第一个预计信息发送状态时间槽,确定为目标时间槽。
129.在一个实施例中,目标时间槽确定模块112还用于若在落入的预计信息接收状态时间槽内存在前导码中断信号,确定落入的预计信息接收状态时间槽的信息收发事实为有信息收发。
130.在一个实施例中,目标时间槽确定模块112还用于,
131.若在落入的预计信息接收状态时间槽内,读取的寄存器中的前导中断标志位为中断发生位置位,则确定落入的预计信息接收状态时间槽内存在前导码中断信号;或,
132.若在落入的预计信息接收状态时间槽内,记录的中断发生次数相对于上一时刻的预计信息接收状态时间槽的中断发生次数有更新,则确定落入的预计信息接收状态时间槽内存在前导码中断信号。
133.在一个实施例中,目标时间槽确定模块112还用于若原计划发送时刻落入预计信息发送状态时间槽,基于原计划发送时刻与落入的预计信息发送状态时间槽的起始时刻的时间差值,确定发送待发送信息的目标时间槽。
134.在一个实施例中,目标时间槽确定模块112还用于若原计划发送时刻与落入的预计信息发送状态时间槽的起始时刻的时间差值小于或等于预设时间差值,将落入的预计信息发送状态时间槽确定为目标时间槽。
135.在一个实施例中,目标时间槽确定模块112还用于若原计划发送时刻与落入的预计信息发送状态时间槽的起始时刻的时间差值大于预设时间差值,将落入的预计信息发送状态时间槽之后的下一个预计信息发送状态时间槽,确定为目标时间槽。
136.在一个实施例中,目标时间槽确定模块112还用于在将落入的预计信息发送状态时间槽之后的下一个预计信息发送状态时间槽,确定为目标时间槽之后,若落入的预计信息发送状态时间槽之后的预计信息接收状态时间槽中有信息收发事实,则在信息收发事实完毕后,以消息收发事实完毕的时刻为起点,重新规划各时间槽和预计状态;将重新规划后的各时间槽中的第一个预计信息发送状态时间槽,确定为目标时间槽。
137.在一个实施例中,重新规划后的各时间槽中的第一个时间槽,为预计信息发送状态时间槽。
138.在一个实施例中,信息发送模块114还用于将待发送信息的原计划发送时刻与目标时间槽的起始时刻对齐后,在目标时间槽的起始时刻发送待发送信息。
139.在一个实施例中,信息传输装置还包括超时预判模块,超时预判模块用于在信息发送模块114将待发送信息在目标时间槽进行发送之后,若在预设时间段内的若干个预计信息接收状态时间槽中未收到对方端的应答包,则将当前通讯状态改为连续性接收状态,预设时间段的时长大于时间槽的时长。
140.在一个实施例中,超时预判模块还用于取消对时间槽的重新规划,并将当前通信状态改变为不受时间槽约束的连续性接收状态。
141.在一个实施例中,超时预判模块还用于若接收到对方端发送的数据包,以接收到数据包的时刻为起点重新规划各时间槽。
142.在一个实施例中,信息传输装置还包括失效判断模块,失效判断模块用于若收发
双方在连续的预设数目个时间槽中,均未进行信息收发,确定时间槽失效,取消时间槽规划,并将当前通讯状态改为连续性接收状态。
143.在一个实施例中,若最近计时起点为上一个信息发送完毕中断时刻,则自最近计时起点规划的各时间槽中的第一个时间槽,为预计信息接收状态时间槽;若最近计时起点为上一个信息接收完毕中断时刻,则自最近计时起点规划的各时间槽中的第一个时间槽,为预计信息发送状态时间槽。
144.上述信息传输装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
145.在一个实施例中,提供了一种通信设备,包括存储器和处理器,存储器存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
146.在一个实施例中,通信设备为机器人或基站。机器人和基站上均设置有通信模组,通过通信模组实现上述各方法实施例中的步骤。
147.在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。
148.本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-only memory,rom)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(reram)、磁变存储器(magnetoresistive random access memory,mram)、铁电存储器(ferroelectric random access memory,fram)、相变存储器(phase change memory,pcm)、石墨烯存储器等。易失性存储器可包括随机存取存储器(random access memory,ram)或外部高速缓冲存储器等。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(static random access memory,sram)或动态随机存取存储器(dynamic random access memory,dram)等。本技术所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本技术所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
149.以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
150.以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1