一种实现beacon自主发现的LoRa通信方法
技术领域
本发明涉及一种LoRa通信方法,特别涉及一种实现beacon自主发现的LoRa通信方法。
背景技术
目前,物联网(IoT)是一种连接对象的集合,融合了电路、软件、传感器和通信协议等技术,通过无线网络收集和交换信息,并连接到互联网。它实现了物理和数字世界之间的直接集成和通信。物联网会产生海量信息,可用于优化各类资源,并提高日益互联的系统效率。IoT还将提升或产生新的服务模式,为企业、消费者和整体环境创造可持续增长的价值。今天,物联网已经影响了许多行业和服务的商业模式,如消费电子、汽车、电力、设施管理、智能建筑、智慧城市、电子健康、供应链或制造业等。
根据Machina Research的统计,到2025年,物联网设备的连接数量将达到250亿以上的规模。根据目前的统计,这些设备的连接很大一部分来自短距离通信技术连接,如Wifi,蓝牙,Zigbee,Z-Wave等。这些技术非常适合短距离传输,以及对供电及电池寿命不敏感的物联网设备。蜂窝连接将来自使用2G/3G/4G网络基础设施和技术的SIM和启用e-SIM的设备。由于设备发送和接收相对较低数据量的低功耗需求,当代的蜂窝技术将需要通过蜂窝演进和LPWA(Low Power Wide Area)技术完成发展,以服务不断涌现的新型IoT设备。
除了蜂窝技术的演进,新型的LPWAN网络技术非常适合物联网设备低功耗及长距离的连接需求。另外其数据通信速率可解决带宽浪费问题。通过LoRa调制其速率为从300bps到5kbps(125kHz带宽)。
LoRa无线调制技术2010年由法国Cycleo公司发明,2012年被Semtech收购,并增加了MAC层规范协议,用以规范和扩展LoRa物理通信层以实现与互联网的连接。该MAC层协议称为LoRaWAN(LoRa for Wide Area)网络规范。该规范由LoRa联盟制定、更新并对外开源。LoRaWAN协议包括几个关键的无线网络功能,如E2E加密和安全性、自适应数据速率优化、服务质量等先进的通信应用。
LoRa网络在基础LoRaWAN终端设备(命名为A类终端设备)和可选特征(B类终端设备、C类终端设备…)之间的区别如下:
具有LoRaWAN Class A类功能的终端设备,称为A类终端设备,A类终端设备为双向终端设备:A类终端设备通过每个终端设备的上行传输后紧跟2个短的下行接收窗来实现双向通信。终端设备根据自己的通信需求来调度传输时隙,并且可以基于随机时间(ALOHA-type协议)进行小幅度的变化。A类终端设备是最低功耗的终端应用系统,只需要在完成上行发射后立即接收来自服务器的下行传输即可。在任何时刻,服务器的下行传输都要等到设备下一次上行调度完成之后才能进行。
具有LoRaWAN Class B类功能的终端设备,称为B类终端设备,B类终端设备为具备可调度的接收时隙的双向通信终端设备:B类终端设备具有更多的接收时隙,除了具有和A类终端设备相同的随机接收窗口之外,B类终端设备在被调度期间还开放了额外的的接收窗口。为了让终端设备在被调度期间打开接收窗口,设备终端需要接收来自基站的定时同步信号。这使得服务器知道终端设备何时正在监听。
具有LoRaWAN Class C类功能的终端设备,称为C类终端设备,C类终端设备为具有最大接收时隙的双向通信终端设备:C类终端设备除了进行上行发射之外,其余所有时间几乎连续打开接收窗口。与A类和B类终端设备相比,C类终端设备具有更大的功耗,但是可以提供从服务器到终端通信的最小延迟。
为了达到服务器能够发起下行消息的目的,当需要在固定时间间隔处打开接收窗时,终端设备需要实现Class B操作。
在B类终端设备上增加了一个同步接收窗口。
A类终端设备的一个局限性是终端设备在发送数据时必须遵循Aloha协议,当应用程序或者服务器要寻址终端设备时,不允许有已知的反应时间。B类终端设备的目的就在于,除了具备A类终端设备跟随在随机上行链路后的接收窗之外,还具备一个预配置的接收窗。基站定期发送beacon(信标帧)以保证和网络中所有的终端设备同步,基于此,在一个周期时隙期间的某个预定的时间点上,终端设备打开一个额外的短的接收窗口(称为“pingslot”),通过这种方式来实现Class B。附图2说明了beacon接收时隙和ping slots的概念。
Beacon的周期是128s,终端设备每32s开启一次ping接收时隙,在大多数的情况下,服务器端是不使用该ping slot的,因此,一旦无线收发器发现无线信道上没有前导码时,终端设备就会关闭接收窗。如果无线收发器检测到了前导码,那么它将一直保持开启状态,直到完成下行帧的解调。然后,MAC层在将该帧转发给应用层之前,要对其进行处理,例如检查其地址字段是否与终端设备地址相匹配,以及MIC是否有效。
终端设备发送beacon定时请求BeaconTimingReq命令用于请求下一个beacon定时和信道。该MAC指令没有负载。Beacon定时请求BeaconTimingReq和beacon定时应答BeaconTimingAns机制只是为了加速初始beacon搜索,从而达到降低终端设备的能量需求的目的。
在给定的时间周期内,网络只能对有限数量的请求进行答复。发送了BeaconTimingReq的终端设备不能立即收到BeaconTimingAns的答复。想要切换到B类的A类终端设备最多每个小时发送一个BeaconTimingReq。需要快速beacon锁定的终端设备必须实现自主beacon发现算法。
对于现有的B类终端设备,在A类转化为B类之前,需要先发现beacon进行同步,但是由于beacon发送的自身特点,基站周期性的发送,以及A类终端设备接收窗的限制,即A类终端设备不发送上行信令的情况下,是不会打开接收窗进行接收beacon的,只有A类终端设备有上行信令发送并且在发送窗发送完成后才会打开相应的接收窗,才有可能接收到基站发送的beacon信令。所以在正常情况下,A类终端设备在转化为B类之前很大概率是收不到beacon信令的,也就不能转化为B类功能。
发明内容
本发明为解决公知技术中存在的技术问题而提供一种实现beacon自主发现的LoRa通信方法。
本发明为解决公知技术中存在的技术问题所采取的技术方案是:一种实现beacon自主发现的LoRa通信方法,具有LoRaWAN Class A类功能的终端设备通过随机或周期地发送beacon请求命令给基站或网络服务器,基站或网络服务器收到该命令后发送beacon应答命令,将下次发送beacon的时间以及信道组索引号发送给该终端设备。
进一步地,在beacon请求命令中,设置帧挂起FPending标志位为1时终端设备周期地发送beacon请求命令,设置FPending标志位为0时终端设备随机地发送beacon请求命令。
进一步地,如果终端设备在接收窗中一直没有收到beacon应答命令时,则提高beacon请求命令的发送频率或者缩短beacon请求命令的发送周期。
进一步地,在beacon应答命令中,设置基站或网络服务器发送下一次beacon的时刻点,以及设置基站或网络服务器发送下一次beacon的信道频率。
进一步地,在beacon应答命令中,设置基站或网络服务器发送beacon的时间段,以及设置基站或网络服务器经过发送时间段后发送beacon的信道频率。
进一步地,终端设备每次发送消息时,在消息的MAC头中的预留位中指示Beacon请求命令的发送频率。
进一步地,在消息的MAC头中的预留位中指示Beacon请求命令的发送频率的步骤为:
步骤a1:设定两个频率f1与f2,且f1大于f2;
步骤a2:在消息的MAC头中的预留位中设置beacon周期指示BeaconDrictor位;
步骤a3:设置beacon周期指示BeaconDrictor位为1时,终端设备以f1的频率发送beacon请求命令;设置beacon周期指示BeaconDrictor位为0时,终端设备以f2的频率发送beacon请求命令。
进一步地,终端设备每次发送消息时,在消息的MAC头中的预留位中指示Beacon请求命令的发送模式。
进一步地,在消息的MAC头中的预留位中指示Beacon请求命令的发送模式的步骤为:
步骤b1:设定两个频率f1与f2,且f1大于f2;
步骤b2:在消息的MAC头中的预留位中设置随机或周期指示Random_Period位和beacon周期指示BeaconDrictor位;
步骤b3:设置随机或周期指示Random_Period位为1时指示终端设备周期地发送Beacon请求命令;设置随机或周期指示Random_Period位为0时指示终端设备随机地发送Beacon请求命令;
步骤b4:当Random_Period位为1时,设置BeaconDrictor位为1时指示终端设备以f1的频率发送beacon请求命令,设置BeaconDrictor位为0时指示终端设备以f2的频率发送beacon请求命令;当Random_Period位为0时,设置BeaconDrictor位无效。
本发明具有的优点和积极效果是:LoRaWAN Class A类终端设备在转化为B类终端设备之前,通过让A类终端设备在发送A类信令时能主动的发起beacon搜索请求命令,基站或网络服务器一旦接收到此命令会发送给A类终端设备有关beacon的相关信息,A类终端设备在接收到beacon的相关信息之后会在相应的时间点发送空负载数据包给服务器,并打开相应的接收窗,接收服务器发送的beacon信令,从而达到快速搜索到beacon信息,达到与基站或网络服务器同步的效果,便于随时切换到B类终端设备的功能。
附图说明
图1是本发明的Beacon请求发送/接收时序图;
图2是现有技术的Beacon请接收时隙和Ping时隙时序图。
附图中的英文参数释义如下:
Gateway:网关/基站侧;
End-device:终端设备侧;
Tx BeaconReq MAC:传输beacon请求命令;
RX1 BeaconAns:第一接收窗接收beacon应答命令(包括时间,信道频率);
RX2 BeaconAns:第二接收窗接收beacon应答命令(包括时间,信道频率);
Tx Idle Payload:传输空数据包;
Network beacon transmission:网络信标传输;
End-device RX window:终端接收窗;
BEACON_PERIOD:信标beacon周期;
Ping:Ping命令;
End-device response:终端响应;
PING_PERIOD:Ping命令周期;
具体实施方式
为能进一步了解本发明的发明内容、特点及功效,兹列举以下实施例,并配合附图详细说明如下:
请参见图1,一种实现beacon自主发现的LoRa通信方法,具有LoRaWAN Class A类功能的终端设备通过随机或周期地发送beacon请求命令给基站或网络服务器,基站或网络服务器收到该命令后发送beacon应答命令,将下次发送beacon的时间以及信道组索引号发送给该终端设备。beacon请求命令即BeaconReq MAC命令,beacon应答命令即BeaconAnsMAC命令。下文中的终端设备均指该终端设备,该终端设备可同时具有A/B类功能,即该终端设备既可以具有LoRaWAN Class A类功能,也可具有LoRaWAN Class B类功能。
进一步地,可在beacon请求命令中,设置帧挂起FPending标志位为1时终端设备周期地发送beacon请求命令,设置FPending标志位为0时终端设备随机地发送beacon请求命令。
进一步地,如果终端设备在接收窗中一直没有收到beacon应答命令时,则可提高beacon请求命令的发送频率或者缩短beacon请求命令的发送周期。
以上方法可采用如下具体步骤:
步骤1:终端设备可具有A/B类功能,当其为A类终端设备时,终端设备可随机发送或者周期性发送beacon请求命令给基站或网络服务器。
步骤1-1:终端设备可以根据帧挂起FPending位的是否设置为1,来确定是随机发送beacon请求BeaconReq MAC命令还是周期发送beacon请求BeaconReq MAC命令。
步骤1-2:若帧挂起FPending位为1,则终端设备可采用周期发送模式;若FPending位为0终端设备可采用随机发送模式。
注:FPending位可表示基站或网络服务器是否已为该终端设备排列好了一个或多个下行数据帧,如果已为该终端设备排列好了一个或多个下行数据帧,则FPending位置为1,否则FPending位置为0。请参见下表1:
表1:BeaconReq的MAC字节配置方式
Bit# |
7 |
6 |
5 |
4 |
[3..0] |
FCtrl bits |
ADR |
RFU |
ACK |
FPending |
FOptsLen |
步骤2:基站或网络服务器收到BeaconReq MAC命令后,可下发一个BeaconAns MAC命令给终端设备,把下次基站或网络服务器发送beacon的时间以及信道索引号发送给终端设备。
步骤3:终端设备可根据接收到的信息,相应需要在打开接收窗RX1的前delay时间内发送一个空负载或者空数据包,触发设备打开RX1或者RX2接收窗,接收基站或网络服务器发送的beacon帧(信标帧)。
步骤4:当终端设备采用周期发送模式发送时,如果终端设备在接收窗中一直没有收到BeaconAns MAC命令,则可提高BeaconReq的发送频率或者缩短BeaconReq的发送周期。
基站或网络服务器收到该命令后发送beacon应答BeaconAns命令,将下次发送beacon的时间以及信道组索引号发送给LoRaWAN Class A类终端设备,其中beacon应答BeaconAns MAC命令的字节配置可采用以下两种方式,
第一种方式请参考下表2:
表2:第一种BeaconAns MAC字节配置方式
Size(Bytes) |
4 |
3 |
BeaconAns Payload |
Time |
FreqChannel |
表2中,Time表示服务器发送给终端设备下一次最近的beacon发送的时刻点,FreChannel表示服务器发送给终端设备下一次最近的beacon发送的信道频率。
这样,在beacon应答命令中,可设置基站或网络服务器发送下一次beacon的时刻点,以及设置基站或网络服务器发送下一次beacon的信道频率。
第二种方式请参考下表3:
表3:第二种BeaconAns MAC字节配置方式
Size(Bytes) |
4 |
3 |
BeaconAns Payload |
DifTime |
FreqChannel |
表3中,DifTime表示服务器发送给终端设备的相邻两个beacon时间差,FreChannel表示服务器经过DifTime时间后发送beacon的信道频率。
这样,在beacon应答命令中,可设置基站或网络服务器发送beacon的时间段,以及设置基站或网络服务器经过发送时间段后发送beacon的信道频率。
也可以采用当终端设备每次发送消息时,在消息的在MAC头中RFU比特中隐式或显示指示beacon请求命令的方式,确定终端设备发送beacon请求命令给基站或网络服务器的发送周期频率。可采用如下两种方法实现:
其中第一种方法是,终端设备每次发送消息时,可在消息的MAC头中的预留位中指示Beacon请求命令的发送频率。这种方法的步骤可如下:
步骤a1:设定两个频率f1与f2,且f1大于f2;
步骤a2:在消息的MAC头中的预留位中设置beacon周期指示BeaconDrictor位;
步骤a3:设置BeaconDrictor位为1时,终端设备以f1的频率发送beacon请求命令;设置BeaconDrictor位为0时,终端设备以f2的频率发送beacon请求命令。
第一种方法MAC头字节格式可如下表4和表5所示。
表4:MAC头字节标准格式
Bit# |
7..5 |
4..2 |
1..0 |
MHDR bits |
MType |
RFU |
Major |
表5:MAC头字节预留比特位RFU指示Beacon请求命令后格式
Bit# |
7..5 |
4..3 |
2 |
1..0 |
MHDR bits |
MType |
RFU |
BeaconDrictor |
Major |
第一种方法的操作具体说明如下:
1、终端设备在每次发送消息的时候就会在MAC头中的预留位中进行beacon请求的隐式或显示的指示。
2、可以用1bit来指示要发送的beacon的频率快慢,比如定两个频率f1与f2,且满足f1>f2。
3、如果BeaconDrictor位设置为1,则代表以f1的频率发送beacon请求消息,如果BeaconDrictor位设置为0,则代表以f2的频率发送beacon请求消息。
第二种方法是,终端设备每次发送消息时,在消息的MAC头中的预留位中指示Beacon请求命令的发送模式。这种方法的具体步骤可如下:
步骤b1:设定两个频率f1与f2,且f1大于f2;
步骤b2:在消息的MAC头中的预留位中设置随机或周期指示Random_Period位和beacon指示BeaconDrictor位;
步骤b3:设置Random_Period位为1时指示终端设备周期地发送Beacon请求命令;设置Random_Period位为0时指示终端设备随机地发送Beacon请求命令;
步骤b4:当Random_Period位为1时,设置BeaconDrictor位为1时指示终端设备以f1的频率发送beacon请求命令,设置BeaconDrictor位为0时指示终端设备以f2的频率发送beacon请求命令;当Random_Period位为0时,设置BeaconDrictor位无效。
第一种方法MAC头字节格式可如下表6所示。
表6:在RFU比特中隐式指示发送beacon请求命令的MAC头字节格式
Bit# |
7..5 |
4 |
3 |
2 |
1..0 |
MHDR bits |
MType |
RFU |
Random_Period |
BeaconDrictor |
Major |
第二种方法的操作具体说明如下:
1:A类设备在每次发送消息的时候就会在MAC头中的预留位中进行beacon请求命令模式的指示。
2:可以用1bit来指示是用周期性还是随机性的,1代表周期性的,0代表随机性的。如果是周期性的,会根据BeaconDrictor来判断用什么周期或频率发送beacon。如果是随机性的,则代表随机发送beacon请求命令,这时BeaconDrictor位不再起作用。
3:可以用1bit来隐式指示要发送的beacon的频率快慢,比如定两个频率f1与f2,f1>f2。
4:如果BeaconDrictor位设置为1,则代表以f1的频率发送beacon请求消息,如果BeaconDrictor位设置为0,则代表以f2的频率发送beacon请求消息。
以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在于使本领域内的技术人员能够理解本发明的内容并据以实施,不能仅以本实施例来限定本发明的专利范围,即凡本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的专利范围内。