用FTS分析藍牙數據包

1.簡介
  FTS軟件相當於藍牙的數據分析儀器,它可以抓取通過藍牙IC的數據包,從包中我們可以看到HCI,L2CAP等各層的封包數據,是一個十分有用的軟件。

2.HCI的command和event以及Data的格式
HCI Command Format:
用FTS分析藍牙數據包
HCI Event Format:
用FTS分析藍牙數據包
HCI ACL Data Format:
用FTS分析藍牙數據包
HCI SCO Data Format:
用FTS分析藍牙數據包

3.Reset Command與Command Completed Event實例
    Reset Command和Command Completed Event是一對成對出現的command和event。查詢手冊,Reset Command如下:
用FTS分析藍牙數據包
OCF爲0x0003,OGF爲0x03,return parameters定義如下:
用FTS分析藍牙數據包
可以看出,0x00代表reset成功,其餘失敗。
Reset Command執行後將返回Command Completed Event,攜帶status參數。
Command Completed Event定義如下:
用FTS分析藍牙數據包
攜帶的event parameter爲三個:Num_HCI_Command_packets,Command_Opcode和return_parameters
Num_HCI_Command_packets:表明controller要求host能夠發送的command packet的個數,如果爲0,表明controller禁止host發送command。
Command_Opcode和相應的HCI Command的Opcode域相同。
return_parameters即爲HCI Command要求返回的status

利用FTS軟件抓取實際藍牙通信中的HCI層數據包,以Reset command和Command Completed Event爲例,如下:
Reset Command:
用FTS分析藍牙數據包用FTS分析藍牙數據包
上面的圖是從軟件中截下來的,可以看到OpCode爲0x0c03,即OCF域爲0000000011(0x0003),OGF域爲000011(0x03)。因爲是Little Endian的字節順序,所以完整的OpCode爲0x0c03。因爲不攜帶command parameter,所以parameter total length爲0。
再看Command Completed Event:
用FTS分析藍牙數據包
用FTS分析藍牙數據包
可以看出,首先是Event Code,爲0x0e,其次爲parameter total length爲0x04,分別爲Num_HCI_Command_packets=0x02,OpCode與Reset Command一樣,爲0x0c03,return_parameter爲0x00,表示Reset command執行成功。

4.Read_BD_ADDR Command與Command Completed Event實例
首先看Read_BD_ADDR Comamd:
用FTS分析藍牙數據包
OCF爲0x0009,OGF爲0x04,返回的parameter爲satus和BD_ADDR兩個。
抓取實際的HCI Read_BD_ADDR Command包,如下:
用FTS分析藍牙數據包 用FTS分析藍牙數據包
OpCode域爲0x1009,其中OCF爲0000001001(0x0009),OGF爲000100(0x04)。因爲是Little Endian的字節順序,所以完整的OpCode爲0x0x1009因爲不攜帶command parameter,所以parameter total length爲0。
再看Command Completed Event:
用FTS分析藍牙數據包
用FTS分析藍牙數據包
首先是0x0e的EventCode,其次是ToralLength = 0x0A = 10,然後分別爲Num_HCI_Command_packets = 0x02,OpCode一樣爲0x1009,然後爲46個字節的BD_ADDR,分別爲00000000 00010000 00100111的LAP(0x271000);10000100的UAP(0x84);01001100 11100000的NAP(0xe04c);最後的00000000爲returned parameter,00000000代表Read_BD_ADDR Command執行成功。
發佈了71 篇原創文章 · 獲贊 30 · 訪問量 60萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章