[蓝牙] 蓝牙核心技术概述(四):蓝牙协议规范1

[复制链接]
1037|26
 楼主 | 2019-12-8 11:48 | 显示全部楼层 ||阅读模式
蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)关键词:蓝牙核心技术协议  HCI  L2CAP SDP RFCOMM

作者:xubin341719(欢迎转载,请注明作者,请尊重版权,谢谢!)
欢迎指正错误,共同学习、共同进步!!
下载链接:Bluetooth PROFILE SPECIFICATIONS (基本涵盖所有蓝牙协议)、buletooth core 2.1-4.0 SPECIFICATION(三蓝牙版本的核心协议v2.1\v3.0\v4.0)、蓝牙核心技术与应用 马建仓 版(蓝牙协议相关初学者必读,开发者参考)
————————————————
版权声明:本文为CSDN博主「xubin341719」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xubin341719/article/details/38305331


使用特权

评论回复
 楼主 | 2019-12-8 11:49 | 显示全部楼层
一、主机控制接口协议  HCI
蓝牙主机-主机控模型
216795dec72b24c951.png

蓝牙软件协议栈堆的数据传输过程:
97855dec72b8c629a.png

使用特权

评论回复
 楼主 | 2019-12-8 11:49 | 显示全部楼层
1、蓝牙控制器接口数据分组:指令分组、事件分组、数据分组
(1)、指令分组
56515dec72ce54cb8.png
453845dec72d356257.png
如:Accpet Connection Request
Opcode为:0x0409
参数长度为: 07
参数中蓝牙地址为:00:0d:fd:5f:16:9f       
角色为:从设备  0x01
大端数据模式
指令为:09 04 07 9f 16 5f fd 0d 00 01
————————————————
版权声明:本文为CSDN博主「xubin341719」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xubin341719/article/details/38305331

使用特权

评论回复
 楼主 | 2019-12-8 11:50 | 显示全部楼层
(2)、事件分组

172725dec72e911384.png
658175dec72ee91445.png

如上图:
Opcode :0x0409
状态: 0x00
总长度: 4字节
命令状态:0x0f

使用特权

评论回复
 楼主 | 2019-12-8 11:51 | 显示全部楼层
(3)、数据分组
ACL 数据分组
659115dec73146a335.png
注:PB  Packet_Boundary  BC Broadcast Flag
SCO 数据分组
32615dec7322da78b.png

使用特权

评论回复
 楼主 | 2019-12-8 11:51 | 显示全部楼层
(4)、RS232分组指示器:

755485dec733b795fa.png

使用特权

评论回复
 楼主 | 2019-12-8 11:52 | 显示全部楼层
2、HCI控制命令

(1)、链路控制指令
203435dec735bcb957.png
849935dec7371b564e.png
98985dec737ec5b5b.png

使用特权

评论回复
 楼主 | 2019-12-8 11:53 | 显示全部楼层
(2)、链路策略指令
86975dec73a7cb0ef.png
556105dec73b501098.png

使用特权

评论回复
 楼主 | 2019-12-8 11:55 | 显示全部楼层
(3)、主机控制器与基带指令
921835dec73ed60b5b.png
134695dec740419ee3.png
472085dec741d4d7f1.png
627105dec742fe0b76.png
131315dec743c8602c.png

使用特权

评论回复
 楼主 | 2019-12-8 11:56 | 显示全部楼层
(4)、信息指令参数

640115dec745af3c93.png

使用特权

评论回复
 楼主 | 2019-12-8 11:56 | 显示全部楼层
(5)、状态指令参数

546485dec746f1f999.png

使用特权

评论回复
 楼主 | 2019-12-8 11:56 | 显示全部楼层
(6)、测试指令

30365dec748559daf.png

使用特权

评论回复
 楼主 | 2019-12-8 11:57 | 显示全部楼层
(7)、错误代码

525915dec749fc4605.png
55495dec74af8603a.png

使用特权

评论回复
 楼主 | 2019-12-8 11:57 | 显示全部楼层
二、逻辑链路控制与适配协议  L2CAP
L2CAP位于基带之上,将基带的数据分组转换为便于高层应用的数据分组格式,并提供协议复用和服务质量交换等功能。L2CAP只支持ACL数据传输,不支持SCO数据。
L2CAP本身不提供加强信道可靠性和保证数据完整性的机制,其信道的可靠性依靠基带提供。
354565dec74c0b6f56.png
————————————————
版权声明:本文为CSDN博主「xubin341719」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xubin341719/article/details/38305331

使用特权

评论回复
 楼主 | 2019-12-8 11:58 | 显示全部楼层
1、协议复用:底层传输协议没有提供对高层协议的复用机制,因而L2CAP支持高层协议复用,L2CAP层可以区分其上的SDP、RFCOMM、TCS等。

2、分段重组:L2CAP层帮助实现基带的短PDU和高层的长PDU相互传输,L2CAP本身不完成任何PDU的分段重组,具体的分段重组有低层和高层来完成。

3、服务质量 Qualityof Serivce 信息的交换:蓝牙建立连接的过程中,L2CAP允许交互蓝牙所期望的服务质量,建立完成后,通过监视资源的使用情况,来保证服务质量。

4、组抽象:L2CAP忽略地址组概念,他只关心数据。

L2CAP信道有三种类型:

A、面向连接信道:Connection-OrientedCO,用于两个设备之间的数据通信。

B、无连接信道:Connection-LessCL,用来向一组设备广播方式传输数据。CID为固定值:0x0002。

C、信令信道:Signaling,用于创建CO通道,可以通过协商改变CO信道的特性。
————————————————
版权声明:本文为CSDN博主「xubin341719」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xubin341719/article/details/38305331

使用特权

评论回复
 楼主 | 2019-12-8 11:59 | 显示全部楼层
CL信道的L2CAP_PDU

423035dec74fe87fe6.png

PSM为 协议/服务复用器Protocol/Service Multiplexer,一般为SDP、RFCOMM、TCS等中介协议复用。小于0x1000的值,0x0001对应SDP,0x0003对应RFCOMM、0x0005对应TCS。

使用特权

评论回复
 楼主 | 2019-12-8 12:00 | 显示全部楼层
(1)、蓝牙逻辑链路控制与适配协议信令:
L2CAP的信令通道的CID为0x0001

信令指令分组:
361385dec756307285.png
 

信令指令格式:
728065dec756ed9591.png

248675dec7576b5c24.png

如上图所示,一条L2CAP信令,1为L2CAP分组头,2为信令指令头,3为数据部分。
————————————————
版权声明:本文为CSDN博主「xubin341719」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xubin341719/article/details/38305331

使用特权

评论回复
 楼主 | 2019-12-8 12:01 | 显示全部楼层
L2CAP:

         Role:Master

         Address:11

         PDULength: 6  //指令的长度,值为06 00

         ChannelID: 0x0001  (Signaling)//L2CAP的信令通道,值为01 00

         Code:Information request//信息请求,值为0a

         Identifier:1//标识符,值为01

         CommandLength: 2//命令长度,值为02 00

         InfoType:Extended features supported//02 00

所以这条指令完整的为:

06 00 01 00 0a 01 02 00 02 00
————————————————
版权声明:本文为CSDN博主「xubin341719」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xubin341719/article/details/38305331

使用特权

评论回复
 楼主 | 2019-12-8 12:02 | 显示全部楼层
信令的其他操作如下:
247565dec75ae0fe71.png

L2CAP信令指令码:

792925dec75bc92c77.png

使用特权

评论回复
 楼主 | 2019-12-8 12:02 | 显示全部楼层
1)、连接请求Connection_Request Code=0x02
17365dec75d49505c.png 例如:SDP 连接请求
493705dec75ee88ea4.png
如上红框所示:
155465dec7600ae29c.png

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

论坛热帖

在线客服 快速回复 返回顶部 返回列表