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年電池壽命的物聯網連接解決方案。
-
存儲
+關注
關注
13文章
4328瀏覽量
85943 -
物聯網
+關注
關注
2909文章
44739瀏覽量
374500 -
低功耗
+關注
關注
10文章
2408瀏覽量
103775
發布評論請先 登錄
相關推薦
評論