發布日期:2022-05-25 點擊率:53
耗的要求,LoRaWAN提供安全,靈活的通信選項。然而,為了實現一個LoRaWAN溶液所需的硬件和軟件可以證明一個主要障礙集中在物聯網應用程序本身的開發團隊。
本文將詳細闡述了Microchip Technology的第1部分介紹RN2903 LORA模塊,并展示如何使用一些額外的硬件和軟件,用它來實現遠距離,低功耗設計,物聯網。
快速入門套件
Microchip Technology的RN2903 LORA模塊是一個物聯網設計近投遞LoRaWAN硬件解決方案。即便如此,它仍然只是一個完整的LoRaWAN網絡的基石,開發者仍然必須考慮支持硬件和軟件系統。Microchip的滿足這一需求提供全面的評估套件,提供了實現LoRaWAN對物聯網所需要的其他元素。
正如第1部分所提到的,Microchip Technology的RN2903支持LoRaWAN兼容的通信頻率為915MHz,旨在簡化物聯網應用的開發。全面認證,Microchip的模塊包括了實現LoRaWAN連接(圖1)所需的所有組件。該模塊的命令處理器采用板載LoRaWAN固件完全支持LoRaWAN類的協議。板載EEPROM提供存儲用于LoRaWAN配置參數,從而提高性能和減少主機和模塊之間的數據傳輸增加的安全性。
圖1:Microchip的LORA模塊提供了LoRaWAN連接,其板載命令處理器,LoRaWAN協議棧,射頻收發器和串行連接一個簡易的解決方案。(圖片來源:微芯片科技)
Microchip的RN2903模塊提供與外部MCU主機通信的專用UART接口。此外,該模塊包括14 GPIO引腳,開發者可以使用模塊固件監視或控制外部設備,如開關和LED編程。最后,該模塊提供了方便的連接到一個簡單的套偶極天線的射頻信號引腳。
模塊的命令處理器根據通過其UART接口從外部主機MCU接收的命令執行LoRaWAN交易。正如任何網絡通信的方法,LoRaWAN消息被發送,并在特定的格式接收。對于LoRaWAN的LORA聯盟標準規定了在字節級苛求細節這些格式。該RN2903模塊提供了一個直觀的基于文本的方法,抽象LoRaWAN標準字節級別的格式為一組關鍵字的使用可選參數命令。
Microchip的定義了三種類型的關鍵字:
MAC的LoRaWAN MAC配置和控制命令
無線電指令針對PHY無線電層
SYS額外的模塊功能,如提供模塊固件版本的信息或訪問模塊的EEPROM存儲器命令
例如:
mac tx uncnf 30 23A5
發送端口30的數據值“2,3,4,5-”的消息。的“uncnf”選項表示設備沒有請求從網絡服務器確認。或者,使用“CNF”選項表示該設備預計網絡服務器確認收到。的洛拉模塊負責將其發送到它的網關以便傳遞到網絡服務器之前加密該消息。
radio tx 6d657****765
發送含有值[0x6d]一攬子[0x65] [0x73] [0x73] [0x61] [0x67] [0x65(十六進制示例文本字符串“消息”)
sys set nvm 100 FF
存儲該值為0xFF在EEPROM中的用戶分區的地址為0x100
物聯網設備設計
憑借其串行接口,RN2903需要一些額外的組件來實現兼容LoRaWAN,物聯網的硬件設計。Microchip的進一步發展速度與RN2903 LORA莫特。為了證明其LORA模塊功能,Microchip的LORA莫特提供實現LoRaWAN兼容的無線傳感器需要一套完整的硬件和軟件。
Microchip的RN2903 LORA莫特和RN2483 LORA莫特各結合各自的LORA模塊與Microchip PIC18LF45K50 8位MCU,作為傳感器的操作和LoRaWAN協議執行主處理器。此外,莫特包括用于采集樣品的數據,以及用于用戶反饋的液晶顯示光傳感器和溫度傳感器。該莫特通過一個標準的USB接口,它提供了訪問LORA模塊的UART接口連接到主機。
在開發過程中工程師們可以通過發送執行LoRaWAN操作MAC,無線電和SYS命令字符串使用莫特的USB連接的模塊。在運行期間,物聯網設備主機上運行的代碼會發出需要的物聯網應用的命令和處理響應。對于LoRaWAN應用,Microchip提供的硬件莫特豐富的C軟件庫。例如,一個應用程序級例程,MOTEapp.c,收集的傳感器數據,并通過LoRaWAN連接發送數據,處理由RN2903預期低級MAC命令(清單1)。
. . .
moteApp_clearBuffers();
// Make Sure Port is in allowed Range
// Prepare DataBuffer for Tx
light = 0;
temperature = 0;
NOP();
// Measure Sensors
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(temperature, 4 + moteApp_lightStringSize() + 1);
// Do Normal Operation
. . .
// Getting Random Channel
randomPortNum = TMR2_ReadTimer();
. . .
// Prepare DataBuffer for Tx
moteApp_add8bToDataBuffer(randomPortNum, 0);
dataBuffer[3] = 0x20;
NOP();
sendDataCommand("mac tx uncnf ", dataBuffer, 12);
. . .
清單1:Microchip提供C語言軟件演示樣本物聯網的應用程序,收集從莫特的光照和溫度傳感器的數據,建立與數據(消息add8bToDataBuffer),發送消息(sendDataCommand使用MAC TX命令)。(代碼源:微芯片科技)
應用級開發
隨著簡單的基于關鍵字的命令方式,Microchip的LORA模塊和相關莫特開發板顯著簡化LoRaWAN終端設備的發展。然而,即使在系統級莫特板及其相關軟件地址LoRaWAN層次僅是最低的,終端設備的水平。一個完整的LoRaWAN兼容網絡需要額外的硬件部件,包括兼容網關(S)和一個網絡服務器。
此外,在實施的物聯網應用,開發者必須處理的LORA聯盟標準只涉及標準OSI堆棧的最低水平這一事實。其結果是,開發者需要完成的其他聯網層,開始與位于由LoRaWAN MAC標準尋址的數據鏈路層之上的OSI網絡層。
微芯片的地址這一需要使用實現一個完整LoRaWAN兼容網絡,包括端設備,網關和網絡服務器的硬件和軟件開發工具包。Microchip的RN2903LORA網絡評估工具包和RN2483 LORA網絡評估套件捆綁一對微塵與Microchip的LoRaWAN網關板。董事會是由LoRaWAN網關核心板和相關的無線子卡完整的天線和電纜。
在軟件方面,該試劑盒使用從Microchip LORA技術評估套件提供所有全面評估的示例LORA系統所需的軟件組件(圖2)。
圖2:Microchip的LORA網絡評估套件和軟件套件實現完整的LoRaWAN的網絡應用,包括終端設備(莫特板),網關(核心板)和網絡服務器(mchplora)。(圖片來源:微芯片科技)
該套件提供了一個網絡服務器(mchplora)的設計使其在開發系統的虛擬機上運行泊塢窗容器。網關主板通過USB連接到開發系統和無線方式與莫特板通信。該莫特板通過制定系統的USB到基于Java的開發實用程序連接。
設計與評估套件工作,Microchip的LORA開發套件提供了一個全面的Java套件,提供了更為豐富的比提供的服務與莫特C ++類庫。例如,發送一個MAC傳輸,開發套件抽象相關交易一個簡單的execute
一個方法macTX
類(清單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);
List task = new ArrayList();
task.add(macTX);
if (currDev != null)
this.application.mvcController.execute(task);
else
System.err.println("Current Device not set");
}
清單2:Microchip的LORA開發套件提供了一個完整的LoRaWAN環境,包括一系列廣泛的Java包(JAR文件)的抽象LoRaWAN交易,如MAC TX到一組簡單的軟件電話等macTXSendAction()
。(代碼源:微芯片科技)
在清單2中,CommandFactory
在定義的類LoRaDevUtility.jar
定義
public static String mactx = "mac tx";
然后創建適當的類的一個實例,在這種情況下,一macTx
類對象,當工廠稱為CommandFactory.mactx
:
if (command.compareTo(mactx) == 0)
return new macTX();
該macTX.class
在LoRaDevUtility.jar
提供運行時配置值和各種服務功能,如數據包驗證,以及該類的主要實用方法execute
。該execute
方法創建所需的MAC TX規定格式字符串命令,傳送消息(WriteI2cData
),然后獲取響應:
. . .
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();
結論
有效連接是由低功率的IoT器件的海量數的IoT網絡的基本要求。LoRaWAN提供了一個有效的物聯網連接解決方案,以提供最低的功率要求遠距離操作。與任何連接選項,可實現在證明自己的一大創舉,從他們的主要集中在物聯網應用本身分心開發。
基于Microchip的RN2903 LORA模塊,Microchip Technology的LORA網絡評估套件和相應的LORA開發套件提供完整的應用LoRaWAN。使用預認證的硬件和軟件的組合,開發人員可以快速調出能夠實現15公里無線范圍和10年的電池壽命的物聯網連接解決方案。
下一篇: PLC、DCS、FCS三大控
上一篇: LoRaWAN介紹16 Server