天天看點

一種低功耗物聯網協定——ChirpLAN介紹

1 ChirpLAN 協定介紹¶

一種低功耗物聯網協定——ChirpLAN介紹

ChirpLAN是磐啟微近期開發的一個應用于工業物聯網的組網協定,該協定與LoraWAN有點類似,詳細協定介紹如下。

2 ChirpLAN 是什麼¶

ChirpLAN目前是一種基于ChirpIoT™通訊技術,采用按需可靠的資料收發機制,适用于遠距離低功耗的小型區域網路(LAN)的網絡通信協定。 ChirpLAN即ChirpIoT和LAN的縮寫,也代表了它的特性。

主要特點:

  1. 開源:協定遵循Apache 2.0協定,協定代碼和規範都完全公開,可以商用
  2. 輕量級:code<15KB,SRAM<4KB
  3. 組網靈活:支援組網,也支援點對點
  4. 多種功耗配置:對于功耗和實時性要求不同的場景都有支援
  5. 可靠性強:協定簡單,可靠,擴充性強
  6. 完全自主開發:有獨立的知識産權
  7. 安全:協定支援加解密功能
  8. 易部署:可以靈活的移植适配到不用的平台,MCU,以及和雲服務端對接

3 ChirpLAN網絡拓撲結構¶

目前ChirpLAN主要支援兩種類型的組網,一種是網絡模式,另一種是直連模式,網絡模式本版本主要支援星形網絡,網絡拓撲圖見下圖,ChirpLAN網絡中有2中角色:終端和網關,和雲端伺服器通信部分由具體的應用業務實作,不屬于本協定部分的涵蓋範圍。

一種低功耗物聯網協定——ChirpLAN介紹

網絡模式的拓撲結構圖¶

直連模式,此模式又分為兩種情況,一種是一對一模式通信,另一種是一對多通信的模式,兩種模式拓撲圖見下圖:

一種低功耗物聯網協定——ChirpLAN介紹

P2P直連模式拓撲結構圖¶

一種低功耗物聯網協定——ChirpLAN介紹

P2P 一對都多模式拓撲結構圖¶

4 ChirpLAN 協定架構¶

ChirpLAN協定應用的網絡架構見下圖,從底層到上層分别是實體層,鍊路層,網絡層和應用層。其中本協定隻對鍊路層和網絡層做了規範。說明如下:

實體層:是基于磐啟微的ChirpIOT通信技術的射頻晶片。

鍊路層:負責實作收發邏輯,提供重傳、碰撞檢測,入網等功能。鍊路層為上層網絡層提供接口,使用這些接口,網絡層可以完成對射頻的相關操作,而不用關注這些操作是如何實作的。

網絡層:負責網絡協定的控制,資料封包和解包,網絡位址解析,各種模式管理等工作。

應用層:主要是一些具體的業務邏輯,如MCU外設,AT指令控制等。

一種低功耗物聯網協定——ChirpLAN介紹

ChirpLAN協定應用網絡架構圖¶

4.1 鍊路層介紹¶

鍊路層負責實作收發邏輯,提供重傳、碰撞檢測,入網等功能。鍊路層為上層網絡層提供接口,使用這些接口,網絡層可以完成對射頻的相關操作,而不用關注這些操作是如何實作的。

  • 收發邏輯:射頻的相關參數配置,收發資料的控制
  • 重傳控制:根據配置參數,來控制射頻發射的重傳控制
  • 碰撞檢測:多個節點同時發送會有沖突,需要做沖突檢測和退避處理
  • 入網功能:加入網絡的機制,可以從網關端擷取配置設定的信道和相關模式以及參數等資訊
  • 安全機制:支援資料的加解密AES128,key:128 bit

4.1.1 碰撞檢測¶

一種低功耗物聯網協定——ChirpLAN介紹

碰撞檢測機制¶

參考上圖,下面說明碰撞檢測機制:

  1. EP每次TX完會設定一個沖突視窗,這個窗内目前EP不允許發送資料
  2. EP每次發資料前都會檢測目前信道是否有資料,如果有資料,會推遲到沖突視窗内的一個時間(要保證在沖突視窗内的一個随機值),隻有在空閑模式才可以發送資料
  3. 在沖突視窗内, EP-B首先檢測到信道空閑,獲得了資料包的發送機會,EP-A和EP-C繼續退避
  4. EP-C在第一次退避後,在第二個沖突視窗内,首先檢測到信道空閑,發送目前的資料,EP-A繼續退避
  5. EP-A檢測到信道空閑,發送目前資料包
  6. 退避失敗的次數越多,後續會在沖突視窗獲得更靠前的權重

4.1.2 入網功能¶

入網是節點加入網絡的第一個步驟,在網絡模式中,隻有終端節點通過網關的網絡授權後,加入到網關對應的網絡,才能進一步進行資料的互動。具體的通信的流程如下:

一種低功耗物聯網協定——ChirpLAN介紹

正常入網流程¶

正常入網說明:

  • 首先終端在入網信道,向網關發一個入網請求包(包括自己的一些必要資訊,參考後面的入網請求幀)
  • 網關收到入網包,如果校驗通過,會發送入網确認包,同時會給終端配置設定相關的RF參數,包括通信信道
  • 終端在資料信道發送資料給網關
  • 如果需要回複确認包,網關收到資料包後,回複相應的确認包

說明,目前入網中采用的是AES128加密機制,128 bit密鑰

一種低功耗物聯網協定——ChirpLAN介紹

異常入網流程¶

異常入網流程說明:

  1. 終端發送的入網包,網關沒有收到
  2. 終端繼續發送一個入網包,但是入網包是一個非法的,此時網關可以收到,但不回複确認包
  3. 終端發送一個合封的入網包,網關也收到了此入網包
  4. 網關回複的确認包,終端沒有收到
  5. 終端會繼續重新發送入網包,直到收到網關的資料确認包為止

4.2 網絡層介紹¶

負責網絡協定的控制,資料封包和解包,網絡位址解析,各種模式管理等工作。下面先介紹下網絡層支援的幾種模式。

一種低功耗物聯網協定——ChirpLAN介紹

網絡模式介紹¶

ChirpLAN主要分為2個大的模式,網絡模式(network mode)和直連模式(direct mode),Network Mode包括如下幾種子模式:

  1. Mode A:主動上報模式
  2. 特點:
  3. 使用者按需來發送資料,比如AT指令或者定時發送資料,不發送資料時RF處于休眠狀态
  4. Mode B:空中喚醒模式
  5. 特點:
  6. 支援Mode A的全部功能
  7. 終端周期打開RX,網關會通過長前導碼可以喚醒,進行相應的通訊
  8. Mode C:全速運作模式
  9. 特點:
  10. 支援主動上報的功能
  11. 半雙工模式,終端在非TX的模式時,RF處于RX的模式,用來快速響應網關的資料

直連模式(Direct Mode),主要分為點對點直連模式和一對多通信模式,特點如下:

  • 支援終端之間的點對點通訊
  • 支援一對一和一對多
  • 位址參數可以配置

4.2.1 網絡模式–Mode A¶

Mode A:主動上報模式,支援雙向通信,終端具有較低的功耗,但是雙向通信必須由終端發起,終端發送消息後,會打開一個短暫的接收視窗,網關需要在這個接收視窗内回複消息或者下發指令,通信時序見下圖:

一種低功耗物聯網協定——ChirpLAN介紹

Mode A模式通信時序¶

Mode A模式單節點通信流程見下圖:

一種低功耗物聯網協定——ChirpLAN介紹

Mode A模式單節點通信流程¶

通信流程說明如下:

  1. 終端發送資料包D1給網關(需要回複)
  2. 網關回複确認包給終端
  3. 終端發送資料包D2給網關(需要回複)
  4. 網關回複确認包,但終端沒有收到
  5. 終端會重傳資料包D2給到網關(此時網關不需要将該資料包上報給應用層)
  6. 網關收到後會繼續回複确認包

Mode A模式多節點通信流程見下圖:

一種低功耗物聯網協定——ChirpLAN介紹

Mode A模式多節點通信流程¶

通信流程說明如下:

  1. 兩個終端節點EP1和EP2在不同的上行信道,網關支援多個上行信道接收,綠色柱代表終端RX打開的狀态
  2. EP1和EP2分别同時發送資料包D1和P1給網關
  3. 網關下行隻有一個信道,是以需要串行回複确認包,此時兩個終端的RX開窗時間都滿足,是以ack都可以正常接收到
  4. EP1和EP2分别同時發送資料包D2和P2給網關
  5. 網關先回複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時刻同步目前的周期起始點)

一種低功耗物聯網協定——ChirpLAN介紹

Mode B模式通信時序¶

Mode B模式的通信流程見下圖:

一種低功耗物聯網協定——ChirpLAN介紹

Mode B模式通信流程¶

Mode B模式通信流程說明如下:

  1. T1:EP1被喚醒,但ID不比對,後繼續休眠
  2. T3:同周期内EP2也被喚醒,EP2的ID比對ok,繼續接收資料
  3. T2:EP1被喚醒,同時ID比對正确,繼續接收資料
  4. T4:EP2在較晚的時刻被喚醒,ID未被正确比對到,繼續休眠

特性說明:

  • 同樣是喚醒ID不比對,由于喚醒的時刻不一樣,會導緻RX開的視窗大小不一樣,對比T1和T4:T1>T4,是以功耗消耗也不一樣
  • 同樣是ID比對正确,也會有T2和T3有差異的情況

4.2.3 網絡模式–Mode C¶

Mode C:全速運作模式,支援雙向通信,且終端和網關可以随時互相通信,該模式的資料實時性好,但是終端需要消耗更多的電量。通信時序見下圖:

一種低功耗物聯網協定——ChirpLAN介紹

Mode C模式通信時序¶

Mode C模式通信流程見下圖:

一種低功耗物聯網協定——ChirpLAN介紹

Mode C模式通信時序¶

Mode C模式通信流程說明如下:

  1. EP1和EP2工作在相同的信道
  2. EP1發送資料D1給網關,該資料包需要回複
  3. 網關由于應用層先前觸發發送一個資料G1的需求,是以優先發送G1給EP2
  4. 網關發送ack給EP1
  5. 網關需要同時給兩個終端EP1和EP2發送一個不需要回複的資料包G2
  6. 終端發送一個需要回複的資料包給P1
  7. 網關收到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喚醒前導碼,然後會和發射端做資料同步,此模式接收端功耗會比較低,發射端也不需要特别長的前導碼

通信流程見下圖:

一種低功耗物聯網協定——ChirpLAN介紹

直連模式通信流程¶

直連是通信流程說明如下(包含兩種模式的通信流程):

  1. EP1,EP2,和EP3處于同一個信道
  2. EP1發一個透明傳輸的包到EP2,EP2收到後回複一個ack
  3. EP2發送一個P1的包(不需要ack),EP1和EP3都可以收到
  4. EP2發送一個P2的定點的資料包(給EP1),EP1收到包後回複一個ack,EP3收到後,發現位址不一緻,則不回複ack

5 空中包結構¶

所有的幀結構遵循:位元組序:MSB,比特序:MSB

5.1 入網請求幀¶

一種低功耗物聯網協定——ChirpLAN介紹

入網請求幀格式¶

幀格式說明如下:

幀類型(其它幀格式定義都相同,不在贅述):

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 入網回複幀¶

一種低功耗物聯網協定——ChirpLAN介紹

入網回複幀格式¶

幀格式說明:

幀類型:參見入網包幀類型定義

幀序号:幀的編号

應用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 資料幀¶

一種低功耗物聯網協定——ChirpLAN介紹

資料幀格式¶

幀格式說明:

幀類型:參見入網包幀類型定義

幀序号:幀的編号

應用ID:網絡号,用于區分不同的子網絡,網關隻接受與自己應用ID相同的節點的入網請求

資料内容:當本幀為資料幀時,本字段為資料内容。當本幀為ACK應答幀時,本字段為空。

網絡ID:解析說明:與IP位址解析類似

  • 唯一位址:低bit開始不能連續為1,如0x11223344
  • 多點傳播位址:低bit 連續的1為多點傳播位址,不能設定為具體的網絡位址,如0x1122334F,多點傳播位址的範圍包括位址為0x11223340-0x1122334E

資料内容長度:payload的資料包長度,不包括校驗位

5.4 配置幀¶

一種低功耗物聯網協定——ChirpLAN介紹

配置幀格式¶

說明:配置幀目前保留,後續版本會使用。

5.5 定點通信資料幀¶

一種低功耗物聯網協定——ChirpLAN介紹

配置幀格式¶

幀格式說明:

幀類型:參見入網包幀類型定義

目标位址:解析說明,與IP位址解析類似

  • 唯一位址:低bit開始不能連續為1,如0x1122
  • 多點傳播位址:低bit 連續的1為多點傳播位址,不能設定為具體的網絡位址,如0x112F,多點傳播位址的範圍包括位址為0x1120-0x112E

資料内容長度:payload的資料包長度

資料内容:當本幀為資料幀時,本字段為資料内容。當本幀為ACK應答幀時,本字段為空。

5.6 透明傳輸幀資料幀¶

一種低功耗物聯網協定——ChirpLAN介紹

透明傳輸幀資料幀格式¶

幀格式說明:

幀類型:參見入網包幀類型定義

資料内容長度:payload的資料包長度

資料内容:當本幀為資料幀時,本字段為資料内容。當本幀為ACK應答幀時,本字段為空

5.7 同步幀¶

同步幀分為請求同步幀和時間同步幀,見下圖:

一種低功耗物聯網協定——ChirpLAN介紹

請求同步幀格式¶

一種低功耗物聯網協定——ChirpLAN介紹

時間同步幀格式¶

幀格式說明如下(僅說明如下2個字段,其它字段都類似):

  • 工作周期:網關或者對端發射的周期,機關1ms
  • 剩餘時間:目前同步幀距離下次發射的剩餘時間,機關1ms

繼續閱讀