第一部分:HCI协议(七)HCI data format

七、HCI data format

1、HCI Command Packet

Opcode:操作码分为两部分:OCF(Opcode Command filed)和OGF(Opcode Group filed);其中OCF是10bit(0x0000-0x03FF),OGF是6bit(0x00-0x3F其中0x3F是vendor-vendor-specific debug commands)

Parameter_Total_Length:所有参数的总长度(单位是byte)

Parameter0-N:参数(byte的整数倍)

注意:HCI Command Packet的长度不能超过255(不包括HCI Command包头);OCF和OGF都是0x0的时候这个命令是Command Flow Control时候用的。

2、HCI ACL Data Packets

HCI ACL Data Packet有两种类型:Automatically-Flushable和Non-Automatically-Flushable;两者的区别在于是否根据automatic flush timer自动清理

Handle:12bit,从Connection Complete,

Synchronous Connection Complete, or LE Connection Complete events获取;范围0x000-0xEFF

PB Flag:2bit,Packet_Boundary_Flag,取值范围如下图所示:

BC Flag:2bit,Broadcast_Flag,取值范围如下图所示

Data_Total_Length:数据的总长度(单位是byte)

Data:ACL数据

3、HCI Synchronous Data Packets

HCI synchronous Data Packets就是SCO或者eSCO的数据

Connection_Handle:12bit,从Synchronous Connection Complete获取;范围0x000-0xEFF

Packet_Status_Flag:2bit,用来通知数据状态的,分为以下几种情况:

(1)Host端设置00

(2)Controller端,如果Erroneous_Data_Reporting parameter设置disable,则使用00;

(3)Controller端,如果Erroneous_Data_Reporting parameter设置enable,按照下面的方式报告:

00:SCO/eSCO数据都是正常的

01:SCO/eSCO数据中至少有一个无效数据包

10:SCO/eSCO数据全部丢失

11:SCO/eSCO数据中至少有一个数据包丢失

Reserved:2bit,使用00

Data_Total_Length:数据的总长度(单位是byte)

Data:synchronous 数据

4、HCI Event Packet

HCI Event Packets长度最大是255byte(不包括包头)

LE Controller使用sub-event来发送LE event,这个sub-event通常在第一个Event Parameter

Event Code:8bit,用来表示event类型,范围0x0-0xFF(0xFF是vendor-specific debug events)

Parameter_Total_Length:所有参数的总长度(单位是byte)

Event_Parameter0-N:参数(byte的整数倍)

5、HCI ISO Data packets

暂时不清楚,用到再细说

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值