4、多模通信方案总体设计:系统架构设计原则、多模通信模组选型、硬件接口设计
好,咱们进入第四章。这一章,我打算聊聊多模通信方案的整体设计。说白了,就是怎么把NB-IoT、Cat.1、甚至蓝牙、Wi-Fi这些不同的通信方式,揉到一个系统里,让它们协同工作。
你想想看,一个设备如果只支持NB-IoT,那它在信号不好的地方就彻底失联了。但如果加上Cat.1,功耗又上去了。怎么平衡?这就是多模通信要解决的问题。我个人习惯,在设计之初就把架构想清楚,后面能少走很多弯路。
4.1 系统架构设计原则
做多模通信,不是简单地把几个模组焊在一块板上。你得有章法。我总结了三条核心原则,供你参考。
原则一:主控统一,模组分立
主控芯片(比如MCU或MPU)负责所有通信模组的调度。模组只管收发数据。这样做的好处是,逻辑清晰,便于后期升级。我在一个项目中遇到过,客户想把NB-IoT换成Cat.M,如果当初把协议栈写在模组里,那改动就大了。现在只需要改驱动,上层应用几乎不动。
原则二:功耗优先,按需切换
默认情况下,设备跑在NB-IoT上,功耗最低。只有当NB-IoT信号差到一定程度,或者有大数据量要传,才切换到Cat.1或Wi-Fi。这个切换阈值,你得在实验室里反复调。我曾经因为阈值设得太灵敏,导致设备在信号边缘来回切换,电池两天就耗光了。嗯,这都是教训。
原则三:数据冗余,链路备份
关键数据(比如报警信息)要支持多链路发送。NB-IoT发一次,如果没收到ACK,再通过Cat.1补发一次。说白了,就是给数据上个双保险。这在工业场景里特别重要。
4.2 多模通信模组选型
选模组,是门学问。市面上模组那么多,怎么挑?我一般从三个维度来考量:
| 维度 | 关键指标 | 我的建议 |
|---|---|---|
| 通信制式 | NB-IoT / Cat.1 / Cat.M / Wi-Fi / BLE | 根据应用场景选。固定场景用Wi-Fi,移动场景用蜂窝。NB-IoT适合低频小数据,Cat.1适合中速语音或大数据。 |
| 功耗 | PSM / eDRX 支持情况 | 电池供电的设备,必须支持PSM。我见过一些模组标称低功耗,实际待机电流还是偏高,一定要看实测数据。 |
| 接口 | UART / SPI / USB / PCM | 优先选UART,简单可靠。如果对速率有要求,可以考虑SPI。PCM接口是留给语音的,别选错了。 |
举个例子。我之前做一款智能水表,选了移远的BC26(NB-IoT)加乐鑫的ESP32(Wi-Fi/BLE)。BC26负责每天上报一次用水量,ESP32负责本地固件升级和蓝牙调试。两个模组通过UART与主控STM32通信。这个组合,成本低,功耗也控制得不错。
小提示:选模组时,别忘了看它的「封装兼容性」。有些厂商的NB-IoT和Cat.1模组是pin-to-pin兼容的。这意味着你可以在同一块PCB上,通过贴不同的模组,来适配不同客户的需求。这个技巧,能帮你省一大笔开模费。
4.3 硬件接口设计
硬件接口设计,是决定系统稳定性的关键。我见过太多因为接口没处理好,导致通信不稳定的案例。这里我重点说三点:
4.3.1 电源设计
多模通信,最头疼的就是电源。NB-IoT模组发射时电流会突然飙升到200-300mA,Cat.1模组更高,可能到500mA以上。如果电源设计不好,电压一掉,模组就重启了。
我的做法是:
- 每个模组独立供电,用LDO或DC-DC隔离。
- 在模组电源入口,加一个大电容(比如470uF),应对瞬时大电流。
- 主控和模组之间,加电平转换芯片。3.3V和1.8V混用,很容易烧IO口。
注意:千万不要让两个模组同时发射!我曾经在测试时,让NB-IoT和Wi-Fi同时发数据,结果电源纹波大得离谱,主控直接死机。后来在软件里加了互斥锁,才解决这个问题。
4.3.2 天线设计
天线是通信的「最后一公里」。多模通信,意味着多根天线。怎么布局?
- 天线之间要保持距离,至少1/4波长。否则会互相干扰,导致灵敏度下降。
- NB-IoT天线和Wi-Fi天线,最好分开放置。一个在板子上方,一个在下方。
- 如果空间不够,可以用天线切换开关。但要注意,切换开关会引入0.5-1dB的插损。
我记得有一次,客户反馈设备在弱信号下连不上网。我过去一看,NB-IoT天线和Wi-Fi天线紧挨着,中间只隔了2mm。把天线拉开后,问题就解决了。嗯,细节决定成败。
4.3.3 接口电平匹配
不同模组的工作电压可能不同。有的1.8V,有的3.3V。直接连,轻则通信异常,重则烧毁模组。
我的标准做法是:
- 用TXS0108这类双向电平转换芯片。
- 或者用MOS管搭建简单的电平转换电路。
- 实在不行,用电阻分压。但只适合低速信号(比如UART)。
// 示例:UART电平转换电路(3.3V MCU 与 1.8V 模组)
// MCU TX (3.3V) -> 2k电阻 -> 模组 RX (1.8V)
// 模组 TX (1.8V) -> 直接连 -> MCU RX (3.3V) [如果MCU支持1.8V输入]
// 如果不支持,需要加电平转换芯片
避坑指南:我曾经为了省成本,用电阻分压做电平转换。结果UART波特率一上115200,数据就出错。后来换成电平转换芯片,问题才解决。所以,高速信号(比如SPI、UART高波特率),别省那几毛钱。
好了,这一章的内容就这些。系统架构设计,说白了就是「主控统一、功耗优先、数据备份」。模组选型,看制式、功耗、接口。硬件接口,重点管好电源、天线、电平匹配。把这些搞定了,多模通信方案就稳了一大半。