经典蓝牙架构分层及协议总览

简介: 经典蓝牙架构分层及协议总览

经典蓝牙架构分层及协议总览

叶苏(何苏平)创建,最后修改于2023-02-08 11:41:06



一、 分层架构图




网络异常,图片无法展示
|





二、 协议介绍



1. Controller 层协议介绍



Controller 是蓝牙芯片层: 包含一下几个部分:



1)RF(RADIO)  : 射频层,本地蓝牙数据通过射频发送给远端设备, 并且通过射频接收来自远端蓝牙设备的数据



2)BB(BASEBAND) : 基带层, 进行射频信号与数字或语音信号的相互转化, 实现基带协议和其它的底层连接规程



3) LMP(LINK MANAGER PROTOCOL) : 链路管理层, 负责管理蓝牙设备之间的通信, 实现链路的建立、 验证、 链路配置等操作



4) HCI( HOST CONTROLLER INTERFACE) : 主机控制器接口层, HCI层在芯片以及协议栈都有, 芯片层面的 HCI 负责把协议栈的数据做处理, 转换为芯片内部动作, 并且接收到远端的数据, 通过 HCI 上报给协议栈





2. Transport 层协议介绍

TRANSPORT 层: 此部分在硬件接口( UART/USB/SDIO) 实现 HOST 跟CONTROLLER 的交互, 此部分会分为以下几个协议:

1) H2: USB 的 transport

2) H4: UART 的 transport

3) H5: UART 的 transport

4) BCSP: UART 的 transport

5) SDIO:SDIO transport

其 中 2,3,4 的 主 要 差 别 在 于 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 就可以通信。



3. HOST 层协议介绍

HOST 层: 此部分就是蓝牙协议栈





1) HCI(HOST CONTROLLER INTERFACE) : 主机控制层接口, 主要负责透过 transport 把协议栈的数据发送给蓝牙芯片, 并且接受来自蓝牙芯片的数据, 数据主要分为 HCI COMMAND、HCI EVENT、HCI ACL、HCI SCO(部分芯片的 SCO 数据不是透过 TRANSPORT 直接跟 HOST 沟通, 而是通过特殊的引脚, PCM IN/OUT/SYNC/CLK 脚来传输数据)





2) L2CAP(Logical Link Control and Adaptation Protocol) : 逻辑链路控制与适配协议, 将 ACL 数据分组交换为便于高层应用的数据分组格式, 并提供协议复用和服务质量交换等功能。



通过协议多路复用、 分段重组操作和组概念,向高层提供面向连接的和无连接的数据服务,L2CAP 还屏蔽了低层传输协议中的很多特性,使得高层协议应用开发人员可以不必了解基层协议而进行开发。





3) SDP(SERVICE DISCOVERY PROTOCOL) : 服务发现协议, 服务发现协议(SDP)为应用程序提供了一种方法来发现哪些服务可用, 并确定这些可用服务的特征。





4) RFCOMM(Serial Port Emulation) : 串口仿真协议, 上层协议蓝牙电话, 蓝牙透传 SPP 等协议都是直接走的 RFCOMM。





5) OBEX: 对象交换协议, 蓝牙电话本, 蓝牙短信, 文件传输等协议都是走的 OBEX





6) HFP(Hands-Free) : 蓝牙免提协议,通过蓝牙对对端蓝牙进行通话控制,比如接听、挂断、拒接电话等,分为两个角色,AG和 HF。 例如蓝牙耳机和手机连接,手机的角色是AG,蓝牙耳机的角色是HF。





7) HSP: 蓝牙耳机协议, 最开始的蓝牙耳机协议, 一个简化版的HFP,目前已经没有产品在用这个了





8) SPP(SERIAL PORT PROFILE) : 蓝牙串口协议 ,下层是RFCOMM协议。





9) IAP: 苹果的特有协议, 分为 IAP1/IAP2。 由于苹果不支持SPP协议,所以苹果上进行数据的透传可以使用IAP协议。





10) PBAP(Phone Book Access) : 蓝牙电话本访问协议 。 该协议有两个角色,PSE和PCE。

例如车载蓝牙跟手机连接, 车载蓝牙下载手机的电话本, 那么手机的角色就是 PSE, 车载蓝牙就是 PCE。





11) MAP(MESSAGE ACCESS PROFILE) : 蓝牙短信访问协议 , 有两个角色MCE 和 MSE。

例如车载蓝牙跟手机连接, 车载蓝牙访问手机的短信, 那么手机的角色就是 MSE, 车载蓝牙就是 MCE。





12) OPP(OBJECT PUSH PROFILE) : 对象推送协议, 就是一个服务器和代理之间进行数据交换 像我们一般用手机蓝牙传输文件、图片之类的都可以使用OPP传输。





13) AVCTP(AUDIO/VIDEO CONTROL TRANSPORT PROTOCOL) : 音视频控制传输协议, 是 AVRCP 的底层。



14) AVDTP(AUDIO/VIDEO DISTRIBUTION TRANSPORT PROTOCOL) : 音视频分布传输协议, 是 A2DP 的底层。





15) HID(HUMAN INTERFACE DEVICE) : 人机接口协议, 常用的蓝牙键盘、蓝牙鼠标、蓝牙自拍杆,使用的就是HID协议。





16) A2DP(Advanced Audio Distribution) : 蓝牙音乐协议 ,分为source端和sink端,以手机和蓝牙耳机举例,手机是source端,蓝牙耳机是sink端。





17) AVRCP(AUDIO/VIDEO REMOTE CONTROL PROFILE) : 蓝牙音乐控制协议,分为controllerCTtargetTG两个角色。以手机和蓝牙耳机举例,手机是CT端,蓝牙耳机是TG端。



4. APP 层

APP 层: 蓝牙应用层, 比如要做耳机, 做蓝牙 HID 设备, 做车载, 做蓝牙防丢器, 做蓝牙穿戴设备等等

目录
相关文章
|
3天前
|
负载均衡 关系型数据库 应用服务中间件
高可用系列文章之二 - 传统分层架构技术方案
高可用系列文章之二 - 传统分层架构技术方案
|
3天前
|
Dubbo Cloud Native 网络协议
【Dubbo3技术专题】「服务架构体系」第一章之Dubbo3新特性要点之RPC协议分析介绍
【Dubbo3技术专题】「服务架构体系」第一章之Dubbo3新特性要点之RPC协议分析介绍
42 1
|
8月前
|
前端开发 Java Spring
架构设计的分层架构
架构设计的分层架构
|
2天前
|
缓存 自然语言处理 前端开发
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
|
3天前
|
存储 监控 安全
金石推荐 | 【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式
金石推荐 | 【分布式技术专题】「单点登录技术架构」一文带领你好好认识以下Saml协议的运作机制和流程模式
75 1
|
3天前
|
算法 安全
金石原创 |【分布式技术专题】「分布式技术架构」一文带你厘清分布式事务协议及分布式一致性协议的算法原理和核心流程机制(Paxos篇)
金石原创 |【分布式技术专题】「分布式技术架构」一文带你厘清分布式事务协议及分布式一致性协议的算法原理和核心流程机制(Paxos篇)
61 1
金石原创 |【分布式技术专题】「分布式技术架构」一文带你厘清分布式事务协议及分布式一致性协议的算法原理和核心流程机制(Paxos篇)
|
3天前
|
算法 调度
金石原创 |【分布式技术专题】「分布式技术架构」一文带你厘清分布式事务协议及分布式一致性协议的算法原理和核心流程机制(上篇)
金石原创 |【分布式技术专题】「分布式技术架构」一文带你厘清分布式事务协议及分布式一致性协议的算法原理和核心流程机制(上篇)
64 1
|
3天前
|
分布式计算 API 数据处理
Flink【基础知识 01】(简介+核心架构+分层API+集群架构+应用场景+特点优势)(一篇即可大概了解flink)
【2月更文挑战第15天】Flink【基础知识 01】(简介+核心架构+分层API+集群架构+应用场景+特点优势)(一篇即可大概了解flink)
71 1
|
7月前
|
缓存 运维 网络协议
掌握网络架构核心!了解为什么要分层
掌握网络架构核心!了解为什么要分层
25 0
|
3天前
|
存储 自然语言处理 前端开发
软考实践之分层架构思想的理论和应用实践
软考实践之分层架构思想的理论和应用实践
232 0