3. 系统架构设计:主控板选型与功能模块划分

好,咱们进入第三章。这一章我打算聊聊系统架构设计。说白了,就是决定「用什么脑子」和「怎么分工」。很多新手工程师一上来就画原理图,结果后面发现引脚不够用,或者通信接口打架。嗯,我早期也吃过这个亏。

3.1 主控芯片选型:STM32 vs ESP32 vs 国产芯片

选主控,我个人的习惯是先看「需求清单」。充电桩需要什么?计量数据采集、4G/Wi-Fi通信、继电器控制、屏幕显示、还有一堆保护逻辑。算力要求不高,但接口要够用。

我列个对比表,大家看着更清楚:

芯片型号 核心优势 典型应用场景 我踩过的坑
STM32F103/F407 生态成熟,资料多,稳定 交流桩、直流桩控制板 曾经因为选F103,RAM不够跑OTA,后来换了F407
ESP32 自带Wi-Fi/蓝牙,价格低 家用交流桩、联网需求强 注意它的ADC精度一般,计量别用它的内置ADC
国产GD32/AT32 性价比高,供货稳 成本敏感型产品 有些型号的USB兼容性有问题,要仔细测

我个人建议:如果是做量产产品,尤其是要过认证的,首选STM32。不是说国产不好,而是你想想看,认证周期那么长,万一芯片有个小bug,改版成本太高。我有个项目就因为这个,硬生生多花了三个月。

核心选型原则:

  • 计量类任务:必须用独立计量芯片,别指望主控自带的ADC
  • 通信类任务:如果走4G,主控只需要串口;如果走Wi-Fi,ESP32有优势
  • 控制类任务:继电器驱动、PWM输出,普通MCU都能搞定

3.2 功能模块划分:计量/通信/控制/人机

一个充电桩系统,我习惯把它拆成四个大块。你想想看,这样分工明确,调试也方便。

3.2.1 计量模块

这是充电桩的「眼睛」。负责采集电压、电流、功率、电能。我建议用专用计量芯片,比如RN8302B、HLW8032、ATT7022。为什么?因为这些芯片内部有硬件滤波器,能滤掉电网的谐波干扰。我曾经试过用MCU的ADC直接采样,结果数据跳得跟心电图似的,根本没法用。

小提示:计量芯片和主控之间一般用SPI或UART通信。注意隔离!高压侧和低压侧一定要加隔离芯片,比如ISO7240。安全第一。

3.2.2 通信模块

通信是充电桩的「嘴巴」。主要分三种:

  • 4G通信:用EC200U或SIM7600,走MQTT协议连云平台。注意天线要选好,我见过因为天线匹配不好,信号差到连不上网的。
  • Wi-Fi通信:如果选ESP32,它自带Wi-Fi,省一个芯片。但要注意,公共桩不建议用Wi-Fi,不稳定。
  • 有线通信:RS485用于和电表通信,CAN用于和BMS(电池管理系统)通信。嗯,这里要注意,CAN总线要加终端电阻,120欧姆,别漏了。

3.2.3 控制模块

控制是充电桩的「手」。主要管三件事:

  1. 继电器控制:控制充电枪的通断。我建议用双继电器冗余设计,防止粘连。
  2. PWM输出:用于和电动汽车通信,告诉车子「我能给你充多大电流」。这个PWM的频率是1kHz,占空比代表电流值。
  3. 漏电检测:必须硬件实现,不能靠软件。我曾经见过一个方案,用软件检测漏电,结果响应慢了200ms,差点出事。

3.2.4 人机交互模块

人机交互是充电桩的「脸面」。常见的有:

  • LCD屏幕:显示充电状态、电量、金额。建议用串口屏,开发快。
  • 按键/刷卡:用于启动充电。注意按键要防抖,硬件消抖加软件消抖双重保险。
  • 指示灯:红绿蓝三色LED,表示不同状态。红色故障,绿色充电中,蓝色待机。

3.3 系统框图与接口定义

好了,模块分完了,咱们得把它们连起来。我画一个典型的系统框图,大家感受一下:

+------------------+       +------------------+
|   计量芯片        |       |   4G模块          |
|   (RN8302B)      |<-SPI->|   (EC200U)        |
+------------------+       +------------------+
        |                           |
        |                           |
+------------------+       +------------------+
|   主控MCU         |<------|   RS485/CAN      |
|   (STM32F407)    |       |   接口电路        |
+------------------+       +------------------+
        |                           |
        |                           |
+------------------+       +------------------+
|   继电器驱动      |       |   人机交互        |
|   (光耦+MOS)     |       |   (串口屏+按键)   |
+------------------+       +------------------+

接口定义这块,我建议用表格列清楚,方便硬件工程师画原理图:

接口名称 通信方式 引脚定义 备注
计量芯片接口 SPI CS, SCK, MISO, MOSI 注意时钟极性,CPOL=0, CPHA=0
4G模块接口 UART TX, RX, RTS, CTS 波特率115200,流控可选
继电器控制 GPIO RELAY1, RELAY2 高电平有效,加光耦隔离
PWM输出 定时器 PWM_OUT 1kHz, 占空比10%-90%
串口屏 UART TX, RX 波特率9600或115200

警告:接口定义一定要和硬件工程师对齐!我遇到过因为引脚定义不一致,导致PCB打样回来飞线的惨案。嗯,那次加班到凌晨三点,记忆犹新。

3.4 避坑指南

最后,分享几个我亲身经历的坑:

  • 电源设计:主控、计量、通信模块要分开供电。我曾经把所有模块共用一个LDO,结果4G模块一发射,MCU就复位。后来加了DC-DC隔离才解决。
  • 地线处理:模拟地和数字地要单点连接。计量芯片对地噪声特别敏感,我试过不分割地,计量误差直接超了5%。
  • 预留调试接口:一定要留SWD或JTAG接口。别问我为什么,等你程序跑飞了就知道有多重要了。

好了,这一章就到这里。系统架构设计是地基,地基不稳,后面全是白搭。下一章咱们聊聊「硬件原理图设计」,到时候我会把计量电路、通信电路、电源电路一个个拆开来讲。记得带上你的原理图工具。