藍牙技術自1998年問世以來,已經(jīng)成為現(xiàn)代通信技術中不可或缺的一部分。它允許不同設備之間通過無線信號進行通信,極大地方便了我們的日常生活。在藍牙技術中,設備發(fā)現(xiàn)(Inquiry)是一個重要的概念,它涉及到設備如何相互識別和建立連接。本文將對藍牙設備發(fā)現(xiàn)過程進行解析,幫助讀者更好地理解這一技術。
1
什么是設備發(fā)現(xiàn)?
我們在日常使用手機去連接其它如藍牙耳機等藍牙設備前,一般需要先在手機上搜索到需要的設備,這一步就是設備發(fā)現(xiàn),也叫查詢(inquiry)。而相應的藍牙設備也需要進入被查詢模式,也就是查詢掃描(inquiry scan),只有這樣才會被手機等設備搜索到。
圖1. windows的藍牙設備發(fā)現(xiàn)界面
2
設備發(fā)現(xiàn)工作原理
在設備發(fā)現(xiàn)過程中,查詢設備會每隔312.5us選擇一個新的頻點來發(fā)送查詢,也就是說在一個tx slot(625us)中,查詢設備會以不同的頻點發(fā)送兩次查詢,而被查詢設備會每隔1.28秒選擇一個新的監(jiān)聽頻點,所以只要查詢一段時間就總會有兩者頻點相同的時候,查詢和被查詢設備使用通用查詢接入碼(GIAC,General Inquiry Acess Code)LAP(Low Address Part),作為查詢地址,GIAP LAP為0x9E8B33。藍牙標準規(guī)定不允許任何藍牙設備使用與GIAP LAP一樣的地址。產(chǎn)生的32個查詢跳頻序列(Inquiring hopping sequence) 均勻分布在79個頻率信道上。
查詢設備會通過發(fā)送ID包來進行查詢,ID包由查詢訪問碼(IAC)組成,固定68bits長,在上文也提到查詢和被查詢設備使用通用查詢接入碼(GIAC),因此可以和配對時發(fā)出的ID包區(qū)分開。在標準模式下,當被查詢設備接收到一個ID包后,會在一個slot(625us)后回復一個FHS包,這個包包含了設備類型、設備地址和發(fā)送者的時鐘,如果查詢模式為返回帶RSSI格式或者額外查詢結果模式,那么被查詢設備就會在FHS包之后2 slot(1250us)發(fā)送一個Extended_inquiry_response_packet包,其中會包含設備名字、RSSI等信息。
圖2. 收到第一個或第二個ID包進行響應的時序
我們以一塊泰凌B91開發(fā)板為例來直觀地看一下設備發(fā)現(xiàn)的過程。
圖3. B91開發(fā)板
我們先給開發(fā)板燒錄提前編譯好的測試固件,然后用手機去搜索附近的藍牙設備,并用藍牙抓包器抓取空中包,通過抓包器我們可以清楚地看到,在開發(fā)板收到ID包625us后發(fā)出了FHS包,之后跟著又發(fā)出了一個EIR包,與圖2協(xié)議規(guī)定的時序完全一致。
圖5. 抓包器抓取到的inquiry過程
通過解析包內(nèi)容可以發(fā)現(xiàn),F(xiàn)HS包中包含了設備類型,時鐘等信息,而EIR包則包含了設備名稱。
圖6. FHS包內(nèi)容
圖7. EIR包內(nèi)容
3
HCI指令
在藍牙中host通過HCI指令來控制controller的行為,在設備發(fā)現(xiàn)流程中也需要用到多條HCI指令。
3.1
HCI_inquiry
查詢設備可以使用這條指令來啟動inquiry,這個指令需要填入三個參數(shù),分別是LAP:一般為0x9e8b33(GIAC),inquiry_length:搜索多長時間,num_response:可以搜索多少個設備,范圍0~255,如果是0,就是沒有限制,搜索多少個就上報給host多少個。
3.2
HCI_Inquiry_Cancel
host可以發(fā)送這條指令來提前停止搜索。
3.3
HCI_Write_Inquiry_Mode
host使用這條指令來設置inquiry的模式,這將會決定搜索到的設備是否返回RSSI、設備名等信息。
3.4
HCI_Write_Scan_Enable
被搜索設備使用這條指令來開啟或關閉scan狀態(tài),這條指令不僅可以開啟inquiry scan還可以開啟page scan,開啟page scan后設備將允許被連接。
3.5
HCI_Write_Inquiry_Scan_Activity
這條指令用來設置inquiry scan的窗口時間和窗口間隔,controller會自動隔一段時間打開一次窗口,只有在打開窗口期間才能收到對方發(fā)來的inquiry ID包,因此窗口時間越長,窗口間隔越短越容易被其它設備搜索到,需要注意的是,窗口時間必須要小于等于窗口間隔。
3.6
HCI_Write_Extended_Inquiry_Response
被查詢設備的host下發(fā)這個指令后,查詢設備就可以在搜索到后拿到設備名字等信息,否則后續(xù)就只能通過HCI_Remote_Name_Request指令來獲取slave的名字。
設備發(fā)現(xiàn)是藍牙連接過程中的重要一步,它允許我們查找周圍可被連接的設備,并且可以靈活地配置查詢的參數(shù),從而使我們下一步方便地在不同設備之間建立連接。泰凌基于TLSR951x和TLSR952x系列SoC芯片自研的藍牙協(xié)議棧,得益于芯片本身具備的超低功耗工作模式,實現(xiàn)了帶低功耗的Inquiry和Inquiry Scan模式,可以將設備發(fā)現(xiàn)過程芯片整機功耗降低到3mA以下,能夠滿足對功耗極度敏感的應用場景。
-
通信技術
+關注
關注
20文章
1098瀏覽量
92131 -
藍牙技術
+關注
關注
44文章
337瀏覽量
52785 -
藍牙設備
+關注
關注
0文章
36瀏覽量
6687 -
泰凌微
+關注
關注
6文章
142瀏覽量
10755
原文標題:【技術專欄】泰凌微電子藍牙設備發(fā)現(xiàn)概述
文章出處:【微信號:telink-semi,微信公眾號:泰凌微電子】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
評論