藍牙-廣播

1. 使用場景

在 BLE 協議中,廣播通信主要有兩類使用場景:

  • 單一方向的、無連接的數據通信,數據發送者在廣播信道上廣播數據,數據接收者掃描、接收數據;
  • 面向連接的建立。

2. 協議層次

在 BLE 協議中,廣播通信相關的協議層次主要包括:

  • GAP——HCI——LL

GAP 負責從應用程序的角度,抽象並封裝 LL 提供的功能,以便讓應用以比較傻瓜的方式進行廣播通信。
當然,這不是必須的,也就是說,我們可以在沒有 GAP 參與的情況下,進行廣播通信。

HCI 負責將 LL 提供的所有功能,以 Command/Event 的形式抽象出來,供 Host 使用。

LL(Link Layer) 位於最底層,負責廣播通信有關功能的定義和實現,包括物理通道的選擇、相關的鏈路
狀態的定義、 PDU 的定義、設備過濾(Device Filtering)機制的實現等。

3. 廣播類型

在這裏插入圖片描述

  1. ADV_IND
    掃描者和發起者都可以識別該廣播,掃描者可以發出掃描請求包,廣播者會回覆掃描響應包;發起者可以
    發出連接請求包,廣播者會進入連接狀態。

  2. ADV_DIRECT_IND
    只有指定的發起者發送的連接請求包會使廣播者進入連接狀態,否則會被忽略。
    ADV_DIRECT_IND_HIGH_DUTY_CYCLE 廣播適用於快速重連,同一通道上兩個連續的廣播事件之間不
    大於 3.75ms,該狀態持續不得超過 1.28s
    ADV_DIRECT_IND_LOW_DUTY_CYCLE 適用於對時間不敏感或主機距離不確定的重連。

  3. ADV_SCAN_IND
    只有掃描者發送的掃描請求包會使廣播者發送一個掃描迴應包。

  4. ADV_NONCONN_IND
    只有廣播,沒有任何響應。

4. 廣播參數

  1. advInternal
    單位: 0.625ms
    最小值: 20ms, Advertising_Type=0x02 或 0x03 時,最小值爲 100ms
    最大值: 10.24s
  2. advDelay
    [0,10]ms
    廣播事件期間,鏈路層會產生一個 0ms 到 10ms 之間的僞隨機時間量(廣播延時),這個延時被添加到兩
    個廣播事件之間,目的是爲了防止多個設備間的干擾。
    只有定向廣播無 advDelay。

5. 廣播數據格式

在這裏插入圖片描述
LEN – length of EIR(Entended Inquiry Result ) packet(Type+Data) in bytes. 擴展查詢結果
TYPE – the data type as in
https://www.bluetooth.org/en-us/specification/assigned-numbers/generic-access-profile

6. 廣播數據長度

The data length of the advertising data and the scan response data for Extended Advertising is limited to
1650 bytes. The connectable undirected advertising data is limited to 212 bytes. The connectable directedadvertising data is limited to 206 bytes. For more information, refer to the Host Advertising Data section ([Vol
6], Part B, Section 2.3.4.9) of the Bluetooth Core Specification Version 5.0.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章