認識BLE 5協議棧 —— 直接測試模式
轉自 http://www.sunyouqun.com/2017/04/understand-ble-5-stack-direct-test-mode/
認識BLE協議棧 —— 直接測試模式
BLE協議充分考慮了裝置的測試問題,在協議棧層面提供了直接測試模式,用於執行BLE裝置的RF物理層一致性的測試。
直接測試模式(Direct Test Mode)常簡稱為DTM。
DTM測試的核心工作是令裝置在指定的頻率上傳送一段資料序列,在另一端使用測試裝置接收資料序列並給出測試報告,或者反過來測試裝置傳送一段資料序列,BLE裝置接收並給出測試報告。
測試報告中會給出通訊頻率的偏移量,頻率的功率,通訊丟包率PER(Packet Error Rate)等資訊,並根據這些資訊判斷BLE裝置的物理層是否滿足設計要求。
1. 工作模式介紹
DTM測試的基本工作模式如下:
左側DUT(Device Under Test)表示待測裝置,右側Upper Tester表示上位機測試裝置,通常使用PC代替,右側Lower Tester表示下位機測試裝置,通常是一臺專業的藍芽RF測試裝置。
上位機與DUT之間使用串列埠線連線,上位機發送測試命令,DUT執行指定的操作,並返回執行結果。串列埠至少應支援以下幾種波特率:1200、2400、9600、14400、19200、38400、57600、115200。
下位機接收DUT傳送的訊號,或向DUT傳送訊號,並給出報告。
值得注意的是,圖中DUT與下位機之間的連線既有實線又有虛線。實線指二者之間可以用一根同軸電纜傳輸RF訊號,虛線指可以使用RF訊號進行無線傳輸。使用同軸電纜,需要考慮介面處的阻抗匹配和功率損耗,使用無線傳輸則要考慮外部射頻干擾,需要在一個遮蔽箱或遮蔽室內進行測試才能保證準確。
如果RF測試裝置具有串列埠收發能力和資料處理能力,那麼該裝置可以脫離PC獨立完成全部測試任務。
2. 測試內容
PC向DUT傳送測試命令,具體如下:
測試命令 | 含義 |
---|---|
LE_TEST_SETUP | 設定測試 |
LE_TRANSMITTER_TEST | BLE裝置發射機測試 |
LE_RECEIVER_TEST | BLE裝置接收機測試 |
LE_TEST_END | 停止測試 |
DUT收到命令會向PC返回事件訊息,具體如下:
事件訊息 | 含義 |
---|---|
LE_STATUS | 收到命令後,DUT返回命令執行狀態 |
LE_PACKET_REPORT | 停止測試後,DUT返回測試報告 |
實際工作時,PC與DUT之間的工作流程如下所示:
<傳送測試>
<接收測試>
3. 命令與事件
命令與事件都是2位元組資料,在串列埠中傳輸時按照MSB優先傳輸。
3.1 命令
收發機測試命令的資料幀格式如下:
設定測試和停止測試的命令資料幀格式如下:
兩種資料格式的首位2bite都是CMD:
- CMD = 00b,表示該命令為Test Setup。
- CMD = 01b,表示該命令為Receiver Test。
- CMD = 10b,表示該命令為Transmitter Test。
- CMD = 11b,表示該命令為Test End。
Test Setup命令
Control = 0x00, Param = 0x00,表示重置測試引數。
Control = 0x02, Param = 0x01-0x04,設定不同的物理層。
Test End命令
Control = 0x00, Param = 0x00,表示停止測試。
Transmit Test命令
Frequency = 0x00 ~ 0x27,分別代表0-39通道頻率。
PKT = 00b ~ 11b,表示不同的0/1測試序列。
Length的低6位表示Payload的資料長度。
3.2 事件
事件只有兩種,一種是LE_Test_Status_Event事件,另一種是LE_Packet_Report_Event事件。
LE_Test_Status_Event事件的資料幀格式如下:
其中EV = 0。Response包含了狀態資訊。ST(Status)表示結果是成功還是失敗。
LE_Packet_Report_Event事件的資料幀格式如下:
其中EV = 1。Packet Count表示收到的資料幀總數,其有效範圍是0 – 32767。
4. 測試資料
當進行收發機測試時,RF資料格式不是標準的BLE資料格式,它無法被BLE主機掃描,僅能被BLE射頻測試裝置識別。
4.1 資料格式
對於非編碼型物理層裝置,測試資料格式如下:
對於編碼型物理層裝置,資料格式略有不同,增加了編碼相關的欄位。
測試時,資料不執行白化操作,不執行CRC計算並將其設定為常數值,前導碼和Sync Word也均設定為固定常數值。
4.2 資料PDU
資料PDU的格式如下:
其中Payload的格式如下:
第一部分Payload Type代表了測試資料的型別,可用的測試資料包括:
- PRBS9
- PRBS15
- 有規則的0/1序列
- 純0或純1序列
PRBS9表示9-bit的偽隨機數,PRBS15表示15-bit偽隨機數。