蓝牙核心技术概述(四):蓝牙协议规范(HCI、L2CAP、SDP、RFOCMM)

一、主机控制接口协议  HCI
蓝牙主机-主机控模型

7344de77f184697ecf865a60b3bca032115.jpg

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

0cb230d1cacc8ccf5519629d062bcc0f5e9.jpg

1、蓝牙控制器接口数据分组:指令分组、事件分组、数据分组
(1)、指令分组

6e6ddc0f7350e869bfeaf933d752f3f9081.jpg
如:Accpet Connection Request
Opcode为:0x0409
参数长度为: 07
参数中蓝牙地址为:00:0d:fd:5f:16:9f    
角色为:从设备  0x01
大端数据模式
指令为:09 04 07 9f 16 5f fd 0d 00 01
(2)、事件分组

498515ec3f5207ce649628531a1ab5a296c.jpg

36a22c50e0fd2e9117b704d63e73dfdd033.jpg

 如上图:
Opcode :0x0409
状态: 0x00
总长度: 4字节
命令状态:0x0f
(3)、数据分组
ACL 数据分组

注:PB  Packet_Boundary  BC Broadcast Flag
SCO 数据分组

(4)、RS232分组指示器:

2、HCI控制命令

(1)、链路控制指令

(2)、链路策略指令

(3)、主机控制器与基带指令

(4)、信息指令参数

(5)、状态指令参数

(6)、测试指令

(7)、错误代码

二、逻辑链路控制与适配协议  L2CAP
L2CAP位于基带之上,将基带的数据分组转换为便于高层应用的数据分组格式,并提供协议复用和服务质量交换等功能。L2CAP只支持ACL数据传输,不支持SCO数据。
L2CAP本身不提供加强信道可靠性和保证数据完整性的机制,其信道的可靠性依靠基带提供。
 

2ea5cffade56d5cdf165579a0288d068352.jpg

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信道的特性。

CL信道的L2CAP_PDU
 

如上图所示,一条L2CAP信令,1为L2CAP分组头,2为信令指令头,3为数据部分。

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

信令的其他操作如下:
2ad3d6335b9815fd3d3a5b8ea994831dfd4.jpg

 

7bb6ef31b54e25fe62c00c63da5a81269ed.jpg

(3)、QoS 服务质量

三、服务发现协议   SDP

SDP两种服务发现模式:
1)、服务搜索:查询具有特定服务属性的服务;
2)、服务浏览:简单的浏览全部可用服务。
(1)、PDU 格式:(协议数据单元)

(2)、服务记录表
SDP的服务记录表对每一个服务进行描述,每条记录包含服务句柄、一组服务属性:

a16810deeb7f68ded4b89176eea20dda91b.jpg

Service Record Attributes:服务记录;
Service Record Handle 服务句柄;
Attribute 服务属性;

9286ecf448c2c6faccaf48a9ca56c5b7cec.jpg

四、串口仿真协议   RFCOMM

为建立在串口之上的传统应用提供环境接口,使他们可以做比较少协议改动就可以在蓝牙无线通信无线链路上工作。多路串口仿真是RFCOMM的重要功能,通过多路复用器(multiplexer),一条L2CAP链路可以同时 多个串行应用。
两台设备间的串口仿真:
888d903eafcd020fec05f2c4d65ce557c04.jpg

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

flybirding10011

谢谢支持啊999

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值