1. 程式人生 > >藍芽的配對和連線的建立過程

藍芽的配對和連線的建立過程

現在的藍芽晶片供應商提供的技術支援能力相當強大,有完整的硬體和軟體解決方案。對於應用而言,提供了韌體用於實現底層協議棧,提供了profile庫及原始碼規範了各種應用,開發人員只要專注於應用程式開發就可以了。對於藍芽底層的一些東西往往不甚了了。以前我也是這樣子的,最近在做一個自動搜尋以實現自動連線的應用,發現還是需要了解一些底層的機制的。
我們可以很容易的進行操作在一個手機和擴音裝置之間建立連線,那麼這個連線是怎麼建立起來的呢?
首先,主裝置(master,即發起連線的裝置)會尋呼(page)從裝置(slave,接收連線的裝置),master會已跳頻的方式去尋呼slave,slave會固定間隔地去掃描(scan)外部尋呼,即page scan,當scan 到外部page時便會響應response該page,這樣兩個裝置之間便會建立link的連線,即ACL鏈路的連線。當ACL 鏈路連線建立後,主裝置會發起channel的連線請求,即L2CAP的連線,建立L2CAP的連線之後,主裝置採用SDP去查詢從裝置的擴音服務,從中得到rfcomm的通道號,然後主裝置會發起rfcomm的連線請求建立rfcomm的連線。然後就建立了應用的連線。

即link establish->channel establish->rfcomm establish->connection