物聯網已經存在了一段時間,但目前引起關注的原因是傳感器的價格大幅下降以及幾乎無處不在的連接性。根據 IDC 最近的報告,全球物聯網技術支出將在 2022 年達到 1.2 噸,在 2017-2022 年的預測期內實現 13.6% 的復合年增長率。藍牙技術廣泛用于各種智能應用中的物聯網,使用 2400.0 至 2483.5 MHz 的未經許可的工業、科學和醫療 (ISM) 頻段中的短波長無線電傳輸進行短距離(最長 100m)連接。
- 單播:源向多個目標發送和接收消息,建立一對一的設備通信。
- 廣播:源將消息發送到多個目的地,建立一對多的設備通信。
- 多播(網格):建立多對多設備通信的多個源和目標。
BLE 由藍牙特別興趣小組 (SIG) 銷售。藍牙 SIG 管理認證過程,任何使用藍牙無線技術的產品都需要遵循該過程。所有這些產品都必須通過藍牙 SIG 認證并滿足藍牙許可協議和規范的要求。SIG 擁有如下所示的徽標和“藍牙”一詞。
藍牙協議和測試
BLE 的集成級測試涉及廣告數據的驗證、握手過程(啟動通信和協商傳輸參數)、連接過程、綁定過程、數據包數據格式。這可以通過兩種方式實現:
1. 連接任何作為Master的BLE設備,驗證服務和數據交換
2. 使用 Sniffer 應用程序進行通信之間的“間諜”
每個藍牙設備都有一個唯一的 MAC 地址和時鐘。Master 控制時鐘和跳頻。
各個層的源和目標扮演著不同的角色,需要對 UUT(被測單元——一個藍牙設備充當掃描器,另一個充當廣告商)進行徹底驗證,這在本博客中進行了討論。以下是每一層的源和目標的同義詞:
鏈路層
鏈路層是物理層和 L2CAP 層之間的層。它主要起到廣告、建立連接和發現服務的作用。下面的狀態圖描述了鏈路層的工作流。
待機:默認狀態
廣告:設備在三個廣告通道(其余37個為數據通道)中定期發送廣告事件,如下圖所示。
掃描
有兩種不同的掃描模式:
- 被動掃描——控制器只支持數據接收,不支持傳輸。
- 主動掃描 – 傳輸掃描請求。掃描器發出 SCAN_REQ 數據包,廣告商以 SCAN_RSP 數據包響應。
發起
Scanner 根據廣告數據選擇合適的廣告商。如果廣告商發出連接機會的信號,則掃描器可以向廣告商發送連接請求。一旦 CONNECT_REQ 數據包被發送,scanner 就會成為 Initiator。
聯系
一旦成功建立連接,兩個設備都處于“連接”狀態。發起者成為主人,廣告者成為奴隸。它們定期交換數據包,稱為連接事件(此連接是握手,數據交換僅在握手成功后發生)。BLE 連接維護一個 Piconet 網絡結構,其中單個主機與稱為 pico 的從機協調連接事件。應用程序中的數據傳輸速率從 200 到 2,100 kbps 不等。
BLE 數據包構成了鏈路層的基本構建塊。BLE數據包數據格式大致可以分為以下幾種:
BLE 有兩種類型的數據包:
? 廣告包——查找并連接到附近的設備
? 數據包——兩個連接設備之間的數據傳輸
以下是根據協議數據單元 (PDU) 的不同廣告數據包類型:
按照以下鏈接中的步驟設置 Nordic BLE Sniffer 和 Wireshark 設置以進行數據包捕獲:
nRF_Sniffer_UserGuide_v2.2
以下是可以使用 Wireshark 數據包分析器驗證的測試用例:
1. 驗證外圍設備是否發布廣告明文
2. 驗證外設在廣告和未連接時的廣告算法。(廣告算法包括廣告事件的數量和它們之間的持續時間)
3. 驗證握手過程中外圍設備的廣告算法
4.驗證UUT配對綁定后的廣告事件
通用訪問配置文件 (GAP)
GAP 定義了設備角色、廣告模式和綁定程序。安全管理器,GAP 的一部分,可以根據系統的安全需求進行設計。“配對”和“綁定”過程通過 GAP 進行控制:
-配對:
中央和外圍設備交換加密的密鑰,經過身份驗證和接受以建立連接。
-粘合:
配對過程中的信息存儲在設備上,因此配對過程不會重復,并且只要設備在附近,就會建立重新連接。
三種主要的配對方法是:
1. Just Works – 加密密鑰在中央和外圍設備之間共享。
2. 密鑰顯示——隨機密鑰在一臺設備上生成,其他需要輸入。
3. 帶外——這支持另一個 BLE 無線電來共享密鑰。
使用與上面相同的設置,以下是可以使用 Wireshark 數據包捕獲驗證的測試用例:
1. 在數據包級別驗證密鑰交換配對過程。
2. 驗證廣告跳序列。
通用屬性配置文件 (GATT)
藍牙設備充當 GATT 服務器或客戶端。GATT 標識層次結構以組織服務和特征等屬性。屬性是分組數據和 UUID(通用唯一標識符),因為 16 字節分配給每個屬性。GATT Attribute 的層次結構可以在下圖中理解:
服務包括完成特定功能所需的數據集合。特征包含用戶數據。下面的流程圖顯示了客戶端和服務器之間的數據包通信:
按照以下鏈接安裝 nRF Connect Emulator App:
nrFconnect 應用程序
以下是可以使用 nRF Connect 應用程序驗證的測試用例:
1. 建立連接后驗證可用于發現的服務。
2. 驗證可用的服務,如設備信息服務 (UUID 0x180a) 以獲取制造商詳細信息、硬件、固件和軟件字符串數據、通用訪問配置文件 (UUID 0x01800)、通用屬性配置文件 (UUID 0x1801)。
3. 驗證自定義服務(如下圖所示的未知服務)是否可用。
4. 驗證服務的特性以及為讀取、寫入等特性啟用的屬性。
5. 使用數據讀取和寫入功能驗證發送和接收的定義數據。
結論:
隨著4.0版本支持的低功耗藍牙(BLE)的出現,由于消費市場對低功耗和低功耗的需求,現在它被廣泛應用于消費市場(BLE是由Bluetooth SIG發明并正式化的)。為了幫助確保在這些新的低功耗設計中成功實施低功耗藍牙,測試解決方案必須能夠根據藍牙標準快速且經濟高效地進行必要的測試。
審核編輯:郭婷
評論
查看更多