藍(lán)牙技術(shù)自1998年問世以來,已經(jīng)成為現(xiàn)代通信技術(shù)中不可或缺的一部分。它允許不同設(shè)備之間通過無線信號進(jìn)行通信,極大地方便了我們的日常生活。在藍(lán)牙技術(shù)中,設(shè)備發(fā)現(xiàn)(Inquiry)是一個重要的概念,它涉及到設(shè)備如何相互識別和建立連接。本文將對藍(lán)牙設(shè)備發(fā)現(xiàn)過程進(jìn)行解析,幫助讀者更好地理解這一技術(shù)。
1
什么是設(shè)備發(fā)現(xiàn)?
我們在日常使用手機(jī)去連接其它如藍(lán)牙耳機(jī)等藍(lán)牙設(shè)備前,一般需要先在手機(jī)上搜索到需要的設(shè)備,這一步就是設(shè)備發(fā)現(xiàn),也叫查詢(inquiry)。而相應(yīng)的藍(lán)牙設(shè)備也需要進(jìn)入被查詢模式,也就是查詢掃描(inquiry scan),只有這樣才會被手機(jī)等設(shè)備搜索到。

圖1. windows的藍(lán)牙設(shè)備發(fā)現(xiàn)界面
2
設(shè)備發(fā)現(xiàn)工作原理
在設(shè)備發(fā)現(xiàn)過程中,查詢設(shè)備會每隔312.5us選擇一個新的頻點(diǎn)來發(fā)送查詢,也就是說在一個tx slot(625us)中,查詢設(shè)備會以不同的頻點(diǎn)發(fā)送兩次查詢,而被查詢設(shè)備會每隔1.28秒選擇一個新的監(jiān)聽頻點(diǎn),所以只要查詢一段時間就總會有兩者頻點(diǎn)相同的時候,查詢和被查詢設(shè)備使用通用查詢接入碼(GIAC,General Inquiry Acess Code)LAP(Low Address Part),作為查詢地址,GIAP LAP為0x9E8B33。藍(lán)牙標(biāo)準(zhǔn)規(guī)定不允許任何藍(lán)牙設(shè)備使用與GIAP LAP一樣的地址。產(chǎn)生的32個查詢跳頻序列(Inquiring hopping sequence) 均勻分布在79個頻率信道上。
查詢設(shè)備會通過發(fā)送ID包來進(jìn)行查詢,ID包由查詢訪問碼(IAC)組成,固定68bits長,在上文也提到查詢和被查詢設(shè)備使用通用查詢接入碼(GIAC),因此可以和配對時發(fā)出的ID包區(qū)分開。在標(biāo)準(zhǔn)模式下,當(dāng)被查詢設(shè)備接收到一個ID包后,會在一個slot(625us)后回復(fù)一個FHS包,這個包包含了設(shè)備類型、設(shè)備地址和發(fā)送者的時鐘,如果查詢模式為返回帶RSSI格式或者額外查詢結(jié)果模式,那么被查詢設(shè)備就會在FHS包之后2 slot(1250us)發(fā)送一個Extended_inquiry_response_packet包,其中會包含設(shè)備名字、RSSI等信息。

圖2. 收到第一個或第二個ID包進(jìn)行響應(yīng)的時序
我們以一塊泰凌B91開發(fā)板為例來直觀地看一下設(shè)備發(fā)現(xiàn)的過程。

圖3. B91開發(fā)板
我們先給開發(fā)板燒錄提前編譯好的測試固件,然后用手機(jī)去搜索附近的藍(lán)牙設(shè)備,并用藍(lán)牙抓包器抓取空中包,通過抓包器我們可以清楚地看到,在開發(fā)板收到ID包625us后發(fā)出了FHS包,之后跟著又發(fā)出了一個EIR包,與圖2協(xié)議規(guī)定的時序完全一致。

圖5. 抓包器抓取到的inquiry過程
通過解析包內(nèi)容可以發(fā)現(xiàn),F(xiàn)HS包中包含了設(shè)備類型,時鐘等信息,而EIR包則包含了設(shè)備名稱。

圖6. FHS包內(nèi)容

圖7. EIR包內(nèi)容
3
HCI指令
在藍(lán)牙中host通過HCI指令來控制controller的行為,在設(shè)備發(fā)現(xiàn)流程中也需要用到多條HCI指令。
3.1
HCI_inquiry
查詢設(shè)備可以使用這條指令來啟動inquiry,這個指令需要填入三個參數(shù),分別是LAP:一般為0x9e8b33(GIAC),inquiry_length:搜索多長時間,num_response:可以搜索多少個設(shè)備,范圍0~255,如果是0,就是沒有限制,搜索多少個就上報給host多少個。

3.2
HCI_Inquiry_Cancel
host可以發(fā)送這條指令來提前停止搜索。

3.3
HCI_Write_Inquiry_Mode
host使用這條指令來設(shè)置inquiry的模式,這將會決定搜索到的設(shè)備是否返回RSSI、設(shè)備名等信息。

3.4
HCI_Write_Scan_Enable
被搜索設(shè)備使用這條指令來開啟或關(guān)閉scan狀態(tài),這條指令不僅可以開啟inquiry scan還可以開啟page scan,開啟page scan后設(shè)備將允許被連接。

3.5
HCI_Write_Inquiry_Scan_Activity
這條指令用來設(shè)置inquiry scan的窗口時間和窗口間隔,controller會自動隔一段時間打開一次窗口,只有在打開窗口期間才能收到對方發(fā)來的inquiry ID包,因此窗口時間越長,窗口間隔越短越容易被其它設(shè)備搜索到,需要注意的是,窗口時間必須要小于等于窗口間隔。

3.6
HCI_Write_Extended_Inquiry_Response
被查詢設(shè)備的host下發(fā)這個指令后,查詢設(shè)備就可以在搜索到后拿到設(shè)備名字等信息,否則后續(xù)就只能通過HCI_Remote_Name_Request指令來獲取slave的名字。

設(shè)備發(fā)現(xiàn)是藍(lán)牙連接過程中的重要一步,它允許我們查找周圍可被連接的設(shè)備,并且可以靈活地配置查詢的參數(shù),從而使我們下一步方便地在不同設(shè)備之間建立連接。泰凌基于TLSR951x和TLSR952x系列SoC芯片自研的藍(lán)牙協(xié)議棧,得益于芯片本身具備的超低功耗工作模式,實(shí)現(xiàn)了帶低功耗的Inquiry和Inquiry Scan模式,可以將設(shè)備發(fā)現(xiàn)過程芯片整機(jī)功耗降低到3mA以下,能夠滿足對功耗極度敏感的應(yīng)用場景。
-
通信技術(shù)
+關(guān)注
關(guān)注
20文章
1167瀏覽量
94116 -
藍(lán)牙技術(shù)
+關(guān)注
關(guān)注
45文章
359瀏覽量
55182 -
藍(lán)牙設(shè)備
+關(guān)注
關(guān)注
0文章
42瀏覽量
7081 -
泰凌微
+關(guān)注
關(guān)注
7文章
195瀏覽量
11857
原文標(biāo)題:【技術(shù)專欄】泰凌微電子藍(lán)牙設(shè)備發(fā)現(xiàn)概述
文章出處:【微信號:telink-semi,微信公眾號:泰凌微電子】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
泰凌微電子產(chǎn)測工具使用—如何增加GPIO測試功能
基于泰凌微電子平臺實(shí)現(xiàn)OpenHarmony開發(fā)—綜述
射頻芯片廠商:泰凌微電子(上海)有限公司簡介
泰凌微電子通過藍(lán)牙低功耗5.3認(rèn)證
泰凌微電子無線通信SoC助推電子紙產(chǎn)業(yè)生態(tài)發(fā)展
【技術(shù)專欄】泰凌微電子產(chǎn)測工具使用——常見問題解決方法(二)
泰凌微電子獲藍(lán)牙 6.0 認(rèn)證,助力藍(lán)牙技術(shù)拓展與應(yīng)用升級
泰凌微電子榮獲小米兩項大獎
泰凌微電子精彩亮相CES 2025
泰凌微電子即將亮相藍(lán)牙亞洲大會
泰凌微電子攜多項突破性創(chuàng)新成果重磅亮相2025藍(lán)牙亞洲大會

泰凌微電子藍(lán)牙設(shè)備發(fā)現(xiàn)概述
評論