無(wú)線通信技術(shù)
按照距離和傳輸速率,可以分為如下圖所示。
STM32WL型號(hào)分布
STM32WL可優(yōu)化項(xiàng)
LORA的前身
LoRa是 由法國(guó)公司Cycleo(于2009年作為IP和設(shè)計(jì)解決方案提供商成立)開(kāi)發(fā)的專利技術(shù),用于擴(kuò)
頻無(wú)線調(diào)制
? 2012年, Cycleo被Semtech(美國(guó))以約500萬(wàn)美元的價(jià)格收購(gòu)。
? 2015年Semtech建立了LoRa聯(lián)盟。 包括意法半導(dǎo)體,瑞薩電子,微芯,軟銀,阿里巴巴,亞馬遜,思科,RisingHF,CLAATEK等。
LORA技術(shù)方面
LoRa(Long Range)是Semtech公司的調(diào)制技術(shù),用于低功耗,廣域網(wǎng)(LPWAN)。
? LoRa是物理層。
? LoRa 基于線性調(diào)頻擴(kuò)頻(CSS)通信和工作在免許可證的SubGHz 頻段。
全球LORA工作頻段
可以看見(jiàn),在中國(guó)使用的頻段主要是470~510Mhz
LoRa 和 LoRaWAN區(qū)別
LoRa是物理層,LoRa定義了調(diào)制技術(shù)和頻段,LoRaWAN是上層的一種開(kāi)關(guān)協(xié)議,定義了mac層。
LoRaWAN網(wǎng)絡(luò)架構(gòu)
LoRaWAN網(wǎng)絡(luò)架構(gòu)分成如下五個(gè)部分:
? LoRaWAN節(jié)點(diǎn)
? LoRaWAN網(wǎng)關(guān)
? LoRaWAN網(wǎng)絡(luò)服務(wù)器
? LoRaWAN應(yīng)用服務(wù)器
? APP
工作過(guò)程是總端節(jié)點(diǎn)采集數(shù)據(jù),將數(shù)據(jù)通過(guò)LoRa無(wú)線通信,傳輸?shù)骄W(wǎng)關(guān),網(wǎng)關(guān)再將數(shù)據(jù)傳輸?shù)骄W(wǎng)絡(luò)服務(wù)器,網(wǎng)絡(luò)服務(wù)器再將數(shù)據(jù)轉(zhuǎn)化到對(duì)應(yīng)的應(yīng)用服務(wù)器進(jìn)行處理,最后在網(wǎng)頁(yè)或者APP內(nèi)進(jìn)行顯示。STM32WL系列的產(chǎn)品適合做節(jié)點(diǎn)這樣的一個(gè)角色。
LoRaWAN 安全數(shù)據(jù)傳輸
在數(shù)據(jù)傳輸種,節(jié)點(diǎn)和網(wǎng)絡(luò)服務(wù)器之間會(huì)使用128bit的網(wǎng)絡(luò)會(huì)話密鑰進(jìn)行加密,檢點(diǎn)和應(yīng)用服務(wù)器之間則會(huì)用128bit的應(yīng)用繪畫(huà)密鑰加密, 這樣可以確保節(jié)點(diǎn)傳輸?shù)綉?yīng)用服務(wù)器的數(shù)據(jù)不會(huì)被網(wǎng)關(guān)和網(wǎng)絡(luò)服務(wù)器進(jìn)行讀取到。
LoRaWAN 節(jié)點(diǎn)定義
節(jié)點(diǎn)的類別主要是有Class A, Class B, Class C。
基于LoRaWAN的終端設(shè)備可能會(huì)根據(jù)其設(shè)備類別以三種模式之一運(yùn)行。
? 所有此類設(shè)備必須支持Class A操作。
? Class B設(shè)備必須同時(shí)支持Class A和Class B模式。
? Class C設(shè)備必須支持Class A。這些操作模式與設(shè)備與網(wǎng)絡(luò)的通信方式有關(guān)。
由下圖也可以得知,Class A, Class B, Class C的功耗種Class A最小,Class C功耗最大。
工作模式
Class A
Class A:所有LoRaWAN終端設(shè)備必須實(shí)現(xiàn)A類功能。 降低功耗。
雙向傳輸終端(Class A):ClassA 終端設(shè)備允許雙向通信,Class A 的終端在每次上行后都會(huì)緊跟兩個(gè)短暫的下行接收窗口,以此實(shí)現(xiàn)雙向傳輸。
終端基于自身通信需求來(lái)安排傳輸時(shí)隙,在隨機(jī)時(shí)間的基礎(chǔ)上具有較小的變化(即 ALOHA 協(xié)議)。Class A 操作為應(yīng)用提供了最低功耗的終端系統(tǒng),只要求應(yīng)用在終端上行傳輸后的很短時(shí)間內(nèi)進(jìn)行服務(wù)器的下行傳輸,服務(wù)器在其他任何時(shí)間進(jìn)行的下行傳輸都需要等終端的下一次上行。
Class B
Class B:Class B設(shè)備必須同時(shí)支持Class A和Class B模式。
劃定接收時(shí)隙的雙向傳輸終端(Class B):Class B 的終端有更多的接收時(shí)隙。除了 Class A 的隨機(jī)接收窗口,Class B 設(shè)備還會(huì)在指定時(shí)間打開(kāi)其他的接收窗口。為了讓終端可以在指定時(shí)間打開(kāi)接收窗口,終端需要從網(wǎng)關(guān)接收時(shí)間同步的信標(biāo)(Beacon),使服務(wù)器知曉終端何時(shí)處于監(jiān)聽(tīng)狀態(tài)。
Class C
Class C:Class C始終處于“打開(kāi)”狀態(tài); 也就是說(shuō),它們不依賴電池電量。 低延遲,多功耗。
最大化接收時(shí)隙的雙向傳輸終端(Class C):Class C 的終端基本處于一直打開(kāi)接收窗口的狀態(tài),只在發(fā)送時(shí)短暫關(guān)閉。Class C 的終端會(huì)比 Class A 和 Class B 更加耗電,但同時(shí)從服務(wù)器下發(fā)給終端的時(shí)延也是最短的。
LoRaWAN 網(wǎng)絡(luò)結(jié)構(gòu)
LoRaWAN 網(wǎng)關(guān)在LoRaWAN 網(wǎng)絡(luò)結(jié)構(gòu)中主要是做數(shù)據(jù)轉(zhuǎn)換工作,節(jié)點(diǎn)接收到的數(shù)據(jù)轉(zhuǎn)換到網(wǎng)絡(luò)服務(wù)器,或者將網(wǎng)絡(luò)服務(wù)器的數(shù)據(jù)傳輸?shù)焦?jié)點(diǎn)。
LoRaWAN 網(wǎng)絡(luò)架構(gòu)主要包含節(jié)點(diǎn)、網(wǎng)關(guān)、網(wǎng)絡(luò)服務(wù)器、應(yīng)用服務(wù)器以及應(yīng)用APP。
LoRaWAN 節(jié)點(diǎn)激活方法
LoRaWAN 節(jié)點(diǎn)入網(wǎng)或者激活主要又兩種方式,分別是Over-the-Air Activation(OTAA)和Activation By Personalization (ABP)。
Over-the-Air Activation(OTAA)
空中激活 OTAA 是目前推薦的連接方式,安全性更高,通過(guò)網(wǎng)絡(luò)執(zhí)行入網(wǎng)的過(guò)程,動(dòng)態(tài)地生產(chǎn)會(huì)話密鑰及 DevAddr。
? 基于全局唯一標(biāo)識(shí)符
? 空中消息握手
? 設(shè)備制造商自動(dòng)生成基本的配置參數(shù)
? 可以定期更新安全密鑰(會(huì)話密鑰和派生密鑰)
? 設(shè)備可以存儲(chǔ)多個(gè)“身份”,以在其生命周期內(nèi)動(dòng)態(tài)安全地切換網(wǎng)絡(luò)和運(yùn)營(yíng)商
? 提供高級(jí)的防篡改安全選項(xiàng)
Activation By Personalization (ABP)
本地激活 ABP 接入網(wǎng)絡(luò)的方式更為簡(jiǎn)單直接,無(wú)需入網(wǎng)流程,通過(guò)本地預(yù)存的會(huì)話密鑰進(jìn)行加解密,但存在一些安全性的問(wèn)題如重放攻擊,因此不推薦使用。
? 生產(chǎn)時(shí)存儲(chǔ)共享密鑰
? 鎖定到特定網(wǎng)絡(luò)
? 簡(jiǎn)化的(不太安全)的激活過(guò)程
? 在制造時(shí)對(duì)ID和密鑰進(jìn)行了個(gè)性化設(shè)置
? 上電后,設(shè)備立即開(kāi)始工作; 跳過(guò)加入程序
? 設(shè)備綁定到特定的網(wǎng)絡(luò)/服務(wù); NetID是設(shè)備網(wǎng)絡(luò)地址的一部分
OTAA的入網(wǎng)參數(shù)
標(biāo)識(shí)符 | 說(shuō)明 |
---|---|
DevEUI | 64位全局唯一ID(IEEE EUI64地址)唯一標(biāo)識(shí)終端設(shè)備。 |
AppEUI | 64位應(yīng)用ID用于唯一標(biāo)識(shí)應(yīng)用提供者的節(jié)點(diǎn)(IEEE EUI64地址) |
AppKey | 由AES分配的AES-128應(yīng)用密鑰,專用于終端設(shè)備應(yīng)用程序提供者,用于派生特定于該終端設(shè)備的會(huì)話密鑰NwkSKey和AppSKey,以加密和驗(yàn)證網(wǎng)絡(luò)通信和應(yīng)用程序數(shù)據(jù) |
ABP的入網(wǎng)參數(shù)
標(biāo)識(shí)符 | 說(shuō)明 |
---|---|
NwkSKey | 網(wǎng)絡(luò)會(huì)話密鑰,用于特定的終端設(shè)備。 網(wǎng)絡(luò)服務(wù)器和終端設(shè)備將其用于計(jì)算和驗(yàn)證MIC(消息完整性代碼),或加密和解密僅MAC數(shù)據(jù)消息的有效載荷字段 |
AppSKey | 應(yīng)用會(huì)話密鑰,用于特定的終端設(shè)備。被用于應(yīng)用服務(wù)器和終端設(shè)備加解密應(yīng)用數(shù)據(jù)。 |
DevAddr | 標(biāo)識(shí)當(dāng)前網(wǎng)絡(luò)中的終端設(shè)備的32位地址。 |
OTAA: 入網(wǎng)請(qǐng)求
在軟件上配置好節(jié)點(diǎn)參數(shù)后,在網(wǎng)絡(luò)服務(wù)器上注冊(cè)節(jié)點(diǎn)時(shí),需要把對(duì)應(yīng)節(jié)點(diǎn)的OTAA的入網(wǎng)參數(shù)填入到網(wǎng)絡(luò)服務(wù)器中,然后節(jié)點(diǎn)就會(huì)發(fā)送入網(wǎng)請(qǐng)求 ,通過(guò)網(wǎng)關(guān)請(qǐng)求包發(fā)送給網(wǎng)絡(luò)服務(wù)器,入網(wǎng)請(qǐng)求數(shù)據(jù)包內(nèi)就包含了AppEUI和DevEUI等闡述的信息
OTAA: 入網(wǎng)接收
當(dāng)網(wǎng)絡(luò)服務(wù)器接收到網(wǎng)關(guān)轉(zhuǎn)化的入網(wǎng)請(qǐng)求數(shù)據(jù)包之后,網(wǎng)絡(luò)服務(wù)器會(huì)根據(jù)數(shù)據(jù)包的參數(shù)來(lái)判斷是否是已經(jīng)注冊(cè)的節(jié)點(diǎn),如果是則會(huì)接受申請(qǐng),并且會(huì)返回?cái)?shù)據(jù)包給節(jié)點(diǎn),數(shù)據(jù)包會(huì)包含后面用于派生數(shù)據(jù)通訊密鑰的信息。
OTAA: 會(huì)話密鑰
在完成入網(wǎng)通訊后,節(jié)點(diǎn)和服務(wù)器會(huì)根據(jù)入網(wǎng)申請(qǐng)和入網(wǎng)接收的數(shù)據(jù)包交換參數(shù),派生出網(wǎng)絡(luò)會(huì)話密鑰(Networks Session Keys)和應(yīng)用會(huì)話密鑰(Application Session Keys)用于后續(xù)的數(shù)據(jù)傳輸加密。
OTAA:安全傳輸
節(jié)點(diǎn)和網(wǎng)絡(luò)服務(wù)器之間的通信是用安全的網(wǎng)絡(luò)連接使用派生的網(wǎng)絡(luò)會(huì)話密鑰 (Secure network connection using derived Network Session Keys)進(jìn)行加密,而節(jié)點(diǎn)和應(yīng)用服務(wù)器之間的通信是用應(yīng)用程序會(huì)話密鑰 (Application lever end-to end encryptionusing derived Application Session Keys)進(jìn)行加密。
所以網(wǎng)關(guān)網(wǎng)絡(luò)服務(wù)器沒(méi)有辦法讀取到節(jié)點(diǎn)到應(yīng)用服務(wù)器上的數(shù)據(jù),因?yàn)樗麄兪褂玫氖遣煌拿荑€,這也可以保證網(wǎng)關(guān)或者網(wǎng)絡(luò)服務(wù)器受到攻擊時(shí),節(jié)點(diǎn)傳輸給應(yīng)用服務(wù)器的數(shù)據(jù)不會(huì)被破解。
LoRaWAN 安全密鑰派生圖
下圖列出了LoRaWAN 安全密鑰派過(guò)程,可以看到AppKey或者NwkSKey在結(jié)合不同的AES算法之后,可用于不同數(shù)據(jù)包的加密,比如入網(wǎng)申請(qǐng)和接受的數(shù)據(jù)加密和數(shù)據(jù)傳輸?shù)拿荑€是不一樣的。
OTAA: 工作流程
最開(kāi)始是入網(wǎng),然后是節(jié)點(diǎn)的網(wǎng)絡(luò)連接,這個(gè)步驟會(huì)產(chǎn)生加密數(shù)據(jù)的密鑰,接著是數(shù)據(jù)的傳輸,可能是節(jié)點(diǎn)數(shù)據(jù)的更新或者是系統(tǒng)時(shí)間的同步。
LoRaWAN數(shù)據(jù)包格式
LoRaWAN MAC指令
對(duì)于LoRaWAN網(wǎng)絡(luò)管理,可以在網(wǎng)絡(luò)服務(wù)器和終端設(shè)備上的MAC層之間專門交換一組MAC命令。 MAC層命令對(duì)于應(yīng)用程序或應(yīng)用程序服務(wù)器或在終端設(shè)備上運(yùn)行的應(yīng)用程序永遠(yuǎn)是不可見(jiàn)的。
? 單個(gè)數(shù)據(jù)幀可以包含任何MAC命令序列,它們可以commands帶在FOpts字段中,或者作為單獨(dú)的數(shù)據(jù)幀發(fā)送時(shí),可以在FRMPayload字段中將FPort字段設(shè)置為0。
? MAC命令始終以加密方式發(fā)送,并且不得超過(guò)15個(gè)八位位組.
? 作為FRMPayload發(fā)送的MAC命令始終被加密,并且不得超過(guò)最大FRMPayload長(zhǎng)度.
發(fā)送MAC指令的兩種方法:
? 在FOpts字段中附帶的MAC命令
? MAC命令作為單獨(dú)的數(shù)據(jù)幀發(fā)送,在FRMPayload字段
中將FPort字段設(shè)置為0
下面是lorawan的mac指令。主要分為兩類,一類是節(jié)點(diǎn)發(fā)給服務(wù)器的,另一類是網(wǎng)絡(luò)服務(wù)器發(fā)給節(jié)點(diǎn)的,一般而言總端節(jié)點(diǎn)只會(huì)應(yīng)答一次接收到了mac指令,如果網(wǎng)絡(luò)服務(wù)器沒(méi)有接收到回應(yīng),只能再發(fā)一次。
審核編輯:湯梓紅
-
無(wú)線通信
+關(guān)注
關(guān)注
58文章
4564瀏覽量
143496 -
STM32
+關(guān)注
關(guān)注
2270文章
10895瀏覽量
355723 -
LoRa
+關(guān)注
關(guān)注
349文章
1689瀏覽量
231910 -
LPWAN
+關(guān)注
關(guān)注
4文章
199瀏覽量
31828 -
lorawan
+關(guān)注
關(guān)注
3文章
318瀏覽量
23815
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論