[BLE] State Machine and GAP Roles
在一般 BLE 裝置中, 不同的連線階段也扮演不同角色,
一般來說, 可以分成這四種 GAP Roles:
其中, Broadcaster 和 Observer 為一對, 進行 adverting 通訊,
Peripheral 和 Central 為一對, 進行資料傳輸,
為了表示此 4 種 GAP 腳色, BLE 可以表示為以下狀態機 (State Machine) 的轉換:
其中, 我們可以看到 Connection 和 Advertising 分屬不同的狀態,
以 one-hot state machine 的概念來說, 在一個時間內應只屬於一個狀態,
至於上述 4 個 GAP Role 則使用了狀態機不同的部分,
如下圖所示:
其中, Peripheral 和 Central 此對連線, 多了進入 Connection 狀態,
在原本 advertising-connection-standby 的流程中,
advertising 是為了之後建立連線進行準備,
主要工作為連線 UUID 的確認與交換之後的 hopping-sequence,
進入 Connection 狀態後, 就將根據 hopping-sequence 跳頻,
也就不會主動在 advertising channel 上進行廣播.
當然, 上述的流程是原本 BLE 的設計,
在各家的實作中, 也加入了一些特殊機制, 例如: GAP Role 的共存,
我們將在下一篇文章中, 以 TI 的實作為例,
介紹 GAP Role 存的機制以及其限制.
一般來說, 可以分成這四種 GAP Roles:
GAP Role | Description |
---|---|
BROADCASTER | A device that only sends advertising events. |
OBSERVER | A device that only receives advertising events. |
PERIPHERAL | A device that accepts the establishment of an LE physical link using the connection establishment procedure. |
CENTRAL | A device that supports the Central role initiates the establishment of a physical connection. |
其中, Broadcaster 和 Observer 為一對, 進行 adverting 通訊,
Peripheral 和 Central 為一對, 進行資料傳輸,
為了表示此 4 種 GAP 腳色, BLE 可以表示為以下狀態機 (State Machine) 的轉換:
其中, 我們可以看到 Connection 和 Advertising 分屬不同的狀態,
以 one-hot state machine 的概念來說, 在一個時間內應只屬於一個狀態,
至於上述 4 個 GAP Role 則使用了狀態機不同的部分,
如下圖所示:
其中, Peripheral 和 Central 此對連線, 多了進入 Connection 狀態,
在原本 advertising-connection-standby 的流程中,
advertising 是為了之後建立連線進行準備,
主要工作為連線 UUID 的確認與交換之後的 hopping-sequence,
進入 Connection 狀態後, 就將根據 hopping-sequence 跳頻,
也就不會主動在 advertising channel 上進行廣播.
當然, 上述的流程是原本 BLE 的設計,
在各家的實作中, 也加入了一些特殊機制, 例如: GAP Role 的共存,
我們將在下一篇文章中, 以 TI 的實作為例,
介紹 GAP Role 存的機制以及其限制.
留言
張貼留言