传统蓝牙HCI Event(蓝牙HCI事件)详细介绍

一. 声明

本专栏文章我们会以连载的方式持续更新,本专栏计划更新内容如下:

第一篇:蓝牙综合介绍 ,主要介绍蓝牙的一些概念,产生背景,发展轨迹,市面蓝牙介绍,以及蓝牙开发板介绍。

第二篇:Transport层介绍,主要介绍蓝牙协议栈跟蓝牙芯片之前的硬件传输协议,比如基于UART的H4,H5,BCSP,基于USB的H2等

第三篇:传统蓝牙controller介绍,主要介绍传统蓝牙芯片的介绍,包括射频层(RF),基带层(baseband),链路管理层(LMP)等

第四篇:传统蓝牙host介绍,主要介绍传统蓝牙的协议栈,比如HCI,L2CAP,SDP,RFCOMM,HFP,SPP,HID,AVDTP,AVCTP,A2DP,AVRCP,OBEX,PBAP,MAP等等一系列的协议吧。

第五篇:低功耗蓝牙controller介绍,主要介绍低功耗蓝牙芯片,包括物理层(PHY),链路层(LL)

第六篇:低功耗蓝牙host介绍,低功耗蓝牙协议栈的介绍,包括HCI,L2CAP,ATT,GATT,SM等

第七篇:蓝牙芯片介绍,主要介绍一些蓝牙芯片的初始化流程,基于HCI vendor command的扩展

第八篇:附录,主要介绍以上常用名词的介绍以及一些特殊流程的介绍等。

另外,开发板如下所示,对于想学习蓝牙协议栈的最好人手一套。以便更好的学习蓝牙协议栈,相信我,学完这一套视频你将拥有修改任何协议栈的能力(比如Linux下的bluez,Android下的bluedroid)。

------------------------------------------------------------------------------------------------------------------------------------------

CSDN学院链接(进入选择你想要学习的课程):https://edu.csdn.net/lecturer/5352?spm=1002.2001.3001.4144

蓝牙交流扣扣群:970324688

Github代码:https://github.com/sj15712795029/bluetooth_stack

入手开发板:https://item.taobao.com/item.htm?spm=a1z10.1-c-s.w4004-22329603896.18.5aeb41f973iStr&id=622836061708

------------------------------------------------------------------------------------------------------------------------------------------

二. 蓝牙HCI Event汇总(部分)

在介绍蓝牙event之前我还是要啰嗦点,尽管前面的文章已经写了,但是不排除有人直接看到这份文档

HCI event是蓝牙芯片发送给协议栈的事件。HCI事件包的格式如下图所示:

Event code:唯一event编码,在后续的小节会介绍(是固定的)

Parameter Total Length:后续参数的长度

Parameter:event参数。

传统蓝牙EVENT(部分)
序号 EVENT 描述
0x01 Inquiry Complete Event 搜索完成
0x02 Inquiry Result Event 搜索结果
0x03 Connection Complete Event 连接完成
0x04 Connection Request Event 连接请求
0x05 Disconnection Complete 断开完成
0x06 Authentication Complete event 授权完成
0x07 Remote Name Request Complete event 获取远端蓝牙名称完成
0x08 Encryption Change event 加密模式改变完成
0x09 Change Connection Link Key Complete event 改变连接的link key完成
0x0A Master Link Key Complete event 管理Link key完成
0x0B Read Remote Supported Features Complete event 读取远端设备feature完成
0x0C Read Remote VersionInformation Complete event 读取远端版本完成
0x0D QoS Setup Complete event Qos setup完成
0x0E Command Complete event 命令完成
0x0F Command Status event 命令状态消息
0x10 Hardware Error event 蓝牙芯片硬件错误
0x12 Role Change event 角色切换事件
0x13 Number Of Completed Packets event 完成封包个数
0x14 Mode Change event 模式改变
0x15 Return Link Keys event 返回link key
0x16 PIN Code Request event PIN code请求
0x17 Link Key Request event Link key请求
0x18 Link Key Notification event Link key通知
0x19 Loopback Command event Loopback模式返回的事件
0x1A Data Buffer Overflow event 芯片buffer爆掉
0x1B Max Slots Change event 最大slot变化
0x1C Read Clock Offset Complete event 读取时钟偏移完成
0x1D Connection PacketType Changed event  连接封包类型变化
0x1E QoS Violation event Qos违规
0x22 Inquiry Result with RSSI event  带RSSI的搜索结果
0x2C Synchronous Connection Complete event SCO连接完成
0x2F Extended Inquiry Result event 带EIR的搜索结果
0x31 IO Capability Request event IO capability请求
0x32 IO Capability Response event IO capability回复
0x33 User Confirmation Request event SSP配对方式用户确认请求
0x36 Simple Pairing Complete event SSP配对完成

你可能感兴趣的:(蓝牙协议剖析,蓝牙协议栈精讲)