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是灵魂。骨架歪了,后面再怎么补也白搭。