ble HCI 数据格式
文章目录
- 一、H4 串口设置
- 二、hci 数据类型
- 1. cmd
- a. OGF
- b. OCF
- c. Parameter Total Length
- d. Parameter
- 2. acl
- a. Handle
- b. PB flag
- c. BC flag
- d. Data total length
- 3. sco
- a. Handle
- b. Packet_Status_Flag
- c. Data_Total_Length
- 4. event
- a. Event code
- b. Parameter Total Length
- Parameter
一、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 对应的参数不同
ble HCI 数据格式相关推荐
- BLE数据报文格式解析
1.数据链路层报文结构 报文的基础是数据链路层的报文,其它报文都是从此展开的,BLE数据链路层数据格式如下: 后期补充:在最新的core spec 5.2中,有1M PHY和2M的PHY,对应前导符变 ...
- BLE蓝牙断开连接原因对照表
BLE HCI STATUS(通常用于表示蓝牙断开原因) 查阅BLE_core_5.0的Vol2.Part D: Error Codes章节 或者看蓝牙厂商提供的头文件ble_hci.h #defin ...
- Android Bluedroid source code analysis
Android Bluedroid source code analysis 图1:应用层到协议层 Android的bt整体结构如图1所示: 应用层:使用蓝牙协议的各种应用,例如:蓝牙电话.音乐等. ...
- android蓝牙错误码8,如何解决BluetoothGatt:Android中发生android.os.DeadObjectException错误?...
我按照页面Bluetooth Low Energy开发Android 4.3的蓝牙低功耗. 我已经可以打开蓝牙,扫描设备并连接到BLE设备. 但是,在尝试连接到device(device.connec ...
- 涂鸦T2-U开发板快速入门
文章目录 T2-U模组概述 特性 1.环境搭建 2.SDK下载 3.编译 3.1. 命令编译 3.2. 命令编译清除 3.3. Wind-IDE 编译 3.4.编译完成 4.下载 4.1. GUI工具 ...
- 三 蓝牙低功耗(BLE)协议栈 之 HCI层
一 HCI介绍 HCI (Host Controller interface), 为Host访问Controller提供一组标准的接口. 主要完成3个任务: Host通过HCI发送命令给Control ...
- BLE主机控制器接口层(HCI)数据结构
HCI上传输的5种数据: HCI Command packet : Host层发送给Controller的命令,只能由Host发出. HCI ACL Data packet: Controller上报 ...
- ble zephyr lbs样例,一上电进入广播状态,发送的HCI命令
bt_send的函数. BT_HCI_OP_RESET 0x03 0x0c 00 BT_HCI_OP_READ_LOCAL_FEATURES ...
- 蓝牙解析(part5):BLE的广播通信
转自Wowo大神的http://www.wowotech.net/bluetooth/ble_broadcast.html 1. 前言 大家都知道,相比传统蓝牙,蓝牙低功耗(BLE)最大的突破就是加大 ...
- [BLE]低功耗蓝牙介绍
一.BLE的协议栈框架 BLE协议栈包括两个部分,主机(Host)和控制器(Controller).二者通过HCI(Host Controller Interface)标准接口相互通信.常用的单芯片单 ...
最新文章
- html2canvas文字重叠(手机端)
- linux下makefile使用
- 被上海爱立信录取,GL
- ArrayList遍历的同时删除
- Mybatis的修改列与重命名
- 清空数据库部分表的数据 Oracle
- 第六天,字典Dictionary
- 学生信,不是贪多的,而是求精的!
- leetcode 1189 python
- (91)多人投票器(五人投票器)
- Leetcode每日一题:349.intersection-of-two-arrays(两个数组的交集)
- python入门经典-入门python有什么好的书籍推荐?
- golang 数组组合成最小的整数_Redis之整数集合底层实现
- Scala 基础(7)—— 函数字面量和一等函数
- 盘点澳洲留学性价比较高城市
- PHY--PDCCH
- LTE ue连接enb数据包流程解析
- 解析 Github 的默认头像
- SpringData Manytomany 中间表添加额外字段
- 读jQuery 权威指南[5]-插件
热门文章
- 【项目管理/PMP/PMBOK第六版/新考纲】计算题24道带答案解析!
- python中temp的用法_请问Python里temp是什么意思?
- 鹿客、小米、智汀、德施曼这几款热门智能门锁测评:谁最安全?谁最便捷?
- 错误 请再次按下快门释放按钮
- LaTex 在线编辑编译,生成PDF —— Overleaf
- uva 10105 Polynomial coefficients
- 标题 多媒体计算机的标准是什么,多媒体技术习题答案
- 用计算机制作动画的方法,电脑怎么制作flash动画?电脑制作flash动画的方法
- java 世界杯自动分组_2018世界杯分组抽签详解
- 黄色一般表示碳膜电阻,蓝色金属膜,灰色保险电阻