ble HCI 数据格式


一、H4 串口设置

  • 数据位:8bit
  • 奇偶校验位:无
  • 停止位:1bit
  • 硬件流控:RTS/CTS

二、hci 数据类型

  • 0x01 - HCI CMD: 由蓝牙协议栈发送给芯片的命令
  • 0x02 - HCI ACL: 蓝牙协议栈跟蓝牙芯片双向交互的普通数据
  • 0x03 - HCI SCO: 蓝牙芯片跟蓝牙协议栈双向交互的通话/语音识别等音频数据
  • 0x04 - HCI EVENT: 由蓝牙芯片上报给蓝牙协议栈的事件
  • 0x05 - HCI ISO:(core5.2添加)蓝牙协议栈跟蓝牙芯片双向交互的 LE audio 等音频数据

1. cmd

在这里插入图片描述

a. OGF

  • 0x01: Link Control commands,控制蓝牙芯片跟remote沟通
  • 0x02: Link Policy commands,比如转换角色等
  • 0x03: Controller and Baseband commands,控制本地芯片跟基带,如 reset 本地芯片等
  • 0x04: Informational parameters,读取信息,比如读取本地芯片的LMP版本,支持的command, 蓝牙地址等
  • 0x05: Status parameters,状态参数,比如读取RSSI等
  • 0x06: Testing commands,测试命令,比如让芯片进入测试模式(DUT,device under test)
  • 0x08: LE Controller commands,BLE 的命令
  • 0xFF: Vendor-specific Debug commands,芯片厂商为了扩展core文档的HCI command定义

b. OCF

每个 OGF 下都有一堆的 OCF 定义

c. Parameter Total Length

后续参数的长度,不包括OGF,OCF和自己

d. Parameter

不同 command 对应的参数不同

在这里插入图片描述

2. acl

在这里插入图片描述

a. Handle

连接句柄,对应某一个对端设备,用于蓝牙连接后跟对端设备交互ACL数据,ACL为上层L2CAP层的应用数据

b. PB flag

上层数据(L2CAP),是否是分包数据:0b10 - 首包,0b01 - 后续包

c. BC flag

是否为广播:0b00 - 点对点,0b01 - BR/EDR 广播,BLE不使用此字段

d. Data total length

后续 Data 长度,不包括handle,PB flag, BC flag 和 自己

在这里插入图片描述

分包示例:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. sco

在这里插入图片描述

a. Handle

连接句柄,对应某一个对端设备,用于蓝牙连接后跟对端设备交互SCO音频数据

b. Packet_Status_Flag

c. Data_Total_Length

后续 Data 的长度

4. event

在这里插入图片描述

a. Event code

唯一的 event编码

b. Parameter Total Length

后续参数的长度,不包括Event Code和自己

Parameter

每个 Event 对应的参数不同

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值