EMC易倍(中国)官方网站-引领体育潮流

易倍体育网站:蓝牙技术的基础知识-EMC易倍体育|官方网站
易倍体育网站:蓝牙技术的基础知识
发布时间:2025-05-21 23:32:21

  第一代蓝牙主要是指90年代的V1.0~V1.2版本,是关于段距离通信的早期探索,此时还存在许多问题,应用不是特别广泛

  交替使用的MAC层和PHY层扩展 AMP(Alternate MAC and PHY layer extension)【优化传输速度的过程】解释:蓝牙诞生之初使用的BR技术,传输速率很低,随着发展而变得无法支持,所以引入了EDR,这时还没有修改软硬件架构,但是之后又落伍了,所以直接引入了WiFi的底层协议,也就是MAC/PHY扩展,但这部分的实现就无法直接更替,所以BR/EDR只能与AMP交替使用

  蓝牙低功耗,则不关心传输速率,而是从降低功耗的角度实现的另一套技术,跟前面的协议没有丝毫关系

  蓝牙协议将蓝牙整体分成了两层架构,底层是核心协议,描述了蓝牙核心技术的基础和规范,应用层协议则基于具体需求,使用核心协议提供的机制,实现不同的功能策略

易倍体育网站:蓝牙技术的基础知识(图1)

  核心协议包含两部分,Host和Controller,这两部分在不同的蓝牙协议版本中略有区别,但大致上是,Controller完成硬件侧的规范制订,包括信号调制解调,会抽象出用于通信的逻辑链路,可能存在一个或多个,如LE Controller、BR/EDR Controller;Host则在逻辑链路的基础上完成更友好的封装,屏蔽掉技术细节,方便应用层对数据的使用

易倍体育网站:蓝牙技术的基础知识(图2)

  逻辑链路控制和适配协议,负责管理逻辑链路,使得不同应用可共享一个逻辑链路,类似端口的实现

  提供设备对象之间逻辑传输,在物理层的基础上,建立逻辑信道,主要基于传输类型来划分,包括控制类传输(负责底层物理链路的管理)、用户类传输(负责用户数据传输)和其他特殊类型的传输

易倍体育网站:蓝牙技术的基础知识(图3)

  蓝牙通信系统的物理层,是免费ISM频段,整个频带分成40份,每份带宽2MHz;此外还定义了RF收发相关的特性,如发射功率、调制解调方式等

  解决在有限物理信道上传输远多实际信道数量的数据,即信道共享,然后为通信实体创建看似独享的逻辑信道,以及解决传输过程中的校验、重传等问题

  - Standby:初始状态,不收发数据,接受上层协议命令与其他状态切换 - Advertising:通过广播发送数据的状态,建立连接后可进入Connection - Scanning:接收广播的数据的状态 - Initiating:特殊的接收状态,类似Scanning,接收Advertiser广播的连接数据,建立连接后进入Connection - Connection:建立连接后拥有单独的通道 12345

易倍体育网站:蓝牙技术的基础知识(图4)

  逻辑控制和适配协议的工作就是实现逻辑信道的多路复用(multiplexing),对上层数据进行分割和重组,以及后续的流控、错误控制和重传等

  以属性的形式抽象出来,提供接口供远端设备读写采用C/S形式,信息提供方为ATT Server,如传感器,访问方为ATT Client

  GATT提供了这样一种通用的、信息存储与共享的profile framework,实现BLE双向通信

  Profile位于最顶层,不是真正存在的配置文件,而是一个或多个场景相关的service的抽象集合

易倍体育网站:蓝牙技术的基础知识(图5)

  Characteristic(特征)可以理解成一个属性,是真正与设备通信相关的,数据发送和接收的最基本单位,通过对特征的读写实现蓝牙双向通信,它由一个Propertities(定义Value的使用规范和Descriptor的访问规范)、一个Value(特征的实际取值)和一个或多个Descriptor(Value相关的描述信息)组成,每个特征也具有自己的唯一标识,但是有三种形式:

  无连接及连接建立过程的通信,也就是为广播、扫描、发起连接这些过程定义统一规范定义了用户接口的基本参数,包括蓝牙地址、名称、pincode、class等概念

  信道选择。BLE将蓝牙频段分成了40个物理信道,综合考虑(抗干扰等)后将其中三个作为广播信道,频段为0/12/39,编号是37-39

  Type是指PDU的类型,如不同的状态下也有不同的消息类型,TxAdd和RxAdd都是地址类型flag,针对不同的type有不同的含义,RFU都是保留字段,Length标明payload的长度

易倍体育网站:蓝牙技术的基础知识(图6)

  OCF(Opcode Command Field)表示特定的HCI命令,OGF(Opcode Group Field)表示该HCI命令所属组别,他们共同组成16位操作码;Parameter Total Length表示所有参数总长度

易倍体育网站:蓝牙技术的基础知识(图7)

  这些Command/Event包括广播、扫描、连接建立的相关操作,这些都可以通过hcitool命令进行测试

易倍体育网站:蓝牙技术的基础知识(图8)

  会从应用程序角度对各种状态和操作再一次进行封装,包括设备角色,通信的模式和操作的定义

  广播/扫描应答数据,包含有意义部分和无意义部分(补齐为0),有意义部分是由一个个广播块(AD Structure)组成,每个广播块包含1字节长度(指示数据部分长度)和剩下的数据部分,数据部分又分为数据类型和数据内容,数据类型会指示真实Data部分的内容,例如0x01表示Data内容是描述设备物理连接状态,再例如0x08表示Data内容是设备名称,更多可以参考generic-access-profile

易倍体育网站:蓝牙技术的基础知识(图9)

  1字节8bit,每个bit都是一个标志位 [预留][预留][预留][同时支持BLE和BR/EDR(Host)][同时支持BLE和BR/EDR(Controller)][不支持BR/EDR][普通发现模式][有限发现模式]

  经典蓝牙中保持连接非常耗费资源,但是每次连接建立效率又非常低,为了优化体验,BLE简化了连接过程(毫秒级),极大的降低了面向连接通信的代价

  角色定义。BLE为处于连接状态的两个设备定义了两个角色,Master和Slave。Master作为连接发起方,定义和连接相关的参数,Slave是连接的接收方,请求连接参数

易倍体育网站:蓝牙技术的基础知识(图10)

  Emc易倍体育官网app

  封装Link Layer的功能,主要包括连接的建立、关闭、参数设置和管理,以及数据封装和转发

  白名单就是一组蓝牙地址列表,通过设置白名单可以允许扫描、连接特定的蓝牙设备,以及被扫描、连接

  连接成功后就可以开始通信,从请求服务开始(Profile只是一系列具有共同业务需求的服务的抽象集合,服务才是实体)

  真正要实现通信除了单方面读写,还需要对数据变化进行监听,这样就可以进行数据交换

  只有广播仍然不够,作为外围角色的设备还需要启动GATT服务,等待中心设备与之建立连接之后就可以通过服务通信

  bluetoothGattServerCallback 是GATT服务的回调,当设备被连接、通信(读写特征)时都会触发响应的回调函数