LoRaWAN提供的性能特性与满足物联网。除了扩展的工作范围和低功耗要求外,LoRaWAN还提供安全,灵活的通信选项。然而,实施LoRaWAN解决方案所需的硬件和软件可能成为专注于物联网应用本身的开发团队的主要障碍。
本文将详细介绍Microchip Technology在第1部分中介绍的RN2903 LoRa模块,以及展示如何将其与一些额外的硬件和软件一起使用,以实现远程,低功耗的物联网设计。
快速启动套件
Microchip Technology的RN2903 LoRa模块近在咫尺用于物联网设计的插件LoRaWAN硬件解决方案。即便如此,它仍然只是完整LoRaWAN网络的基石,开发人员仍然必须考虑支持硬件和软件系统。 Microchip通过全面的评估套件满足了这一需求,该套件提供了为物联网实现LoRaWAN所需的其他元件。
如第1部分所述,Microchip Technology的RN2903支持915 MHz的LoRaWAN兼容通信,旨在实现简化物联网应用程序的开发。 Microchip模块经过全面认证,包含实现LoRaWAN连接所需的所有组件(图1)。模块的命令处理器使用板载LoRaWAN固件来完全支持LoRaWAN A类协议。板载EEPROM为LoRaWAN配置参数提供存储,通过减少主机和模块之间的数据传输来增强性能并提高安全性。
图1:Microchip的LoRa模块通过其板载命令处理器,LoRaWAN协议栈,无线电收发器和串口为LoRaWAN连接提供了一个插入式解决方案连接。 (图像来源:Microchip Technology)
Microchip RN2903模块提供专用UART接口,用于与外部MCU主机通信。此外,该模块还包含14个GPIO引脚,开发人员可使用模块固件对其进行编程,以监控或控制外部设备,如开关和LED。最后,该模块提供一个RF信号引脚,便于连接到简单的套筒偶极天线。
模块的命令处理器根据从外部主机MCU通过其UART接口接收的命令执行LoRaWAN事务。与任何网络通信方法一样,LoRaWAN消息以特定格式发送和接收。对于LoRaWAN,LoRa联盟标准在字节级别详细说明了这些格式。 RN2903模块提供了一种直观的基于文本的方法,可将LoRaWAN标准字节级格式抽象为一组带有可选参数的关键字命令。
Microchip定义了三种类型的关键字:
< li>用于LoRaWAN MAC配置和控制的mac命令
针对PHY无线电层的无线电命令
sys命令用于其他模块功能,例如提供模块固件版本信息或访问模块的EEPROM存储
例如:
mac tx uncnf 30 23A5
在端口30上发送一条消息,数据值为“ 2,3,4,5-“ 。 “uncnf”选项表示设备未请求来自网络服务器的确认。或者,使用“cnf”选项表示设备期望网络服务器确认收到。 LoRa模块负责在将此消息发送到其网关以便传送到网络服务器之前加密该消息。
radio tx 6d657373616765
传输包含值[0x6d] [0x65] [0x73] [0x73] [0x61] [0x67] [0x65](示例文本字符串“message”,十六进制)
sys set nvm 100 FF
将值0xFF存储在EEPROM中用户分区的地址0x100
IoT器件设计
通过其串行接口,RN2903几乎不需要额外的组件来实现LoRaWAN-兼容的物联网硬件设计。 Microchip凭借其RN2903 LoRa Mote进一步加速了开发速度。 Microchip LoRa Mote旨在展示其LoRa模块功能,提供实现兼容LoRaWAN的无线传感器所需的全套硬件和软件。
Microchip RN2903 LoRa Mote和RN2483 LoRa Mote各自组合各自具有Microchip PIC18LF45K50 8位MCU的LoRa模块,用作传感器操作和LoRaWAN协议执行的主处理器。此外,Mote还包括用于采集样本数据的光和温度传感器,以及用于用户反馈的LCD显示器。 Mote通过标准USB接口连接到主机,可以访问LoRa模块的UART接口。
在开发过程中,工程师可以通过发送mac,radio和sys命令字符串来执行LoRaWAN操作。模块使用Mote的USB连接。在运行时期间,在IoT设备主机上运行的代码将根据IoT应用程序的需要发出命令和处理响应。对于LoRaWAN应用,Microchip提供了一个带有Mote硬件的扩展C软件库。例如,应用程序级例程MOTEapp.c收集传感器数据并通过LoRaWAN连接传输数据,处理RN2903预期的低级mac命令(清单1)。
复制
。 。 。
moteApp_clearBuffers();
//确保端口在允许的范围内
//为Tx准备DataBuffer
light = 0;
温度= 0;
NOP();
//测量传感器
moteApp_setSensorsInput();
uint8_t sizeOfUpdate = 0;
light = moteApp_convertSensorValue(moteApp_getLightValue());
oled_putString(moteApp_getLightString(),6,1);
sizeOfUpdate = moteApp_addToDataBuffer(moteApp_getLightString(),4);
temperature = moteApp_convertSensorValue(moteApp_getTempValue());
temperature = ADC_TempConversion(temperature) ;
moteApp_add8bToDataBuffer(温度,4 + moteApp_lightStringSize()+ 1);
//执行正常操作
//获取随机频道
randomPortNum = TMR2_ReadTimer();
//为Tx准备DataBuffer
moteApp_add8bToDataBuffer(randomPortNum,0);
dataBuffer [3] = 0x20;
NOP ();
sendDataCommand(“mac tx uncnf”,dataBuffer,12);
清单1:Microchip提供的C软件演示了一个示例IoT应用程序,该应用程序从Mote的光和温度传感器收集数据,使用数据构建消息( add8bToDataBuffer )并使用mac tx命令发送消息( sendDataCommand )。 (代码来源:Microchip Technology)
应用级开发
随着基于关键字的简化命令方法,Microchip LoRa模块和相关的Mote开发板大大简化了LoRaWAN端的开发设备。然而,即使系统级Mote板及其相关软件也只能处理LoRaWAN层次结构中最低的终端设备级别。完整的LoRaWAN兼容网络需要额外的硬件组件,包括兼容的网关和网络服务器。
此外,在实施物联网应用程序时,开发人员必须处理LoRa联盟标准仅解决的问题。标准OSI堆栈的最低级别。因此,开发人员需要完成额外的网络层,从位于LoRaWAN MAC标准所寻址的数据链路层之上的OSI网络层开始。
Microchip通过硬件和软件开发套件满足了这一需求实现完整的LoRaWAN兼容网络,包括终端设备,网关和网络服务器。 Microchip RN2903 LoRa网络评估套件和RN2483 LoRa网络评估套件将一对Motes与Microchip的LoRaWAN网关板捆绑在一起。该板由LoRaWAN网关核心板和配有天线和电缆的相关无线电子卡组成。
在软件方面,该套件使用Microchip LoRa技术评估套件,该套件提供所有软件组件需要完全评估示例LoRa系统(图2)。
图2:Microchip的LoRa网络评估套件和软件套件实现了完整的LoRaWAN网络应用,包括终端设备(Mote板),网关(核心板) )和网络服务器(mchplora)。 (图像来源:Microchip Technology)
Suite提供了一个网络服务器(mchplora)作为docker容器,旨在在开发系统中的虚拟机上运行。网关板通过USB连接到开发系统,并与Mote板无线通信。 Mote板通过开发系统的USB连接到基于java的开发实用程序。
Microchip LoRa开发套件旨在与评估套件配合使用,提供全面的Java套件,提供更广泛的服务比Mote C库更好。例如,要发送MAC传输,Development Suite会将基础事务抽象为 macTX 类的简单 execute 方法(清单2)。
复制
void macTXSendAction()
{
if(this.application.device.updateValueFlag)
this.application.device.wanPojo.setData(this.data.getText());
if(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);
< p>
列表任务=新的ArrayList();
task.add(macTX);
if(currDev!= null)
this.application.mvcController.execute(task);
else
System.err.println(“当前设备未设置”);
}
清单2:Microchip LoRa开发套件提供了一个完整的LoRaWAN环境,包括一组抽象的LoRaWAN事务的Java包(jar文件)例如mac tx到一组简单的软件调用,例如 macTXSendAction()。 (代码来源:Microchip Technology)
在清单2中, CommandFactory 是在 LoRaDevUtility.jar 中定义的类,用于定义
public static String mactx =“mac tx”;
然后创建相应类的实例,在本例中为 macTx 类对象,当工厂被称为 CommandFactory.mactx :
if(command.compareTo(mactx)== 0)
返回新的macTX();
LoRaDevUtility.jar 中的 macTX.class 提供运行时配置值和各种服务功能,如数据包验证以及类的主要实用程序方法, execute 。 execute 方法以所需格式创建所需的mac tx命令字符串,传输消息( WriteI2cData ),然后获取响应:
< span>复制
command = new StringBuilder()。append(“mac tx”)。append(((DeviceModel)this.server).wanPojo.getIsConformed())。append(“”)。append(( (DeviceModel)this.server).wanPojo.getPortNumber())。append(“”)。append(((DeviceModel)this.server).wanPojo.getData()。replace(“0x”,“”))。toString ();
byte [] data = command.getBytes();
((DeviceModel)this.server).getController()。transport.WriteI2cData(this.processPacket.pack(data) ),null,this.timeout);
byte [] read = null;
read = super.readResponseData();
结论
高效连接是由大量低功耗物联网设备组成的物联网网络的基本要求。 LoRaWAN提供有效的物联网连接解决方案,以最低的功率要求提供远程操作。与任何连接选项一样,实现本身就是一项重大任务,使开发人员不再主要关注物联网应用本身。
基于Microchip Technology的RN2903 LoRa模块,Microchip Technology的LoRa网络评估套件及随附LoRa Development Suite提供完整的LoRaWAN应用程序。通过预先认证的硬件和软件的组合,开发人员可以快速开发出能够实现15公里无线范围和10年电池寿命的物联网连接解决方案。
全部0条评论
快来发表一下你的评论吧 !