發布日期:2022-05-25 點擊率:58
1部分:如何獲取15公里無線和10年的電池壽命為物聯網,我們看著LoRaWAN,以滿足遠距離的需求的能力,低電力物聯網通信。在第2部分,我們將展示如何開發人員可以使用基于Microchip技術RN2903關閉的,現成的工具包來實現物聯網LoRaWAN應用。
LoRaWAN提供了很好的匹配,以物聯網的需求,性能特點。除了它的擴展工作范圍和低功耗的要求,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的洛拉模塊提供LoRaWAN連接與它的板載命令處理器,LoRaWAN協議棧,無線電收發機,和串行連接一插入式解決方案。(圖像源:微晶片科技)
Microchip的RN2903模塊提供用于與外部主機MCU的通信的專用UART接口。此外,該模塊包括14個GPIO引腳,開發者可以使用模塊固件來監視或控制外部設備,諸如開關和LED進行編程。最后,模塊提供了用于方便地連接到一個簡單的套筒偶極天線的RF信號引腳。
該模塊的命令處理器根據通過其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 6d657373616765
發送包含的值[0x6d]的軟件包[0x65] [0x73] [0x73] [0x61] [0×67] [0x65](以十六進制樣本文本串 “消息”)
sys set nvm 100 FF
存儲該值,在為0xFF在EEPROM中的用戶分區的地址為0x100
物聯網設備的設計
憑借其串行接口,該RN2903需要一些額外的組件來實現兼容LoRaWAN,物聯網的硬件設計。Microchip的進一步發展速度與它的RN2903洛拉·莫特。為了證明其LORA模塊功能,Microchip的洛拉·莫特提供實現LoRaWAN兼容的無線傳感器需要一套完整的硬件和軟件。
Microchip的RN2903洛拉莫特和RN2483洛拉·莫特每結合相應LORA模塊與Microchip PIC18LF45K50 8位MCU,其用作用于傳感器操作和LoRaWAN協議執行主處理器。此外,莫特包括用于采集樣品的數據,以及用于用戶反饋的LCD顯示器的光傳感器和溫度傳感器。微塵通過一個標準的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軟件演示的試樣的IoT的應用程序,收集從莫特的光傳感器和溫度傳感器的數據,建立與數據(消息add8bToDataBuffer)并將該消息發送(sendDataCommand使用MAC TX命令)。(代碼源:微芯片科技)
應用級開發
隨著簡化基于關鍵字的命令的方法中,Mi??crochip的LORA模塊和相關莫特開發板顯著簡化LoRaWAN端裝置的開發。然而,即使是系統級莫特板及其相關軟件地址LoRaWAN層次的只有最低,終端設備的水平。一個完整的LoRaWAN兼容網絡需要額外的硬件部件,包括兼容網關(S)和一個網絡服務器。
此外,在實施的物聯網應用,開發者必須處理的LORA聯盟標準只涉及標準OSI堆棧的最低水平的事實。其結果是,開發者需要完成額外的網絡層,開始與位于由LoRaWAN MAC標準尋址的數據鏈路層之上的OSI網絡層。
Microchip的滿足這種需求與實現了一個完整LoRaWAN兼容網絡,包括終端設備,網關和網絡服務器的硬件和軟件開發工具包。Microchip的RN2903 LORA網絡評估工具包和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();
結論
高效的連接是由低功耗的物聯網設備的數量龐大的物聯網網絡的基本要求。LoRaWAN提供了一個有效的物聯網連接解決方??案,提供了以最小的功率要求的遠程操作。與任何連接選件,可以實現在證明自己的一大創舉,從他們的主要集中在物聯網應用本身分心開發。
基于Microchip的RN2903 LORA模塊,Microchip Technology的LORA網絡評估套件和相應的LORA開發套件提供完整的應用LoRaWAN。使用預認證的硬件和軟件的結合,開發人員可以快速調出能夠實現15公里無線范圍和10年的電池壽命的物聯網連接解決方??案。
下一篇: PLC、DCS、FCS三大控
上一篇: LoRa與FSK的共性與區