作者:費曉強,邵佳煒,殷義勳
1. 引言
藍牙低功耗(BLE)正迅速成為當今最常用的無線標準之一。 它用於在小於約10米的短距離設備之間傳輸數據/信息。 參與BLE通信的兩個設備之一稱為Master或Central,另一個稱為Slave或Peripheral。 通常,在Master和Slave可以進行BLE通信之前,有2個強制進程和另一個可選進程。 這些過程是:
✓ 廣播過程
✓ 配對過程
✓ 綁定過程,這是可選的
1.1 廣播過程
在廣播過程中,Master也被稱為Observer,它監聽來自Slave設備的可連接廣播包,Slave設備在此過程中也稱為Advertiser。 通過廣播過程,Observer可以發現Advertiser, 以獲得Advertiser的MAC地址、名稱和其他定製數據。 例如,在Android或IOS手機的藍牙系統設置中,您可能會找到手機附近的藍牙設備列表。 該列表是由手機作為Observer,成功處理來自附近的Advertiser的廣播包。
圖1:設備廣告和發現
廣播包具有以下格式:
✓ 廣播包包含許多廣播結構,其總長度固定為31個字節(0可用於填充非重要數據)
✓ 廣播結構包含3個部分:長度,類型和數據
✓ 至少,數據包中應包含以下信息:
· 設備標誌:類型0x01
· 設備名稱:類型0x08或0x09
✓ 如果僅包含這兩個結構,則設備名稱應<= 26個字節
✓ 自定義數據可以包含在類型為0xFF的結構中
1.2 配對和綁定過程
在Observer發現Advertiser後,它們就可以直接建立未加密的連接,然後通過此連接進行配對過程。 在此過程中,兩個BLE設備交換其配置並確定他們將如何設置安全連接設備信息,以便建立安全連結。
因此配對可以創建一個僅在連接的生命周期內持續的安全連結,而綁定實際上以共享安全密鑰的形式創建永久關聯(也稱為綁定),將在以後的連接中使用,直到任何一方決定刪除它們。 但只有在配對過程中交換綁定需要求時,在會在配對過程後,進行綁定。
在配對和綁定過程中,Master也稱為Initiator, Slave稱為Responder。
Figure 2: Pairing and Bonding
藍牙設備執行配對有以下四種方法:
✓ Just Works
✓ Numeric Comparison
✓ Passkey Entry
✓ Out of Band (OOB)
使用哪種方法取決於配對前交換配置信息來決定。
1.3 通訊
配對成功後,安全連結已建立,主伺服器和從伺服器可以正常交換數據/信息:
Figure 3: 連結和通訊
2. 自動配對概述
如上所述,在兩個BLE設備成功能進行通信的典型和傳統場景中,BLE面臨一些缺點,例如:
✓ 需要用戶從列表中選擇所需的從設備,有時列表可能有點長;
✓ 需要用戶輸入PIN碼才能完成BLE配對
為了改善用戶體驗,有必要消除用戶幹預以加速BLE連接建立。 在本文中,我們提出了一些輔助技術手段來加速BLE連接。 我們在本文中稱這種使用特定的輔助技術/方法來完成BLE配對並建立連接的過程,為自動配對或自動BLE配對過程。
在本文中,我們還限制了用戶場景的討論,其中支持藍牙的智慧型手機(IOS / Android)作為Master,其他定製開發的BLE設備作為Slave。 在後文,此場景稱為MDS,即Mobile-Device Scenario。
在某個MDS中,我們定義自動配對以滿足以下要求:
✓ 通過手機/應用程式能自動精準選擇所需要連接的藍牙設備,
✓ 自動執行手機/應用程式和藍牙設備的BLE配對過程,以及
✓ 最好能在手機上自動啟動相應的應用程式。
2.1 自動選擇設備
在一般的MDS中,手機端通常使用BLE廣播過程來發現附近的其他所有BLE設備,並且需要用戶選擇需要連接的設備。
自動配對將通過BLE廣播過程或輔助方法獲取設備的MAC地址和名稱,然後如果可能,根據設計規則檢查名稱以自動確定設備是否有效。 這消除了用戶從(可能很長)列表中選擇正確的設備的過程。 結果是無縫的無線用戶體驗。
2.2 自動BLE配對
在MDS中,自動配對將通過在特定輔助方法上交換認證信息或自動計算認證信息來簡化手機和藍牙設備之間的認證配對過程。 消除了用戶輸入PIN碼的需要。
2.3 自動啟動應用程式
自動配對最好能手機上啟動相應的應用程式以提供良好的用戶體驗。 例如,用戶拿電話掃描或觸摸設備以交換信息,對應的應用程式能自動啟動。
Figure 4: Automatic Pairing Flow
3. 常見的自動配對方法
根據自動配對定義和要求,有一些常用的方法來實現自動配對,例如:
✓ 唯一設備名稱過濾法
✓ 特殊設備名稱編碼過濾法
✓ 設備名稱校驗和過濾法
3.1 唯一設備名稱過濾法
在某些項目中,每個BLE設備應具有唯一的BLE設備名稱,並且名稱的長度小於26個字符。在這種情況下,可以使用唯一設備名稱過濾方法來實現自動配對。
設備的唯一名稱可以用文本或QR碼的形式列印在設備的表面或包裝盒上。每次,當用戶獲得此中設備並且應用程式自動或手動啟動時,用戶可以通過鍵盤輸入設備名稱或應用程式掃描QR碼,以事先獲取可進行合法連接的設備的名稱。
當設備開機時,它將廣播具有唯一名稱的廣告包。如果名稱與App已經獲得並保存的名稱之一匹配,則App將與設備建立未加密的連接。因此,用戶可以通過唯一名稱過濾器自動選擇設備。
建立連接後,App將採用特殊的函數,根據設備名稱計算PIN碼,並通過連接將PIN碼發送給設備,當設備收到PIN碼時,它使用App相同的函數,基於自己的名稱計算對應的PIN碼。然後設備檢查這兩個PIN碼。如果這兩個PIN碼相同,則設備和應用程式將使用此PIN碼加密連接,否則設備將拒絕連接。因此,無需手動輸入PIN碼即可自動建立安全連結。
Figure 5: Unique Name Filter Flow
自動成功配對後,手機和設備將在後臺執行綁定過程,以便下次使用時保存連結密鑰。
3.2 特殊設備名稱編碼過濾法
在某些項目中,每個BLE設備應具有唯一的設備名稱,該名稱具有特殊的名稱編碼方案,並且名稱的長度也小於26個字符。 例如,每個名稱由固定前綴和序列號組成,例如「JBLTest_001」,其中「JBLTest_」是每個名稱的固定前綴。 應用程式僅允許與這些設備建立BLE連接,這些設備將在BLE通告數據包中廣播其名稱。 在這種情況下,特殊設備名稱編碼方案也事先在App中實現。 當App啟動時,它將掃描BLE廣告包並自動通過特殊名稱編碼方案過濾設備。
在應用程式掃描設備並且其設備名稱符合特殊名稱編碼方案後,自動配對的剩餘過程就像在 3.1 唯一設備名稱過濾法
Figure 6: Special Name Coding Filter Flow
3.3 設備名稱校驗和過濾法
在某些項目中,每個BLE設備應具有唯一的設備名稱,並使用其名稱和名稱的校驗組成廣播數據包。 應用程式僅允許與這些設備建立BLE連接,這些設備將在BLE廣播數據包中廣播其名稱和名稱對應的校驗碼。 在這種情況下,計算名稱校驗碼的算法是固定的,並在App中預先構建。 當App啟動時,它將掃描BLE廣告包並提取設備名稱及其校驗碼,然後App本身將根據提取的名稱計算校驗和,並自動通過這兩個校驗和過濾設備。
掃描設備並且其名稱校驗碼正確後,自動配對的剩餘過程就像上面描述的過程一樣
3.1 唯一設備名稱過濾法.
Figure 7: Name Checksum Filter Flow
計算名稱校驗碼所使用的特定方法取決於項目的具體情況。該方法需要注意的一點是,校驗和的長度必須足夠短,例如小於4個字節。可以考慮以下簡單方法:
ü Parity
ü CRC
ü Byte XOR
4. BLE App開發
在MDS中,App可以在IOS或Android上運行,因此很多BLE項目都需要開發IOS BLE App和Android BLE App。 從App開發的角度來看,IOS App開發和Android App開發之間存在很大差異。 在本節中,我們僅解決與自動配對的實現相關的差異。
4.1 開始BLE掃描
為了發現BLE設備,應用程式需要啟動廣播包的BLE掃描。
在IOS上啟動BLE掃描:
1) 如何初始化BLE掃描過程;
2) 要調用哪個API;
3) 如何監控程序;
4) 如何停止
5) 該作業系統的API和掃描機制的考慮/限制是什麼?
6) 演示代碼
在Android上啟動BLE 掃描:
4.2 從廣播包中直接提取數據
App從BLE廣播包中直接提取設備名稱和自定義數據以實現自動配非常重要。
從IOS上的廣告包中提取數據:
1) 接收和處理廣告包的整體流程/過程
2) 如何從廣告包中提取不同的結構/數據
3) 要調用哪個API
4) 該作業系統的API和掃描機制的考慮/限制是什麼?
5) 演示代碼
從Android上的廣播數據包中提取數據:
4.3 發送 PIN 碼
為了執行BLE配對,App需要向設備發送PIN碼以開始配對過程.
在iOS上發送 PIN 碼:
1) BLE配對流程
2) 哪個API發送PIN碼
3) 配對結果/狀態
4) 還有什麼可以發送PIN碼來考慮
5) 演示代碼
在Android上發送 PIN 碼:
4.4 選擇配對類型
在標準BLE配對過程中,首先兩個BLE設備需要交換IO功能和認證要求,以確定以下哪種方法用於配對:
✓ Just Work
✓ Passkey
✓ Number Comparison
✓ OOB
IOS上的配對方法選擇:
1) 是否可以通過App選擇配對方法
2) 如何選擇
3) 考慮/限制因素
4) 演示代碼
Android上的配對方法選擇:
4.5 自動啟動 App
如果在特定BLE設備啟動時可以自動啟動BLE應用程式,將獲得良好的用戶體驗.
在iOS上自動啟動App:
1) 可行性
2) 如何操作
3) 局限性
4) 演示代碼
在Android上自動啟動App:
5. 使用NFC標籤自動配對
NFC(近場通信)技術是飛利浦和索尼為非觸摸識別開發的互連技術。 作為標準化的短程和高頻無線通信技術,NFC技術的工作頻率為13.56MHz,通信距離小於10cm。 與其他射頻識別(RFID)技術相比,NFC具有讀寫距離非常短的特點。 然而,這種看似不利的局面本身限制了潛在黑客的監控和攻擊,並具有更高的安全性。
NFC技術可以用作實現自動配對的輔助方法,以增強MDS中的用戶體驗。 用戶可以通過手機觸摸配備NFC標籤的BLE設備,方便快捷地選擇該設備,可以通過NFC手機讀取MAC地址,設備名稱等參數,然後應用程式直接與設備建立BLE連接以自動執行配對.
Figure 8: Automatic Pairing using NFC
使用NFC自動配對的過程:
✓ 選擇所需的藍牙設備
✓ 安全地連接到藍牙設備
✓ 在電話上啟動相應的應用程式
5.1 設備選擇
發現BLE設備通常在廣播過程中使用廣播包來發現電話附近的設備。NFC可以通過提供與特定藍牙設備相關的BLE地址和其他可選參數來消除廣播過程,從而簡化發現過程。 這消除了用戶從(可能很長)列表中選擇適當設備的需要。 結果是更無縫的無線用戶體驗.
5.2 快速安全地連接
NFC可以通過在NFC鏈路上交換認證信息來簡化兩個藍牙設備之間的認證配對的過程。
可以通過NFC鏈路交換信息(PIN碼或TK值)以直接用作OOB配對過程的一部分。這消除了等待廣告包建立LL連接然後交換能力的需要。 結果是配對過程快速而安全.
5.3 啟動應用程式
NFC可用於在手機上啟動應用程式。 例如,用戶將他們的NFC手機掃描到另一個NFC設備以交換聯繫信息。 在NFC掃描操作時啟動應用程式是基於不同的手機平臺,有不同的實現方式。 在某些情況下,「觸摸」甚至可以允許用戶選擇要執行的應用程式.
5.4 用於自動配對的NDEF消息
NDEF(NFC數據交換格式)消息是二進位格式,用於包含在NFC設備/標籤之間交換的數據。 NDEF消息由一個或多個NDEF記錄組成,每個NDEF記錄包含Flag,Lengths,Type,ID和Payload。 NFC讀取器可以從另一個NFC標籤整體讀取DNEF消息。
NDEF消息結構:
NDEF記錄布局:
5.4.1 自動配對的NDEF記錄格式
對於BLE設備,帶外數據格式用於OOB配對。 如果OOB數據保存為NDEF記錄的有效負載,並且當手機觸摸設備/標籤時,嵌入在NDEF記錄中的OOB數據將通過NFC連結讀取,然後它們將直接執行OOB配對.
在NFC標籤中,用於BLE OOB數據交換的有效載荷格式可以是廣播廣告包的格式,其在1.1廣播處理中描述。 在本節中,將此廣告數據包簡稱為AD.
在該廣告包格式的OOB有效載荷中,每個AD結構包括1位元組的AD長度欄位,AD類型欄位和AD數據欄位。 Length值是AD Type和AD Data欄位中的總字節數。 總OOB數據長度由記錄有效負載長度定義。
保存BLE自動配對的OOB有效負載的NDEF記錄具有以下布局:
標籤的NDEF記錄示例:
5.4.2 應用記錄在NDEF消息中
在Android 4.0中,Android手機可以在觸摸NFC標籤時自動啟動應用程式以獲取包含Android應用程式記錄(AAR)的NDEF消息。 AAR記錄必須滿足以下屬性:
✓ TNF應該是100b,這是外部類型,
✓ 類型應該是「android.com:pkg」,和
✓ Payload應該是應用程式包名稱
在iPhone X中,手機在後臺標籤讀取模式下掃描NFC標籤後,系統會通過查找具有以下屬性值的NFC NDEF Payload對象來檢查標籤的NDEF消息以獲取URI記錄:
✓ TNF應該是001b,這是眾所周知的類型
✓ 類型等於「U」
✓ Payload應該是應用程式的通用連結或支持的URL方案.
因此,建議自動配對的最小NDEF消息符合以下布局,以便與IOS和Android兼容:
5.5 IOS上的NFC自動配對
iPhone上的NFC具有以下限制:
✓ iPhone NFC僅適用於NFC讀取模式;
✓ 只有iPhone7,iPhone 8,iPhone X或更高版本支持NFC;
✓ iPhone X及更早版本的設備不支持背景NFC標籤讀取;
啟動 App,通過MAC地址連接BLE設備。
5.5 Android上的NFC自動配對
啟動 App,通過MAC地址連接BLE設備。
6. 結論
根據以上對自動配對的不同方法的分析,我們可以總結下表中每種方法的優缺點:
因為如今NFC手機越來越流行,NFC標籤非常便宜,強烈建議使用NFC標籤方法實現自動配對以改善用戶體驗。
7.公司介紹
捷普科技(上海)有限公司(www.jabil.com)成立於2002年9月。在不到四年的發展中,公司員工總數由最初的400多人迅速擴充到現在的3000多人,生產線也從最初的2條增設到現在的15條。公司客戶從最初的一個增加到十幾個,而且還在不斷增加。
是一家提供電子技術解決方案的公司,為全球的電子和技術公司提供綜合的電子設計,生產和產品管理服務。作為美國500強企業之一,我們通過提供完整的全球性電子產品供應鏈管理,幫助客戶把電子產品更快地帶入市場,使其成本效率更高。
成立於2002年9月2日,是世界著名的捷普公司在上海漕河涇開發區新成立的一家獨資子公司,是目前上海最大的EMS(電子製造服務)企業之一。公司總部位於美國,全球共有40家facilities,擁有員工41,000名。Jabil在全球20多個國家設立工廠,在範圍廣泛的工業界為顧客提供綜合的,個性化的,重點突出的解決方案。多年來捷普公司本著不斷改革創新的科研精神,致力於電子產品的設計開發,並憑藉其先進的生產技術背景及生產管理理念,為全世界多家著名的電子公司提供電子電路板部件及系統的加工及開發、開發、設計等服務。
(免責聲明:本文為企業宣傳商業資訊,僅供用戶參考,如用戶將之作為消費行為參考,鳳凰網敬告用戶需審慎決定。)