新聞中心

EEPW首頁 > 手機(jī)與無線通信 > 設(shè)計(jì)應(yīng)用 > LAT1297 藍(lán)牙廣播常見問題

LAT1297 藍(lán)牙廣播常見問題

作者: 時(shí)間:2023-11-13 來源:ST 收藏

1.前言

本文引用地址:http://2s4d.com/article/202311/452783.htm

本文是一些解決BLE相關(guān)問題的經(jīng)驗(yàn)分享。對于用戶常常遇到的一些問題,比如包最多能帶多少用戶數(shù)據(jù),名字怎么設(shè)置,廣播類型有哪些,為什么有些手機(jī)無法掃描到設(shè)備等問題,都將在本文得到解答。

2. BLE廣播最基礎(chǔ)知識(shí)

隨著BLE核心規(guī)范版本的更新,廣播增加了很多特性,如擴(kuò)展廣播,同步廣播等。本文不對這些特性做展開,僅討論傳統(tǒng)廣播的一些比較基礎(chǔ)的知識(shí)。

傳統(tǒng)廣播包含了4種廣播類型,這4種類型由兩個(gè)問題推論得出,即,是否可掃描和是否可連接。四種廣播類型的行為見圖1:

1699844144471880.png

圖1. 廣播類型

普通廣播可掃描可連接,最多可帶62字節(jié)用戶數(shù)據(jù),是最常見的廣播類型。其缺點(diǎn)是空中交互的時(shí)間長,比較占信道資源,功耗也比較高。

Beacon廣播不可連接不可掃描,最多只能帶31字節(jié)用戶數(shù)據(jù),常常用于標(biāo)簽類、資產(chǎn)追蹤類設(shè)備中,優(yōu)點(diǎn)是簡單、占用信道資源少,功耗低。

直連廣播用于異常斷開的設(shè)備可快速恢復(fù)連接。它不能帶自定義數(shù)據(jù),只能帶6字節(jié)的主機(jī)地址。并且,它可以突破其它廣播類型最低20ms的廣播間隔的限制,可實(shí)現(xiàn)<10ms的廣播間隔。

可掃描廣播主要為了解決了Beacon廣播帶數(shù)據(jù)量太小的問題。

BLE的廣播數(shù)據(jù)和響應(yīng)廣播數(shù)據(jù)格式如下圖,是由一個(gè)接一個(gè)AD structure組成。

每個(gè)AD structure = Length + AD Type + AD Data.

每個(gè)AD type 和對應(yīng)AD Data 的詳細(xì)內(nèi)容可以在Core Specification Supplement | Bluetooth? Technology Website中查看。 

詳細(xì)AD type 分配的具體數(shù)值可以在以下網(wǎng)址查找:Assigned Numbers (windows.net)

圖2. 廣播數(shù)據(jù)和廣播響應(yīng)數(shù)據(jù)格式

1699844196591362.png

3. 手機(jī)找不到設(shè)備的普通廣播?

用戶使用手機(jī)的系統(tǒng)掃描周圍設(shè)備時(shí),系統(tǒng)藍(lán)牙可以掃出一些設(shè)備,但自己的設(shè)備卻沒有掃描到?

先一句話概括:可能和手機(jī)的系統(tǒng)藍(lán)牙的過濾機(jī)制有關(guān)。

首先應(yīng)該確保設(shè)備已經(jīng)正常運(yùn)行(可通過LOG信息、電流波形等)。其次,使用手機(jī)的BLE APP對設(shè)備(假設(shè)是BLE_DEV)進(jìn)行掃描,圖3為BLE Toolbox工具的掃描頁面:

圖3. BLE Toolbox

圖片.png

當(dāng)發(fā)現(xiàn)手機(jī)BLE APP可以掃描到我們的設(shè)備時(shí),那么這個(gè)問題基本可以確定是被系統(tǒng)藍(lán)牙過濾掉了。隨著市面上BLE產(chǎn)品的增多,手機(jī)系統(tǒng)藍(lán)牙設(shè)置一定的過濾機(jī)制是合理和必要的,這可以減少對用戶的干擾以便用戶可以比較快地在系統(tǒng)藍(lán)牙頁面找到需要連接的設(shè)備。關(guān)于手機(jī)系統(tǒng)藍(lán)牙的過濾機(jī)制,目前暫未找到相關(guān)規(guī)范文檔。而根據(jù)本人的應(yīng)用經(jīng)驗(yàn),在廣播設(shè)備中添加HID服務(wù)的UUID聲明,在大多數(shù)手機(jī)上都能逃出過濾機(jī)制。相關(guān)代碼見圖4:

圖4. HID服務(wù)UUID聲明

1699844262698769.png

再次使用系統(tǒng)藍(lán)牙(iOS)進(jìn)行掃描,設(shè)備出現(xiàn)在列表中,問題解決:

圖5. iOS系統(tǒng)藍(lán)牙

圖片.png

關(guān)于廣播字段中ad type列表和UUID申明列表的詳細(xì)資料,可參閱文檔:Assigned Numbers (windows.net)

4. 手機(jī)找不到設(shè)備的Beacon廣播?

這個(gè)問題和找不到設(shè)備的普通廣播的原因類似,可以先一句話概括:可能和手機(jī)系統(tǒng)藍(lán)牙的過濾機(jī)制有關(guān)。解決的辦法是找到一個(gè)可以掃描Beacon廣播包的APP,比如LightBlue等。

5. 廣播名顯示異常

這個(gè)問題有以下幾個(gè)場景:

1. 使用 iOS手機(jī)掃描設(shè)備,掃到“a”名字的設(shè)備,而當(dāng)連接、斷連一次該設(shè)備后,再次掃描,掃到了“b”名字的同一個(gè)設(shè)備。

2. 工程師在開發(fā)過程中發(fā)現(xiàn),固件上修改了設(shè)備名但無法修改成功,用iOS手機(jī)掃描出來一直是某個(gè)固定的名字,而當(dāng)用Android手機(jī)掃描時(shí),則一切正常。

一句話解答這個(gè)問題是:iOS手機(jī)遵循完整的設(shè)備名掃描機(jī)制,并且會(huì)保留已連接設(shè)備的信息。

在談?wù)揃LE設(shè)備的名字時(shí),有的稱之為廣播名,有的稱為設(shè)備名,有的稱為本地名(local name),這些名字其實(shí)說的都是同一個(gè)東西,或者說同一個(gè)機(jī)制。該機(jī)制主要用于解決名字過長的問題。當(dāng)名字過長時(shí),由于廣播數(shù)據(jù)包容量有限、無法承載,藍(lán)牙核心規(guī)范采用的方法是,比如對于“STBLE_DEVELOPMENT_KIT”這個(gè)名字:

1. 在廣播包中存放“STBLE_DEV”

2. 在連接成功后的device name 特征中存放“STBLE_DEVELOPMENT_KIT”

對于這個(gè)方法,iOS系統(tǒng)會(huì)以device name 特征中的名字為準(zhǔn),從而具有以下處理邏輯:

1. 通過藍(lán)牙地址判斷該設(shè)備是否連接過

2. 當(dāng)設(shè)備未連接過,掃描時(shí)顯示的是廣播包中的名字

3. 當(dāng)設(shè)備已經(jīng)連接過,無論廣播名如何更改,iOS系統(tǒng)只顯示device name 特征中的名字。

安卓系統(tǒng)暫未發(fā)現(xiàn)遵循以上規(guī)范的手機(jī)。驗(yàn)證這個(gè)問題時(shí),我們可以使用圖6代碼,將廣播包的名字和device name特征中的名字設(shè)置的不一樣

圖6. 設(shè)備名異常

1699844449176577.png

用STBLE Toolbox掃描并連接設(shè)備并斷開。再次掃描時(shí),APP和系統(tǒng)藍(lán)牙的名字將不相同,見圖7:

圖7. APP和系統(tǒng)藍(lán)牙顯示名字不同

圖片.png

6. 小結(jié)

在開發(fā)過程中遇到和藍(lán)牙廣播相關(guān)的問題時(shí),基于本人的經(jīng)驗(yàn)可按下以下步驟進(jìn)行逐一排查:

1. 確認(rèn)系統(tǒng)正確發(fā)出廣播,可通過LOG信息和電流波形確認(rèn);

2. 工程師在開發(fā)過程中修改藍(lán)牙外設(shè)固件時(shí),最好使用 Public地址類型并且每次下載固件前都改一下藍(lán)牙地址;

3. 了解藍(lán)牙的廣播類型,有一些手機(jī)APP無法掃描Beacon類設(shè)備,建議使用STBLE Toolbox工具或者LightBlue工具對設(shè)備進(jìn)行掃描;

4. 注意手機(jī)的系統(tǒng)藍(lán)牙有過濾機(jī)制,本文檔的第三章提及的解決方式,不能百分百逃過手機(jī)的過濾機(jī)制。當(dāng)遇到有的手機(jī)無法掃描自己的BLE外設(shè)時(shí),我們可以利用該手機(jī)系統(tǒng)藍(lán)牙已掃出的設(shè)備,對其廣播包進(jìn)行解析,找出其被該手機(jī)識(shí)別的廣播字段依據(jù)。

文檔中所用到的工具及版本

? SDK : STSW-BNRGLP-DK

? APP : STBLEToolbox

版本歷史

1699844516732850.png




關(guān)鍵詞: LAT1297 藍(lán)牙 廣播 ST IOS

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉