2024年3月28日 星期四

藍牙5.4時代的創新:PAwR週期性廣播技術詳解

Periodic Advertising with Responses (PAwR)

藍牙5.4的新特性主要有以下四個方面:


  • 支持帶回應的週期性廣播(PAwR)
    PAwR 是一個新的BLE邏輯傳輸層,是一種支持不需連線的、雙向的、一對多的、一種低功耗拓撲技術。
  • 支援加密的廣播資料(EAD)
    該特性提供了一種標準化的方法來加密廣播包中的資料,加密後的廣播資料只能被擁有相同金鑰的設備解密。 當然廣播包的加密是需要兩個設備建立gatt連接之後,才會生成加密廣播包的金鑰。
  • LE GATT 安全級別特徵
    設備現在可以使用GATT 安全級別特性來表示設備的安全模式和安全等級
  • 廣播編碼選擇
    當發送BLE擴展廣播的時候,現在可以選擇使用哪種Codec編碼方式來發送。

本篇文章主要介紹PAwR特性,這也是藍牙5.4最重要的一個特性。

PAwR的產生背景

藍牙核心規範中定義了幾個組成藍牙架構的概念。這些概念有物理傳輸,物理通道,物理連接,邏輯連接,邏輯傳輸等。 藍牙BLE支援一些不需連線的通訊方式,由一個廣播者和一個或多個觀察者構成。 廣播者發送的廣播資料可以是固定的間隔也可以是不固定的間隔。


掃描介紹

BLE有兩種掃描方式:主動掃描和被動掃描。 被動掃描是接收方只到掃描廣播資料包,不發送任何回復資料包。 而主動掃描,接收方接收到可掃描的廣播包後,會回復一包Scan request PDU,來請求廣播者發送更多的廣播資訊, 廣播者收到後會繼續廣播scan response資料。



廣播介紹

BLE的廣播模式根據支援的特性分為以下幾種:



  • 可連接的 vs 不可連接的

可連接的廣播表示掃描方收到該廣播後,可能會發起連接請求,這也是我們最常見的廣播包。 而不可連接的廣播最常見的就是藍牙beacon包。


  • 可掃描的 vs 不可掃描的

可掃描廣播包表示掃描方設備掃描到該廣播包後可以發送scan request,然後廣播者會回復更多資訊。

  • 定向的 vs 不定向的

定向廣播指的是該廣播包只會被特定設備掃描到,其他的設備會忽略該廣播包。 而不定向的廣播包並不指定任何一個掃描設備,也就是可以被任何設備接收和處理。


  • 不規則的 vs 固定間隔的週期廣播

傳統的ble廣播使用的就是不規則的廣播者式,雖然廣播有固定的廣播間隔參數,但是每次廣播後,都會有一個10ms以內的延時,用來防止多個廣播都在同樣的間隔而引起的衝突。

而固定間隔的週期廣播指的是藍牙5.0之後,引入的一個週期廣播概念,該廣播使用的是固定時序的廣播,並且也不僅僅使用傳統BLE的三個廣播通道,而是使用40個BLE通道來傳輸廣播包。


傳統BLE廣播

傳統BLE廣播資料是在三個廣播通道上進行輪流發送的。BLE廣播有一個廣播間隔的參數advInterval ,但是為了避免和其他相同廣播間隔的廣播裝置衝突,廣播中引入了一個advDelay的參數,該參數是一個0-10ms的隨機值,每次廣播完一次資料後,都會在廣播間隔advInterval的基礎上再延時advDelay, 如下圖:



這樣做確實可以避免的一些廣播的衝突,但是每次廣播後的隨機延時,也導致觀察者無法準確的知道下次廣播的時間,所以觀察者不得不一直掃描,導致功耗較大。 而且雖然傳統BLE廣播包裡面可以包含一些應用資料,但是掃描端發送的scan request資料包,卻不包含任何應用資料資訊,也就是說廣播者和掃描方的應用資料通訊是單向的。


擴展廣播

擴展廣播也分為兩種模式,一種是不規則的,也就是廣播的間隔不固定的。另一種是規則廣播模式。週期廣播Periodic Advertising Broadcast (PADVB) 就是一種規則的擴展廣播模式,使用了固定的廣播時間調度表。不規則的擴展廣播和週期廣播PADVB都使用了3個廣播通道和37和通訊通道進行發送資料。



不規則的擴展廣播

不規則的擴展廣播和傳統廣播在某些方面是相似 的,因為不規則的擴展廣播的某些類型是只在主廣播通道上進行傳輸的。他們的不規則性也主要是由於每次廣播後0 – 10ms的advDelay值導致的。不規則的擴展廣播和傳統廣播差異在於特定的PDU類型的使用。一些PDU類型雖然在主廣播通道上傳輸,但是PDU可能會被AuxPtr 指向次廣播通道。長的資料包可以進行分包傳輸,然後連接起來,或者通過AuxPtr來連結。如下圖所示:


週期廣播 (PADVB)

週期廣播periodic advertising (PADVB) 發送廣播資料是通過一個固定的間隔和確定的時間表傳輸資料包,掃描設備可以發現廣播者的傳輸時間表,然後同步自己的掃描時間, 這個操作可以通過查詢AUX_ADV_IND PDU 中的SyncInfo field 欄位的資訊來完成, 也可以使用一個稱為 Periodic Advertising Sync Transfer (PAST)的操作完成。


PAST 指的是設備通過建立GATT連接,將週期廣播同步參數值傳遞給觀察者。傳遞這些資訊的可能是廣播者自己,也可能是一個協力廠商的設備,協力廠商設備通過掃描廣播者的AUX_ADV_IND PDUs 來獲取廣播同步參數值,然後同步給掃描方。這種方式可以避免掃描方的持續掃描,對於功耗要求比較高的掃描設備來說比較友好。


通過精確的同步廣播者的廣播時間表,掃描方可以使用最節省功耗的方式來掃描廣播。


週期廣播是使用BLE 40個通道進行發送的。首先 ADV_EXT_IND PDU 是再主廣播通道上傳輸的,裡面包含了AuxPtr 欄位,該欄位指向AUX_ADV_IND PDU , AUX_ADV_IND PDU 是再次廣播通道上傳輸的,這個PDU裡面包含了一個SyncInfo field 欄位,通過該欄位的資訊,觀察者可以將它的掃描和週期廣播的AUX_SYNC_IND PDU 進行同步。 需要說明的是,觀察者只需要接收上面SyncInfo field欄位元元元包含的需要同步的 ADV_EXT_IND PDU。 一旦觀察者接收到該資料,後面就可以只再固定的時間段掃描 AUX_SYNC_IND PDU 了。


AUX_SYNC_IND PDU 是通過固定的間隔來發送的,由於觀察者是不能回復PADVB 週期廣播的,所以應用層的該資料通訊方向是單向的,也只支援單向的應用資料傳輸。




傳統BLE廣播和擴展廣播的區別


下圖是BLE傳統廣播和擴展廣播的區別


介紹了這麼多傳統BLE廣播和擴展廣播(不規則廣播和 PADVB),那它們跟本文要介紹的PAwR有什麼區別和聯繫呢?

 
PAwR 功能介紹

PAwR 與 PADVB的比較

相似點:

  • PAwR 和 PADVB都是一種一對多的拓撲結構,一個廣播者發送資料,一個或多個觀察者接收資料。
  • PAwR 和 PADVB都是一種不需連線的通訊方式
  • PAwR 和 PADVB都是通過週期廣播來發送資料,廣播包中間沒有隨機延時,所以廣播時間表是確定的。

  • 察者都可以通過AUX_ADV_IND PDU 或者PAST方式來建議廣播者的週期廣播時間表。

不同點:

  • PADVB 只能從廣播者到觀察者單向傳遞應用資料,而PAwR可以從觀察者傳遞應用資料到廣播者,PAwR是一種雙向交互的無連接通訊機制。

  • PADVB 的同步資訊是包含在AUX_ADV_IND PDU 中的SyncInfo field 中,而PAwR 的同步資訊是包含在AUX_ADV_IND PDU 的SyncInfo field 和 ACAD field兩個欄位中。
  • PADVB 是在廣播event中發送廣播時間表的,而 PAwR是在一系列的event和subevent中來傳輸的。觀察者可以通過這樣的同步方式,只監聽特定的子時間,已節省功耗。
  • PAwR 可以在廣播的過程中發送 AUX_CONNECT_REQ 到特定的設備來建立GATT連接, 而PADVB是沒有這個能力的。
  • PADVB 適用與應用資料是緩慢變化的應用場景, 而PAwR是用在應用資料頻繁變化的場景。在PADVB 中同一個的應用資料是發送給所有的觀察者的。而PAwR 中,不同的資料可以發送給一個觀察者或者多個觀察者。
  • PADVB可以支援PAST 也可以不支援, 但是對於PAwR,則必須支持PAST。
  • .


PAwR 的優勢


雙向無連接:

  • PAwR 支援雙向不需連線的應用交互,這在之前的BLE中是做不到的。

擴展性:

  • 與BLE GATT連接方式相比,PAwR 創建了一個更具擴展性的、一對多的、雙向傳輸的網路拓撲結構。在BLE GATT中,一個中央設備連接的從設備的數量是很有限的,而PAwR可以實現與數千個節點進行雙向通訊。

低功耗:

  • PAwR中一個廣播者和一個觀察者只佔用一個subevent 事件, 所以觀察者可以在廣播者廣播的時候,只需要只掃描很小一段時間。 subevent 子事件同步過程涉及到應用邏輯,所以接收到的資料包通常會包含與觀察者相關的資料。這種低功耗的特性使觀察者可以僅僅使用一節紐扣電池就可以讓設備工作幾年時間。


靈活的拓撲結構和併發接收:


  • PAwR使用了一個靈活的拓撲結構,當一個廣播者廣播資料資料包時,資料包可以被一個觀察者接收處理,也可以被某幾個觀察者處理,也可以被所有的觀察者處理,這是由觀察者應用層需要同步的資料邏輯決定的。



應用:

  • PAwR 非常適合那些由一個中央設備和大規模的其他設備,根據應用場景的不同,通訊的資料可能是控制命令、傳感資料、或者其他的消息。其中一個很重要的應用場景就是電子貨架標籤(ESL) , 還專門有一個ESL 的Profile, 規定了如何是用PAwR來進行資料的傳輸。 PAwR並不適合對即時性要求比較高的場景,PAwR是通過一個一個的時間槽,然後週期性的來發送應用資料包,觀察者的數量是可以配置的,隨著配置的觀察者數量增多,廣播資料需要的時間也會回應增加。因此,在向多個設備發送消息時,有時會出現明顯的時間延時。根據配置的不同,延時時間從幾毫秒到幾十秒的時間不等。


跟PAwR 跟藍牙Mesh相比,藍牙Mesh也是使用特定的命令在網路內來發送和接收資料。不同的是,藍牙Mesh提供的是一個即時回應的系統,發送的消息需要立即得到回應,這就導致設備需要一直不間斷的進行掃描,這對功耗消耗是非常大的。而PAwR 只需要在特定的時間段進行掃描,大大降低了設備的功耗。

PAwR技術實現

理解 PAwR 如何劃分和使用時間是理解這種邏輯傳輸的關鍵。

事件、 子事件、回應槽(Slot)概念介紹

與其他廣播模式一樣,PAwR廣播活動發生在事件中,在 PAwR 模式下,這些事件被稱為PAwR事件。這些事件以固定的時間間隔發生,在調度中沒有隨機延時的擾動,每個週期廣播中產生一個事件。每個 PAwR 事件都包含幾個子事件,並且在子事件期間傳輸廣播資料包。主機配置每個事件的子事件數最多為 128。子事件在每個週期性廣播子事件間隔開始的。

Host使用HCI 命令 HCI_LE_Set_Periodic_Advertising_Parameters 來 配置每個事件的子事件數和定期廣播子事件的間隔 。

如下圖所示:




 

 

在每個子事件中,Broadcaster 傳輸一個資料包,該資料包通常包含一個 AUX_SYNC_SUBEVENT_IND PDU 或者包含一個 AUX_CONNECT_REQ PDU。經過一段固定延時後,會在同一時間段內保留一系列時隙 用於接收來自觀察者設備的響應的子事件。對 AUX_SYNC_SUBEVENT_IND PDU 的回應在 AUX_SYNC_SUBEVENT_RSP PDU 中發送。 Host 通過 HCI 命令 HCI_LE_Set_Periodic_Advertising_Parameters 來配置需要的回復間隙 數量。





通道選擇


頻道選擇是使用頻道選擇演算法#2 完成的,並且發生在每個週期性廣播子事件中。對子事件中傳輸的 PDU 的回應使用相同的通道 這包括回應 AUX_SYNC_SUBEVENT_IND PDU 發送的 AUX_SYNC_SUBEVENT_RSP PDU 和回應AUX_CONNECT_REQ PDU 發送的 AUX_CONNECT_RSP PDU 。


同步


同步過程為觀察者設備提供了有效掃描和接收廣播設備傳輸的相關資料包所需的資訊。就 PAwR 而言,這涉及三個方⾯:觀察者需要知道PAwR廣播事件的發生頻率 以及下一次事件何時發生。這些資訊在定期廣播間隔參數和syncPacketWindowOffset 的計算值中提供 。


觀察者需要知道子事件的一些資訊,包括子事件發生的頻率和每個PAwR可容納多少個子事件,以及與每個子事件內為回應傳輸時隙有關的某些細節。該資訊包含在稱為Subevent_Interval、Num_Subevents、 Response_Slot_Delay、 Response_Slot_Spacing和 Num_Response_Slots 的參數中 。


最後,觀察者需要知道它應該掃描哪個子事件號,它應該使用哪個特定的回應時隙,以及在傳輸的回應數 據包中使用的訪問位址。


在獲得了(1)中描述的事件時序資訊和(2)中的子事件資訊後,Observer 對 PAwR 廣播列車的事件和子事件的時序參數和結構有了完整的描述。但只有當它具有 (3) 中的資訊時才可以進行掃描,以便它只接收那些預期包含相關資料的資料包,並可以傳輸回應資料包。




週期廣播同步資訊掃描


PAwR和PADVB都使用類似的過程通過掃描獲取週期性廣播同步資訊 。


對於 PAwR 和 PADVB,觀察者掃描在次廣播通道上傳輸的 AUX_ADV_IND 資料包。這些 PDU 由在主要信 道上傳輸的 ADV_EXT_IND PDU 中的 AuxPtr 欄位元元中的通道索引、偏移和 PHY 資訊指向。


AUX_ADV_IND 包括 SyncInfo 欄位,該欄位包含週期性廣播間隔值和一些資料項目,從中計算 syncPacketWindowOffset 變量。獲得這兩個值後,觀察者可以計算何時會發生帶有回應事件的週期性廣播。


PAwR 還需要有關子事件和回應時隙的資訊,然後才能完成同步過程。該資訊可在同一AUX_ADV_IND PDU 中找到,從中獲得週期性廣播間隔,但在週期性廣播回應定時資訊的新 AD 類型中。新的 AD 類型在 AUX_ADV_IND PDU 的附加控制器廣播資訊 (ACAD) 欄位中傳輸 。



週期廣播同步傳輸(PAST)


使用 PAST 過程時,有時通過GATT連接傳遞同步參數的設備將首先通過其他設備進行掃描來獲取它。而在 PAwR 的情況下,對PAST 的支援是強制性的,因此 PAwR 廣播者可以通過 LE ACL 連接將所需的同步資料傳遞給觀察者。如果採用這種方法,則兩邊設備都不需要掃描 AUX_ADV_IND PDU 。


上表顯示的相同資料項目在 LL_PERIODIC_SYNC_WR_IND 的新 PDU 類型中通過 BLE GATT連接來傳遞。


子事件同步和回應槽分配


子事件同步涉及向觀察者設備指示它應該執行掃描的子事件。一個或多個觀察者設備可以同步到同一個子事件。一個單獨的觀察者可以同步接收一個或多個子事件。 此外,對於能夠發送回應 PDU 的觀察者,它必須有一些基礎來確定使用哪個子事件回應槽。 當然,這些事情都是由應用層來決定的。


如上圖所示,PAwR 的主要優勢包括應用程式資料通信是雙向的,在拓撲選擇和可用的接收器併發方⾯提供了很大的靈活性,每個廣播者可以與之通信的設備數量可以達到數千個。

 

電子貨架標籤和 PAwR

ESL Profile介紹

電子貨架標籤 (ESL) 設定檔定義了藍牙 LE 在電子貨架標籤的控制和通信方⾯的標準化使用。


ESL Profile 同時使用 PAwR 和GATT來滿足其完整的功能要求。例如圖像通過BLE GATT 連接寫入設備。但是大多數命令和回應都是使用 PAwR PDU 傳輸的 ESL 消息。


ESL 使用由 8 位 ESL ID 和 7 位元組 ID 組成的設備定址方案。 ESL ID 在由組 ID 標識的設備組中是唯一的。因此,ESL 設備網路最多可包含 128 個組,每個組最多包含 255 個屬於該組成員的獨特 ESL 設備。一個網路中總共可能有 32,640 個 ESL 設備。


ESL 設定檔處理子事件同步和回應槽分配如下:


PAwR 廣播器,在ESL 設定檔規範中稱為接入點(AP),通過在LE GATT連接上寫入各種GATT 特性來配置電子貨架標籤設備。寫入的資料包括由 ESL ID 和 Group ID 組成的 ESL 位址的分配。 Group是一個 ESL profile 概念,但它的值也用來表示 ESL 設備應該掃描的子事件的編號。


回應槽分配動態。 ESL 設備接收一個或多個陣列來自 PAwR AUX_SYNC_SUBEVENT_IND PDU 中 AP 的命令。請求資料包中的所有命令都指向相同的 ESL Group_ID。但是每個都使用其 ESL_ID5 定址到組中的特定 ESL。命令在陣列中的索引,從第一個命令的 1 開始計算,決定了要使用的回應槽。


ESL 和 1:1 設備通信


下圖顯示了當 AP 發出針對單個電子貨架標籤的命令時發生的 PDU 傳輸。該圖說明瞭 PAwR 如何充當設定檔定義的 ESL 命令和回應的傳輸。




ESL 命令所針對的貨架標籤是 ESL 組 1 的成員。這意味著它與 PAwR 子事件 #1 同步。因此,AP 制定了 ESL 有效載荷,它可以包括一個或多個命令的陣列,每個命令都定址到同一組內的特定 ESL ID,並在 PAwR 子事件 #1 期間將其作為 PAwR AUX_SYNC_SUBEVENT_IND PDU 的有效載荷傳輸。

發送的資料包同時被組 1 成員的所有貨架標籤接收,因為它們都已同步並在子事件 #1 期間偵聽。此 PDU 中的單個命令是針對 ESL ID #n 的,因此所有接收到該消息的貨架標籤都會丟棄它,但位址為 ESL ID #n 和組 ID #1 的設備除外。該設備根據 ESL 設定檔規範處理命令,然後在回應時隙 #0 期間在 AUX_SYNC_SUBEVENT_RSP PDU 中制定並傳輸回應。使用 #0 回應槽是因為回應的命令是請求中命令陣列的第一個也是唯一一個成員 。



ESL 和 1:m 設備通信

下圖 顯示了當 AP 向多個貨架標籤發出命令時發生的 PDU 傳輸,每個貨架標籤都是 ESL 組 #1 的成員。接下來是發送定址到屬於ESL 組 #2 的單個設備的單個命令。



第一個 ESL 請求包含三個命令。該請求針對屬於 ESL 組 #0 的三個貨架標籤,因此它被格式化並設置為 AUX_SYNC_SUBEVENT_IND PDU 的有效載荷,並在 PAwR 子事件 #0 中傳輸。


所有屬於組 #0 成員的 ESL 貨架標籤同時接收 PDU,因為它們都在 PAwR 子事件 #0 上同步。 ESL 命令陣列包含針對組中 ID #0、#1 和 #n 的貨架標籤的命令。這三個設備處理各自的命令。 ID #0 的設備在回應槽 0 中使用AUX_SYNC_SUBEVENT_RSP PDU 進行回應。ID #1 的設備在回應槽 1 中使用 AUX_SYNC_SUBEVENT_RSP PDU 進行響 應。


最後,具有 ID #n 的設備在回應槽 #2 中使用 AUX_SYNC_SUBEVENT_RSP PDU 進行回應,因為回應的命令是 ESL 命令陣列中的第三個。其他具有不同 ID 的設備將忽略該請求。


在 PAwR 子事件 #1 中,傳輸的 AUX_SYNC_SUBEVENT_IND PDU 包含定址到具有 ESL_ID=n 的單個 ESL的命令。作為 ESL 組#1 成員的所有 ESL 在 PAwR 子事件#1 上同步,因此接收此 PDU。 ESL_ID=n 的 ESL 處理有效載荷中的唯一命令並在 PAwR 回應槽 #0 中回應。


AP 沒有命令發送到其他組中的其他 ESL,因此在剩餘的子事件中,傳輸具有空負載的 AUX_SYNC_SUBEVENT_IND PDU 。


總結


通過藍牙5.4的 PAwR功能,可以實現設備之間的無連接雙向通訊, PAwR功能應用在電子貨架標籤領域,不僅可以實現電子貨架標籤和藍牙閘道的雙向通訊,並且可以極大降低標籤的功耗。


但是僅僅有PAwR功能還是不夠的,如何保證電子貨架標籤和藍牙閘道的通訊鏈路安全性? 如何動態的調節雙方的RF射頻 Codec方式,這就需要用到藍牙5.4的其他幾個特性。




Edited by Sales Manager: Mr. Neo Hsu

Raytac Corporation 勁達國際電子股份有限公司  A company of Abietec
Bluetooth & WiFi module maker based on Nordic nRF54, nRF53, nRF52, nRF7002 solution
BT5.4 &BT5.3 & BT5.2 & BT5.1 Qualified, FCC/IC/CE/Telec/KC/RCM/SRRC/NCC Pre-Certified. Bluetooth Solution: nRF54, nRF5340, nRF52840, nRF52833, nRF52832, nRF52820, nRF52811, nRF52810, nRF52805, nRF51822 WiFi Solution: nRF7002
www.raytac.com
email:service@raytac.com
Tel: +886.2.3234.020