2019年1月5日 星期六

DIY - ESP32:藍牙(Bluetooth)連接過程(六十一)

DIY - ESP32:藍牙(Bluetooth)連接過程(六十一):

在兩個設備之間創建藍牙連接是一個包含三個漸進狀態的多步驟過程,而且建立連接過程是一個複雜的過程。首先,主控設備(Master,即發起連接的設備)會尋呼(Page)從屬設備(Slave,接收連接的設備),Master 會用跳頻的方式去尋呼 Slave,Slave 會固定間隔地去掃描(Scan)外部尋呼,即 Page Scan,當 Scan 到外部 Page 時,便會回應 Response 該 Master Page,這樣兩個設備之間便會建立 Link 的連接,即 ACL 鏈路的連接。當 ACL 鏈路連接建立後,主控設備會發起 Channel 的連接請求,即 L2CAP 的連接,建立 L2CAP 的連接之後,主控設備採用 SDP 去查詢從屬設備的免提服務,從中得到 RFCOMM(Protocol used to emulate serial port connections)的通道號,然後主控設備會發起 RFCOMM 的連接請求,建立 RFCOMM 的連接。然後就建立了應用的連接。

藍牙(Bluetooth)連接過程
連接過程(Connection Process):

查詢(Inquiry):如果兩個藍牙設備完全不知道彼此存在,則必須運行查詢以嘗試發現另一個。一個設備發出查詢請求,任何偵聽此類請求的設備都將以其地址,可能還有其名稱和其他信息進行響應。

尋呼(Paging):尋呼是在兩個藍牙設備之間建立連接的過程。在啟動此連接之前,每個設備都需要知道另一個設備的地址(在查詢過程中找到)。

連接(Connection): 設備完成分頁過程後,進入連接狀態。連接時,設備可以主動參與,也可以進入低功耗睡眠模式。

活動模式(Active Mode): 這是常規連接模式,設備正在主動發送或接收數據。

嗅探模式(Sniff Mode):這是省電模式,設備不太活躍。它將睡眠並且僅以設定的間隔(例如,每 100ms)監聽傳輸。

保持模式(Hold Mode):保持模式是一種臨時的省電模式,其中設備休眠一段時間,然後在該間隔過去後返回活動模式。主控設備可以命令從設備保持。

停等模式(Park Mode):停等是最深的睡眠模式。主控設備可以命令從設備 “停等”,並且該設備將變為非活動狀態,直到主控設備喚醒它為止。

結合(Bonding)和配對(Pairing):
 當兩個藍牙設備彼此共享特殊關聯時,它們可以綁定在一起。結合設備只要足夠接近就會自動建立連接。 例如,當我啟動汽車時,口袋裡的電話會立即連接到汽車的藍牙系統,因為它們共享一個紐帶。 不需要UI交互!

結合(Bonding):是通過稱為配對的一次性過程創建的。 當設備配對時,它們共享它們的地址,名稱和配置文件,並且通常將它們存儲在內存中。 它還共享一個共同的密鑰,允許它們在未來的任何時候保持聯繫。

配對(Pairing):通常需要驗證過程,其中用戶必須驗證設備之間的連接。 身份驗證過程的流程各不相同,通常取決於一台設備或另一台設備的接口功能。 有時配對是一個簡單的 “Just Works” 操作,只需單擊一個按鈕就可以配對(這對於沒有UI的設備很常見,比如耳機)。 其他配對涉及匹配 6位數字代碼。 較舊的舊版(v2.0 及更早版本)配對過程涉及在每個設備上輸入公共 PIN碼。 PIN碼的長度和復雜程度可以從四個數字(例如 “0000” 或 “1234”)到 16個字符的字母數字字符串。

2019年 1月 5日 天氣報告
氣溫:19.7@ 20:20
相對濕度:百分之 83%
天氣:多雲

沒有留言:

張貼留言