4. 物理层(PHY)设计:频段选择、调制方式与功耗权衡

好,咱们进入物理层设计。这一层是无线通信的根基,说白了就是决定信号怎么发出去、用什么频段、怎么调制。我做了这么多年医疗贴片,可以负责任地告诉你:物理层选型一旦出错,后面软件写得再好也白搭。

4.1 频段选择:2.4GHz vs Sub-1GHz

医疗贴片常用的ISM频段就两个:2.4GHz和Sub-1GHz(典型的是868MHz或915MHz)。怎么选?我直接说结论:

对比项 2.4GHz (BLE) Sub-1GHz (LoRa)
穿透能力 弱,遇水衰减严重 强,能穿墙穿人体
传输距离 典型10-30米 室内50-200米,视距可达1km+
数据速率 1Mbps-2Mbps 0.3kbps-50kbps
功耗 低(BLE设计目标) 更低(LoRa扩频增益)
抗干扰 WiFi/蓝牙/Zigbee共存 干净,干扰少
生态成熟度 极高,手机直连 中等,需专用网关

我个人习惯:如果贴片需要跟手机通信,比如患者自己用App看数据,那首选2.4GHz BLE。为什么?因为手机里没有Sub-1GHz的芯片,你总不能让人家再买个专用接收器吧?

但如果是医院内组网,贴片数据要传到护士站,而且患者可能在病房里走动,那我建议用Sub-1GHz。我在一个心电贴片项目里遇到过:2.4GHz信号穿过人体后,接收端RSSI直接掉了20dBm,数据包重传率飙升到30%以上。后来换成868MHz,问题就解决了。

核心原则:贴片贴在人体上,信号要穿过组织液和肌肉。2.4GHz在含水介质中衰减严重,Sub-1GHz就好很多。如果你的贴片是贴在衣服上而非皮肤上,那2.4GHz完全够用。

4.2 调制方式:BLE vs LoRa

频段定了,接下来选调制方式。这里我重点讲两个:BLE的GFSK和LoRa的CSS扩频。

4.2.1 BLE的GFSK调制

BLE用的是高斯频移键控(GFSK)。说白了就是通过频率偏移来代表0和1。优点是实现简单、功耗低、成本低。缺点嘛——抗干扰能力一般。

我记得有一次做血糖连续监测贴片,BLE在手术室附近就频繁断连。查了半天,发现是手术室里的电刀设备产生了宽带噪声,直接把BLE信号淹没了。嗯,这种场景下BLE就不太合适。

小技巧:BLE的物理层其实有3个广播信道(37/38/39),它们故意避开了WiFi的1/6/11信道。但如果你周围WiFi设备太多,还是建议做一次信道扫描,动态选择干扰最小的信道。

4.2.2 LoRa的CSS扩频

LoRa用的是啁啾扩频(CSS)。它的核心思想是:把信号能量分散到很宽的频带上,接收端再用相关运算把信号捞回来。代价是数据速率极低,但换来的是惊人的灵敏度和抗干扰能力。

你想想看,一个LoRa信号可以比噪声低20dB还能解调。这在医疗场景下意味着什么?意味着贴片可以用极低的发射功率,把数据传到几百米外。我做过一个测试:LoRa贴片在发射功率只有+2dBm时,穿了两堵墙还能稳定接收,丢包率不到1%。换成BLE,同样的功率,一堵墙就挂了。

参数 BLE GFSK LoRa CSS
接收灵敏度 -96dBm(典型) -130dBm至-148dBm
链路预算 约100dB 约150-170dB
数据包长度 最大255字节 最大256字节(推荐短包)
适用场景 高频次、小数据量 低频次、远距离、高可靠

注意:LoRa虽然灵敏度高,但它的数据速率跟扩频因子(SF)强相关。SF=12时灵敏度最好,但传输一个字节就要花几十毫秒。如果你的贴片需要每秒上传一次数据,LoRa可能就不太合适了。

4.3 发射功率与功耗的权衡

这是物理层设计里最让人头疼的部分。发射功率每增加3dBm,电流消耗大约翻倍。但通信距离只增加不到一倍。怎么平衡?

我一般遵循这个原则:够用就好,绝不浪费。具体做法是:

  1. 先确定最远通信距离:比如贴片在病房内使用,最远距离10米。那就不需要把发射功率开到最大。
  2. 做链路预算:计算路径损耗,加上余量,反推出需要的发射功率。
  3. 动态功率控制:根据接收端的RSSI反馈,自动调整发射功率。

举个例子,一个BLE贴片项目:

// 动态功率控制伪代码
void adjust_tx_power(int16_t rssi) {
    if (rssi > -50) {
        // 信号太强,降低功率
        set_tx_power(TX_POWER_0dBm);  // 约5mA
    } else if (rssi > -70) {
        set_tx_power(TX_POWER_4dBm);  // 约8mA
    } else {
        // 信号弱,开最大功率
        set_tx_power(TX_POWER_8dBm);  // 约15mA
    }
}

我曾经在一个项目中踩过坑:为了追求通信可靠性,把发射功率固定在了最大值。结果电池续航从7天直接掉到2天。后来加了动态功率控制,续航恢复到5天,通信成功率只下降了0.3%。这个代价完全值得。

避坑指南:我曾经以为发射功率越大越好,结果发现贴片发热严重,患者皮肤都红了。医疗设备有温升限制,发射功率太大可能导致局部温度超过41°C,这是绝对不允许的。所以功率设计时一定要考虑热效应。

4.4 实际选型建议

说了这么多,我直接给几个典型场景的选型建议:

医疗贴片类型 推荐方案 理由
动态心电贴片(24小时) BLE 2.4GHz 需手机App查看,数据量大,功耗敏感
体温贴片(连续监测) Sub-1GHz LoRa 数据量小,需穿墙,续航要求高
胰岛素泵(闭环控制) BLE 2.4GHz + 私有协议 低延迟,高可靠性,需与手机联动
院内患者定位贴片 Sub-1GHz LoRa 远距离,低功耗,需覆盖整个病区

最后说一句:物理层设计没有银弹。每个项目都要根据实际需求做权衡。我的习惯是先做原型测试,用频谱仪和信号发生器把链路预算摸清楚,再定最终方案。纸上谈兵在射频领域是行不通的。

我的经验:做医疗贴片物理层设计时,一定要留出至少6dB的链路余量。因为人体移动、环境变化、电池电压下降都会影响射频性能。我曾经因为只留了3dB余量,结果患者一翻身就断连,被临床医生骂惨了。