【蓝牙协议】简介:蓝牙芯片、蓝牙协议架构

文章目录

  • 蓝牙芯片架构
  • 另一个视角
    • 由下到上看:Controller-->Host
    • 由上到下看:Host-->Controller
  • 蓝牙协议架构视角
    • HW层——蓝牙芯片层
    • Transport——数据传输层
    • HOST——协议层
  • 总结

参考:https://zhuanlan.zhihu.com/p/585248998
参考:吐血推荐历史最全的蓝牙协议栈介绍

在这里插入图片描述

蓝牙芯片架构

蓝牙的核心系统,由一个Host和一个或多个Controller组成。

  • BT Host:一个逻辑实体,在HCI(Host Controller Interface)的上层。
  • BT Controller:一个逻辑实体,在HCI(Host Controller Interface)的下层。

Bluetooth的主控制器,可能是以下几种:

  • BR/EDR Controller:内部包含Radio, Baseband,Link Manager,可选的HCI。
  • LE Controller :内部包含LE PHY,Link Layer ,可选的HCI
  • BR/EDR & LE Controller:BR/EDR与LE的组合的控制器
  • MAC/PHY (AMP) Controller:二级控制器,可替代的,内部包含 802.11 PAL (Protocol Adaptation Layer),802.11 MAC,PHY,可选的HCI。

根据Host与Controller的组成关系,常见的蓝牙芯片也分为以下几种:

  • 单模蓝牙芯片:单一传统蓝牙的芯片,单一低功耗蓝牙的芯片。即(1个Host结合1个Controller)
  • 双模蓝牙芯片:同时支持传统蓝牙和低功耗蓝牙的芯片。即(1个Host结合多个Controller)

因此,蓝牙芯片就会有以下几种架构:

在这里插入图片描述

另一个视角

由下到上看:Controller–>Host

Controller:

  • BR/EDR Controller:由Link Manager、Link Controller、BR/EDR Radio组成
  • LE Controller:由Link Manager、Link Controller、 LE Radio 组成
  • AMP Controller:由 AMP PAL, AMP MAC, AMP PHY组成

Host:

  • BR/EDR Host:由 L2CAP、SDP 、GAP 组成
  • LE Host:由 L2CAP、SMP 、GAP 、Attribute protocol、GATT组成

由上到下看:Host–>Controller

Host层

  • Channel Manager:通道管理,主要用于创建、管理、关闭L2CAP通道,用于服务协议和应用数据的传输。
  • L2CAP Resource Manage:L2CAP资源管理,主要负责管理分片的PDU的正确提交。
  • Security Manager Protocol:SMP安全管理协议,主要负责生成加密密钥和身份密钥。
  • Attribute Protocol:ATT,属性协议,主要负责服务端与客户端点到点的数据传输。
  • AMP Manager Protocol:直接使用L2CAP与远程设备通信。
  • Generic Attribute Profile:GATT,提供更多的功能,概要文件描述了属性服务器中使用的服务层次结构、特征和属性,用于LE设备
  • Generic Access Profile:GAP,标识了基础的蓝牙设备的通用功能

Controller层

  • Device Manager:控制蓝牙设备的通用行为,负责与蓝牙通信过程中,所有的与数据无关的操作,如查询设备,连接设备
  • Link Manager:链路管理,主要负责创建,修改,释放逻辑链路。
  • Baseband Resource Manager:基带资源管理,主要负责所有的访问无线电媒体
  • Link Controller:链路控制,主要负责从编码和解码蓝牙数据包PHY:物理层,主要负责发送,接收物理通道的信息包

以上为官方手册提供的视图,Host通过HCI(Host Controll Interface)接口,来控制Controller执行相应的动作。

蓝牙协议架构视角

在这里插入图片描述

以上架构图,将蓝牙协议分为了HW层,Transport层,Host层。

HW层——蓝牙芯片层

HW层,指的是蓝牙芯片层,也就是我们上面说的Controller,包括以下几个部分:

  • RF(RADIO):射频层,本地蓝牙数据通过射频发送给远端设备,并且通过射频接收来自远端蓝牙设备的数据。
  • BB(BASEBAND):基带层,进行射频信号与数字或语音信号的相互转化,实现基带协议和其它的底层连接规程。
  • LMP(LINK MANAGER PROTOCOL):链路管理层,负责管理蓝牙设备之间的通信,实现链路的建立、验证、链路配置等操作
  • HCI(HOST CONTROLLER INTERFACE):主机控制器接口层,HCI层在芯片以及协议栈都有,芯片层面的HCI负责把协议栈的数据做处理,转换为芯片内部动作,并且接收到远端的数据,通过HCI上报给协议栈。
  • BLE PHY:BLE的物理层
  • BLE LL:BLE的链路层

Transport——数据传输层

Transport层,主机控制层接口,通过硬件接口UART/USB/SDIO把HOST协议层的数据发送给Controller层,并且接收Controller层的数据。

该部分有几个协议:

  • H2:基于USB的传输
  • H4:基于UART的传输,最简单的传输方式,只在 HCI raw data前面加上一个type
  • H5:基于UART的传输
  • BCSP: 基于UART的传输
  • SDIO:基于SDIO的传输

H4 协议:需要蓝牙芯片(四个引脚TX/RX/CTS/RTS)的UART_TX/UART_RX/UART_CTS/UART_RTS/VCC/GND接到MCU;
H5 协议:只需要蓝牙芯片(两个引脚TX/RX)的UART_TX/UART_RX/VCC/GND接到MCU就可以通信。

HOST——协议层

HOST层,此部分就是蓝牙协议栈,该部分包括多个协议:

  • HCI(HOST CONTROLLER INTERFACE):主机控制层接口,主要负责透过transport把协议栈的数据发送给蓝牙芯片,并且接受来自蓝牙芯片的数据,数据主要分为HCI COMMAND(HOST->CONTROLLER),HCI EVENT(HOST<-CONTROLLER),HCI ACL(HOST<->CONTROLLER),HCI SCO(这个有点些微差异,因为部分芯片的SCO数据不是透过TRANSPORT直接跟HOST沟通,而是通过特殊的引脚,PCM IN/OUT/SYNC/CLK脚来传输数据),core文档HCI的架构如下:
    在这里插入图片描述
    在这里插入图片描述

  • L2CAP(Logical Link Control and Adaptation Protocol):逻辑链路控制与适配协议,将ACL数据分组,对高层应用的数据进行分组,并提供协议复用和服务质量交换等功能。通过协议多路复用、分段重组操作和组概念,向高层提供面向连接的和无连接的数据服务

  • SDP(SERVICE DISCOVERY PROTOCOL):服务发现协议,为应用程序提供发现可用服务,并确定服务特征的方法。

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

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

  • HFP(Hands-Free):蓝牙免提协议

  • HSP:蓝牙耳机协议,最开始的蓝牙耳机协议,目前已经没有产品在用这个了吧,至少我没有看到了。算是一个简化版的HFP。

  • SPP(SERIAL PORT PROFILE):蓝牙串口协议

  • IAP:苹果的特有协议,分为IAP1/IAP2,一般做Carplay或者iPod功能的人肯定接触过这块

  • PBAP(Phone Book Access):蓝牙电话本访问协议

  • MAP(MESSAGE ACCESS PROFILE):蓝牙短信访问协议HID(HUMAN INTERFACE DEVICE):人机接口协议,HID还是有很多广泛的用途的,比如蓝牙鼠标,蓝牙键盘,蓝牙自拍杆,蓝牙手柄等。

  • A2DP(Advanced Audio Distribution): 蓝牙音乐协议

  • SM: 蓝牙BLE安全管理协议

  • GAP(GENERIC ACCESS PROFILE):它定义了蓝牙设备的基本要求。

它联系了所有的不同的层之间的交互,也描述了设备发现、建立连接、安全、认证、关联模型和发现服务的行为和方法。

  • 对于BR/EDR,它定义了一个蓝牙设备,包括无线电、基带、链路管理器、L2CAP和服务发现协议功能。
  • 对于LE,它定义一个物理层,链路层,L2CAP,安全管理器,属性协议和通用属性配置文件。

  • ATT(Attribute Protocol):蓝牙属性协议,用于发现、读、写对端设备的协议(针对BLE设备),ATT允许设备作为服务端提供拥有关联值的属性集 ,让作为客户端的设备来发现、读、写这些属性;同时服务端能主动通知客户端。
  • GATT(Generic Attribute Profile):蓝牙通用属性协议,描述了一种使用ATT的服务框架 ,该框架定义了数据交换的格式。

总结

蓝牙芯片的架构:根据Host与Controller的结合关系,可以分为单模芯片和双模芯片。

蓝牙协议的架构:蓝牙协议分为三层,即:Host层,Transport层,Controller层。每一层又由多种不同的协议组成。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/119095.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

记录nvm use node.js版本失败,出现报错: exit status 1: ��û���㹻��Ȩ��ִ�д˲�����

使用管理员权限运行cmd&#xff0c;再使用nvm use node.js版本号 参考&#xff1a; nvm use (node版本号)时报错&#xff1a; exit status 1: &#xfffd;&#xfffd;&#xfffd;&#xfffd;&#xfffd;㹻&#xfffd;&#xfffd;Ȩ&#xfffd;&#xfffd;ִ&#xf…

OpenCV官方教程中文版 —— 图像金字塔

OpenCV官方教程中文版 —— 图像金字塔 前言一、原理二、使用金字塔进行图像融合 前言 • 学习图像金字塔 • 使用图像创建一个新水果&#xff1a;“橘子苹果” • 将要学习的函数有&#xff1a;cv2.pyrUp()&#xff0c;cv2.pyrDown()。 一、原理 一般情况下&#xff0c;我…

全连接层是什么,有什么作用?

大家好啊&#xff0c;我是董董灿。 如果你是搞AI算法的同学&#xff0c;相信你在很多地方都见过全连接层。 无论是处理图片的卷积神经网络&#xff08;CNN&#xff09;&#xff0c;还是处理文本的自然语言处理&#xff08;NLP&#xff09;网络&#xff0c;在网络的结尾做分类…

竞赛选题 深度学习动物识别 - 卷积神经网络 机器视觉 图像识别

文章目录 0 前言1 背景2 算法原理2.1 动物识别方法概况2.2 常用的网络模型2.2.1 B-CNN2.2.2 SSD 3 SSD动物目标检测流程4 实现效果5 部分相关代码5.1 数据预处理5.2 构建卷积神经网络5.3 tensorflow计算图可视化5.4 网络模型训练5.5 对猫狗图像进行2分类 6 最后 0 前言 &#…

循环队列c语言版

一、循环队列结构体 typedef int QueueDataType; #define CQ_MAX_SIZE 10typedef struct CircularQueue {QueueDataType data[CQ_MAX_SIZE];/**标记队列首*/QueueDataType head;/**标记队列尾部*/QueueDataType rear;} CircularQueue; 二、循环队列操作函数声明 /**创建队…

软件工程——期末复习知识点汇总

本帖的资料来源于某国内顶流高校的期末考试资料&#xff0c;仅包含核心的简答题&#xff0c;大家结合个人情况&#xff0c;按需复习~ 总的来说&#xff0c;大层面重点包括如下几个方面&#xff1a; 软件过程需求工程 设计工程软件测试软件项目管理软件过程管理 1.掌握软件生命…

SQL 选择数据库 USE语句

SQL 选择数据库 USE语句 当SQL Schema中有多个数据库时&#xff0c;在开始操作之前&#xff0c;需要选择一个执行所有操作的数据库。 SQL USE语句用于选择SQL架构中的任何现有数据库。 句法 USE语句的基本语法如下所示 : USE DatabaseName;数据库名称在RDBMS中必须是唯一的。…

How to install mongodb-7.0 as systemd service with podman

How to install mongodb-7.0 as systemd service with podman 1、安装1.1、创建卷1.2、配置文件1.3、创建容器1.4、服务管理1.5、容器管理 2、客户端管理 1、安装 1.1、创建卷 配置卷 podman volume create --label typemongo-7.0 --label envdev mongo-7.0-conf数据卷 pod…

Canny算子详解及例程

Canny算子是一种经典的边缘检测算法&#xff0c;于1986年由John Canny提出。相比其他边缘检测算法&#xff0c;Canny算子具有以下特点&#xff1a; 高准确性&#xff1a;Canny算子能够对图像中真实边缘进行准确检测&#xff0c;并尽量排除非边缘部分的干扰。 低错误率&#xf…

Creaform形创HandySCAN MAX l Elite三维扫描仪便携式3D测量解决方案

CASAIM中科院广州电子智能制造事业部连续多年荣获形创Creaform战略级代理商证书。战略级代理商是形创Creaform最高级别的合作伙伴。 2023年CASAIM中科院广州电子智能制造事业部的形创Creaform战略级代理商证书&#xff1a; Creaform 形创是便携式三维测量解决方案和工程服务领…

[Python进阶] 消息框、弹窗:tkinter库

6.16 消息框、弹窗&#xff1a;tkinter 6.16.1 前言 应用程序中的提示信息处理程序是非常重要的部分&#xff0c;用户要知道他输入的资料到底正不正确&#xff0c;或者是应用程序有一些提示信息要告诉用户&#xff0c;都必须通过提示信息处理程序来显示适当的信息&#xff0c…

NPDP产品经理证书是什么行业的证书?

NPDP是一个跨行业的证书&#xff0c;它适用于各种不同类型和规模的组织。无论是制造业、服务业还是科技领域&#xff0c;都可以从NPDP认证中获益。 1. 制造业&#xff1a; 制造业涉及大量的产品开发和创新活动。从汽车制造到电子设备制造&#xff0c;从家居用品到航天航空&…

【vue3】子传父-事件总线-mitt(子组件派发事件,父组件接收事件和传递的参数)

安装库&#xff1a;cnpm install mitt 封装 eventbus.ts&#xff1a; src->utils->eventbus.ts //eventbus.tsimport mitt from mittconst emitter mitt()export default emitter使用 B2.vue&#xff1a; //B2.vue <template><div class"aa">…

idea + Docker-Compose 实现自动化打包部署(仅限测试环境)

一、修改docker.service文件&#xff0c;添加监听端口 vi /usr/lib/systemd/system/docker.service ExecStart/usr/bin/dockerd -H fd:// --containerd/run/containerd/containerd.sock -H tcp://0.0.0.0:2375 -H unix://var/run/docker.sock重启docker服务 systemctl daemo…

邦盛科技冲刺上市“冷思考”:身处红线边缘,达摩克利斯之剑高悬

撰稿|行星 来源|贝多财经 近日&#xff0c;浙江邦盛科技股份有限公司&#xff08;下称“邦盛科技”&#xff09;因发行上市申请文件中记载的财务资料已过有效期&#xff0c;需要补充提交。根据相关规定&#xff0c;上海证券交易所中止其发行上市审核。 据介绍&#xff0c;邦…

下载zip源码并使用交叉编译工具进行编译

可以按照以下步骤进行操作&#xff1a; 确保已经设置好交叉编译工具链并将其添加到系统的环境变量中。 打开终端&#xff0c;进入你想要存放源码的目录&#xff1a; cd /path/to/source/directory使用git命令克隆zip库的源码仓库&#xff1a; git clone https://github.com/ni…

量变引起质变:安卓改多了,就是自己的OS

最近小米也发布了自己的OS&#xff0c;其他也有厂家跟进。这是自华为鸿蒙之后&#xff0c;大家都说自己开发OS。对此&#xff0c;也是有很多争论的。 有人说&#xff0c;这些东西不都是安卓套壳或者改名吗&#xff1f;怎么就变成了自己的OS&#xff1f;这种观点对不对呢&#x…

StartCoroutine/yield 返回模式在 Unity 中到底如何工作?

Unity3D协程详解 游戏中的许多过程都是在多个帧的过程中发生的。你有“密集”的过程&#xff0c;比如寻路&#xff0c;每个帧都努力工作&#xff0c;但会分成多个帧&#xff0c;以免对帧速率产生太大影响。您拥有“稀疏”进程&#xff0c;例如游戏触发器&#xff0c;它们在大多…

Shopee、Lazada卖家不得不看的提升销量技巧,自养号测评打造权重

近年来&#xff0c;大部分虾皮、Lazada卖家开始通过测评补单的方式来提升店铺权重和产品排名&#xff0c;以吸引更多流量。这种方式可以有效提高产品的销售转化率&#xff0c;对店铺的运营起到推动作用。然而&#xff0c;测评补单并非简单的购买过程&#xff0c;其中涉及到许多…

干洗店预约下单管理系统收衣开单拍照必备软件

随着生活水平的提高和节奏的加快&#xff0c;商务人士的衣物越来越多&#xff0c;但精力和时间却越来越少。于是&#xff0c;干洗店应运而生&#xff0c;在中国&#xff0c;几乎所有的中心城市干洗店都门庭若市。若每人每月需要干洗一套服装&#xff0c;一个城市每月则需干洗50…