马上注册,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册 
×
一,协议栈各层介绍1、物理层规范(PHY) 射频方面,BLE工作在免费的2.4GHz ISM(Industrial Scientific Medical)频段,其频带是2400 -2483.5MHz,BLE的调制方式是高斯频移键控(GFSK),BT=0.5,而标准蓝牙技术是0.35,0.5的指数接近高斯最小频移键控(GMSK)方案,可以降低无线设备的功耗要求(这方面的原因比较复杂)。更低调制指数还有两个好处,即提高覆盖范围和增强鲁棒性;二进制“1”和“0”分表表示正频偏和负频偏,在使用频谱仪(N9020A)测试频偏时需要提前知道其背离频率;发射功率范围在-20dBm~+10dBm之间(天线增益为0dBi情况下);误比特率为0.1%的情况下,接收灵敏度小于-70dBm;通信距离可到达100m;传输速率为1Mbps;数据包间对中心频率的偏移应当小于±150kHz,其中包括了初始的频率补偿和频率漂移;在一个数据包内,频率偏移应当小于150kHz,最大的频率偏移率不能超过400Hz/us,一般要求在±20PPM以内即可。 相对于传统蓝牙而言,传统蓝牙可以增强数据率,可支持2或3Mb/s的总空气比特率。这些模式分别被称为基本速率(BR)和增强数据率(EDR)。定义了两种调制模式。强制模式被称为基本速率,使用一个成型的二进制FM调制从而将收发器的复杂程度降至最低。可选模式被称为增强数据率,使用PSK调制并存在两个变量:π/4-DQPSK和8DPSK。所有调制程序的符号率是1 Ms/s。就总空中传输数据率而言,基本速率为1 Mbps,使用π/4-DQPSK的增强数据率为2 Mbps,而使用8DPSK的增强数据率为3 Mbps。 信道结构方面,BLE系统采用跳频收发机提供多个跳频序列载波,抵抗干扰和衰减。BLE信道分为广播信道与数据信道,数量分别为3和37。系统提供两种复用方案:频分多址和时分多址。在频分复用方案中,40个信道间的频率间隔为2MHz,中心频率分别为2402+k*2MHZ,其中k是0—39之间的任意整数,k等于0,12,39时信道为广播信道,其他值时为数据信道;在时分复用方案中,两个正在通信的设备,通过轮训的方式在预定好的时间单元中收发数据。数据传输是采样自适应跳频的方式在37个数据传输信道中传输有效数据包,该技术主要是为了防止单一信道堵塞而导致的问题。 2、链路层规范(LL) 1)链路层的功能 链路层使用链路协议来控制网络中设备的状态,并且提供管理下层的服务。低功耗蓝牙设备有五个工作状态,分别是:待机状态、广播状态、扫描状态、初始化状态、和连接状态。链路层控制器一个时刻内只允许设备处于上述5个状态之一。 待机状态:默认状态,不能发送接收任何数据包,任何其他状态都可以直接进入待机状态。 广播状态:广播状态可由待机状态切换进入,设备在3个广播信道发送广播数据包,同时在当前信道监听和回复扫描者可能发送的扫描数据包。处于广播状态下的设备称为广播者。 扫描状态:扫描状态可由待机状态切换进入,设备在3个广播信道监听远程设备发出的广播数据包,同时发送扫描数据包,等待广播者的扫描回复信号。处于扫描状态下的设备称为扫描者。 初始化状态:初始化状态可由待机状态切换进入,设备在广播信道监听回复远程设备的广播数据包,从而发起设备之间的连接。处于初始化状态下的设备称为发起者。 连接状态:连接状态可以从初始化状态和广播状态进入,此时发起者作为主设备,确定传输时隙,广播者作为从设备,双方在数据信道以跳频的方式进行数据传输。 协议数据单元:大小为2字节~39字节,根据不同数据包类型而不同。
广播信道协议数据单元:由包头和有效荷载2部分组成。具体格式如下表所示。 包头(16位) | 有效荷载 | PDU类型 | RFU | TxAdd | RxAdd | Length | RFU | (由包头中的长度位标志) |
其中PDU类型如下表所示。 PDU 类型 | 数据包名称 | 0000 | ADV_IND | 0001 | ADV_DIRECT_IND | 0010 | ADV_NONCONN_IND | 0011 | SCAN_REQ | 0100 | SCAN_RSP | 0101 | CONNECT_REQ | 0110 | ADV_SCAN_IND | 0111-1111 | Reserved |
数据信道协议数据单元:由包头、有效荷载和可选的信息完整性检查(MIC)组成,格式如表2‑5所示。信息完整性检查在没有加密的链路连接,或者加密了但数据协议数据单元长度为0的情况下使用。LL DataPDU 是用来发送L2CAP数据,而LL Control PDU是用来控制连接链路的。 数据信道协议数据单元格式如下表所示 包头(16位) | 有效荷载 | 信息 完整性检 (32 位) | LLID | NESN | SN | MD | RFU | Length | RFU | LL DATA PDU | LL Control PDU |
CRC:3字节的CRC是根据PDU计算的。如果PDU已加密,则CRC根据加密后的PDU计算。CRC多项式的形式自行百度。对于任一个广播信道PDU,移位寄存器应该预设为0x555555;对于每一个数据信道PDU,移位寄存器的预设值在连接状态时,从连接请求PDU中得出。 3、HCI规范 HCI是连接主机和控制器的桥梁,提供主机访问下层协议、硬件和控制寄存器的统一接口。HCI实际为三部分:HCI 固件、HCI驱动和实际物理接口。 HCI固件:HCI固件位于蓝牙控制器中,固件主要内容有:中断向量表、堆栈设计、初始化程序和蓝牙处理程序。HCI固件通过访问控制硬件状态寄存器、控制寄存器、事件寄存器、基带命令和链路管理命令执行HCI命令。蓝牙系统的MCU在蓝牙处理程序控制下,会读取来自上层协议栈的命令,然后根据命令配置基带层的相应寄存器。反之基带层接收到信息后反馈给MCU,MCU通过HCI物理接口递交这些信息至上层协议栈,上层协议栈根据这些信息,再产生新的命令进行处理。 HCI驱动:HCI驱动位于蓝牙主机中,也就是协议结构中HCI软件驱动部分。当某个事件触发时,控制器通过事件方式通知主机,主机则接收该事件的异步通知。当主机发现有事件发生时,它将分析收到的事件包并判断事件类型,做出相应的处理。 前海蓝亚,专注BQB认证服务,QQ:3158331799 实际物理接口:作为HCI接口的实际物理实体,位于HCI固件和HCI驱动的中间层,提供可靠的数据传输。蓝牙控制器与主机可以使用不同的数据传输方式进行通信。不同通信方式的数据格式在实际硬件接口均具有特定的封装格式,但是经过HCI层的封装统一,不同类别的通信方式并不会造成主机接收到的HCI事件异步通知无法相互识别的情况。常用的物理接口有USB、UART和RS232三种。下图表示UART作为HCI接口时,主机与控制器的连接图。 
4、其他上层协议规范 1)逻辑链路控制适配层(L2CAP)规范 逻辑链路控制适配层位于主机中,采用了协议复用和数据包分段重组技术,负责向高层协议栈提供面向连接的数据服务。它允许高层协议收发数据长度为64K字节。 2)通用访问协议(GAP)规范
3)属性协议(ATT)规范
4)安全管理协议(SMP)规范
5)通用属性协议(GATT)规范
参考:1)蓝牙技术联盟官网 2)Bluetooth开发者门户
|