4、硬件架构设计:终端硬件框图设计(MCU+NB-IoT模组+传感器+电源管理),关键接口与信号完整性要点
好,咱们进入第四章。这一章我打算聊聊硬件架构设计。说白了,就是一张框图怎么把MCU、NB-IoT模组、传感器和电源管理这几个核心部件串起来。
很多新手工程师喜欢一上来就画原理图。我个人习惯是,先花半天时间把框图理清楚。框图错了,后面全是白干。我在项目中遇到过好几次,因为框图阶段没考虑周全,导致PCB改了三版,那叫一个痛苦。
4.1 终端硬件总体框图
先看一个典型的NB-IoT终端架构。它由四个核心模块组成:
- MCU:负责数据处理、协议栈调度、低功耗管理
- NB-IoT模组:负责无线通信,与基站交互
- 传感器:采集环境数据(温度、湿度、压力、水表脉冲等)
- 电源管理:电池供电 + DC-DC + LDO,保证各模块稳定工作
嗯,这里要注意。MCU和NB-IoT模组之间,通常走UART接口。但UART的波特率、流控、电平匹配,都是坑。我见过有人直接把3.3V的MCU接到1.8V的模组上,结果通信时好时坏。说白了,电平转换是必须的。
4.2 关键接口设计
4.2.1 MCU与NB-IoT模组的UART接口
这是整个终端的数据生命线。我建议用以下方式:
- 波特率:推荐115200或9600。115200适合大数据量传输,9600更稳定。我一般选115200,因为NB-IoT的AT指令包通常不大,115200足够。
- 流控:如果模组支持硬件流控(RTS/CTS),建议开启。我在项目中遇到过,模组发送数据时MCU来不及处理,导致丢包。开了流控后,问题就解决了。
- 电平匹配:NB-IoT模组(如BC95、M5310)的UART电平通常是1.8V。MCU如果是3.3V,必须加电平转换芯片(如TXS0102)。千万别用电阻分压,那玩意儿在高频下波形会变形。
接口连接示例:
MCU (3.3V) 电平转换 NB-IoT模组 (1.8V)
TX --------------> TXS0102 --------------> RX
RX <-------------- TXS0102 <-------------- TX
RTS --------------> TXS0102 --------------> CTS
CTS <-------------- TXS0102 <-------------- RTS
GND -------------------------------------- GND
4.2.2 传感器接口
传感器接口类型很多。我挑几个常见的说说:
- I2C:适合短距离、低速传感器(如温湿度传感器SHT30)。注意上拉电阻,一般4.7kΩ。如果总线长度超过10cm,建议减小到2.2kΩ。
- SPI:适合高速传感器(如加速度计)。注意时钟线要短,避免信号反射。我习惯在SPI时钟线上串联一个22Ω的电阻,用来抑制过冲。
- GPIO:适合开关量传感器(如水表脉冲、门磁)。注意去抖。软件去抖加硬件RC滤波,双重保险。
避坑指南: 我曾经在一个水表项目中,传感器脉冲信号没加RC滤波,结果MCU每秒钟收到几百个中断,直接导致系统卡死。后来加了一个10kΩ电阻+100nF电容的RC低通滤波,世界清净了。
4.2.3 电源管理接口
电源是低功耗设计的核心。我一般这样分配:
| 模块 | 电压 | 供电方式 | 备注 |
|---|---|---|---|
| MCU | 3.3V | LDO(如XC6206) | 低静态电流,约1μA |
| NB-IoT模组 | 3.8V | DC-DC(如TPS63020) | 峰值电流可达500mA,需要大电容 |
| 传感器 | 3.3V | MCU的GPIO控制供电 | 不工作时关断,省电 |
你想想看,NB-IoT模组在发射时,电流会突然从几微安飙升到几百毫安。如果电源设计不好,电压会被拉低,导致模组重启。我建议在模组电源输入端加一个100μF的钽电容,再加一个10μF的陶瓷电容,这样能有效抑制电压跌落。
4.3 信号完整性要点
信号完整性,说白了就是保证信号从发送端到接收端,波形不变形。NB-IoT终端虽然频率不高(UART最高也就几MHz),但有些细节不注意,照样出问题。
4.3.1 阻抗匹配
NB-IoT模组的射频输出,阻抗是50Ω。天线走线必须做50Ω阻抗控制。我建议用微带线或共面波导结构。如果PCB层数不够,至少保证天线走线下面有完整的参考地平面。
警告: 天线走线不要走直角,用45度角或圆弧。直角会导致阻抗突变,产生反射,影响发射功率。我曾经测试过,直角走线比圆弧走线,发射功率低了2dBm。
4.3.2 地平面设计
地平面是信号完整性的基础。我建议:
- 整个PCB使用完整的地平面,不要分割
- 模拟地和数字地,在ADC采样点附近单点连接
- 电源地和大电流地,要加宽走线,减少压降
嗯,这里有个小技巧。MCU和NB-IoT模组之间,如果UART走线超过5cm,建议在走线旁边加一条地线,形成“包地”结构。这样可以减少串扰。我在一个项目中,UART走线长达8cm,没包地,结果模组偶尔收到乱码。包地之后,问题消失。
4.3.3 去耦电容
每个芯片的电源引脚,都要加去耦电容。我习惯这样放:
- 每个电源引脚:一个100nF陶瓷电容,紧贴引脚放置
- 每个芯片:一个10μF陶瓷电容,放在芯片附近
- 板级:一个100μF电解电容,放在电源入口
为什么这么放?100nF负责滤除高频噪声,10μF负责中频,100μF负责低频。三层滤波,保证电源干净。
4.4 低功耗设计要点
低功耗不是靠一个芯片就能搞定的。它是系统级的设计。我总结了几点:
- MCU选型:选支持多种睡眠模式的MCU。比如STM32L系列,有Stop模式、Standby模式。我一般用Stop模式,电流约几微安,唤醒时间几微秒。
- 传感器供电控制:用MCU的GPIO控制传感器的电源。不采集数据时,直接关断。我在项目中用了一个P沟道MOS管(如SI2301),GPIO高电平时关断,低电平时导通。静态电流几乎为零。
- NB-IoT模组休眠:模组支持PSM(省电模式)和eDRX(扩展非连续接收)。PSM模式下,模组几乎不耗电,但无法接收下行数据。eDRX模式下,可以周期性监听寻呼。根据应用场景选择。我一般用PSM,因为大多数场景是上行数据为主。
个人经验: 我曾经做一个智能水表项目,要求电池寿命5年。一开始模组用eDRX模式,每2.56秒监听一次寻呼,结果电流平均50μA,电池只能撑2年。后来改成PSM模式,只在发送数据时唤醒,平均电流降到5μA,电池寿命直接翻倍。
4.5 总结
好了,这一章的内容就这些。硬件架构设计,说白了就是平衡性能、功耗和成本。框图阶段多花点时间,后面就能少走弯路。下一章,我会聊聊原理图设计中的具体细节,包括每个引脚的连接、电阻电容的选型等等。
记住一句话:框图是骨架,原理图是血肉,PCB是灵魂。骨架歪了,后面再怎么补也白搭。