蓝牙4.2:协议栈结构——主机和控制器

图 1 蓝牙4.2协议栈结构

协议栈主要由主机(host)和控制器(controller)组成,每个蓝色分块都是一个协议,其中主机部分的协议由软件实现而控制器的协议由硬件实现所以无法进行修改

控制器有多个协议:HCI、LMP、LL、PHY

图 2 控制器内部结构

HCI主机控制接口:是控制器和主机之间的桥,他们之间通过HCI接口以HCI协议进行通信。支持的硬件设备通讯协议有USB、UART、SDIO。

PHY:物理层,蓝牙协议栈的最底层,负责实现蓝牙设备之间的物理连接和数据传输的基本功能。传统蓝牙和经典蓝牙的发射层,负责在物理信道上收发蓝牙数据包

LC链路控制:属于链路管理协议(LMP)通俗易懂来讲,负责管理和控制蓝牙设备之间可靠且高效的数据传输

BRM基带资源管理器:主要负责对蓝牙基带层的各类资源进行高效管理与合理分配,从而保障蓝牙设备间通信的稳定、高效与可靠

DM设备管理:控制蓝牙设备的通用行为:搜索和发现其他蓝牙设备,控制本地的蓝牙设备连接发现模式(可连接、可发现),控制本地蓝牙的设备属性(本地蓝牙的名字、连接密码)

LM链路连接:负责创建、控制、释放蓝牙逻辑连接,维护蓝牙设备之间的物理连接的参数,由链路管理协议(LMP)和链路管理协议(LL)完成

物理连接

  • 定义物理连接是指设备之间通过实际的物理媒介或无线信号建立起来的连接,它是实现数据传输的基础硬件通道。在蓝牙通信里,物理连接基于蓝牙设备的射频(RF)模块,通过特定频率的无线信号在设备之间进行通信。

逻辑连接

  • 定义逻辑连接是建立在物理连接之上的一种抽象连接,它基于特定的通信协议和规则为上层应用提供了一个逻辑上的数据传输通道。逻辑连接不关心物理连接的具体实现细节,只关注数据的传输和处理。

图 3 主机内部结构

蓝牙主机由软件实现

L2CAP逻辑链路管理与适配:通道管理:负责创建、管理、释放通道。资源管理器:负责统一管理,调度通道上传递的PDU(分组数据单元),来提高服务质量(QoS)对HCI层进行传输流控、重传等机制。说白了,就是针对控制层发来的消息,在hci这一层中,有流控、重传的功能

        通道:通道就像是城市道路里不同用途的车道,分为保障数据准确有序传输的 “可靠车道”(面向连接通道)和追求快速传达、允许少量数据丢失的 “快速车道”(无连接通道),它们能让蓝牙设备同时处理不同类型的数据传输,互不干扰。

SDP服务发现:当两个蓝牙设备进行点对点连接时,首先需要通过 SDP 来发现对方的服务。例如,当你用手机通过蓝牙向打印机发送文件时,手机会通过 SDP 查询打印机所提供的文件传输服务,获取服务的相关信息后,再与打印机建立连接并进行文件传输。说白了,SDP用于“找人”

SMP安全管理:基于专用的L2CAP通道,主要用于生成加密和识别用的密钥,用于设备配对。说白了,SMP用于设备之间的配对

ATT基本属性:属性句柄(属性表下标索引)、属性类型(UUID)、属性值以及访问权限组成。ATT相当于设备的数据库

GATT基本属性:定义了两个角色GATTS(服务器)和GATTC(客户端),一个设备可同时作为服务器和客户端。交换配置,发现对方设备上的服务和特性、读写特征值的通知和指示

可以理解为ATT是一个盒子,里面存放着LED灯的信息,如果是1就开灯,0就关灯。但是如何把这个信息拿出来或者说传出去?可以将这个ATT盒子当成一个GATTS服务器,另外一个蓝牙设备当成GATTC,通过GATT接口进行数据传输。

控制器和主机的通讯流程如图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值