基于LORA SX1278的温度监控控制系统开发设计-软件方案基于时分复用TDMA

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/asdfwyg/article/details/79479670

软件是硬件的灵魂,灵活的软件设计赋予硬件不同的功能。

使用lora组网一般有两种方式,一种是使用semtech官方的sx1301基带和他的射频方案,1301拥有8个射频通道相当于8个车道并发能力非常好。但是应用成本很高,一片1301芯片好几百,而且1301对于普通公司来说一直处于半封闭状态,即使买成熟的方案成本也非常高。实际上1301配合LORAWAN设计出来是为了构建城市的商用运营商级别网络的,Semtch在欧美甚至中国香港都有部署。就像中国的联通或者移动运营商,中国要建运营商网络叫NB-IoT。下图是lorawan的数据流结构图,上层使用NetworkServer和ApplicationServer实现节点入网和节点漫游等大型物联网的复杂管理工作。

说到这里大家明白了,虽然1278只有一个射频通道,但是对于我们普通私有的物联网络来说走这个独木桥更符合实际。这不能说明我们穷,这叫穷的智慧,技术的发展不都是穷的智慧吗。

什么是TDMA,英文叫time division multiple access,中文叫时分多址。为什么要这样做呢,因为1278是一个半双工的射频芯片,只有一个通道,而这一个通道就是我们要说的独木桥,这个独木桥有个特点,在一个时间内他只能让一个人过,而大家都想过桥怎么办呢,分开时间顺序通过呗。

复杂的事情简单做你就是专家。具体到组建一个基于TDMAlora无线网络,其实我们只要解决两个问题就好了。第一:时间同步,用来同步各个节点和网关的时钟,保证各个节点的时钟误差始终保持在网络设计的误差范围内;第二:安排数据收发策略,就是过独木桥顺序的算法。

时间同步的方法很多,比如gps授时,可以实时获取纳秒级的UTC时间,缺点是功耗大,适合应用于市电的网关上或者需要UTC时间的地方。也可以使用高精度的有源晶振,在设备上电时候校准,这种方式不太灵活,而且这种高精度晶振成本很高,上电校准操作复杂;剩下的就是自力更生自己解决了,依靠我们自己的网络进行时间同步,网关固定周期每2分钟广播一次时钟校准信号,节点定时唤醒接收同步信号。我们使用普通的10ppm晶体2分钟的误差是1ppm*120=1.2毫秒,1小时误差是36毫秒,节点在唤醒同步时候需要判断误差的具体数据,如果误差很小需要延长时钟的同步周期以达到省电的目的。同步时钟还有一个问题,因为无线传输本身是需要时间的,而lora是扩频通信,传输时间受到前导码长度、扩频码、误码率等共同影响,还好lorawan的开源代码中已为我们提供了这个复杂的计算方法,为了减少节点mcu的计算工作,我们提前计算好固定长度时钟同步帧的无线传输时间。

关于数据的传输策略算法也很多,一类是固定序列法,常用的是数组序列和哈希查找法,这种算法简单且高效但是需要为每个节点配置,工作量多大,适合节点数量较少的情况;另一种是动态解算法,数据的传输策略存储在网关或者后端服务器中,节点首次需要进行入网操作来动态获取自己的数据传输策略,即时钟同步后执行CADCAD成功后发送入网申请,这种方式复杂度较高,但是后期维护方便。




视频演示地址:http://v.youku.com/v_show/id_XMzQ1MzYxMzk0NA==.html?spm=a2h3j.8428770.3416059.1

TDMA温湿度系统已实现,有任何需求详细联系QQ286851918或者微信qxfy2011交流

硬件实现请参考:基于LORA SX1278的温度监控控制系统开发设计-硬件方案设计

猜你喜欢

转载自blog.csdn.net/asdfwyg/article/details/79479670