1. 程式人生 > >認識BLE 5協議棧 —— 直接測試模式

認識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測試的基本工作模式如下:

DTM_Test_Scheme

左側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之間的工作流程如下所示:

<傳送測試>

DTM_Transmit_Test

<接收測試>

DTM_Receive_Test

3. 命令與事件

命令與事件都是2位元組資料,在串列埠中傳輸時按照MSB優先傳輸。

3.1 命令

收發機測試命令的資料幀格式如下:

DTM_Test_CMD

設定測試和停止測試的命令資料幀格式如下:

DTM_Test_CMD_2

兩種資料格式的首位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事件的資料幀格式如下:

DTM_Event_Format_1

其中EV = 0。Response包含了狀態資訊。ST(Status)表示結果是成功還是失敗。

LE_Packet_Report_Event事件的資料幀格式如下:

DTM_Event_Format_2

其中EV = 1。Packet Count表示收到的資料幀總數,其有效範圍是0 – 32767。

4. 測試資料

當進行收發機測試時,RF資料格式不是標準的BLE資料格式,它無法被BLE主機掃描,僅能被BLE射頻測試裝置識別。

4.1 資料格式

對於非編碼型物理層裝置,測試資料格式如下:

DTM_Data_Format

對於編碼型物理層裝置,資料格式略有不同,增加了編碼相關的欄位。

測試時,資料不執行白化操作,不執行CRC計算並將其設定為常數值,前導碼和Sync Word也均設定為固定常數值。

4.2 資料PDU

資料PDU的格式如下:

DTM_PDU_Format

其中Payload的格式如下:

DTM_Payload_Format

第一部分Payload Type代表了測試資料的型別,可用的測試資料包括:

  • PRBS9
  • PRBS15
  • 有規則的0/1序列
  • 純0或純1序列

PRBS9表示9-bit的偽隨機數,PRBS15表示15-bit偽隨機數。