CSR HCI Extension Packet

CSR使用一個 HCI Extension 包裹 其 BCCMD 命令
基本的結構就是 OGF: 0x03F, OCF:0x00 => OpCode:0xFC00
BYTE cmdArray[] = { 0x00, 0x0FC, parameters total length, payload description, payload };
其 HCI_EVENT 則為下列結構
BYTE eventArray[] = {0xFF, parameters total length, payload decription, payload }; 


Payload Description
MSB
  • bit 7, Last Fragment
  • bit 6, First Fragment
  • bit 5~0, Channel ID
LSB
refer CSR HCI Extensions, July 2004.
 


而BCCMD 使用 Channel 2,BCCMD 基本結構是 是被 CSR 稱為 Message,由 5 個 UINT 16bits 的Head 開始

  • Type
    • GETREQ, 0x0000
    • GETRESP, 0x0001
    • SETREQ, 0x0002
  • Length, 整個 Message 的長度
  • Seq. No
  • Varid, 用來識別 CSR 內部獨特的資料庫 像是 PS Key 等, 0x0000 代表沒有使用
  • Status, 在 GETREQ 與 SETREQ 永遠是 0x0000(0K)
    • OK, 0x0000
    • NO_SUCH_VARID, 0x0001
    • TO_BIG, 0x0002
    • NO_VALUE, 0x0003
    • BAD_REG, 0x0004
    • NO_ACCESS, 0x0005
    • READ_ONLY, 0x0006
    • WRITE_ONLY, 0x0007
    • ERROR, 0x0008
    • PERMISSION_DENIED, 0x0009

一個設定Radio TX testing 範例就是如下

Host –> BlueCore(SETREQ)

    1. BCCMD. TYPE:  SETREQ(0x0002)
    2. BCCMD. LENGTH:  0x0009
    3. BCCMD. SEQ_NO:  ANY from HOST
    4. BCCMD. VARID:  RADIO_TEST(0x5004 or 20484)
    5. BCCMD. STATUS: OK(0x0000)
    6. BCCMD. RADIO_TEST.TYPE: TX_START (0x0001)
    7. BCCMD. RADIO_TEST.TX_START.FREQUENCY(2402 ~ 2495) (Mhz)
    8. BCCMD. RADIO_TEST.TX AMP. default (0xff32)
    9. BCCMD. RADIO_TEST.MODULATION: default (0x0000)

BYTE bccmd[18] = { 0x02, 0x00, 0x09, 0x00, 0x01, 0x00, 0x04, 0x05, 0x00, 0x00, 0x01, 0x00, 0x62, 0x09, 0x32, 0xFF, 0x00, 0x00};

BYTE hci_cmd[] = { 0x00, 0xFC, 19, 0x02, include bccmd};

BlueCore –> Host (GETRESP)

    1. BCCMD. TYPE:  GETRESP(0x0001)
    2. BCCMD. LENGTH:  0x0009
    3. BCCMD. SEQ_NO:  same SETREQ
    4. BCCMD. VARID:  RADIO_TEST(0x5004 or 20484)
    5. BCCMD. STATUS: OK(0x0000)
    6. BCCMD. RADIO_TEST.TYPE: TX_START (0x0001)
    7. BCCMD. RADIO_TEST.TX_START.FREQUENCY(2402 ~ 2495) (Mhz)
    8. BCCMD. RADIO_TEST.TX AMP. default (0xff32)
    9. BCCMD. RADIO_TEST.MODULATION: default (0x0000)

BYTE hci_event[] = { 0xFF, 19, 0x02, 0x01, 0x00, 0x09, 0x01, 0x00, 0x04, 0x05, 0x00, 0x00, 0x01, 0x00, 0x62, 0x09, 0x32, 0xff, 0x00, 0x00 };



Click to Original Size

廣告

一個回應 to “CSR HCI Extension Packet”

  1. […] HCI + CSR HCI + BCCMD Pakcet demo program 之前在 CSR Extension Packet 把 CSR HCI 的 Vendor Command Format 做了一番剖析 今天寫了一個 Packet 產生的程式 […]

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

您的留言將使用 WordPress.com 帳號。 登出 / 變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 / 變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 / 變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 / 變更 )

連結到 %s

%d 位部落客按了讚: