原文:http://m.eepw.com.cn/article/201808/386024.html
消費電子 時間:2018-08-09來源:網路
藍牙的建立程序是一個復雜的程序,即使有過相當一段作業和使用經驗的人,如果不仔細去了解還是理解不全。
平時我們用藍牙耳機聽音樂,和不同的設備共享檔案,打電話等,都有一個配對--連接--傳輸資料的程序。
藍牙配對程序,其實就是一個認證的程序。
為什么不配對便無法建立連接?
任何無線通信技術都存在被監聽和破解的可能,藍牙SIG為了保證藍牙通信的安全性,采用認證的方式進行資料互動。同時為了保證使用的方便性,以配對的形式完成兩個藍牙設備之間的首次通訊認證,經配對之后,隨后的通訊連接就不必每次都要做確認。所以認證碼的產生是從配對開始的,經過配對,設備之間以PIN碼建立約定的link key用于產生初始認證碼,以用于以后建立的連接。
所以不配對,兩個設備之間便無法建立認證關系,無法進行連接及其之后的操作,所以配對在一定程度上保證了藍牙通信的安全,當然這個安全保證機制是比較容易被破解的,因為現在很多個人設備沒有人機介面,所以PIN碼都是固定的而且大都設定為通用的0000或者1234之類的,所以很容易被猜到并進而建立配對和連接。
藍牙的連接程序
現在的藍牙芯片供應商提供的技術支持能力相當強大,有完整的硬體和軟體解決方案。對于應用而言,提供了韌體用于實作底層協議堆疊,提供了profile庫及源代碼規范了各種應用,開發人員只要專注于應用程式開發就可以了。對于藍牙底層的一些東西往往不甚了了。以前我也是這樣子的,最近在做一個自動搜索以實作自動連接的應用,發現還是需要了解一些底層的機制的。
我們可以很容易的進行操作在一個手機和免提設備之間建立連接,那么這個連接是怎么建立起來的呢?
首先,主設備(master,即發起連接的設備)會尋呼(page)從設備(slave,接收連接的設備),master會已跳頻的方式去尋呼slave,slave會固定間隔地去掃描(scan)外部尋呼,即page scan,當scan 到外部page時便會回應response該page,這樣兩個設備之間便會建立link的連接,即ACL鏈路的連接。當ACL 鏈路連接建立后,主設備會發起channel的連接請求,即L2CAP的連接,建立L2CAP的連接之后,主設備采用SDP去查詢從設備的免提服務,從中得到rfcomm的通道號,然后主設備會發起rfcomm的連接請求建立rfcomm的連接。然后就建立了應用的連接。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/27337.html
標籤:無線
