莊樹軍
緒論
研究背景
隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,生活中隨處可見的物聯(lián)網(wǎng)技術(shù)正在向著萬物互聯(lián)的方向快速的發(fā)展,物聯(lián)網(wǎng)的發(fā)展不單單體現(xiàn)在工業(yè)上的應(yīng)用,那么在日常生活中也是給人們生活帶來了很多的便利。智能家居、智慧城市、車聯(lián)網(wǎng)等等一系列的技術(shù)概念走進(jìn)了人們的日常生活。
本文主要研究基于LoRa協(xié)議在智慧小區(qū)建設(shè)方面的可行性以及實(shí)現(xiàn)方案。針對(duì)小區(qū)的所有情況進(jìn)行組網(wǎng)實(shí)時(shí)監(jiān)測,更大的節(jié)約了人力成本,同時(shí)也帶給了人們更加舒適的生活環(huán)境,同時(shí)對(duì)于一些突發(fā)情況也能得到及時(shí)的響應(yīng)和處理。通過主控芯片連接的煙霧傳感器、紅外報(bào)警傳感器、火焰?zhèn)鞲衅鞣謩e部署在相應(yīng)的位置,每戶家庭單獨(dú)設(shè)置路由器統(tǒng)一進(jìn)行ID編號(hào),然后進(jìn)行數(shù)據(jù)處理,緩解小區(qū)內(nèi)部LoRa網(wǎng)絡(luò)的壓力,同時(shí)對(duì)于信息的整理和分發(fā)更加準(zhǔn)確,簡單。每戶將戶內(nèi)的信息整理后經(jīng)過戶內(nèi)的路由器直接通過星型網(wǎng)絡(luò)發(fā)送到物業(yè)的后臺(tái),物業(yè)的后臺(tái)就可以實(shí)時(shí)監(jiān)控每一戶的安全情況和火災(zāi)情況。
以往物聯(lián)網(wǎng)通訊采用了Zigbee無線通訊、WIFI、藍(lán)牙或者GPRS等方式,那個(gè)上述通信方式有利有弊,LoRa技術(shù)的出現(xiàn)打破了以往物聯(lián)網(wǎng)通信的難點(diǎn),最終在經(jīng)過評(píng)估后采用LoRa技術(shù),通信距離長、靈活、低成本部署的優(yōu)勢(shì)以及功耗相對(duì)較低。
1 LoRa技術(shù)簡單介紹
LoRa技術(shù)誕生于2013年,它是由一種新型芯片實(shí)現(xiàn)了基于1GHz以下的超長距離、低功耗的數(shù)據(jù)傳輸技術(shù),與其他芯片相比,采用了線性的調(diào)頻擴(kuò)頻調(diào)制技術(shù),保持了頻移鍵控的低功耗特性同時(shí)大大的增加了通信的距離,消除了干擾,LoRa最高接收靈敏度改善到20db以上,確保了網(wǎng)絡(luò)的可靠性。所以在上述的基礎(chǔ)上,LoRa技術(shù)的網(wǎng)關(guān)能夠并行的處理多個(gè)節(jié)點(diǎn)的數(shù)據(jù),擴(kuò)展系統(tǒng)的容量。
LoRa主要由終端設(shè)備、網(wǎng)關(guān)、服務(wù)器以及云端四部分組成,可以實(shí)現(xiàn)數(shù)據(jù)的雙向通信,同時(shí)LoRa運(yùn)行在全球的免費(fèi)頻段,不需要進(jìn)行授權(quán)。所以LoRa技術(shù)在物聯(lián)網(wǎng)通信上面是非常不錯(cuò)的通信方案。
LoRa的特性如下:
1.傳輸距離:城鎮(zhèn)可達(dá)2-5 Km,郊區(qū)可達(dá)15 Km。
2.工作頻率:ISM 頻段 包括433、868、915 MH等。
3.標(biāo)準(zhǔn):IEEE 802.15.4g。
4.調(diào)制方式:基于擴(kuò)頻技術(shù),線性調(diào)制擴(kuò)頻(CSS)的一個(gè)變種,具有前向糾錯(cuò)(FEC)能力。
5.容量:一個(gè)LoRa網(wǎng)關(guān)可以連接上千上萬個(gè)LoRa節(jié)點(diǎn)。
6.電池壽命:長達(dá)10年。
7.安全:AES128加密。
8.傳輸速率:幾百到幾十Kbps,速率越低傳輸距離越長。
2 LoRa協(xié)議分析
2.1 LoRa協(xié)議介紹
所有的LoRa設(shè)備都必須保持與Class A兼容,LoRa設(shè)備分為基本的Class A設(shè)備和可選的Class B、Class C功能。如圖1所示:
Class-A設(shè)備:
A類設(shè)備是雙向終端設(shè)備,允許雙向通訊,每個(gè)終端的上行鏈路之后是兩個(gè)短的下行鏈路接收窗口,終端設(shè)備可以根據(jù)自身的通信需求來調(diào)度傳輸時(shí)隙,同時(shí)隨機(jī)時(shí)間在很小的范圍內(nèi)變化,對(duì)于需要在終端設(shè)備發(fā)送上行鏈路和從服務(wù)器進(jìn)行下行鏈路的應(yīng)用程序,A類設(shè)備是最低功耗的終端設(shè)備系統(tǒng)。同時(shí)所有的LoRaWAN的終端設(shè)備必須實(shí)現(xiàn)A類設(shè)備的功能。
Class-B設(shè)備:
B類設(shè)備允許更多的接收接口,除了A類設(shè)備的隨機(jī)接收窗口外,B類設(shè)備還在計(jì)劃時(shí)間內(nèi)打開其他的接收窗口,為了保證在計(jì)劃的時(shí)間內(nèi)打開規(guī)定的接收窗口,那么B類設(shè)備需要從網(wǎng)關(guān)來進(jìn)行時(shí)間的更新和接收時(shí)間同步的信號(hào)。
Class-C設(shè)備:
C類設(shè)備僅僅在發(fā)送的時(shí)候才會(huì)關(guān)閉接收窗口,因此C類設(shè)備會(huì)使用更多的電源進(jìn)行操作,相比較與A、B類設(shè)備,C類的設(shè)備功耗相對(duì)較高,但是他們從服務(wù)器到終端設(shè)備進(jìn)行通信的延遲是最低的。
結(jié)合實(shí)際項(xiàng)目需求,我們僅僅采用A類設(shè)備就可以完成我們所需要的功能。
2.2 LoRa協(xié)議MAC層分析
MAC層的協(xié)議是比較復(fù)雜的,所有LoRa上行鏈路和下行鏈路消息均是由一個(gè)八位字節(jié)的MAC標(biāo)頭(MHDR)開始,后跟一個(gè)MAC有效載荷(MACPayload)并以一個(gè)四字節(jié)的消息完整性代碼(MIC)結(jié)束的。值得注意的是MAC負(fù)載最多59個(gè)字節(jié),保證完整的數(shù)據(jù)包不超過64字節(jié)。
LoRa的MAC層分四種消息類型:加入請(qǐng)求、加入接受、未確認(rèn)的消息和確認(rèn)消息。加入請(qǐng)求和加入接受是OTAA空中接入過程中使用。數(shù)據(jù)消息是用來傳輸MAC控制數(shù)據(jù)和應(yīng)用數(shù)據(jù)的,甚至有可能出現(xiàn)在同一個(gè)數(shù)據(jù)中。確認(rèn)消息必須要無線接收端確認(rèn),而未確認(rèn)信息不需要確認(rèn)。
網(wǎng)絡(luò)的管理可以在服務(wù)器和終端上的MAC層之間專門交換一組MAC命令。MAC層命令對(duì)于應(yīng)用程序或終端程序永遠(yuǎn)是隱式的不可見的。單個(gè)數(shù)據(jù)幀可以包含MAC命令序列。FRMPayload發(fā)送的MAC命令是始終被加密的,同時(shí)要注意不能超過最大FRMPayload數(shù)據(jù)長度。MAC命令是1個(gè)八位的命令標(biāo)識(shí)符和有可能為空的特定于命令的八位序列組合而成。
接收端是按照與發(fā)送命令相同的順序應(yīng)答或者確認(rèn)MAC命令,包含答案的緩沖區(qū)必須在單個(gè)幀中發(fā)送的意思就是在單個(gè)幀中收到的MAC命令必須在單個(gè)幀中應(yīng)答。同時(shí)服務(wù)器不允許在終端設(shè)備的單個(gè)上行鏈路中生成有可能無法應(yīng)答的MAC命令。
2.3 LoRa協(xié)議物理層分析
物理層的消息分為兩類:上行鏈路消息、下行鏈路消息。
上行鏈路消息:是從終端設(shè)備發(fā)送消息到一個(gè)或者是多個(gè)的網(wǎng)絡(luò)中繼器,上行鏈路消息的數(shù)據(jù)包格式如下表1:
上行消息使用LoRa無線電數(shù)據(jù)包顯式模式,其中包括LoRa物理標(biāo)頭(PHDR)加上標(biāo)頭CRC(PHDR_CRC)。有效載荷的完整性受到CRC的保護(hù)。PHDR,PHDR_CRC和有效載荷CRC字段由無線電收發(fā)器插入。
下行鏈路消息:由服務(wù)器發(fā)送到終端設(shè)備,格式如表2:
下行消息使用無線電分組顯式模式,其中包括LoRa物理標(biāo)頭(PHDR)和標(biāo)頭CRC(PHDR_CRC)。
終端設(shè)備在上行傳輸之后必須開啟以傳輸結(jié)束的起始點(diǎn)作為開始時(shí)間的兩個(gè)短暫的接收窗口。如果服務(wù)器想要發(fā)送一個(gè)下行信息到終端設(shè)備的前提是必須要準(zhǔn)確的在兩個(gè)接收窗口的起始點(diǎn)開始傳輸信號(hào)。如果一個(gè)下行信息在兩個(gè)窗口都在傳輸,那么要保證每個(gè)窗口傳輸?shù)膸袷奖仨毾嗤?/p>
第一接收窗口使用的數(shù)據(jù)速率和上行數(shù)據(jù)速率有關(guān),同時(shí)使用的頻率和上行頻率也是是有關(guān)系的;但是第二接收窗口使用固定的可配置的頻率和數(shù)據(jù)速率。但是果在一個(gè)接收窗口中檢測到了前導(dǎo)碼,直到下行幀被解調(diào)完畢之前,射頻接收器都一直在保持工作。如果某一幀被檢測到并且在隨后的第一接收窗口被解調(diào),且此幀的完整性、地址校驗(yàn)通過確認(rèn),那么終端設(shè)備是不允許打開第二個(gè)接收窗口的。
同時(shí)要注意的是如果前一次傳輸后在第一窗口或者第二窗口收到了來自服務(wù)器的消息或者前次傳輸后的第二接收窗口已經(jīng)過期這兩種情況出現(xiàn),那么終端設(shè)備不能夠傳輸另外的上行消息的。
3 方案設(shè)計(jì)
3.1 硬件電路設(shè)計(jì)
3.1.1 主控芯片的電路設(shè)計(jì)
室內(nèi)終端設(shè)備的主控芯片采用STM32F103RCT6,Cortex-M3內(nèi)核,主頻可以達(dá)到72MHz,外設(shè)接口豐富,工作溫度-40-85攝氏度;室內(nèi)路由器主控芯片采用STM32F429BIT6,主頻可以達(dá)到180MHz,2M字節(jié)Flash,256K字節(jié)的RAM,支持USB Host、Device接口等外設(shè)。外部采用8MHz的晶振,RTC采用32.768KHz的晶振。
室內(nèi)終端設(shè)備電路框架圖如圖2所示:
室內(nèi)路由器電路框架圖如圖3所示:
3.1.2 LoRa協(xié)議芯片的電路設(shè)計(jì)
LoRa協(xié)議模塊采用美國Semtech公司的SX1276芯片,LoRa協(xié)議模塊采用美國Semtech公司的SX1276芯片,最大168db、RF輸出+20dbm-100mW、+14dbm高效PA、高達(dá)300kbps可編程速率、超高靈敏度:-148dbm、動(dòng)態(tài)RSSI 127db。 SX1276的參考電路如下圖4:
3.2 程序設(shè)計(jì)思路
為了減小網(wǎng)絡(luò)的壓力,每戶單獨(dú)配置路由器,室內(nèi)的設(shè)備節(jié)點(diǎn)將信息發(fā)送到每戶的路由器上面,由路由器統(tǒng)一進(jìn)行發(fā)送到物業(yè)后臺(tái),物業(yè)可以通過每戶的路由器ID確定當(dāng)前用戶是否存在危險(xiǎn)警報(bào),并及時(shí)做出相應(yīng)的反應(yīng),可保證遇見危急情況實(shí)時(shí)處理。
SX1276初始化流程圖如下圖5所示:
接收模式流程如圖6所示
發(fā)送模式流程圖如圖7所示: