Lora芯片的选择
起因
最近对物联网的芯片比较感兴趣,也遇到了几个客户在工业自动化领域针对数据的收集的一些问题,比如石油领域所使用的PLC以及ModBus协议,传感器的数据收集速度缓慢,还有电力领域的机组传感器的数据,经常中断,轮询事件过长等问题,所以想系统的了解一下物联网芯片在模拟信号和数字信号的转换以及传输的问题。
首先,我自己是将物联网芯片分为从前段到后段的五个层次,如下:
1. 传感器:各种环境敏感的材料所研发的模拟信号感应装置,比如湿度、温度、二氧化碳浓度感应,输出模拟信号给控制芯片
2. 模拟信号和数字信号相互转换,简单控制:通常使用频率在几十MHz的控制芯片,具有简单的逻辑控制能力,比如Arduino、MBed、Particle等不同厂家的芯片,实际上只是开发版引脚、编程风格和函数库的差异,本质上使用的控制芯片可能是一样的
3. 通信芯片:比如GSM、WIFI、Bluetooth、Lora、NB-IOT、ZigBee等,负责控制芯片和云端、服务器、网关等节点的信息交互
4. 网关芯片:对于某些通信协议,需要物理网关进行上下行的通信以及网络的组织,对于直接连接广域网的协议比如Wi-Fi或者GSM等不需要网关
5. SBC:树莓派等单片电脑,对于某些小型的物联网设备,需要在本地执行一些复杂运算,比如摄像头识别、语音转换等任务,需要在控制芯片之外连接一个可以处理复杂数据计算的单片电脑,本地的SBC可以在不显著增大设备体积的情况下可以显著降低服务端的压力和贷款,大部分本地小世界的控制和计算都局限在本地网络,也显著降低带宽消耗
对于传感器、控制芯片、SBC来说,虽然种类很多但是架构相对来说比较统一,比如说虽然SBC有很多种,但大部分都是基于ARM或者AmLogic的架构,使用上体验类似,而通信协议我个人认为是物联网领域碎片化最严重的一块,为了满足低功耗、长距离的稳定通信,人们不得不发明新的通信方式,原来的Wi-Fi和蓝牙距离短功耗高,基于蜂窝网络的芯片成本高功耗也高,都不适合在电池技术仍没有突破的物联网领域,即使后来出现的长距离的Zigbee协议距离也不过在一公里,智能家居领域可行,可是更广阔的智能城市或者农业领域,就显得不够了.
目前来看物联网芯片通信协议LPWAN(低功耗广域网)就剩下了NB-IOT和Lora了,此处不说NB-IOT如何了,说他不好会被海军喷,毕竟是华为主力推广的,依靠基站进行通信,不过在5G还没有眉目的情况下,NB的使用状况挺糟糕的,并没有功耗上的优势,且连接数非常受限。
Lora和LoraWan
回到主题,LORA协议目前看起来是满足物联网低功耗、长距离的一种可行解决方案,目前主要由SemTech公司推进,适用于不同的领域有不同系列的芯片,一开始对淘宝上的SX127X、SX128X、SX126X、SX130X系列的芯片搞的比较混乱,以及不同芯片的个性能力比如信号强度、定位等功能混合在一起选择就崩溃了,同时要考虑到是否支持LoraWan协议,Lora和LoraWan到底是什么关系,能否并行通信还是只能轮询,这一切的答案后来都是看了SemTech官网的资料才搞清楚了大概。
简单介绍下Lora和LoraWan的区别,Lora对应与网络协议的物理层,而LoraWan位于数据链路层(MAC),属于LPWAN的一种实现方式,是构建星形网络的关键。
SemTech芯片分类
首先SemTech的芯片都是SX12XX来命名的,根据协议和用途有多种分类方式,接下来的描述中我们把他家的芯片分为3系(SX123x)、5系(SX125x)、7系(SX127x)、6系(SX126x)、8系(SX128x),以及特殊的SX13xx来区分,其中3系、4系列的芯片基本上都只支持FSK和OOK的通信方式,好像官方认为这些比较适合做RFID类的场景,可能成本更低,由于我只关心支持Lora协议的芯片,所以接下来的芯片选择主要设计5系列以及以上的选择。
是否需要Gateway
如果需要使用网关来支持多通道的并行通信,可以选择SX1301或者SX1308,分别对应室外和室内场景,区别在于所适用的工作温度和成本,Lora网关都支持LoraWan协议,Lora Gateway芯片SX130x系列的芯片只能直接和5系芯片进行匹配,作为接收前段,然后配合其他支持lorawan协议的终端节点连接传感器使用,比如7系6系芯片。Gateway支持多路数据收发,同时支持8个通道,再加上ADR(速率自适应)技术,距离越近速率越快,所以实际上网关芯片并不止8倍于普通的7系列芯片所组成的轮询式的星形网络,而是要在18倍左右,所以有需要高并发通信的可以采用Gateway解决方案,但是目前只能匹配5系芯片,从物理上与其他芯片有区别,以适应于多通道并行,实际与6、7、8系列的芯片区别我还不太了解,如需自由组网轮询式网关的可以不采用此方案。
7系芯片和6系芯片的区别
简单的说7系列芯片是第一代Lora芯片,6系列芯片是第二代,各种性能指标全面优于7系列芯片,所以SX127x的芯片可以完全不考虑了,6系列芯片空旷领域可以传输距离达到了10000米,速率也有较大的提升,芯片体积还减少了。
6系列芯片和8系列的芯片的区别
其实最终这两者才是我们选择,都是最新的Lora芯片,区别在于6系列芯片工作在传统的Lora频率,从200MHz到900MHz,而8系列芯片工作在2.4GHz,和Wi-Fi芯片相同,只不过频率更窄,并且可以与现存的Wi-Fi共存,并且抗干扰。因为工作频率不同,二者的传输距离和速率也有明显的区别,在广阔空间需要低功耗、长距离的城市和农业领域,适合6系列芯片,对于8系列的芯片,更适合于智能家居领域,虽然工作在2.4GHz,8系列的传输距离也达到了3000米的程度,覆盖别墅级别的智能家居解决方案绰绰有余,并且速率足够高,可以传输一定的音频视频等多媒体数据。
所以到现在,我们的选择就很清楚了,假如要构造长距离的农业领域的物联网,SX1268是最适合的芯片,使用的频率适用于中国,虽然目前还没有可用的并行多通道的gateway进行配合,但是可以自己搭配SX1268芯片和SBC或者更简陋的RTOS系统的芯片来进行网关开发。
做Prototype都需要哪些硬件
从以上说明我们已经确定要选择SX1268芯片用来通信,接下来我们要选择传感器、Shield、面包板和网关芯片,SBC我已经有了,暂时轮询式的网关也不会用到类似树莓派等SBC,如果选择SX1301类的网关解决方案,就会需要树莓派以及Pi Hat来进行组合,提供Gateway的运算能力。
那淘宝上都有哪些商家提供SX1268芯片呢,有很多授权的解决方案,不过支持私有协议的比较多,直接支持lorawan公有协议的6系列芯片很少,可以自己焊接邮票孔连接MCU以支持lorawan,或者考虑第一代的7系列解决方案,目前支持lorawan的6系列芯片我就找到ASR6501这么一个解决方案,还没有找到方便的开发板,对新手不友好,做原型还是比想象中麻烦。
ASR6501看起来比较完美,集成了MCU和SX1262,支持写入程序,不用自己去找STM32的芯片进行集成了,并且支持Lorawan和Linkwan协议,挺不错的,不过有人说他的中控资料太少,开发坑比较多。