深圳鼎盛合科技代理中微全系列芯片产品,可为客户提供软硬件方案设计开发,并提供免费取样服务
编辑注意:在这个两部分系列的第1部分中,LoRaWAN第1部分:如何为物联网获得15公里的无线和10年的电池寿命,我们研究了LoRaWAN的能力,以满足远程、低功率的物联网通信的需要在第2部分中,我们将展示开发人员如何使用基于Microchip技术RN2903的现成工具包来实现LoRaWAN 。
IoT应用程序 LoRaWAN提供了与物联网需求相匹配的性能特征除了扩展的操作范围和较低的电源需求,LoRaWAN还提供了安全、灵活的通信选项然而,实现LoRaWAN解决方案所需的硬件和软件可能会成为开发团队专注于物联网应用程序本身的主要障碍。
本文将详细介绍在第1部分中介绍的微芯片技术的RN2903 LoRa模块,并说明如何使用它与一些额外的硬件和软件实现远程、低功率的物联网设计 快速启动包 微芯片技术的RN2903 LoRa模块是一个近落的LoRaWAN硬件解决方案的一个物联网设计。
即便如此,它仍然只是一个完整的LoRaWAN网络的基石,开发人员还必须考虑支持硬件和软件系统微芯片解决了这一需求,需要一个综合的评估工具包,它提供了为IoT实现LoRaWAN所需的额外元素 如第1部分所述,Microchip
Technology的RN2903在915mhz支持lorawan兼容的通信,旨在简化IoT应用程序的开发Microchip模块完全认证,包括实现LoRaWAN连接所需的所有组件(图1)模块的命令处理器使用机载LoRaWAN固件来完全支持LoRaWAN类的协议。
机载EEPROM为LoRaWAN配置参数提供存储,通过减少主机和模块之间的数据传输来提高性能和增强安全性 LoRaWAN连接的微型芯片的LoRa模块图。
图1:Microchip的LoRa模块提供了一个drop-in解决方案,用于LoRaWAN与它的机载命令处理器、LoRaWAN协议栈、无线电收发器和串行连接的连接(图片来源:凯利讯半导体技术) Microchip 。
RN2903模块为与外部MCU主机的通信提供了一个专用的UART接口此外,该模块还包括14个GPIO大头针,开发者可以使用模块固件来监控或控制外部设备,如开关和led最后,该模块提供了一个射频信号引脚,方便连接到一个简单的套管偶极天线。
该模块的命令处理器根据来自外部主机MCU的UART接口接收的命令执行LoRaWAN事务与任何网络通信方法一样,LoRaWAN消息以特定的格式发送和接收对LoRaWAN来说,LoRa联盟标准在字节级别的精确细节中指定了这些格式。
RN2903模块提供了一种直观的基于文本的方法,将LoRaWAN标准字节级格式抽象为一组带有可选参数的关键字命令 Microchip定义了三种类型的关键字: 对LoRaWAN mac配置和控制的mac命令。
无线电指令针对的是PHY无线电层 系统命令提供额外的模块功能,如提供模块固件版本信息或访问模块的EEPROM存储 例如: mac tx uncnf30 23A5 在端口30发送一条消息,数据值为“23A5”。
“uncnf”选项表明该设备不请求网络服务器的确认另外,使用“cnf”选项表示设备期望网络服务器确认接收LoRa模块负责将此消息加密,然后将其传输到网关,以发送到网络服务器 无线电tx 6 d657373616765
传递一个包含值[0x6d][0x65][0x73][0x73][0x67][0x67][0x65] [0x65][0x65]的包(十六进制的示例文本字符串“message”) 系统设置nvm 100 FF。
将值0xFF存储在EEPROM中用户分区的地址0x100中 物联网设备设计 使用它的串行接口,RN2903需要很少的额外组件来实现与lorawan兼容的IoT硬件设计微芯片以其RN2903 LoRa 。
Mote进一步加速发展为了演示其LoRa模块的功能,Microchip LoRa Mote提供了一套完整的硬件和软件,以实现一个lorawan兼容的无线传感器 Microchip RN2903 LoRa Mote和RN2483 LoRa Mote分别将各自的LoRa模块与Microchip 。
PIC18LF45K50 8位单片机结合,作为传感器操作的主机处理器和LoRaWAN协议的执行此外,Mote还包括用于采集样本数据的光和温度传感器,以及用于用户反馈的LCD显示Mote通过一个标准的USB接口连接到一台主机,该接口提供了对LoRa模块的UART接口的访问。
开发工程师可以通过Mote的USB连接将mac、radio和sys命令字符串发送到模块,从而执行LoRaWAN操作在运行时,IoT设备主机上运行的代码将根据IoT应用程序的需要发出命令和过程响应对于LoRaWAN应用程序,Microchip提供了一个具有Mote硬件的广泛的C软件库。
例如,一个应用程序级别的例程,MOTEappc,收集传感器数据并通过LoRaWAN连接传输数据,处理RN2903期望的低级mac命令(清单1) moteApp_clearBuffers(); //确保港口在允许的范围内。
//为Tx准备DataBuffer 光= 0; 温度= 0; NOP(); / /测量传感器 moteApp_setSensorsInput(); uint8_t sizeOfUpdate = 0;。
光= moteApp_convertSensorValue(moteApp_getLightValue()); oled_putString(moteApp_getLightString()6 1);
sizeOfUpdate = moteApp_addToDataBuffer(moteApp_getLightString(),4); 温度= moteApp_convertSensorValue(moteApp_getTempValue());
温度= ADC_TempConversion(温度); moteApp_add8bToDataBuffer(温度,4 + moteApp_lightStringSize() + 1); / /正常操作
深圳鼎盛合科技代理中微全系列芯片产品,可为客户提供软硬件方案设计开发,并提供免费取样服务
/ /获得随机的通道 randomPortNum = TMR2_ReadTimer(); //为Tx准备DataBuffer moteApp_add8bToDataBuffer(randomPortNum 0);。
dataBuffer[3]= 0 x20; NOP(); sendDataCommand(“mac tx uncnf”,dataBuffer, 12); 清单1:Microchip提供了C软件,演示了一个从Mote的光和温度传感器中收集数据的示例物联网应用程序,用数据(add8bToDataBuffer)构建一个消息,并使用mac 。
tx命令传输消息(sendDataCommand)(代码来源:微芯片技术)应用程序开发 与简化的基于关键字的命令方法一样,Microchip LoRa模块和相关的Mote开发板大大简化了LoRaWAN终端设备的开发。
然而,即使是系统级的Mote board和它的相关软件也仅仅是LoRaWAN层次结构的最低的终端设备级别一个完整的lorawan兼容网络需要额外的硬件组件,包括兼容网关和网络服务器 此外,在实现IoT应用程序时,开发人员必须处理的事实是,LoRa联盟标准只处理标准OSI堆栈的最低级别。
因此,开发人员需要完成额外的网络层,从OSI的网络层开始,它位于由LoRaWAN MAC标准处理的数据链路层之上 微芯片解决了这一需求,硬件和软件开发工具包实现了一个完整的lorawan兼容网络,包括终端设备、网关和网络服务器。
Microchip RN2903 LoRa网络评估组件和RN2483 LoRa网络评估工具包将一对Motes与Microchip的LoRaWAN网关板绑定在一起该板由一个洛拉瓦网关核心板和一个与天线和电缆相连的无线电女儿卡组成。
在软件方面,工具包使用了Microchip LoRa技术评估套件,它提供了完整评估一个示例LoRa系统所需的所有软件组件(图2)。 Microchip的LoRa网络评估套件和软件套件图。
图2:Microchip的LoRa网络评估工具包和软件套件实现了一个完整的LoRaWAN网络应用程序,包括终端设备(Mote board)、网关(core board)和网络服务器(mchplora)。
(图片来源:微芯片技术) 该套件提供了一个网络服务器(mchplora)作为一个docker容器,设计用于在开发系统中运行虚拟机网关板通过USB连接到开发系统,并与Mote板进行无线通信Mote板通过开发系统的USB连接到基于java的开发工具。
Microchip LoRa开发套件设计用于与评估套件一起工作,它提供了一个全面的java套件,提供了比Mote C库更广泛的服务集例如,要发送MAC传输,开发套件将底层事务抽象为一个简单的macTX类执行方法(清单2)。
空白macTXSendAction() { 如果(this.application.device.updateValueFlag) this.application.device.wanPojo.setData(this.data.getText());
如果(this.application.device.updateValueFlag){ this.application.device.wanPojo.setPortNumber(this.portNumber.getText());
} ICommand macTX = CommandFactory.getCommand(CommandFactory.mactx); DeviceModel currDev = this.application.device;
macTX.setDataModel(currDev); List任务= new ArrayList(); task.add(macTX); 如果(currDev != null) this.application.mvcController.execute(任务);
其他的 System.errprintln(“当前设备没有设置”); } 清单2:Microchip LoRa开发套件提供了一个完整的LoRaWAN环境,包括一组广泛的java包(jar文件),抽象的LoRaWAN事务(如mac 。
tx)到一组简单的软件调用,如macTXSendAction()(代码来源:微芯片技术) 在清单2中,CommandFactory是在LoRaDevUtility中定义的类jar,它定义了 公共静态字符串mactx = "mac tx";。
然后创建一个适当类的实例,在本例中是一个macTx类对象,当这个工厂被称为CommandFactory.mactx: 如果(command.compareTo(mactx)= = 0) 返回新macTX();
macTX在LoRaDevUtility类jar提供了运行时配置值和各种服务功能,如包验证和类的主要实用方法,执行execute方法以所需的格式创建所需的mac tx命令字符串,传递消息(WriteI2cData),然后获得响应:。
命令= new StringBuilder()追加(mac tx).append(((DeviceModel)this.server).wanPojo.getIsConformed())追加(" 。
").append(((DeviceModel)this.server).wanPojo.getPortNumber())追加(" ").append(((DeviceModel)this.server).wanPojo.getData()。
替换(“0 x”," ")).toString(); byte[]data = command.getBytes(); ((DeviceModel)this.server).getController().transport.WriteI2cData(this.processPacket.pack(数据),null,this.timeout);。
byte[]阅读=零; 阅读= super.readResponseData(); 结论 高效的连接是由大量低功率物联网设备组成的物联网网络的基本要求LoRaWAN提供了一种有效的IoT连接性解决方案,它提供了一种远程操作,并且提供了最小的电力需求。
与任何连接性选项一样,实现本身可以证明是一项重要的任务,使开发人员无法将主要精力集中在物联网应用程序本身上 基于Microchip技术的RN2903 LoRa模块,Microchip技术的LoRa网络评估套件和LoRa开发套件提供了一个完整的LoRaWAN应用程序。
通过这种预先认证的硬件和软件的结合,开发人员可以快速地提出一个IoT连接性解决方案,能够实现15公里的无线范围和10年的电池寿命
深圳鼎盛合科技代理中微全系列芯片产品,可为客户提供软硬件方案设计开发,并提供免费取样服务