抖音推广网站,西安商城类网站制作,杭州建设工程交易平台,济南网站建设选搜点网络VIP文章目录 蓝牙芯片架构另一个视角由下到上看#xff1a;Controller--Host由上到下看#xff1a;Host--Controller 蓝牙协议架构视角HW层——蓝牙芯片层Transport——数据传输层HOST——协议层 总结 参考#xff1a;https://zhuanlan.zhihu.com/p/585248998 参考Controller--Host由上到下看Host--Controller 蓝牙协议架构视角HW层——蓝牙芯片层Transport——数据传输层HOST——协议层 总结 参考https://zhuanlan.zhihu.com/p/585248998 参考吐血推荐历史最全的蓝牙协议栈介绍 蓝牙芯片架构
蓝牙的核心系统由一个Host和一个或多个Controller组成。
BT Host一个逻辑实体在HCIHost Controller Interface的上层。BT Controller一个逻辑实体在HCIHost Controller Interface的下层。
Bluetooth的主控制器可能是以下几种
BR/EDR Controller内部包含Radio, BasebandLink Manager可选的HCI。LE Controller 内部包含LE PHYLink Layer 可选的HCIBR/EDR LE ControllerBR/EDR与LE的组合的控制器MAC/PHY (AMP) Controller二级控制器可替代的内部包含 802.11 PAL (Protocol Adaptation Layer)802.11 MACPHY可选的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 ManageL2CAP资源管理主要负责管理分片的PDU的正确提交。Security Manager ProtocolSMP安全管理协议主要负责生成加密密钥和身份密钥。Attribute ProtocolATT属性协议主要负责服务端与客户端点到点的数据传输。AMP Manager Protocol直接使用L2CAP与远程设备通信。Generic Attribute ProfileGATT提供更多的功能概要文件描述了属性服务器中使用的服务层次结构、特征和属性用于LE设备Generic Access ProfileGAP标识了基础的蓝牙设备的通用功能
Controller层
Device Manager控制蓝牙设备的通用行为负责与蓝牙通信过程中所有的与数据无关的操作如查询设备连接设备Link Manager链路管理主要负责创建修改释放逻辑链路。Baseband Resource Manager基带资源管理主要负责所有的访问无线电媒体Link Controller链路控制主要负责从编码和解码蓝牙数据包PHY物理层主要负责发送接收物理通道的信息包
以上为官方手册提供的视图Host通过HCIHost Controll Interface接口来控制Controller执行相应的动作。
蓝牙协议架构视角 以上架构图将蓝牙协议分为了HW层Transport层Host层。
HW层——蓝牙芯片层
HW层指的是蓝牙芯片层也就是我们上面说的Controller包括以下几个部分
RFRADIO射频层本地蓝牙数据通过射频发送给远端设备并且通过射频接收来自远端蓝牙设备的数据。BBBASEBAND基带层进行射频信号与数字或语音信号的相互转化实现基带协议和其它的底层连接规程。LMPLINK MANAGER PROTOCOL链路管理层负责管理蓝牙设备之间的通信实现链路的建立、验证、链路配置等操作HCIHOST CONTROLLER INTERFACE主机控制器接口层HCI层在芯片以及协议栈都有芯片层面的HCI负责把协议栈的数据做处理转换为芯片内部动作并且接收到远端的数据通过HCI上报给协议栈。BLE PHYBLE的物理层BLE LLBLE的链路层
Transport——数据传输层
Transport层主机控制层接口通过硬件接口UART/USB/SDIO把HOST协议层的数据发送给Controller层并且接收Controller层的数据。
该部分有几个协议
H2基于USB的传输H4基于UART的传输最简单的传输方式只在 HCI raw data前面加上一个typeH5基于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层此部分就是蓝牙协议栈该部分包括多个协议 HCIHOST 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的架构如下 L2CAPLogical Link Control and Adaptation Protocol逻辑链路控制与适配协议将ACL数据分组对高层应用的数据进行分组并提供协议复用和服务质量交换等功能。通过协议多路复用、分段重组操作和组概念,向高层提供面向连接的和无连接的数据服务 SDPSERVICE DISCOVERY PROTOCOL服务发现协议为应用程序提供发现可用服务并确定服务特征的方法。 RFCOMMSerial Port Emulation串口仿真协议上层协议蓝牙电话蓝牙透传SPP等协议都是直接走的RFCOMM OBEX对象交换协议蓝牙电话本蓝牙短信文件传输等协议都是走的OBEX HFPHands-Free蓝牙免提协议 HSP蓝牙耳机协议最开始的蓝牙耳机协议目前已经没有产品在用这个了吧至少我没有看到了。算是一个简化版的HFP。 SPPSERIAL PORT PROFILE蓝牙串口协议 IAP苹果的特有协议分为IAP1/IAP2一般做Carplay或者iPod功能的人肯定接触过这块 PBAPPhone Book Access蓝牙电话本访问协议 MAPMESSAGE ACCESS PROFILE蓝牙短信访问协议HIDHUMAN INTERFACE DEVICE人机接口协议HID还是有很多广泛的用途的比如蓝牙鼠标蓝牙键盘蓝牙自拍杆蓝牙手柄等。 A2DPAdvanced Audio Distribution: 蓝牙音乐协议 SM: 蓝牙BLE安全管理协议 GAPGENERIC ACCESS PROFILE它定义了蓝牙设备的基本要求。
它联系了所有的不同的层之间的交互也描述了设备发现、建立连接、安全、认证、关联模型和发现服务的行为和方法。
对于BR/EDR它定义了一个蓝牙设备包括无线电、基带、链路管理器、L2CAP和服务发现协议功能。对于LE它定义一个物理层链路层L2CAP安全管理器属性协议和通用属性配置文件。 ATTAttribute Protocol蓝牙属性协议,用于发现、读、写对端设备的协议(针对BLE设备),ATT允许设备作为服务端提供拥有关联值的属性集 让作为客户端的设备来发现、读、写这些属性同时服务端能主动通知客户端。GATTGeneric Attribute Profile蓝牙通用属性协议描述了一种使用ATT的服务框架 该框架定义了数据交换的格式。
总结
蓝牙芯片的架构根据Host与Controller的结合关系可以分为单模芯片和双模芯片。
蓝牙协议的架构蓝牙协议分为三层即Host层Transport层Controller层。每一层又由多种不同的协议组成。