2. BLE协议栈与医疗数据流
BLE(Bluetooth Low Energy)协议栈并不是一条简单的“无线通道”,而是一套严格分层的通信体系。对医疗可穿戴设备而言,理解这套分层模型的意义在于:每一层都对应着不同的实时性、可靠性和功耗约束,而医疗数据从传感器到手机或网关的完整路径,正是逐层封装、逐层解封装的过程。只有把“数据在哪一层、由谁处理、受什么参数影响”看清楚,才能在出现丢包、延迟或断连时快速定位问题。
一、协议栈的分层结构与职责边界
从下往上,BLE协议栈通常划分为:物理层(PHY)、链路层(LL)、主机控制器接口(HCI)、逻辑链路控制与适配协议(L2CAP)、安全管理协议(SMP)、属性协议(ATT)、通用属性规范(GATT),以及建立在GATT之上的各类医疗规范(如HRS心率服务、PLX脉搏血氧服务)。控制器部分(PHY、LL、HCI)通常由单芯片实现,主机部分(L2CAP及以上)运行在MCU或应用处理器中。
物理层工作在2.4GHz ISM频段,采用GFSK调制,共40个信道,其中3个为广播信道(37、38、39),37个为数据信道。BLE在数据信道上使用自适应跳频,每秒跳频次数可达数百至上千次,以规避Wi-Fi等干扰。链路层负责广播、扫描、发起连接、数据包收发与确认重传,是实时性和可靠性的第一道关口。L2CAP负责多路复用与分段重组,把上层不同服务的数据流区分开。ATT定义了客户端与服务器之间的属性读写模型,GATT则把这些属性组织为服务(Service)和特征(Characteristic),形成医疗数据可被手机识别的标准结构。
二、医疗数据从传感器到手机/网关的完整路径
以一款典型的心率+血氧手环为例,数据路径可以拆解为六个阶段。第一阶段是生理信号采集:PPG光电传感器以例如100Hz的采样率采集光电容积脉搏波,ECG电极以例如250Hz采集心电信号。第二阶段是设备端预处理:MCU运行滤波和峰值检测算法,计算出心率值(如72bpm)和血氧饱和度(如98%),并打包为GATT特征值。第三阶段是GATT服务器通知:设备通过Notify或Indicate把特征值推送给已订阅的客户端。第四阶段是空中传输:链路层把ATT数据封装为PDU,在连接事件中发送,若未收到ACK则按重传机制补发。第五阶段是手机/网关接收:GATT客户端收到通知后解析特征值,更新UI或转发到云端。第六阶段是应用层处理:手机App或网关根据阈值判断是否触发告警,例如心率持续超过120bpm或血氧低于90%时发出提醒。
这条路径中,每一层都有明确的“责任田”。传感器层决定信号质量,预处理层决定数据精度,GATT层决定数据结构,LL层决定传输可靠性,应用层决定业务响应。医疗设备开发者必须清楚:当数据出现异常时,问题可能出在任意一层,而不是笼统地归因于“蓝牙不稳定”。
三、协议栈各层与医疗实时性、可靠性的对应关系
实时性方面,最关键的参数是连接间隔(Connection Interval)。它定义了主从设备两次通信之间的时间间隔,范围通常为7.5ms到4s。对于心率监测,30ms左右的连接间隔可以保证数据及时上报;对于ECG波形这类高采样率数据,可能需要7.5ms甚至更短的间隔,或者采用更高效的数据打包方式。从设备延迟(Slave Latency)允许从设备跳过若干次连接事件以节省功耗,但会牺牲实时性,医疗场景中通常设置为0或很小的值。
可靠性方面,BLE在链路层提供了自动重传请求(ARQ)机制:发送方发出数据包后等待ACK,若超时未收到则重传。ATT层则提供两种通知方式:Notify不需要确认,速度快但可能丢包;Indicate需要客户端确认,可靠性高但吞吐量较低。对于心率、血氧等周期性数据,Notify通常足够;对于报警事件、设备配置等关键数据,建议使用Indicate或带确认的写操作。
此外,SMP层负责配对与加密,医疗数据涉及隐私,必须启用LE Secure Connections配对,并对敏感特征值设置加密权限。GATT层则通过服务发现和特征属性(读、写、通知、指示)定义了数据的访问方式,是手机端识别医疗设备的“语言”。
四、分层模型对医疗设备开发的指导意义
分层模型的价值在于“分而治之”。硬件工程师关注PHY和LL的射频性能与天线匹配;嵌入式工程师关注HCI、L2CAP和GATT的数据组织与功耗管理;App工程师关注GATT客户端解析与业务逻辑。当设备出现连接不稳定时,先看LL层的连接参数和干扰情况;当数据解析错误时,先看GATT层的特征定义和字节序;当数据延迟时,先看连接间隔和从设备延迟。每一层都有对应的工具和指标,而不是把所有问题都推给“蓝牙协议栈”。
对于医疗可穿戴设备,还需要特别注意:协议栈各层的参数配置必须与临床需求匹配。例如,心率报警的端到端延迟应控制在可接受范围内,这要求从传感器采样、算法处理、GATT通知到手机显示的整条链路都要优化。只有把分层模型与医疗数据流结合起来理解,才能设计出既可靠又实时的BLE医疗互联方案。