一种基于二分搜索时隙随机化通信机制的Lora终端节能方法与流程

文档序号:16150137发布日期:2018-12-05 17:25阅读:135来源:国知局
一种基于二分搜索时隙随机化通信机制的Lora终端节能方法与流程
本发明涉及通信领域,特别地,涉及一种基于二分搜索时隙随机化通信机制的lora终端节能方法。
背景技术
lora技术为lpwan技术的一种,具有远距离、低功耗、多节点、低成本的特点。lora整个网络协议层次如下,application为应用层,常见的lorawan协议即为loramac协议,协议定义的终端类型有classa、classb、classc三种类型。classb定义ping周期,周期性进行下行数据监测。classb的节点每128秒接收网关广播的携带时间参考信息的beacon(信标),用于校准自身的时钟。在2个beacon之间,节点会开启一些接收窗口(pingslot),如果在窗口期接收到网关的preamble,那么它将接收完整的下行数据包。由于每个节点距离网关的位置不同,其接收灵敏度也不同,所以pingslot所需要的个数pingnb也不大相同,在实际过程中为了保证通信质量的良好,常以pingnb的k为7,即最大pingnb个数进行数据传输。如果一个节点与网关的通信仅仅需要4(k=2)次就可以,然而使用了128个pingslot,多使用了124个pingslot,也就意味着多耗费了124个pingslot的能量。技术实现要素:为了克服现有技术的不足,本发明提供一种基于二分搜索时隙随机化通信机制的lora终端节能方法。本发明解决其技术问题所采用的技术方案是:一种基于二分搜索时隙随机化通信机制的lora终端节能方法,包括lora终端采用的算法、终端使用的mcu以及lora射频模块,lora终端classb采用的算法包括以下步骤:s1:当节点接收beacon,用二分搜索算法选取设定合适的pingnb,搜索过程从beacon的数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较;s2:通过时隙随机化得到每个节点的pingslot的开始时间点的偏移量pingoffset,对每个节点开始接收数据的时间都有随机的偏移量pingoffset,通过密钥为0的aes加密算法设计得出:key=16×0x00rand=aes128_encrypt(key,beacontime|devaddr|pad16)pingoffset=(rand[0]+rand[1]×256)modulopingperiod;s3:进入数据接收的pingslot。优选地,终端mcu选用stm8l系列mcu,stm8l系列mcu功耗低,不用外部存储设备,完全符合无线传输的要求。优选地,所述lora射频模块选用sx1278,sx1278属于loratm扩频调制技术,它的远距离优势得益于调制增益,不是靠增大发射功率,能耗低。本发明的有益效果:由上述方案可知,终端算法采用二分搜索算法选取设定合适的pingnb,每一次都可以使选取范围缩小一半,且以递归的形式,可以快速准确的选取设定的pingnb,极大的缩短了通信时间,同时也节省更多的能量。采用时隙随机化得到便宜量可以保证pingslot里只有一个节点在进行数据传输,不会因通信系统性的碰撞或监听过载的情况而产生额外的能量消耗。因此,该方案可以有效的降低的功耗,达到节能目的。附图说明下面结合附图和实施例对本发明进一步说明。图1是本发明终端采用的算法流程图。具体实施方式参照图1,一种基于二分搜索时隙随机化通信机制的lora终端节能方法,包括lora终端采用的算法、终端使用的mcu以及lora射频模块,lora终端classb采用的算法包括以下步骤:s1:当节点接收beacon,用二分搜索算法选取设定合适的pingnb,搜索过程从beacon的数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较;s2:通过时隙随机化得到每个节点的pingslot的开始时间点的偏移量pingoffset,对每个节点开始接收数据的时间都有随机的偏移量pingoffset,通过密钥为0的aes加密算法设计得出:key=16×0x00rand=aes128_encrypt(key,beacontime|devaddr|pad16)pingoffset=(rand[0]+rand[1]×256)modulopingperiod;s3:进入数据接收的pingslot。。终端mcu选用stm8l系列mcu,stm8l系列mcu功耗低,不用外部存储设备,完全符合无线传输的要求。所述lora射频模块选用sx1278,sx1278属于loratm扩频调制技术,它的远距离优势得益于调制增益,不是靠增大发射功率,能耗低。终端算法采用二分搜索算法选取设定合适的pingnb,每一次都可以使选取范围缩小一半,且以递归的形式,可以快速准确的选取设定的pingnb,极大的缩短了通信时间,同时也节省更多的能量。采用时隙随机化得到便宜量可以保证pingslot里只有一个节点在进行数据传输,不会因通信系统性的碰撞或监听过载的情况而产生额外的能量消耗。因此,该方案可以有效的降低的功耗,达到节能目的。终端classb通信机制classb的节点每128秒接收网关广播的携带时间参考信息的beacon(信标),用于校准自身的时钟。在2个beacon之间,节点会开启一些接收窗口(pingslot),如果在窗口期接收到网关的preamble,那么它将接收完整的下行数据包。一个beacon的时间是128s,具体分成beacon_guard、beacon_reserved和beacon_window。beacon_guard的时间为3s,作用是防止beacon帧数据与ping数据帧的冲突;beacon_reserved的时间为2.12s,是beacon帧的保留时隙;beacon_window的时间为122.88s。beacon_window时间长度为122.88s,被划分成212=4096个pingslot,因此每个pingslot为0.03s。当节点接收beacon,用二分搜索选取设定合适的pingnb,然后根据slotrandomization中的pingoffset,进入数据接收的pingslot。由于下行通信中的每个beacon内都可以被划分成212=4096个pingslot。但并不是所有的时隙内都进行数据传输,为了防止通信系统性的碰撞和监听过载的情况,每个节点在不同的一定数量pingslot内进行下行数据的接收。因此需要对4096个slot进行编号索引和时隙随机化,以保证在这些pingslot里只有一个节点在进行数据传输。devaddr:设备的32位网络单播或多播地址。pingnb:一个beacon下的pingslot个数,且这个数为2的幂整数。pingperiod:节点接的pingslot。pingoffset:每给beacon周期开始的偏移量,取值范围为0~(pingperiod-1)。beacontime:这个值在bcnpayload,即将要接收beacon帧的时间。slotlen:一个pingslot的时长,30ms。其中,pingnb的取值范围,pingnb=2k(1≤k≤7)pingperiod的值:pingperiod=212/pingnb为了保证每个节点接收数据的时刻是随机的,我们对每个节点开始接收数据的时间都有随机的偏移量pingoffset,通过密钥为0的aes加密算法设计得出:key=16×0x00rand=aes128_encrypt(key,beacontime|devaddr|pad16)pingoffset=(rand[0]+rand[1]×256)modulopingperiod每个节点的pingslot开始的时间点为ton:ton=beacon_reserved+(pingoffset+n×pingperiod)×slotlen时隙随机化(slotrandomization),是把每个节点的pingslot的开始时间点都有一个独一无二的pingoffset,因此以保证每个节点与网关的通信都是在不同的slot下进行。由于每个节点距离网关的位置不同,其接收灵敏度也不同,所以pingslot所需要的个数pingnb也不大相同,在实际过程中为了保证通信质量的良好,常以pingnb的k为7,即最大pingnb个数进行数据传输。如果一个节点与网关的通信仅仅需要4(k=2)次就可以,然而使用了128个pingslot,多使用了124个pingslot,也就意味着多耗费了124个pingslot的能量。对于不同的节点,如何动态地设置其合适的pingnb,不仅可以缩短通信的时间,同时也可以节省更多的能量。假定一个节点完整的通信时长所需要的pingnb的数量为n,节点所需要设置的pingnb必须为2的幂整数,因此如何在保证通信所需要的足够时间内,合利选取k值,可以省2^(7-k)个slot的能量。以二分法的思想,搜索大于n的最小2次幂。二分搜索(binarysearch),是一种在有序数组中查找某一特定元素的搜索算法。搜索过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜索过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。二分搜索每次都可以把搜索区减少一半,且以递归的形式,其时间复杂度o(logn)和空间复杂度o(1),其中,n代表集合中的元素个数。二分搜索是一种简单高效的算法,十分符合物联网下节点的mcu的性能要求,同时也满足低功耗设计的节能目标。mcu选型及引脚配置终端mcu选用stm8l系列mcu,该系列为stm公司针对物联网wsn节点设计,完全符合其资源紧张和性能苛求等特点。以stm8l151c8t6为例,它属于超低功耗,不带rtc休眠为400na,带rtc下休眠为1.4ua。该mcu拥有较大的ram(4kb)和自带eeprom(2kb),不用扩展外部存储设备,进行一步降低功耗和成本。mcu与rf通过spi总线连接,此外还有一些控制引脚;rf通过dio0~5引脚给mcu发通知信号,nss/sck/miso/mosi是spi总线,rst2是mcu复位rf的引脚。支持低功耗的mcu一般都有好几种运行模式,以st公司的stm8l为例,它支持5种低功耗模式:等待、低功耗运行、低功耗等待、主动停止和停止。如下表所示,每一种模式的进入方式,节能级别和外设工作要求。如下表所示,将mcu的i/o引脚分为四类:pin_null、pin_vdd、pin_mcu_out、pin_mcu_in。i/o引脚分类详细释义pin_null未连接的i/o引脚pin_vdd接电源的i/o引脚pin_mcu_outic输入,mcu输出的i/o引脚pin_mcu_inic输出,mcu输入的i/o引脚对四类i/o口,测试实验结果如下表所示。对于接电源的引脚pin_vdd来说,push-pull模式下电流为0.4ua;nopen-drain模式下电流为29.3ua。因此mcu接电源的引脚设置为push-pull模式更省电。对于悬空的引脚pin_null来说,设置(1)input,pull-up;(2)output,open-drain,lowlevel;(3)output,push-pull,lowlevel;(4)output,push-pull,highlevel这四种工作模式均可以更节能,电流仅为0.4ua。对于ic输入,mcu输出的引脚pin_mcu_out来说,设置为input,floating模式更节能。对于ic输出,mcu输入的引脚pin_mcu_in来说,input,pull-up模式下能耗最小。mcu配置由硬件节能设计可知,mcu的pin_mcu_out引脚和pin_mcu_in引脚,在进入低功耗模式和退出低功耗模式之际,会发生动态切换引脚,即引脚的“第二次”功能配置。由于动态引脚的切换需要一定的时间,以stm8l151c8t6为例,动态切换5个引脚需要477us,可见它一般用于休眠这种较长周期的节能模式,不适合空闲停止这种短暂节能模式。为减少软件维护成本,需要设计一种优秀的数据结构,它能描述mcu所有引脚,如果引脚功能改变,只需要修改数据定义,而不需要修改程序。mcu始终是节点的持续消耗者,因此软件设计的重心依旧是尽可能快地让mcu节能,stm8l151c8t6有如下2种节能模式。短暂等待:如等待rf发送数据帧完毕,mcu执行wfi指令,一旦rf完成发送,中断将mcu唤醒继续运行;长期等待:如等待下一次主动上报数据帧,mcu执行halt指令,当指定时间到达时,rtc中断将mcu唤醒继续运行。lorarf休眠sx1278属于loratm扩频调制技术,它的远距离优势得益于调制增益,不是靠增大发射功率(那将消耗更多电能)。该射频芯片的电流消耗如下:休眠<0.2ua,空闲=1.6ma,接收=12ma,发射(最大功率)=120ma.终端mcu通过“中断+定时器超时”方式控制sx1278,一旦射频完成发送或接收,立即进入休眠模式。如下表所示,为lorarf(sx1278)的能耗测试结果。根据表数据不难发现,sx1278的四种工作模式耗能排序为:sleep<standby<receive<transmit。其中发送状态下耗能最多,休眠模式下耗能仅有0.2ua,因此在节点发送完毕之后,更多的处于休眠模式下最利于节能lorarf设计lora射频模块(lorarf)是实现lora协议无线传输重要部分,同时也是系统实现的基础支撑。并且节点(node)和集中器(sink)具有相同射频模块的硬件结构,主要分为sx1278、tcxo和switch三个模块。其功能如下:sx1278:完成lora无线信号的接收和发送tcxo:为sx1287高频电路提供精确的时钟switch:为半全双工的sx1278切换输入或输出状态mcu:驱动sx1278,实现无线网络协议等sx1278是semtech公司推出的面向中国市场lora射频ic(不支持支持862~1020mhz)。sx1278的dio0~dio5这六个引脚对应的事件响应如下表所示。switch对应切换的工作状态,如下表所示。根据上文所述系统架构,本文设计并实现了相应的系统,节点和集中器均采用sx1278实现,具有相同的硬件结构,其中最主要的部分就是节点和集中器的射频模块。以上所述只是本发明的较佳实施方式,但本发明并不限于上述实施例,只要其以任何相同或相似手段达到本发明的技术效果,都应落入本发明的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1