一种LoRa无线通信MAC命令的优化方法
技术领域
本发明涉及一种命令的优化方法,特别涉及一种LoRa无线通信MAC命令的优化方法。
背景技术
目前,物联网(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)网络规范。LoRaWAN协议包括几个关键的无线网络功能,如E2E加密和安全性、自适应数据速率优化、服务质量等先进的通信应用。
LoRa网络允许终端独立的使用任何可能的数据速率。LoRaWAN利用该特性以达到调整并最优化静态终端数据速率的目的。这被称作自适应数据速率(Adaptive Data Rate,ADR),当ADR启用时,将通过使用尽可能快的数据速率来最优化网络。
当无线信道衰减频繁且变化剧烈时,自适应数据速率控制可能不起作用。当网关无法控制终端设备的数据速率时,终端设备的应用层将控制其数据速率。这种情况下,建议使用多种不同的速率。在特定网络条件下,应用层应始终尝试最小化空中传输的总时间。
设置ADR比特之后,网关通过MAC命令控制终端的数据速率。请参见LoRaWAN协议,在LoRaWAN协议中规定了当网关或网络服务器检测到需要终端调整数据速率时,网关或网络服务器通过发送LinkADRReq命令来请求终端改变数据率、传输功率、重复率或者信道,让终端进行速率自适应。
LinkADRReq MAC命令的格式如下:
Size(bytes) |
1 |
2 |
1 |
LinkADRReq Payload |
DataRate_TXPower |
ChMask |
Redundancy |
Bits |
[7:4] |
[3:0] |
DataRate_TXPower |
DataRate |
TXPower |
其中。请求的数据速率(DataRate)和TX输出功率(TXPower)具有区域特异性,其编码参考《LoRaWAN地域相关参数手册》(《LoRaWAN Regional Parameters document》)。TX输出功率(TXPower)表示终端设备可以使用的最大发射功率(传输功率)。如果指定的发射功率高于当前在用的发射功率,该命令能够执行成功后,终端设备将使用尽可能大的发射功率回复确认消息,只要发射功率不超过命令设置以及物理允许的发射功率范围。如果该命令指示了一个高于终端最大可支持的发射功率,那么终端按照其最大发射功率进行操作。
信道掩码(ChMask)通过对相应的最低有效位LSB相应的位填0的方式,来对可用的上行信道进行编码。可用信道列表如下:
位编号(第N位) |
可用信道 |
0 |
Channel1 |
1 |
Channel2 |
.. |
.. |
15 |
Channel 16 |
信道掩码(ChMask)中的某比特位设置为1,表示启用该位对应的上行信道,即该位对应的上行信道可用,但是只有终端设备当前使用的数据速率可以在该信道上使用时,该信道才可以使用;如果是0,则表示对应的上行信道不可用。
比特长度 |
7 |
[6:4] |
[3:0] |
Redundancy bits |
RFU |
ChMaskCntl |
NbTrans |
冗余(Redundancy)位中,NbTrans域表示每条上行消息的传输次数。仅用于未认可类型的上行消息。默认值为1,有效范围[1:15]。如果终端设备收到NbTrans==0,则使用默认值。服务器使用该字段控制节点上行数据冗余,以得到给定的服务质量。
信道掩码控制(ChMaskCntl)控制对先前定义的信道掩码(ChMask)的位掩码的解释。它控制着信道掩码(ChMask)的16个信道应用。它也可以全局性的打开或关闭所有采用特定调制方式的信道。在中国信道掩码控制域(ChMaskCntl)的具体划分值参照《LoRaWAN_Regional_Parameters_v1_0》
在中国,470-510MHz信道频率频段由国家无线电管理委员会(SRRC,State RadioRegulating Committee)定义,用于民用计量应用。
470MHz ISM频段的信道规划如下:
上行——96个信道,编号从0到95,采用LoRa 125kHz BW,数据速率从DR0到DR5,码率为4/5,从470.3MHz开始,以200KHz的间隔线性增加到489.3MHz。
下行——48个信道,编号从0到47,采用LoRa 125KHz BW,数据速率从DR0到DR5,码率为4/5,从500.3MHz开始,以200kHz的间隔线性增加到509.7MHz。
中国470-510版本中,LinkADRReq命令中ChMaskCntl域的含义如下表所示:
如果ChMaskCntl域的值对应RFU,则终端设备拒绝该命令并在其应答中重置“Channel mask ACK”位。
目前,现有的LoRa射频器件产品的基带芯片,如SX1301,其可同时支持8通道的数据传输或接收,适合每组八个信道的频段分组方式,但是现有的LinkADRReq命令中,信道掩码(ChMask)适用于每组16个上行信道的分组方式,所以当无线频段按照每组8通道的方式来划分时,如果仍采用现有LinkADRReq命令的格式,进行速率自适应调整,不但会造成LinkADRReq命令位的浪费,同时还可能会造成ChMaskCntl域分配的位数不足,从而无法完全实现LoRa自适应调整传输数据速率。
发明内容
本发明为解决公知技术中存在的技术问题而提供一种能够完全实现LoRa自适应调整传输数据速率以及传输功率表等性能的一种LoRa无线通信MAC命令的优化方法。
本发明为解决公知技术中存在的技术问题所采取的技术方案是:一种LoRa无线通信MAC命令的优化方法,根据基带芯片的结构,把可用的无线频段划分成多个信道组,每个所述信道组都有对应的信道组索引号,每个所述信道组内的信道数量小于或等于8;根据所述信道组的划分结果,调整链路速率自适应请求LinkADRReq MAC命令中的信道掩码控制域ChMaskCntl参数的长度;网关或网络服务器发送所述LinkADRReq MAC命令给终端,所述终端根据收到的所述LinkADRReq MAC命令调整所占用的信道组参数、数据速率参数以及发射功率参数。
进一步地,将所述信道掩码控制域ChMaskCntl参数的长度调整为大于或等于5个比特。
进一步地,不改变所述LinkADRReq MAC命令的长度,调整所述LinkADRReq MAC命令的部分参数域长度,使所述信道掩码控制域ChMaskCntl参数长度增加,用于指示所述的信道组索引号。
进一步地,将所述LinkADRReq MAC命令中的信道掩码域ChMask参数减少一个字节长度,同时将所述LinkADRReq MAC命令中的冗余域Redundancy中的信道掩码控制域ChMaskCntl参数增加一个字节长度,用于指示所述的信道组索引号。
进一步地,调整所述LinkADRReq MAC命令中的冗余域内的参数的比特长度分配,减少所述冗余域内传输次数域NbTrans参数比特长度,将所述传输次数域NbTrans参数减少的比特长度增加到所述冗余域内的信道掩码控制域ChMaskCntl参数的比特长度中,用于指示所述的信道组索引号。
进一步地,改变所述LinkADRReq MAC命令长度,使所述LinkADRReq MAC命令中的冗余域内的信道掩码控制域ChMaskCntl参数增加一个字节长度,用于指示所述的信道组索引号。
进一步地,所述LinkADRReq MAC命令增加一个或多个字节长度,增加的字节长度用于指示多个所述信道掩码控制域ChMaskCntl参数,多个所述信道掩码控制域ChMaskCntl参数用于指示多个所述信道组索引号。
进一步地,根据多个所述信道组索引号的指示,所述信道掩码域ChMask参数分别指示多个所述信道组索引号对应的每个信道组中的每个信道的状态。
本发明具有的优点和积极效果是:是在现有技术的基础上,调整LinkADRReq MAC命令中的信道掩码控制域参数的比特长度,使信道掩码控制域参数的比特长度大于等于8个比特。本发明能够完全实现LoRa自适应调整传输数据速率性能的一种MAC命令的优化方法。使基于SX1301芯片的LoRa模块的通信性能不会受到影响。
附图说明
图1为数字基带芯片SX1301的结构示意图。
具体实施方式
为能进一步了解本发明的发明内容、特点及功效,兹列举以下实施例,并配合附图详细说明如下:
一种LoRa无线通信MAC命令的优化方法,根据基带芯片的结构,把可用的无线频段划分成多个信道组,每个所述信道组都有对应的信道组索引号,每个所述信道组内的信道数量小于或等于8;根据所述信道组的划分结果,调整链路速率自适应请求LinkADRReq MAC命令中的信道掩码控制域ChMaskCntl参数的长度;网关或网络服务器发送所述LinkADRReqMAC命令给终端,所述终端根据收到的所述LinkADRReq MAC命令调整所占用的信道组参数、数据速率参数以及发射功率参数。可以将所述信道掩码控制域ChMaskCntl参数的长度调整为大于或等于5个比特。
现有的LoRa射频器件产品的基带芯片,如SX1301,其可同时支持8通道的数据传输,适合每组八个信道的频段分组方式。为了实现最大程度的无线资源频谱利用率,需要对现有频段进行分组,比如分成N组,每组可包括8个信道或者小于8个通道。这样,当带宽设置为125kHz时,基站网关以及其他网络服务器等,可以同时在每组的8个通道上与终端进行通信,同样,基站网关以及其他网络服务器等也可以同时接收来自8个信道的终端信息。
为了支持LoRa网关基带芯片SX1301等型号芯片能够正常工作,根据LoRa网关基带芯片的结构重新划分无线频段。
LoRa网关基带芯片SX1301,其结构是由2个MCU和ASIC(ApplicationSpecificIntegrated Circuit,专用集成电路)组成的综合体。请参见图1,其主要构成部分包括:
射频MCU:该MCU通过SPI总线连接2片SX125x,主要负责实时自动增益控制、射频校准和收发切换;
数据包MCU:该MCU负责分配8个LoRa调制解调器给多个通道,它仲裁数据包的机制包括速率、通道、射频和信号强度;
IF0~IF7的LoRa通道:它们的带宽固定为125kHz,每个通道可以设置中心频率,每个通道可以接收SF7~SF12共6种速率的LoRa信号;
IF8通道:带宽支持125/250/500kHz,希望用于网关之间的高速通信;
IF9通道:收发(G)FSK信号,LoRaWAN在欧洲地区使用了该通道。
下面以LoRa网关基带芯片SX1301为例,以及其对应的470MHz~510MHz无线频段为例,举例说明频段具体划分方法:
将471MHz~503.3MHz作为收发信道,均采用125kHz带宽的可用信道;
将503.9MHz-506.7MHz作为收发信道,均采用250kHz带宽的可用信道;
将其余的频段作为收发信道均采用500kHz带宽的可用信道。
各信道分配如下表1所示:
表1:470MHz~510MHz无线频谱划分列表
从上表1可以看出:
①把整个频段都划分成多个信道组。其中125kHz带宽的频谱共设160个信道,8个信道为一组,共20组,每组占用频段1.6M;250kHz带宽的频谱共设有8个信道,每个信道为一个组,共8组,每组占用频段0.4M;500kHz带宽的频谱共有4个信道,每个信道为一个组,共4组,每组占用频段0.6M。
②如果通信模式采用TDD模式,则上下行信道使用相同的信道。
③如果通信模式采用FDD模式,可以将不同带宽的信道组一分为二,其中一半作为上行信道,另一半作为下行信道。比如:则对于125kHz带宽的信道组,可设前10组作为上行信道,可设后10组作为下行信道;则对于250kHz带宽的信道组,可设前4组作为上行信道,可设后4组作为下行信道;则对于500kHz带宽的信道组,可设前2组作为上行信道,可设后2组作为下行信道。
③终端设备至少能够使用一组信道传输数据。
上述表格所表示的信道划分方法,只是本发明的其中一种信道划分方法,还可以进行其他形式的划分,具体的频谱起始频率以及划分标准不做限制。
信道划分后,信道掩码(ChMask)通过对相应的最低有效位LSB位填0的方式来对可用上行信道进行编码,可以不改变所述LinkADRReq MAC命令的长度,可调整所述LinkADRReq MAC命令的部分参数域长度,使所述信道掩码控制域ChMaskCntl参数长度增加,用于指示所述的信道组索引号。
由于每组的信道是8个上行信道,不是现有技术中的16个上行信道,所以用信道掩码域(ChMask)现有的2 Bytes长度,来指示8个信道的状态,会有剩余比特位,可以将所述LinkADRReq MAC命令中的信道掩码域ChMask参数减少一个字节长度,同时可将所述LinkADRReq MAC命令中的冗余域Redundancy中的信道掩码控制域ChMaskCntl参数增加一个字节长度,用于指示所述的信道组索引号。
此外,也可以不改变信道掩码域(ChMask)的字节大小,还是用2 Bytes来指示8个上行信道的状态,剩余比特位作为预留位。可以调整所述LinkADRReq MAC命令中的冗余域内的参数的比特长度分配,可减少所述冗余域内传输次数域NbTrans参数比特长度,可将所述传输次数域NbTrans参数减少的比特长度增加到所述冗余域内的信道掩码控制域ChMaskCntl参数的比特长度中,用于指示所述的信道组索引号。
进一步地,还可以改变所述LinkADRReq MAC命令长度,可使所述LinkADRReq MAC命令中的冗余域内的信道掩码控制域ChMaskCntl参数增加一个字节长度,用于指示所述的信道组索引号。
进一步地,也可将所述LinkADRReq MAC命令增加一个或多个字节长度,增加的字节长度可指示多个所述信道掩码控制域ChMaskCntl参数,多个所述信道掩码控制域ChMaskCntl参数可用于指示多个所述信道组索引号。可根据多个所述信道组索引号的指示,所述信道掩码域ChMask参数可分别指示多个所述信道组索引号对应的每个信道组中的每个信道的状态。
文中的命令参数定义及释义如下:
LinkADRReq MAC参数定义为:链路速率自适应请求命令参数;
ChMaskCntl参数定义为:信道掩码控制域参数;
Redundancy参数定义为:冗余域参数;
ChMask参数定义为:信道掩码域参数;
NbTrans参数定义为:传输次数域参数;
MAC释义为:媒体接入控制。
下面结合LoRa网关基带芯片SX1301的应用,以及对LinkADRReq MAC命令参数调整具体实施例,进一步详细说明本发明的工作原理和工作流程:
实施例1:LinkADRReq MAC命令参数调整方法之一。
原有的LinkADRReq MAC命令参数长度如下表所示:
Size(bytes) |
1 |
2 |
1 |
LinkADRReq Payload |
DataRate_TXPower |
ChMask |
Redundancy |
由于每组的信道是8个上行信道,不是现有技术中的16个上行信道,原有的LinkADRReq MAC命令参数中,信道掩码域(ChMask)参数具有2字节长度,2字节长度用来设置指示8个信道的状态会有比特位剩余,所以可以减少信道掩码域(ChMask)参数的长度,使减少的字节长度增加到冗余域(Redundancy)中的信道掩码控制域(ChMaskCntl)参数中,以用来指示增加的信道组数值。可将原有的LinkADRReq MAC命令的信道掩码域ChMask参数长度和冗余域Redundancy参数长度进行调整,使信道掩码域ChMask参数长度减少一个字节长度至1个字节长度,使冗余域Redundancy参数长度增加一个字节长度至2个字节长度。
调整后的LinkADRReq MAC命令参数长度如下表所示:
Size(bytes) |
1 |
1 |
2 |
LinkADRReq Payload |
DataRate_TXPower |
ChMask |
Redundancy |
通过对信道掩码(ChMask)相应的最低有效位LSB位填0的方式,确定可用上行信道编号。信道掩码域(ChMask)参数对应的各位与对应的可用信道列表如下表2,表2信道状态表(Channel state table)所示:
表2:Channel state table
信道掩码(ChMask)中的某比特位设置为1,表示启用该位对应的上行信道,即该位对应的上行信道可用,只有终端设备当前使用的数据速率可以在该信道上使用时,该信道才可以使用;如果是0,则表示对应的上行信道不可用。
可将信道掩码域(ChMask)参数减少的1个字节长度,增加到冗余域(Redundancy)中的信道掩码控制域(ChMaskCntl)参数中,以用来指示增加的信道组数值。
将下表所示的原有的冗余域(Redundancy)的各参数比特长度,进行调整。
比特长度 |
7 |
[6:4] |
[3:0] |
Redundancy bits |
RFU |
ChMaskCntl |
NbTrans |
将冗余域(Redundancy)的各参数比特长度分配调整如下:
比特长度 |
[15:9] |
[8:4] |
[3:0] |
Redundancy bits |
RFU |
ChMaskCntl |
NbTrans |
信道掩码控制(ChMaskCntl)控制对先前定义的信道掩码(ChMask)的位掩码的解释,它可控制着信道掩码(ChMask)的8个信道应用。也就是控制指示信道掩码域(ChMask)参数中的8个信道属于哪个信道组。它也可以全局性的打开或关闭所有采用特定调制方式的信道。
通过调整信道掩码控制(ChMaskCntl)的比特长度,可调整到至少5比特,使信道掩码控制域(ChMaskCntl)参数具有足够的比特长度,参数值域至少为32,可用来控制指示至少32个信道组。
表3是信道掩码控制(ChMaskCntl)参数的值与对应控制的通道组序号表:
表3:CN470 ChMaskCntl value table for 125kHz
如果ChMaskCntl域的值对应控制的信道编号为预留RFU,即ChMaskCntl域的值为21~31,则终端设备拒绝该命令并在其应答中重置“Channel mask ACK”位。
另外,表3中的预留数值21-31以及Redundancy中的预留比特位,也可以用来指示250kHz或者500kHz的信道划分的通道组,使用规则和125kHz的方法类似。下面根据方法一优化修改的MAC命令具体介绍实现链路速率自适应的工作流程:
步骤1:终端第一次传输数据时,终端使用默认的数据速率(例如:DR0)和发射功率(例如:14dBm)来给网关或网络服务器传输数据。如果一直没有收到网关或网络服务器发送的LinkADRReq MAC命令,则一直都是尝试用默认数据速率和发射功率发送数据包。
步骤2:网关或网络服务器接收到所述步骤1中的终端传输的上行数据帧,网关或网络服务器记录终端每次数据传输的信噪比SNR以及接收信号强度RSSI,根据每次记录的值来确定终端设备是否执行数据速率、传输功率以及上行可用信道等参数的调整:如果需要调整,则网关或网络服务器选择最合适的数据速率DR或者发射功率TxPower,在上述方法一优化修改的LinkADRReq MAC命令中指示上行可用信道以及信道组,并通过优化修改后的LinkADRReq MAC命令发送给终端,请求终端设备使用新的上行可用信道以及数据速率或者发射功率传输数据。
步骤3:终端在下行信道上接收到所述步骤2中的网关或网络服务器发送的包含优化后的LinkADRReq MAC命令的数据包,终端对数据包解调之后,确认网关或网络服务器配置的新的数据速率DR或者发射功率TxPower以及可用信道等参数,然后终端设备在更新后的上行可用信道上回复网关或网络服务器LinkADRAns命令,并以新的数据速率或者发射功率发送新的数据包。回复LinkADRAns命令的格式如下:
Size(bytes) |
1 |
LinkADRAns Payload |
Status |
Bits |
[7:3] |
2 |
1 |
0 |
Status bits |
RFU |
Power ACK |
Data rate ACK |
Channel mask ACK |
LinkADRAns Status释义请参见表4,表4为LinkADRAns状态比特位定义。
表4:LinkADRAns status bits signification
如果以上3个比特位中任意一个是0,则该命令没有成功,节点保持先前状态。
实施例1满足现有基带芯片的通信需求,重新划分无线频谱,在不改变命令原有大小的基础上做进一步的调整优化,使其能够满足通信需求,同时又减少了不必要的通信命令的浪费。
实施例2:LinkADRReq MAC命令参数调整方法之二:
不改变原有LinkADRReq MAC命令参数长度不变,也不改变信道掩码(ChMask)字节长度:信道掩码的原有字节大小不变,还是用2Bytes来指示8个上行信道的状态,剩余比特位为预留位。
原有LinkADRReq MAC命令参数长度请参见下表:
Size(bytes) |
1 |
2 |
1 |
LinkADRReq Payload |
DataRate_TXPower |
ChMask |
Redundancy |
信道掩码(ChMask)通过对相应的最低有效位LSB位填0的方式,来对可用上行信道进行编码。信道掩码域(ChMask)参数对应的各位与对应的可用信道列表如下表5,表5为信道状态表(Channel state table)。
表5:Channel state table
Bit# |
Usable channels |
0 |
Channel 1 |
1 |
Channel 2 |
.. |
.. |
7 |
Channel 8 |
8-15 |
RFU |
信道掩码(ChMask)某比特位设置为1,指示其对应的信道可以用于上行传输,前提是该信道允许终端设备使用当前的数据速率。信道掩码(ChMask)某比特位设置为0,则指示其对应的信道不可以用于上行传输,应避免使用相应的信道。
不改变原有冗余(Redundancy)的长度,只对原有冗余(Redundancy)的内部参数的比特位分配进行调整,可以减少传输次数NbTrans参数的比特位,来增加信道掩码控制域(ChMaskCntl)的比特位,使信道掩码控制域(ChMaskCntl)的比特长度至少满足5个比特。
原有冗余(Redundancy)的内部参数的比特位分配请参见下表:
比特长度 |
7 |
[6:4] |
[3:0] |
Redundancy bits |
RFU |
ChMaskCntl |
NbTrans |
将原有的冗余(Redundancy)的内部参数的比特位分配,调整成下表所示的的冗余(Redundancy)的内部参数的比特位分配:
信道掩码控制(ChMaskCntl)控制对先前定义的信道掩码(ChMask)的位掩码的解释,它可控制着信道掩码(ChMask)的8个信道应用。也就是控制指示信道掩码域(ChMask)参数中的8个信道属于哪个信道组。它也可以全局性的打开或关闭所有采用特定调制方式的信道。
通过调整信道掩码控制(ChMaskCntl)的比特长度,可调整到5比特,使信道掩码控制域(ChMaskCntl)参数具有足够的比特长度,参数值域可等于32,可用来控制指示32个信道组。
信道掩码控制(ChMaskCntl)参数的值与对应其控制的通道组序号可参见实施例1中的表3。
下面根据方法二优化修改的MAC命令具体介绍实现链路速率自适应的工作流程:
步骤1:终端第一次传输数据时,终端使用默认的数据速率(例如:DR0)和发射功率(例如:14dBm)来给网关或网络服务器传输数据。如果一直没有收到网关或网络服务器发送的LinkADRReq MAC命令,则一直都是尝试用默认数据速率和发射功率发送数据包。
步骤2:网关或网络服务器接收到所述步骤1中的终端传输的上行数据帧,网关或网络服务器记录终端每次数据传输的信噪比SNR以及接收信号强度RSSI,根据每次记录的值来确定终端设备是否执行数据速率、传输功率以及上行可用信道等参数的调整:如果需要调整,则网关或网络服务器选择最合适的数据速率DR或者发射功率TxPower,在上述方法二优化修改的LinkADRReq MAC命令中指示上行可用信道以及信道组,并通过优化修改后的LinkADRReq MAC命令发送给终端,请求终端设备使用新的上行可用信道以及数据速率或者发射功率传输数据。
步骤3:终端在下行信道上接收到所述步骤2中的网关或网络服务器发送的包含优化修改后的LinkADRReq MAC命令的数据包,终端对数据包解调之后,确认网关或网络服务器配置的新的数据速率DR或者发射功率TxPower以及可用信道等参数,然后终端设备在更新后的上行可用信道上回复网关或网络服务器LinkADRAns MAC命令,并以新的数据速率或者发射功率发送新的数据包。
上述实施例2是在现有技术的基础上,原有协议中的信道掩码(ChMask)字节长度没有变化,但是需要调整冗余部分的内部比特长度,来满足通信需求。既没有增加原有命令的字节长度,也没有产生不必要浪费。
实施例3:LinkADRReq MAC命令参数调整方法之三。
为了满足基带芯片SX1301的需求,还可以改变原有MAC命令的长度,对MAC命令的参数做如下修改:
原有的LinkADRReq MAC命令参数长度如下表所示:
Size(bytes) |
1 |
2 |
1 |
LinkADRReq Payload |
DataRate_TXPower |
ChMask |
Redundancy |
对LinkADRReq MAC命令参数修改如下:
Size(bytes) |
1 |
2 |
2 |
LinkADRReq Payload |
DataRate_TXPower |
ChMask |
Redundancy |
信道掩码(ChMask)通过对相应的最低有效位LSB位填0的方式来对可用上行信道进行编码。信道掩码的原有字节大小不变,还是用2Bytes来指示8个上行信道的状态,剩余比特位为预留位。
信道掩码域(ChMask)参数对应的各位与对应的可用信道列表,可如实施例2中的表5所示。
信道掩码(ChMask)某比特位设置为1,指示其对应的信道可以用于上行传输,前提是该信道允许终端设备使用当前的数据速率。信道掩码(ChMask)某比特位设置为0,则指示其对应的信道不可以用于上行传输,应避免使用相应的信道。
原有冗余(Redundancy)的内部参数的比特长度及分配请参见下表:
比特长度 |
7 |
[6:4] |
[3:0] |
Redundancy bits |
RFU |
ChMaskCntl |
NbTrans |
将冗余(Redundancy)的长度增加1Byte,用来增加到信道掩码控制域(ChMaskCntl)的比特数中,使信道掩码控制域(ChMaskCntl)的比特长度至少满足5个比特。调整后,冗余(Redundancy)的内部参数的比特长度及分配请参见下表:
Bits |
[15:9] |
[8:4] |
[3:0] |
Redundancy bits |
RFU |
ChMaskCntl |
NbTrans |
信道掩码控制(ChMaskCntl)控制对先前定义的信道掩码(ChMask)的位掩码的解释,它可控制着信道掩码(ChMask)的8个信道应用。也就是控制指示信道掩码域(ChMask)参数中的8个信道属于哪个信道组。它也可以全局性的打开或关闭所有采用特定调制方式的信道。
通过调整信道掩码控制(ChMaskCntl)的比特长度,可调整到5比特以上,使信道掩码控制域(ChMaskCntl)参数具有足够的比特长度,参数值域可大于32,可用来控制指示超过32个信道组。
信道掩码控制(ChMaskCntl)参数的值与对应其控制的通道组序号可参见实施例1中的表3。
下面根据方法三优化修改的MAC命令具体介绍实现链路速率自适应的工作流程:
步骤1:终端第一次传输数据时,终端使用默认的数据速率(例如:DR0)和发射功率(例如:14dBm)来给网关或网络服务器传输数据。如果一直没有收到网关或网络服务器发送的LinkADRReq MAC命令,则一直都是尝试用默认数据速率和发射功率发送数据包。
步骤2:网关或网络服务器接收到所述步骤1中的终端传输的上行数据帧,网关或网络服务器记录终端每次数据传输的信噪比SNR以及接收信号强度RSSI,根据每次记录的值来确定终端设备是否执行数据速率、传输功率以及上行可用信道等参数的调整:如果需要调整,则网关或网络服务器选择最合适的数据速率DR或者发射功率TxPower,在上述方法三优化修改的LinkADRReq MAC命令中指示上行可用信道以及信道组,并通过优化修改后的LinkADRReq MAC命令发送给终端,请求终端设备使用新的上行可用信道以及数据速率或者发射功率传输数据。
步骤3:终端在下行信道上接收到所述步骤2中的网关或网络服务器发送的包含优化修改后的LinkADRReq MAC命令的数据包,终端对数据包解调之后,确认网关或网络服务器配置的新的数据速率DR或者发射功率TxPower以及可用信道等参数,然后终端设备在更新后的上行可用信道上回复网关或网络服务器LinkADRAns MAC命令,并以新的数据速率或者发射功率发送新的数据包。
实施例4:LinkADRReq MAC命令参数调整方法之四。
为了满足基带芯片SX1301的需求,还可以扩展原有MAC命令的长度。
当网关搭载的SX1301芯片数量增加时,可以多个芯片同时收发,比如当网关搭载了3个或4个SX1301芯片时,网关或网络服务器可以同时支持三组或四组信道组,可在其中至少两组信道组上进行收发。
这种情况下就可增加指示可用信道组索引号的字节长度,以便网关或网络服务器能够给终端同时配置两组或三组可用信道组,相应的需要增加指示每个信道组的信道状态的字节长度,以便终端能够知道每组可用信道上每个信道的使用状态。
原有的LinkADRReq MAC命令参数长度如下表所示:
Size(bytes) |
1 |
2 |
1 |
LinkADRReq Payload |
DataRate_TXPower |
ChMask |
Redundancy |
可扩展LinkADRReq MAC命令如下:
Size(bytes) |
1 |
2 |
2 |
LinkADRReq Payload |
DataRate_TXPower |
ChMask |
Redundancy |
信道掩码(ChMask)通过对相应的最低有效位LSB位填0的方式,来对可用上行信道进行编码。信道掩码(ChMask)的原有字节长度不变,其第一个1字节可用来指示ChMaskCntl1域的信道组索引号对应的8个信道的状态,另外一个1字节可用来指示ChMaskCntl2域的信道组索引号对应的8个信道的状态。
比如ChMaskCntl1指示的信道组中对应的信道序号为Channel 1-Channel 8;ChMaskCntl2指示的信道组中对应的信道序号为Channel 9-Channel 16;则信道掩码(ChMask)中的第一个1字节可用来指示信道序号为Channel 1-Channel 8的信道状态;则另外一个1字节可用来指示信道序号为Channel 9-Channel 16的信道状态。
信道掩码域(ChMask)参数对应的各位与对应的可用信道列表如下表6,表6为信道状态表(Channel state table)。
表6:Channel state table
信道掩码(ChMask)某比特位设置为1,指示其对应的信道可以用于上行传输,前提是该信道允许终端设备使用当前的数据速率。信道掩码(ChMask)某比特位设置为0,则指示其对应的信道不可以用于上行传输,应避免使用相应的信道。
此外,还可以将冗余(Redundancy)的长度增加1Byte,将增加的比特长度用来增加到信道掩码控制域1(ChMaskCntl1)和信道掩码控制域2(ChMaskCntl2)的比特位,使信道掩码控制域1(ChMaskCntl1)和信道掩码控制域2(ChMaskCntl2)的比特长度都至少满足5个比特位。
原有冗余(Redundancy)的内部参数的比特长度及分配请参见下表:
比特长度 |
7 |
[6:4] |
[3:0] |
Redundancy bits |
RFU |
ChMaskCntl |
NbTrans |
将冗余(Redundancy)的字节长度增加1Byte,调整后,冗余(Redundancy)的内部参数的比特长度及分配请参见下表:
Bits |
[15:14] |
[13:9] |
[8:4] |
[3:0] |
Redundancy bits |
RFU |
ChMaskCntl2 |
ChMaskCntl1 |
NbTrans |
信道掩码控制域1(ChMaskCntl1)和信道掩码控制域2(ChMaskCntl2)控制对先前定义的ChMask位掩码的解释,表示ChMask的16个信道分别属于哪个信道组。它控制着ChMask申请的两组8个信道的信道块。它也可以全局性的打开或关闭所有采用特定调制方式的信道。
随着网关搭载的SX1301芯片模组的数量增多,可以相应的扩展LinkADRReq MAC命令的长度,当网关支持的同时可收发信道组的数量超过2组时,通过增加冗余域的字节长度或者增加LinkADRReq MAC命令的长度,来指示增加的可用信道组索引号,相应的通过增加信道掩码(ChMask)域的字节长度或增加LinkADRReq MAC命令的字节长度,来指示每组可用信道组中的每个信道的可用状态。
下面根据方法四优化修改的MAC命令具体介绍实现链路速率自适应的工作流程:
步骤1:终端第一次传输数据时,终端使用默认的数据速率(例如:DR0)和发射功率(例如:14dBm)来给网关或网络服务器传输数据。如果一直没有收到网关或网络服务器发送的LinkADRReq MAC命令,则一直都是尝试用默认数据速率和发射功率发送数据包。
步骤2:网关或网络服务器接收到所述步骤1中的终端传输的上行数据帧,网关或网络服务器记录终端每次数据传输的信噪比SNR以及接收信号强度RSSI,根据每次记录的值来确定终端设备是否执行数据速率、传输功率以及上行可用信道等参数的调整:如果需要调整,则网关或网络服务器选择最合适的数据速率DR或者发射功率TxPower,在上述方法四优化修改的LinkADRReq MAC命令中指示上行可用信道以及信道组,并通过优化修改后的LinkADRReq MAC命令发送给终端,请求终端设备使用新的上行可用信道以及数据速率或者发射功率传输数据。
步骤3:终端在下行信道上接收到所述步骤2中的网关或网络服务器发送的包含优化修改后的LinkADRReq MAC命令的数据包,终端对数据包解调之后,确认网关或网络服务器配置的新的数据速率DR或者发射功率TxPower以及可用信道等参数,然后终端设备在更新后的上行可用信道上回复网关或网络服务器LinkADRAns MAC命令,并以新的数据速率或者发射功率发送新的数据包。
以上所述的实施例仅用于说明本发明的技术思想及特点,其目的在于使本领域内的技术人员能够理解本发明的内容并据以实施,不能仅以本实施例来限定本发明的专利范围,即凡本发明所揭示的精神所作的同等变化或修饰,仍落在本发明的专利范围内。