朱慶華+景妮琴+常瑩
摘要:該文面向LoRa的物聯(lián)網(wǎng)平臺,將平臺分解為用戶節(jié)點終端、LoRa網(wǎng)關(guān)、LoRa服務(wù)器、管理平臺四個模塊。其中,傳感器和傳輸節(jié)點之間通過串口通信傳輸數(shù)據(jù),節(jié)點接收數(shù)據(jù)之后通過LoRa調(diào)制方式發(fā)送給網(wǎng)關(guān),服務(wù)器為所用設(shè)備公司提供的遠程服務(wù)器,在PC端編寫數(shù)據(jù)讀取窗口讀取服務(wù)器上接收的網(wǎng)關(guān)數(shù)據(jù)。最后對LoRa物聯(lián)網(wǎng)平臺進行了功能測試和性能測試。
關(guān)鍵詞:物聯(lián)網(wǎng);LoRa;短距離通信
中圖分類號:TP393 文獻標(biāo)識碼:A 文章編號:1009-3044(2018)01-0075-03
1 概述
1.1 技術(shù)的提出
2013年8月,Semtech公司向業(yè)界發(fā)布了一種新型的,基于1GHz以下的超長距低功耗數(shù)據(jù)傳輸技術(shù)(簡稱LoRa)的芯片。其接受靈敏度達到了驚人的-148dbm,LoRa是由升特公司(Semtech)發(fā)布的一種專用于無線電調(diào)制解調(diào)的技術(shù),它與其他如FSK(頻移鍵控)、GMSK(高斯最小頻移鍵控)、BPSK(二進制相移鍵控)及其派生的調(diào)制方案形成競爭關(guān)系。
LoRa融合了數(shù)字?jǐn)U頻、數(shù)字信號處理和前向糾錯編碼技術(shù),擁有前所未有的性能。此前,只有那些高等級的工業(yè)無線電通信會融合這些技術(shù),而隨著LoRa的引入,嵌入式無線通信領(lǐng)域的局面發(fā)生了徹底的改變。
1.2LoRa技術(shù)優(yōu)勢
LoRa技術(shù)最突出的兩個優(yōu)點就是長距離和低功耗。
LoRa技術(shù)的第一個優(yōu)點就是傳輸距離長。在郊區(qū)環(huán)境下,LoRa技術(shù)的傳輸距離可以達到10~15km;在城市環(huán)境下,傳輸距離也能達到3~5km。這樣的傳輸距離相比Wi-Fi、2G、3G、4G等要遠很多。LoRa技術(shù)能有這么遠的傳輸距離,得益于它工作的頻率范圍比較低,頻率低的信號波長較大,在城市中眾多建筑包圍之下產(chǎn)生的衰落就比較小,所以傳輸距離遠。
LoRa技術(shù)另一個優(yōu)點就是低功耗。LoRa技術(shù)之所以能夠低功耗,首先是因為其發(fā)射頻率低,信號波長比較長,在傳播過程中所產(chǎn)生的衰落比較小,因而可以采用低功率發(fā)射;其次,LoRa采用擴頻技術(shù),能使信號的抗多徑、抗衰落能力比較強,所以對發(fā)射功率的要求不高;最后,為達到省電的目的, 業(yè)界廣泛應(yīng)用WOR(Wake on Radio) 方式—芯片周期性地進入接收模式以判斷有沒有喚醒信號(比如前導(dǎo)),其他時間處于Sleep模式,通過對比,采用WOR方式可以使電池壽命相比功耗同樣不高的FSK調(diào)制提高3倍以上。
1.3 LoRa WAN1.0
LoRaWAN1.0是有LoRa聯(lián)盟提出的LoRa技術(shù)規(guī)范,它定義了LoRa網(wǎng)絡(luò)的通信協(xié)議和系統(tǒng)結(jié)構(gòu)。通信協(xié)議和系統(tǒng)結(jié)構(gòu)對LoRa網(wǎng)絡(luò)的節(jié)點電池壽命、網(wǎng)絡(luò)容量、服務(wù)質(zhì)量、安全性和服務(wù)的多樣性有著重要影響。
如圖1所示,LoRaWAN網(wǎng)絡(luò)架構(gòu)是一個典型的星形拓?fù)浣Y(jié)構(gòu),在這個網(wǎng)絡(luò)架構(gòu)中,LoRa網(wǎng)關(guān)是一個透明的中繼,連接前端終端設(shè)備和后端中央服務(wù)器。網(wǎng)關(guān)與服務(wù)器通過標(biāo)準(zhǔn)IP連接,而終端設(shè)備采用單跳與一個或多個網(wǎng)關(guān)通信,所有的節(jié)點均是雙向通信。
LoRaWAN的終端設(shè)備服務(wù)于不同的應(yīng)用,有著不同的要求。為了優(yōu)化各類終端應(yīng)用程序配置文件,LoRaWAN利用不同的設(shè)備類權(quán)衡網(wǎng)絡(luò)下行通信延遲與電池壽命。在控制或執(zhí)行器類型的應(yīng)用程序,所述下行鏈路通信延遲是一個重要的因素。
2 面向LoRa的物聯(lián)網(wǎng)平臺設(shè)計
2.1 設(shè)計原則
物聯(lián)網(wǎng)平臺的設(shè)計應(yīng)該支持多種業(yè)務(wù)需求,既要滿足不同業(yè)務(wù)的共性需求,同時又能夠支持不同業(yè)務(wù)的個性化需求。除此之外,平臺的系統(tǒng)設(shè)計還應(yīng)該遵循以下幾個原則:安全性原則、實用性原則、標(biāo)準(zhǔn)性原則和可擴充性原則。
2.2 面向LoRa的物聯(lián)網(wǎng)平臺網(wǎng)絡(luò)結(jié)構(gòu)
如圖2所示,整個LoRa物聯(lián)網(wǎng)平臺分為用戶節(jié)點終端、LoRa網(wǎng)關(guān)、LoRa服務(wù)器、管理平臺四個模塊。其中,用戶節(jié)點終端由測試節(jié)點與數(shù)據(jù)采集傳感器相連接,用戶節(jié)點終端部署在教學(xué)樓、學(xué)生公寓及行政樓等分散的多個位置,采用星型網(wǎng)絡(luò)布局;LoRa網(wǎng)關(guān)放在網(wǎng)絡(luò)中心機房內(nèi),用于接收測試節(jié)點發(fā)送的數(shù)據(jù)并轉(zhuǎn)發(fā)至服務(wù)器;LoRa服務(wù)器采用設(shè)備商提供的遠程云服務(wù)器;管理平臺通過登錄遠程云服務(wù)器獲取LoRa網(wǎng)關(guān)的數(shù)據(jù),并能通過平臺向節(jié)點發(fā)送消息。
3 面向LoRa的物聯(lián)網(wǎng)平臺實現(xiàn)
平臺實現(xiàn)的用戶終端模塊由檢測儀、測試節(jié)點和移動電源組成,用于測試LoRa網(wǎng)絡(luò)覆蓋質(zhì)量,傳輸溫度、濕度和空氣質(zhì)量數(shù)據(jù),同時,用戶也可以通過檢測儀了解到節(jié)點位置的溫度、濕度和空氣質(zhì)量情況。
3.1 檢測儀
檢測儀上的各個傳感器都是通過串口通信傳輸數(shù)據(jù),因而整個檢測儀的數(shù)據(jù)采用串口方式傳輸,采用TTL-USB接口將檢測儀連接到PC端,通過PC端的串口調(diào)試軟件測試數(shù)據(jù)傳輸是否正常。根據(jù)檢測儀的說明書,檢測儀上傳的數(shù)據(jù)間隔為1秒,波特率9600,數(shù)據(jù)位8位,停止位1位,無校驗位。
測試結(jié)果從串口調(diào)試軟件串口數(shù)據(jù)接收獲取,根據(jù)讀取的數(shù)據(jù),計算如下:溫度=28.0℃;濕度=31RH%;PM2.5=0μg/m3;PM10=0μg/m3;計算結(jié)果與檢測儀屏幕顯示結(jié)果完全相符。測試結(jié)果說明檢測儀串口數(shù)據(jù)上傳沒有問題。
3.2 測試節(jié)點
測試節(jié)點為基于LoRa物聯(lián)網(wǎng)平臺中的重要部分,它的主要功能有:通過串口與檢測儀通信;OLED顯示屏,可根據(jù)需要顯示數(shù)據(jù);通過編程中的邏輯修改,實現(xiàn)LoRaMAC、PHYMAC、低功耗三個模式直接的切換;向LoRa網(wǎng)關(guān)發(fā)送上行數(shù)據(jù);接收LoRa網(wǎng)關(guān)的下行數(shù)據(jù);測試LoRa網(wǎng)絡(luò)覆蓋質(zhì)量。
節(jié)點編程實現(xiàn):
1) 串口驅(qū)動程序
其中核心代碼如下:endprint
串口初始化函數(shù):void UART_Init(void)
該函數(shù)的作用為初始化串口設(shè)置,在對測試節(jié)點進行燒寫編程時對串口的波特率、數(shù)據(jù)位數(shù)、有無停止位、有無校驗位等參數(shù)進行設(shè)置,若想修改這些參數(shù),需要對測試節(jié)點進行重新燒寫。根據(jù)檢測儀的串口參數(shù)需求,編寫代碼:
UartHandle.Instance = USARTx;
UartHandle.Init.BaudRate = 9600;
UartHandle.Init.WordLength = UART_WordLENGTH_8B;
UartHandle.Init.StopBits = UART_STOPBITS_1;
UartHandle.Init.Parity = UART_PARITY_NONE;
UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
UartHandle.Init.Mode = UART_MODE_TX_RX;
串口發(fā)送函數(shù)的關(guān)鍵語句為:
uint16_t i = 0 ;
for(i = 0;i { USART1→TDR = (uint8_t)(str[i]); while( HAL_USART_GET_FLAG(USART1,UART_FLAG_TC)== RESET);} 2) 屏幕驅(qū)動程序 其中的核心函數(shù)如下: void OLED_Init(void) 此函數(shù)為OLED的初始化函數(shù),用于配置OLED引腳,設(shè)置對比度、掃描方向、亮度的參數(shù)。若想對OLED的基本參數(shù)進行改動,需修改此函數(shù)中的內(nèi)容并重新燒寫。 void OLED_DrawPoint(u8 x,u8 y,u8 t) void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size,u8 mode) //單個字符顯示 此函數(shù)的功能為控制OLED顯示屏在(x,y)坐標(biāo)的位置顯示一個字符。核心代碼如下: for(t=0;t { if(size==12)temp=asc2_1206[chr][t]; // Font 1206 else if(size==16)temp=asc2_1608[chr][t]; // Font 1206 else if(size==24)temp=asc2_2412[chr][t]; // Font 1206 else return; //Not word stock for(t1=0;t1<8;t1++) { if(temp&0x80)OLED_DrawPoint(x,y,mode); else OLED_DrawPoint(x,y,!mode); temp<<=1; y++; if((y-y0)==size) { y=y0; x++; break;}} void OLED_ShowString(u8 x,u8 y,const u8 *p,u8 size) //顯示需要的數(shù)據(jù) { while((*p<='~')&&(*p>=' ')) //Determine whether illegal { if(x>(128-(size/2))){x=0;y+=size;} if(y>(64-size)){y=x=0;OLED_Clear();} OLED_ShowChar(x,y,*p,size,1); x+=size/2; p++;} } 3) LoRa頻點、信道設(shè)置 測試節(jié)點支持LoRaMAC工作模式,LoRaMAC工作模式又分為LoRa調(diào)制和FSK調(diào)制兩種,本次所建的LoRa物聯(lián)網(wǎng)平臺采用LoRa調(diào)制。實現(xiàn)LoRaMAC工作模式設(shè)置的程序?qū)懺赼pp_oasl.c文件中,其核心代碼如下: //設(shè)置LoRaMAC工作模式(LoRa調(diào)制) //設(shè)置信道1 g_macData.channels[0].Frequency = 779500000;//頻點 //速率范圍:((最高速率<<4丨最低速率)) g_macData.channels[0].DrRange.Value = ( ( DR_5 << 4 ) | DR_0 ); g_macData.channels[0].Band = 0; 4) 串口數(shù)據(jù)讀取 串口數(shù)據(jù)讀取的程序語句如下: switch(step) { case 0: if(ch == 0xFF) { step++; uart1_Rxcount= 0; memset(uart1_rxBuf,0,80);//???????? uart1_rxBuf[uart1_Rxcount] = ch; uart1_Rxcount++;} break; case 1: uart1_rxBuf[uart1_Rxcount++] = ch; if(uart1_rxBuf[8]==0x79)//跳過無用幀
step=0;
if(uart1_Rxcount==12)
……
for(uint8_t i=0;i<13;i++)
{ sprintf((char*)temp_buf+len,"%X",uart1_rxBuf[i]);//bandwidth
len=strlen((char*)temp_buf);}
OLED_ShowString(0,24,(u8*)temp_buf,12);
OLED_Refresh_Gram();
5) 串口數(shù)據(jù)發(fā)送
串口數(shù)據(jù)讀取完畢后,調(diào)用osal_set_event函數(shù)啟動發(fā)包程序。由于檢測儀上傳串口數(shù)據(jù)的頻率固定為1秒1幀,而測試節(jié)點采用LoRa模式發(fā)送數(shù)據(jù)的頻率遠遠低于檢測儀上傳串口數(shù)據(jù)的頻率。為保證測試節(jié)點不出現(xiàn)死機的情況,設(shè)置為可以丟包但是不會死機的工作模式,以保證測試節(jié)點正常工作。
3.3 用戶節(jié)點終端模塊整體測試
用戶節(jié)點終端模塊由檢測儀和測試節(jié)點組成,在完成對檢測儀和測試節(jié)點的編程、調(diào)試工作后,需對用戶節(jié)點終端模塊整體進行測試。
將測試節(jié)點上的4PIN串口數(shù)據(jù)線按照GND-GND,5V-5V,TX-RX,RX-TX的順序連接。串口數(shù)據(jù)線連接完成后,將移動電源的Micro-USB口連接至檢測儀,打開移動電源和檢測儀的開關(guān),測試節(jié)點已經(jīng)正確地讀取到了檢測儀上傳的串口數(shù)據(jù)。由此可得,用戶節(jié)點終端模塊工作正常。
3.4 LoRa 網(wǎng)關(guān)
為了方便管理和調(diào)試LoRa網(wǎng)關(guān),網(wǎng)關(guān)上設(shè)有USB-B型接口,通過使用USB打印線可以將網(wǎng)關(guān)和PC相連接。PC終端與LoRa網(wǎng)關(guān)連接成功后,首先在PC 終端的設(shè)備管理器中查詢到PC終端與LoRa網(wǎng)關(guān)連接的串口號。連接后采用的調(diào)試軟件為Putty。設(shè)置相應(yīng)參數(shù)進行連接管理。
常用指令gw info顯示LoRa網(wǎng)關(guān)的基本信息,包括ID,DTU版本,GWM 版本(硬件/軟件),地理位置信息。指令gw ip顯示LoRa網(wǎng)關(guān)的IP 信息,包括網(wǎng)絡(luò)連接類型,IP 地址,子網(wǎng)掩碼,默認(rèn)網(wǎng)關(guān)。指令gw ping測試LoRa網(wǎng)關(guān)與服務(wù)器的連接情況。
3.5 LoRa服務(wù)器
基于LoRa的物聯(lián)網(wǎng)平臺使用的遠程云服務(wù)器主要功能有:實現(xiàn)中心網(wǎng)管平臺功能;實現(xiàn)LoRaWAN MAC部分;負(fù)責(zé)Gateway網(wǎng)關(guān)及配置工作,Mote配置及OTA與應(yīng)用服務(wù)器數(shù)據(jù)交互。
3.6 管理平臺
管理平臺對網(wǎng)絡(luò)中各個用戶的節(jié)點終端進行管理。面向LoRa物聯(lián)網(wǎng)網(wǎng)絡(luò)的需求,管理平臺具有以下功能:
1) 服務(wù)器安全驗證
管理平臺所有功能的前提是登錄LoRa遠程云服務(wù)器,為保證數(shù)據(jù)安全,管理平臺登錄服務(wù)器時應(yīng)驗證登錄信息并反饋。根據(jù)上一節(jié)內(nèi)容,CS需要間隔60秒向AS發(fā)送登錄信息,這樣就確保了信息的安全。
2) 測試節(jié)點管理功能
管理平臺中應(yīng)當(dāng)對所有通過LoRa網(wǎng)關(guān)接入服務(wù)器的測試節(jié)點進行列表管理。通過選中測試節(jié)點,可以實現(xiàn)查看測試節(jié)點所發(fā)數(shù)據(jù)、向測試節(jié)點發(fā)送數(shù)據(jù)的功能。為了測試LoRa網(wǎng)絡(luò)的覆蓋質(zhì)量,測試節(jié)點在發(fā)送數(shù)據(jù)時會將頻點、帶寬、碼率等信息一起發(fā)送到LoRa網(wǎng)關(guān)。服務(wù)器也應(yīng)該具有讀取這些數(shù)據(jù)的功能,以方便和用戶節(jié)點終端進行對比,進而檢測LoRa網(wǎng)絡(luò)的覆蓋質(zhì)量。
3) 對測試節(jié)點所發(fā)數(shù)據(jù)的處理功能
測試節(jié)點所攜帶的有效數(shù)據(jù),根據(jù)上文所述,是一串HEX編碼的十六進制數(shù)據(jù)幀。為了更直觀地在管理平臺展示溫度、濕度和空氣質(zhì)量這些數(shù)據(jù),管理平臺需要對數(shù)據(jù)幀進行處理。通過上文所述的計算方法,管理平臺可以正確地顯示實際的數(shù)據(jù)。
4) 根據(jù)測試節(jié)點ID進行篩選
由于一個LoRa服務(wù)器可以接入很多的LoRa網(wǎng)關(guān),一個網(wǎng)關(guān)又支持上千個測試節(jié)點接入,所以在服務(wù)器端會有很多的測試節(jié)點。服務(wù)器辨別各個測試節(jié)點的依據(jù)就是每個測試節(jié)點獨一無二的ID,根據(jù)測試節(jié)點ID選擇某個位置的測試節(jié)點比較繁瑣。為了解決這個問題,管理平臺應(yīng)該具有根據(jù)節(jié)點ID進行篩選的功能,方便管理員通過按鈕直接訪問特定的測試節(jié)點。
4 結(jié)束語
本文進行了LoRa物聯(lián)網(wǎng)平臺的需求分析,針對需求,對物理網(wǎng)平臺進行了總體設(shè)計,將平臺分解為用戶節(jié)點終端、LoRa網(wǎng)關(guān)、LoRa服務(wù)器、管理平臺四個模塊。其中,傳感器和傳輸節(jié)點之間通過串口通信傳輸數(shù)據(jù),節(jié)點接收數(shù)據(jù)之后通過LoRa調(diào)制方式發(fā)送給網(wǎng)關(guān),服務(wù)器為所用設(shè)備公司提供的遠程服務(wù)器,在PC端編寫數(shù)據(jù)讀取窗口讀取服務(wù)器上接收的網(wǎng)關(guān)數(shù)據(jù)。
參考文獻:
[1] 劉琛,邵震,夏瑩瑩. 低功耗廣域LoRa技術(shù)分析與應(yīng)用建議[J]. 電信技術(shù),2016(5).
[2] 龔天平. LORA技術(shù)實現(xiàn)遠距離、低功耗無線數(shù)據(jù)傳輸[J]. 電子世界,2016(10).
[3] 胡江波,顏歡. 基于物聯(lián)網(wǎng)的無線傳感網(wǎng)絡(luò)平臺[J]. 電腦知識與技術(shù),2015,11(6).
[4] 夏瑩瑩,劉琛,邵震. LPWA,物聯(lián)網(wǎng)產(chǎn)業(yè)發(fā)展的新機遇[J]. 通信企業(yè)管理,2015(10).endprint