BLE5.0學習--Connection Parameter Update Procedure

Connection Parameter Update Procedure 是一個 GAP 的 Procedure,允許 Central 或者 Peripheral 在連接後是可以更新連接參數。一般原廠會提供相關 GAP 的 API, 例如我司的 API 就是

int inb_conn_param_update(int conidx, inb_conn_param_update_t *p_upd)

而GAP下面的layer如果實現,則是分爲3種情況:

  1. Central 要更新連接參數,但 Central 或 Peripheral 有一個不支持 Connection Parameters Request Procedure,則 Central 用 Link Layer 的 Connection Update procedure 來更新參數。Master 發送 LL_CONECTION_UPDATE_IND 來更新連接參數。

    [外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-6OQhRQmo-1592233267585)(https://raw.githubusercontent.com/hnmsky/gitalk/master/img/20200614211208.png)]

  2. Peripheral 要更新連接參數,但有兩個連接的設備有一個不支持 Connection Parameters Request Procedure ,就需要用 L2CAP 的CONNECTION PARAMETER UPDATE REQUEST 命令,master 會發送 CONNECTION PARAMETER UPDATE RESPONSE 返回結果。如果更新成功,Slave 的 Host 會收到 Controller 的通知。

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-8UQvaxZe-1592233267588)(https://raw.githubusercontent.com/hnmsky/gitalk/master/img/20200615081249.png)]

CONNECTION PARAMETER UPDATE REQUEST

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-qoVZ6xYm-1592233267589)(https://raw.githubusercontent.com/hnmsky/gitalk/master/img/20200615081314.png)]

CONNECTION PARAMETER UPDATE RESPONSE

  1. 如果 Central 和 Peripheral 都支持 Connection Parameters Request Procedure, 則用 Connection Parameters Request Procedure 來更新連接參數。下面分別是 Master 和 Slave 發起請求的過程:

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-63v1KnIf-1592233267592)(https://raw.githubusercontent.com/hnmsky/gitalk/master/img/20200615224116.png)]

[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wLxtQHMK-1592233267595)(https://raw.githubusercontent.com/hnmsky/gitalk/master/img/20200615224123.png)]

參考文獻:

Bluetooth Core Specification v 5.0

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