2024年12月26日 星期四

MDBT50Q-CX-40做為藍牙封包分析工具的使用說明

藍牙技術日益普及,應用場景廣泛。然而,在開發過程中,開發者常常遇到各類問題。這些問題可能來自於硬體的不穩定性、軟體版本的不兼容性、環境干擾等。準確識別問題的根源並找到有效的解決方案,是開發過程中的關鍵之一。


常見的不確定性問題

連線不穩定:藍牙裝置之間的連線容易受到外界干擾,如其他無線訊號、物理障礙物。
配對問題:不同裝置之間的藍牙配對過程可能出現失敗,導致無法建立連線。
資料傳輸錯誤:藍牙封包在傳輸過程中可能出現遺失或損壞,導致資料不完整或錯誤。
相容性問題:不同版本的藍牙協議之間可能存在不兼容問題,影響裝置的互操作性。

問題解析方法

在程式開發過程中,設備間可能會出現訊號異常問題,如傳輸速度受限、資料遺漏、無法連線或資料長度超出藍牙規範等。由於藍牙訊號以光速傳播於空中,無法透過導線直接檢測,需特定軟硬體來捕捉與分析訊號。

為快速定位並解決問題,Nordic 提供與 Wireshark 結合的韌體,可燒錄至 Raytac MDBT50Q-CX-40 Dongle,透過 USB 在電腦接收與分析空中的藍牙訊號。以下介紹如何設定該 Dongle 及環境配置。


Dongle FW燒錄

1. 到下列網址下載nRF Sniffer for Bluetooth LE並解壓縮:https://www.nordicsemi.com/Products/Development-tools/nRF-Sniffer-for-Bluetooth-LE

2. 在解壓縮的目錄中我們可以找到sniffer_nrf52840dongle_nrf52840_4.1.1.hex;我們需要燒錄這個Firmware到MDBT50Q-CX-40。









3. 按住MDBT50Q-CX-40 Dongle按鍵後插入PC USB插槽,當LED亮起時即進入bootloader,在此模式我們可以用nRF Programmer來燒錄。


4. 開啟nRF Programmer依下圖的方式操作即可將Firmware燒錄到Dongle中:
– 選擇要燒錄程式的裝置:







– MDBT50Q-CX-40 Dongle進入open bootloader時所產生的裝置名稱:







– 將要燒錄的Firmware檔案加入到programmer中:







– 選擇要燒錄的Firmware – sniffer_nrf52840dongle_nrf52840_4.1.1.hex











按Write鍵即可將Firmware燒錄到MDBT50Q-CX-40中:

再按SELECT DEVICE可以看到Dongle名稱已變成nRF Sniffer for Bluetooth即已燒錄成功:







Wireshark軟體環搭建步驟

1. 到下列網址下載nRF-Util並安裝:

https://www.nordicsemi.com/Products/Development-tools/nRF-Util

2. 安裝完成後在命令提示字元視窗中使用nrfutil list查看有沒有ble-sniffer的項目,如果沒有可以使用下列的命令安裝:nrfutil install ble-sniffer











3. 到下列網址下載Wireshark並安裝:

https://www.wireshark.org/download.html


4. 安裝完成後依下列設定:Help → About Wireshark → Folders












5. 從Personal Extcap path的Location字串開啟extcap目錄:













6. 將之前下載nrf_sniffer_for_bluetooth_le_4.1.1\extcap中的檔案複製到Wireshark\extcap中,關閉Wireshark應用程式,並重新開啟:











7. 可以看到dongle的interface左邊有一個可設定的圖示出現:
















8. Edit → Configuration Profiles → Import → From Directory → 選取nrf_sniffer_for_bluetooth_le_4.1.1\Profile_nRF_Sniffer_Bluetooth_LE目錄後按選擇資料夾:



















9. Profile已被匯入,按確定鍵:


























到此所有設定都已完成。























藍牙封包抓取與分析
啟動程式後可以看到下列的裝置及Dongle設定沒有問題,滑鼠點兩下即可進入抓取封包程序:












如果您要抓取PHY=125K可以使用下列的設定:
















封包分析方法
在Wireshark從Device中選譯您要抓取廣播封包的設備進行分析:


















實戰案例
1. 客戶的平板與我們的AT Command連線後傳送超過20bytes就會斷線:透過sniffer分析結果後,才發現設備端要求求長度為251bytes,但平板TX只能設為27bytes:

























2. 廣播Device Name加入了不可見字元,用手機APP可以連接,但是使用Central的code卻連不上:
從下圖sniffer介面中可看到device name的名稱只有11,而Length=13,
實際資料長度Type length + Device Name = 1 + 11 = 12,顯然是程式的廣播名稱長度有問題。
























3. 參數設置不正確造成Throughput無法提升或資料接收不正確、封包斷開,下圖是正確的設置後大量傳送資料,可以看出Protocol Length是251且傳送資料間隔規律,才可達到最佳的Throughput。











總結
通過掌握硬體和軟體環境的搭建方法,並熟練應用封包抓取和分析工具,可以有效提高開發效率,並打造出高性能的藍牙應用。

參考資料


Edited by Business Development Manager: Mr. Tony Yin
Technical guidance provided by R&D Manager: Mr. Stanley Huang


Raytac Corporation 勁達國際電子股份有限公司
A Bluetooth, Wi-Fi, and LoRa Module Maker based on
Nordic nRF54; nRF53: nRF52; nRF51; nRF7002
Semtech Specification: SX1262

Bluetooth Specification: BT6.0 ; BT5.4 ; BT5.3 ; BT5.2.
Wi-Fi Specification: Wi-Fi 6
LoRa Specification: LoRaWAN

All products are FCC/IC/CE/Telec/KC/RCM/SRRC/NCC/WPC Pre-Certified.
Tel: +886-2-3234-0208

沒有留言:

張貼留言