文章轉載自:http://www.sunyouqun.com/2017/04/page/3/
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偽隨機數。
(完)