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

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

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

叶苏(何苏平)创建,最后修改于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月前
|
人工智能 前端开发 JavaScript
前端架构思考 :专注于多框架的并存可能并不是唯一的方向 — 探讨大模型时代前端的分层式微前端架构
随着前端技术的发展,微前端架构成为应对复杂大型应用的流行方案,允许多个团队使用不同技术栈并将其模块化集成。然而,这种设计在高交互性需求的应用中存在局限,如音视频处理、AI集成等。本文探讨了传统微前端架构的不足,并提出了一种新的分层式微前端架构,通过展示层与业务层的分离及基于功能的横向拆分,以更好地适应现代前端需求。
|
1月前
|
数据库
分层架构
表现层(Presentation Layer):处理用户界面和用户交互逻辑。 业务逻辑层(Business Logic Layer):处理业务相关的逻辑和规则。 数据访问层(Data Access Layer):负责与数据库或其他数据源进行 [Something went wrong, please try again later.]。
|
3月前
|
JSON 前端开发 Java
Spring Boot框架中的响应与分层解耦架构
在Spring Boot框架中,响应与分层解耦架构是两个核心概念,它们共同促进了应用程序的高效性、可维护性和可扩展性。
74 3
|
3月前
|
存储 前端开发 API
DDD领域驱动设计实战-分层架构
DDD分层架构通过明确各层职责及交互规则,有效降低了层间依赖。其基本原则是每层仅与下方层耦合,分为严格和松散两种形式。架构演进包括传统四层架构与改良版四层架构,后者采用依赖反转设计原则优化基础设施层位置。各层职责分明:用户接口层处理显示与请求;应用层负责服务编排与组合;领域层实现业务逻辑;基础层提供技术基础服务。通过合理设计聚合与依赖关系,DDD支持微服务架构灵活演进,提升系统适应性和可维护性。
|
8月前
|
缓存 自然语言处理 前端开发
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
第一章 引言-HTTP协议基础概念和前后端分离架构请求交互概述
164 0
|
5月前
|
存储 消息中间件 JSON
用户态协议栈05—架构优化
用户态协议栈05—架构优化
|
5月前
|
安全 网络安全 数据安全/隐私保护
|
6月前
|
运维 Java Docker
业务系统架构实践问题之在某些情况下,将能力代码和业务逻辑严格分层可能是一个挑战问题如何解决
业务系统架构实践问题之在某些情况下,将能力代码和业务逻辑严格分层可能是一个挑战问题如何解决
|
6月前
|
存储 搜索推荐 API
业务系统架构实践问题之分层架构中的四层定位是什么
业务系统架构实践问题之分层架构中的四层定位是什么
187 0

热门文章

最新文章