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,电流消耗大约翻倍。但通信距离只增加不到一倍。怎么平衡?
我一般遵循这个原则:够用就好,绝不浪费。具体做法是:
- 先确定最远通信距离:比如贴片在病房内使用,最远距离10米。那就不需要把发射功率开到最大。
- 做链路预算:计算路径损耗,加上余量,反推出需要的发射功率。
- 动态功率控制:根据接收端的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余量,结果患者一翻身就断连,被临床医生骂惨了。