2014年6月29日 星期日

[Bluetooth] HCI Packet Format 分析

HCI 共四種Packet Type(參考圖一),HCI Command和Event Packet只有單向功能,Command Packet只能從Host到Control,而Event只能從Control到Host,其餘兩型態軍是雙向。

圖一: HCI packet indicators

  •  HCI Command Packet 由一個OpCode、一個Parameter Total Length以及數個Parameter 所組成,最大封包是255 bytes。OpCode再分成OpCode Group Filed(OGF)和OpCode Command File(OCF)兩欄位,OGF是長度為6 bit,OCF則是剩餘的10bit的組成。其中,0x3F(00111111b)是OGF保留給廠商來執行Debug使用(vendor-specific debug commands),有些產商也會拿來當Firmware Upgrade使用。

圖二: HCI Command Packet
圖片來源 : Bluetooth 4.0 Spec


  • HCI Event Packet 由一個EventCode、一個Parameter Total Length以及數個Parameter 所組成,最大封包是255 bytes。 EventCode 範圍從0x00-0xFF,其中,0xFF(11111111b)是OGF保留給廠商來執行Debug使用(vendor-specific debug events)。

    圖三: HCI Event Packet
    圖片來源 : Bluetooth 4.0 Spec

Reference:
[1] bluetooth org
[2] BlueZ
[3] Bluetooth HCI Data format

沒有留言:

張貼留言