蓝牙协议栈(Bluetooth stack)简介

本文深入浅出地介绍了蓝牙协议栈,包括HCI层的控制与分组,L2CAP层的连接与信令,SDP服务发现,以及GAP、RFCOMM、A2DP等关键Profile的解析。
摘要由CSDN通过智能技术生成

1 前言

 本文只要对蓝牙协议栈做一个简单介绍,包含hci层、acl链路、

l2cap层,sdp服务及几个常见的profile,让初学蓝牙协议栈的人
对整个蓝牙协议栈有一个整体框架的了解。

2 HCI层

2.1 Hci命令及应答的控制

由于不同的hci命令对结果有不同的处理,有的不需要结果,有些需要

等待结果后才能执行下一步动作,有些在一定状态下才有效,对这
样在hci层,都有一套机制,每发送一个命令,都会先检查当前是否
可以发送该命令(有时hci controller当前不能接收命令时,也不能
发送),若命令可以发送,检查该命令是否一定需要等待结果,并
且等待结果的超时时间是多少,然后启动一个定时器监测该命令的
返回结果,若超时还没有结果,就执行命令超时处理。

2.2 hci分组

《蓝牙协议及其源代码分析》 208页
《bluetooth_Core_v4.2.pdf》779页
《蓝牙协议及其源代码分析》该书可以购买或从网上下载,这里标
志的是网上下载的版本,非完整版本,若对不上号,自己找对应位
置。
《bluetooth_Core_v4.2.pdf》下载地址:
https://www.bluetooth.org/DocMan/handlers/DownloadDoc.ashx?doc_id=286439

2.3 HCI CONFIGURATION PARAMETERS

《bluetooth_Core_v4.2.pdf》787页

2.4 链路控制指令

《蓝牙协议及其源代码分析》 214页
《bluetooth_Core_v4.2.pdf》813页

2.5 链路策略命令

《蓝牙协议及其源代码分析》 216页
《bluetooth_Core_v4.2.pdf》926页

2.6 主机控制器和基带命令

《蓝牙协议及其源代码分析》 216页
《bluetooth_Core_v4.2.pdf》951页

2.7 信息参数命令

《蓝牙协议及其源代码分析》 218页
《bluetooth_Core_v4.2.pdf》1097页

2.8 状态参数命令

《蓝牙协议及其源代码分析》 218页
《bluetooth_Core_v4.2.pdf》1110页

2.9 测试命令

《蓝牙协议及其源代码分析》 218页
《bluetooth_Core_v4.2.pdf》1138页

2.10 事件

《蓝牙协议及其源代码分析》 219页
《bluetooth_Core_v4.2.pdf》1152页

2.11 BLE控制器命令

《bluetooth_Core_v4.2.pdf》1271页

3 ACL链路

L2CAP的通信是基于ACL链路的,两个蓝牙设备之间只有一条ACL链

路,由Connect Handle标识。在进行L2CAP的任何通信之前,都
需要先建立ACL链路,两个蓝牙设备的配对,先建立一条ACL通
码。ACL链路建立后,就会进行L2CAP的一些交互,获取信息,但
需要基于SDP profile获取信息时,L2CAP就会建立一条SDP逻辑链
路(由Channel ID标识),SDP的交互就在L2CAP建立的Channel
上进行,SDP交互完成后,会断开SDP的逻辑链路,若后面没有其
它再需要交互的,ACL链路也会断开,但由于已经配对过,上层会
保存ACL配对的信息。

4 L2CAP层

4.1 l2cap层位置

这里写图片描述

4.2 L2CAP包

《bluetooth_Core_v4.2.pdf》1737页
这里写图片描述

L2CAP包的类型有CID(Channel ID)确定:
0x0000 Null identifier(不使用)
0x0001 L2CAP Signaling channel(信令信道)
0x0002 Connectionless channel(无连接信道,用于广播)
0x0003 AMP Manager Protocol

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值