1 ChirpLAN 協定介紹¶
ChirpLAN是磐啟微近期開發的一個應用于工業物聯網的組網協定,該協定與LoraWAN有點類似,詳細協定介紹如下。
2 ChirpLAN 是什麼¶
ChirpLAN目前是一種基于ChirpIoT™通訊技術,采用按需可靠的資料收發機制,适用于遠距離低功耗的小型區域網路(LAN)的網絡通信協定。 ChirpLAN即ChirpIoT和LAN的縮寫,也代表了它的特性。
主要特點:
- 開源:協定遵循Apache 2.0協定,協定代碼和規範都完全公開,可以商用
- 輕量級:code<15KB,SRAM<4KB
- 組網靈活:支援組網,也支援點對點
- 多種功耗配置:對于功耗和實時性要求不同的場景都有支援
- 可靠性強:協定簡單,可靠,擴充性強
- 完全自主開發:有獨立的知識産權
- 安全:協定支援加解密功能
- 易部署:可以靈活的移植适配到不用的平台,MCU,以及和雲服務端對接
3 ChirpLAN網絡拓撲結構¶
目前ChirpLAN主要支援兩種類型的組網,一種是網絡模式,另一種是直連模式,網絡模式本版本主要支援星形網絡,網絡拓撲圖見下圖,ChirpLAN網絡中有2中角色:終端和網關,和雲端伺服器通信部分由具體的應用業務實作,不屬于本協定部分的涵蓋範圍。
網絡模式的拓撲結構圖¶
直連模式,此模式又分為兩種情況,一種是一對一模式通信,另一種是一對多通信的模式,兩種模式拓撲圖見下圖:
P2P直連模式拓撲結構圖¶
P2P 一對都多模式拓撲結構圖¶
4 ChirpLAN 協定架構¶
ChirpLAN協定應用的網絡架構見下圖,從底層到上層分别是實體層,鍊路層,網絡層和應用層。其中本協定隻對鍊路層和網絡層做了規範。說明如下:
實體層:是基于磐啟微的ChirpIOT通信技術的射頻晶片。
鍊路層:負責實作收發邏輯,提供重傳、碰撞檢測,入網等功能。鍊路層為上層網絡層提供接口,使用這些接口,網絡層可以完成對射頻的相關操作,而不用關注這些操作是如何實作的。
網絡層:負責網絡協定的控制,資料封包和解包,網絡位址解析,各種模式管理等工作。
應用層:主要是一些具體的業務邏輯,如MCU外設,AT指令控制等。
ChirpLAN協定應用網絡架構圖¶
4.1 鍊路層介紹¶
鍊路層負責實作收發邏輯,提供重傳、碰撞檢測,入網等功能。鍊路層為上層網絡層提供接口,使用這些接口,網絡層可以完成對射頻的相關操作,而不用關注這些操作是如何實作的。
- 收發邏輯:射頻的相關參數配置,收發資料的控制
- 重傳控制:根據配置參數,來控制射頻發射的重傳控制
- 碰撞檢測:多個節點同時發送會有沖突,需要做沖突檢測和退避處理
- 入網功能:加入網絡的機制,可以從網關端擷取配置設定的信道和相關模式以及參數等資訊
- 安全機制:支援資料的加解密AES128,key:128 bit
4.1.1 碰撞檢測¶
碰撞檢測機制¶
參考上圖,下面說明碰撞檢測機制:
- EP每次TX完會設定一個沖突視窗,這個窗内目前EP不允許發送資料
- EP每次發資料前都會檢測目前信道是否有資料,如果有資料,會推遲到沖突視窗内的一個時間(要保證在沖突視窗内的一個随機值),隻有在空閑模式才可以發送資料
- 在沖突視窗内, EP-B首先檢測到信道空閑,獲得了資料包的發送機會,EP-A和EP-C繼續退避
- EP-C在第一次退避後,在第二個沖突視窗内,首先檢測到信道空閑,發送目前的資料,EP-A繼續退避
- EP-A檢測到信道空閑,發送目前資料包
- 退避失敗的次數越多,後續會在沖突視窗獲得更靠前的權重
4.1.2 入網功能¶
入網是節點加入網絡的第一個步驟,在網絡模式中,隻有終端節點通過網關的網絡授權後,加入到網關對應的網絡,才能進一步進行資料的互動。具體的通信的流程如下:
正常入網流程¶
正常入網說明:
- 首先終端在入網信道,向網關發一個入網請求包(包括自己的一些必要資訊,參考後面的入網請求幀)
- 網關收到入網包,如果校驗通過,會發送入網确認包,同時會給終端配置設定相關的RF參數,包括通信信道
- 終端在資料信道發送資料給網關
- 如果需要回複确認包,網關收到資料包後,回複相應的确認包
說明,目前入網中采用的是AES128加密機制,128 bit密鑰
異常入網流程¶
異常入網流程說明:
- 終端發送的入網包,網關沒有收到
- 終端繼續發送一個入網包,但是入網包是一個非法的,此時網關可以收到,但不回複确認包
- 終端發送一個合封的入網包,網關也收到了此入網包
- 網關回複的确認包,終端沒有收到
- 終端會繼續重新發送入網包,直到收到網關的資料确認包為止
4.2 網絡層介紹¶
負責網絡協定的控制,資料封包和解包,網絡位址解析,各種模式管理等工作。下面先介紹下網絡層支援的幾種模式。
網絡模式介紹¶
ChirpLAN主要分為2個大的模式,網絡模式(network mode)和直連模式(direct mode),Network Mode包括如下幾種子模式:
- Mode A:主動上報模式
- 特點:
- 使用者按需來發送資料,比如AT指令或者定時發送資料,不發送資料時RF處于休眠狀态
- Mode B:空中喚醒模式
- 特點:
- 支援Mode A的全部功能
- 終端周期打開RX,網關會通過長前導碼可以喚醒,進行相應的通訊
- Mode C:全速運作模式
- 特點:
- 支援主動上報的功能
- 半雙工模式,終端在非TX的模式時,RF處于RX的模式,用來快速響應網關的資料
直連模式(Direct Mode),主要分為點對點直連模式和一對多通信模式,特點如下:
- 支援終端之間的點對點通訊
- 支援一對一和一對多
- 位址參數可以配置
4.2.1 網絡模式–Mode A¶
Mode A:主動上報模式,支援雙向通信,終端具有較低的功耗,但是雙向通信必須由終端發起,終端發送消息後,會打開一個短暫的接收視窗,網關需要在這個接收視窗内回複消息或者下發指令,通信時序見下圖:
Mode A模式通信時序¶
Mode A模式單節點通信流程見下圖:
Mode A模式單節點通信流程¶
通信流程說明如下:
- 終端發送資料包D1給網關(需要回複)
- 網關回複确認包給終端
- 終端發送資料包D2給網關(需要回複)
- 網關回複确認包,但終端沒有收到
- 終端會重傳資料包D2給到網關(此時網關不需要将該資料包上報給應用層)
- 網關收到後會繼續回複确認包
Mode A模式多節點通信流程見下圖:
Mode A模式多節點通信流程¶
通信流程說明如下:
- 兩個終端節點EP1和EP2在不同的上行信道,網關支援多個上行信道接收,綠色柱代表終端RX打開的狀态
- EP1和EP2分别同時發送資料包D1和P1給網關
- 網關下行隻有一個信道,是以需要串行回複确認包,此時兩個終端的RX開窗時間都滿足,是以ack都可以正常接收到
- EP1和EP2分别同時發送資料包D2和P2給網關
- 網關先回複ACK給EP1,EP1正常收到,然後回複EP2時,由于EP2的RX的視窗提前關閉,導緻ACK丢失,觸發EP2的重發機制
說明:為了降低上述5中的情況,最終協定實作時可以考慮在RX開窗的基本時間上,加一個随機的擴窗時間(跟進應用場景自行配置),會提高并發通信收ack的機率
4.2.2 網絡模式–Mode B¶
Mode B:空中喚醒模式,支援的功能說明如下:
1、支援單向通信,終端具有極低的功耗,網關在終端入網時規定終端的休眠周期,終端會定期自喚醒和接收,如果未發現Chirp信号,則會繼續休眠;如果發現Chirp信号,則會接收一包完整的資料,通信時序見下圖:
2、支援主動發包機制,與Mode A一緻
3、支援時間幀同步(終端在收到網關的payload時刻同步目前的周期起始點)
Mode B模式通信時序¶
Mode B模式的通信流程見下圖:
Mode B模式通信流程¶
Mode B模式通信流程說明如下:
- T1:EP1被喚醒,但ID不比對,後繼續休眠
- T3:同周期内EP2也被喚醒,EP2的ID比對ok,繼續接收資料
- T2:EP1被喚醒,同時ID比對正确,繼續接收資料
- T4:EP2在較晚的時刻被喚醒,ID未被正确比對到,繼續休眠
特性說明:
- 同樣是喚醒ID不比對,由于喚醒的時刻不一樣,會導緻RX開的視窗大小不一樣,對比T1和T4:T1>T4,是以功耗消耗也不一樣
- 同樣是ID比對正确,也會有T2和T3有差異的情況
4.2.3 網絡模式–Mode C¶
Mode C:全速運作模式,支援雙向通信,且終端和網關可以随時互相通信,該模式的資料實時性好,但是終端需要消耗更多的電量。通信時序見下圖:
Mode C模式通信時序¶
Mode C模式通信流程見下圖:
Mode C模式通信時序¶
Mode C模式通信流程說明如下:
- EP1和EP2工作在相同的信道
- EP1發送資料D1給網關,該資料包需要回複
- 網關由于應用層先前觸發發送一個資料G1的需求,是以優先發送G1給EP2
- 網關發送ack給EP1
- 網關需要同時給兩個終端EP1和EP2發送一個不需要回複的資料包G2
- 終端發送一個需要回複的資料包給P1
- 網關收到P1後回複确認包給EP2
上述流程都可以實時的相應各種通信。
4.2.4 直連模式(透明傳輸和定點傳輸)¶
Mode P2P:點對點模式,該模式支援定點模式通信(2個終端節點互相通信),也支援廣播通信(一對多的通信)。該功能分為透明和定點傳輸模式:
透明傳輸模式:該模式支援2種子模式
- Normal Mode :支援全速運作模式,子產品處于active狀态,此狀态下,将應用層的資料直接通過RF發送出去,接收到資料也完全傳回給應用層,RF處于非TX模式即為RX模式
- LP Mode:支援空中喚醒,定期喚醒檢測空中RF喚醒前導碼,然後會和發射端做資料同步,此模式接收端功耗會比較低,發射端也不需要特别長的前導碼
定點傳輸模式:與點對點子模式類似,也分Normal mode和LP Mode,差別是網絡層要做位址解析處理。網絡位址支援兩種:唯一位址群組播位址。
- Normal Mode :支援全速運作模式,子產品處于active狀态,此狀态下,将應用層的資料直接通過RF發送出去,接收到資料也完全傳回給應用層,RF處于非TX模式即為RX模式
- LP Mode:支援空中喚醒,定期喚醒檢測空中RF喚醒前導碼,然後會和發射端做資料同步,此模式接收端功耗會比較低,發射端也不需要特别長的前導碼
通信流程見下圖:
直連模式通信流程¶
直連是通信流程說明如下(包含兩種模式的通信流程):
- EP1,EP2,和EP3處于同一個信道
- EP1發一個透明傳輸的包到EP2,EP2收到後回複一個ack
- EP2發送一個P1的包(不需要ack),EP1和EP3都可以收到
- EP2發送一個P2的定點的資料包(給EP1),EP1收到包後回複一個ack,EP3收到後,發現位址不一緻,則不回複ack
5 空中包結構¶
所有的幀結構遵循:位元組序:MSB,比特序:MSB
5.1 入網請求幀¶
入網請求幀格式¶
幀格式說明如下:
幀類型(其它幀格式定義都相同,不在贅述):
Bit7:加密辨別,1為加密,0為不加密
Bit6-Bit0:
- 入網請求:0x01
- 入網回複:0x02
- 不需要确認上行資料包Unconfirmed Uplink Data:0x03
- 需要确認上行資料包Confirmed Uplink Data:0x04
- 不需要确認下行資料包Unconfirmed Downlink Data:0x05
- 需要确認下行資料包Confirmed Downlink Data:0x06
- 需要确認下行配置Confirmed Downlink Config:0x07
- 同步請求資料包:0x08
- 同步資料包:0x09
- 點對點定點模式資料包:0x10
- 點對點透傳模式資料包:0x11
幀序号:幀的編号,每一幀都單獨遞增,重複包ID相同,Ack 包的序号和請求包對應
節點ID:節點的編号,由應用來配置設定,一個網絡裡應該唯一
應用ID:網絡号,用于區分不同的子網絡,網關隻接受與自己應用ID相同的節點的入網請求
通信模式:取值範圍:1~3
- 1:主動上報模式,
- 2:空中喚醒模式,
- 3:全速運作模式,
校驗:資料校驗和
5.2 入網回複幀¶
入網回複幀格式¶
幀格式說明:
幀類型:參見入網包幀類型定義
幀序号:幀的編号
應用ID:網絡号,用于區分不同的子網絡,網關隻接受與自己應用ID相同的節點的入網請求
目标節點ID:目标節點的編号ID
網絡ID:節點入網後,由網關或伺服器配置設定的網絡位址ID,組網後的通信位址均使用網絡ID
上行參數:9位元組(依次為3個上行信道,3個下行信道,BW,SF,CR),預設值用0代替,0表示不使用此信道或不修改此參數。BW取值6-9,SF取值7-12,CR取值1-4
喚醒間隔:空中喚醒模式下,節點的周期性上報時間間隔,機關:秒
通信模式:(主機有權限修改模式)
- 1:主動上報模式
- 2:空中喚醒模式
- 3:全速運作模式
5.3 資料幀¶
資料幀格式¶
幀格式說明:
幀類型:參見入網包幀類型定義
幀序号:幀的編号
應用ID:網絡号,用于區分不同的子網絡,網關隻接受與自己應用ID相同的節點的入網請求
資料内容:當本幀為資料幀時,本字段為資料内容。當本幀為ACK應答幀時,本字段為空。
網絡ID:解析說明:與IP位址解析類似
- 唯一位址:低bit開始不能連續為1,如0x11223344
- 多點傳播位址:低bit 連續的1為多點傳播位址,不能設定為具體的網絡位址,如0x1122334F,多點傳播位址的範圍包括位址為0x11223340-0x1122334E
資料内容長度:payload的資料包長度,不包括校驗位
5.4 配置幀¶
配置幀格式¶
說明:配置幀目前保留,後續版本會使用。
5.5 定點通信資料幀¶
配置幀格式¶
幀格式說明:
幀類型:參見入網包幀類型定義
目标位址:解析說明,與IP位址解析類似
- 唯一位址:低bit開始不能連續為1,如0x1122
- 多點傳播位址:低bit 連續的1為多點傳播位址,不能設定為具體的網絡位址,如0x112F,多點傳播位址的範圍包括位址為0x1120-0x112E
資料内容長度:payload的資料包長度
資料内容:當本幀為資料幀時,本字段為資料内容。當本幀為ACK應答幀時,本字段為空。
5.6 透明傳輸幀資料幀¶
透明傳輸幀資料幀格式¶
幀格式說明:
幀類型:參見入網包幀類型定義
資料内容長度:payload的資料包長度
資料内容:當本幀為資料幀時,本字段為資料内容。當本幀為ACK應答幀時,本字段為空
5.7 同步幀¶
同步幀分為請求同步幀和時間同步幀,見下圖:
請求同步幀格式¶
時間同步幀格式¶
幀格式說明如下(僅說明如下2個字段,其它字段都類似):
- 工作周期:網關或者對端發射的周期,機關1ms
- 剩餘時間:目前同步幀距離下次發射的剩餘時間,機關1ms