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

STM32開發入門進階必備!《STM32嵌入式系統開發—基于STM32CubeMX和HAL庫》新書發布!

STM32開發板教程之STM32開發指南免費下載
從STM32WL55JC到STM32WLE5CC的LoRaWAN_FUOTA移植

ST NPI 新上架開發板 【NUCLEO-WL33CC1】
意法半導體推出STM32WL33系列無線微控制器
STM32WB55RG開發(1)----開發板測試

意法半導體STM32WL33系列無線MCU正式上市
X-CUBE-CLASSB以及生態系統為何如此重要
WL18xx Bluetopia PM藍牙射頻測試應用說明

使用STM32WL系列Sub-GHz無線驅動程序的應用示例

評論