蓝牙技术在无线通信领域得到了广泛的应用,其中BLE(Bluetooth Low Energy)4.0作为一种低功耗蓝牙技术,适用于对能耗要求极高的设备,例如健康监测设备、智能家居、定位追踪等。BLE4.0协议在架构上由两个主要部分组成,分别是主机层(Host)和控制器层(Controller)。
一、协议组成
1.1 主机层(HOST)和控制器层(CONTROLLER)
主机层主要负责应用层与蓝牙协议栈之间的交互,管理通信协议,处理高层逻辑以及与设备上的应用程序进行数据交换。控制器层则负责处理物理无线信号的传输,包括信号的编码解码、频率调制、无线信号的发送和接收等。在控制器层中还包含了一个物理层(PHY),负责硬件相关的操作。
1.1.1 控制器层组成
控制器层的组成包含物理层(PHY)和链路层(Link Layer)。物理层定义了蓝牙的频段、调制方式和发射功率等参数,而链路层则定义了蓝牙通信的底层协议,包括状态机、数据结构、设备地址和通道管理等。
1.1.2 主机层组成
主机层主要由软件实现,包括蓝牙协议栈中的逻辑链路控制与适应协议(L2CAP)、属性协议(ATT)、通用属性配置文件(GATT)等。这些协议确保了应用层与蓝牙硬件之间的有效通信和数据的逻辑管理。
二、控制器层详解
2.1 物理层(PHY)
物理层是蓝牙通信的最底层,它规定了蓝牙设备使用的频段、调制技术、射频信道、发射功率等重要参数。
2.1.1 频段
蓝牙4.0技术定义了2.4GHz的ISM(工业、科学和医疗)频段,使用的是全球通用的2400-2483.5MHz范围内的79个频率点。
2.1.2 调制
蓝牙4.0采用了高斯频移键控(GFSK)的调制方式,用于确保信号的稳定传输。
2.1.3 射频信道
射频信道分为3个广播信道和37个数据信道,其中广播信道用于设备间的发现和广播信息,数据信道用于设备间的安全连接和数据传输。
2.1.4 发射功率
发射功率由设备制造商根据设备的需求和标准进行设定,这直接影响设备的覆盖范围和功耗。
2.2 链路层描述
链路层在控制器层中负责设备间的实际数据传输。它定义了蓝牙设备的状态机、数据流格式、前导码、接入地址、循环冗余码校验(CRC)和数据白化等。
2.2.1 链路层的状态机
链路层的状态机由多个状态组成,如就绪态、广播态、扫描态、发起态、连接态和监管超时等。
2.2.2 状态描述
链路层的每个状态都有其特定功能和要求,例如在广播态时设备可以广播信息,扫描态时设备可以扫描其他设备等。
2.2.3 bit数据流格式
链路层通过特定格式的bit数据流来传输信息,包括Preamble前导码和AccessAddress接入地址等。
2.2.4 Preamble前导码
Preamble前导码用于同步蓝牙设备之间的通信,它是一个固定的比特模式,用于识别蓝牙信号的开始。
2.2.5 AccessAddress接入地址
AccessAddress接入地址用于识别特定的数据包,它是一个独特的比特序列,用于区分广播和数据通道上的数据包。
2.2.6 CyclicRedundancyCheck (CRC)循环冗余码校验
CRC用于检测数据在传输过程中的错误,如果计算出的CRC与接收到的CRC不匹配,则数据包可能已经被损坏。
2.2.7 DATAWHITENING数据白化
数据白化是一种加密技术,它通过特定算法将数据均匀分散,防止长串的“0”或“1”连续出现,这有助于降低信号被拦截和干扰的风险。
2.3 链路层报文结构
链路层定义了广播和数据通道的协议数据单元(PDU),其中包括PDU的报头和长度、广播通道的PDU格式以及数据通道的PDU格式。
2.4 链路层设备滤波
链路层还包含设备滤波机制,允许设备筛选掉不希望接收的数据包,从而提高通信效率和安全性。
2.5 NRF51822的Radio
NRF51822是Nordic Semiconductor的一款集成蓝牙4.0功能的无线SoC(System on Chip),其包含的Radio组件实现了PHY层和链路层的无线传输功能。NRF51822的Radio通过EasyDMA模块进行数据传输,支持包结构、设备地址--白名单、状态机和时间参数以及基本配置等。
2.6 信道
信道管理涉及到调频和自适应调频,以优化设备间的通信质量。调频可以改变频率,避免干扰,而自适应调频则根据信号质量自动调整频率。
2.7 非连接状态和连接状态
蓝牙4.0定义了不同的状态来管理设备连接前后的各种情况。非连接状态下,设备可以进行广播和扫描等操作。连接状态下,则涉及连接事件、监管超时、连接事件传输窗口、连接状态主机和从机处理、连接事件关闭以及窗口扩展等。这些状态的设定保证了蓝牙设备在各种通信场景中的高效和稳定。
2.8 空中接口包
空中接口包包括广播通道PDU和数据通道PDU。广播通道PDU负责广播数据的结构和结构定义,而数据通道PDU包含LLDataPDU和LLControlPDU,后者用于处理连接更新、通道映射、断开连接、加密请求等控制消息。此外,连接态的数据包还涉及到确认和重发机制,以及多数据发送标志,如序列号(SN)、预期序列号(NESN)和更多数据(MD)等。
在理解了上述BLE4.0协议的各个组成部分和功能后,开发者可以更好地设计和开发BLE4.0兼容的低功耗蓝牙设备,实现各种无线通信和智能设备间的高效交互。