小白学习蓝牙第二章——蓝牙的系统构成
重要名词介绍
1)BT Controller:此部分指的就是蓝牙芯片,包括BR/EDR芯片(蓝牙2.1芯片),AMP芯片(蓝牙3.0芯片),LE芯片(蓝牙4.0芯片),后续我们将4.0以下的统称为传统蓝牙,4.0以上的统称为低功耗蓝牙,在芯片层面存在两种模式:
- 单模蓝牙芯片:单一传统的蓝牙芯片,单一低功耗蓝牙芯片。
- 双模蓝牙芯片:同时支持传统蓝牙和低功耗蓝牙的芯片。
2)BT Host:蓝牙协议栈(重点关注内容)
简单架构
详细架构
层级 | 释义 |
---|---|
HW层 | 蓝牙芯片层 |
Transport层 | 此部分在硬件接口(UART、USB、SDIO)实现HOST与CONTROLLER的交互 |
HOST层 | 蓝牙协议栈,重点内容。 |
HW层主要包括以下内容:
英文名 | 全称 | 中文名 | 释义 |
---|---|---|---|
RF | RADIO | 射频层 | 本地蓝牙数据通过射频发送给远端设备,并且通过射频接受来自远端蓝牙设备的数据。 |
BB | BASEBAND | 基带层 | 进行射频信号与数字或者语音信号的相互转化,实现基带协议和其它底层连接规程。 |
LMP | LINK MANAGER PROTOCOL | 链路管理层 | 负责管理蓝牙设备之间的通信,实现链路的建立、验证、链路配置等操作。 |
HCI | HOST CONTROLLER INTERFACE | 主机控制器接口层 | HCI层在芯片以及协议栈都有,芯片层面的HCI负责把协议栈的数据做处理,转换为芯片内部动作,并且接收远端的数据,通过HCI报告给协议栈。 |
BLE PHY | BLE的物理层 | ||
BLE LL | BLED的链路层 |
TRANSPORT层主要包括:
协议 | 释义 |
---|---|
H2 | USB的transport |
H4 | UART的transport |
H5 | UART的transport |
BCSP | UART的transport |
SDIO | 暂时未知 |
其中H4,H5,BCSP的主要差别在于H4需要BT CHIP UART_TX/UART_RX/UART_CTS/UART_RTS/VCC/GND接到MCU,而H5,BCSP只需要BT CHIP的UART_TX/UART_RX/VCC/GND接到MCU就可以通信。
HOST层的协议主要包括有:
协议简称 | 中文名 | 介绍 |
---|---|---|
HCI | 主机控制层接口 | 主要负责透过transport把协议栈的数据发送给蓝牙芯片,并且接受来自蓝牙芯片的数据 |
L2CAP | 逻辑链路控制与适配协议 | 将ACL数据分组交换为便于高层应用的数据分组格式,并提供协议复用和服务质量交换等功能。 |
SDP | 服务发现协议 | 为应用程序提供了一种方法来发现哪些服务可用,并确定这些可用服务的特征 |
RFCOMM | 串口仿真协议 | 上层协议蓝牙电话,蓝牙透传SPP等协议都是直接走的RFCOMM |
OBEX | 对象交换协议 | 蓝牙电话本,蓝牙短信,文件传输等协议都是走的OBEX |
HFP | 蓝牙免提协议 | |
HSP | 蓝牙耳机协议 | 最开始的蓝牙耳机协议,目前已经没有产品在用这个了吧,至少我没有看到了。算是一个简化版的HFP。 |
SPP | 蓝牙串口协议 | |
IAP | 苹果的特有协议,分为IAP1/IAP2,一般做Carplay或者iPod功能的人肯定接触过这块 | |
PBAP | 蓝牙电话本访问协议 | |
MAP | 蓝牙短信访问协议 | |
OPP | 对象推送协议 | |
AVCTP | 音视频控制传输协议 | |
AVDTP | 音视频分布传输协议 | 是A2DP的底层 |
HID | 人机接口协议 | HID还是有很多广泛的用途的,比如蓝牙鼠标,蓝牙键盘,蓝牙自拍杆,蓝牙手柄等 |
A2DP | 蓝牙音乐协议 | |
AVRCP | 蓝牙音乐控制协议 | |
ATT | 蓝牙属性协议 | |
GATT | 蓝牙通用属性协议 | |
SM | 蓝牙BLE安全管理协议 |