4. 系统架构设计

好,咱们进入第四讲。系统架构设计,说白了就是搭骨架。骨架搭歪了,后面填再好的肉也白搭。我见过不少项目,上来就画原理图,结果做到一半发现隔离电源功率不够,或者通信速率上不去,回头改架构,那叫一个痛苦。所以,这一节咱们把几个关键点掰开揉碎了讲清楚。

4.1 绝缘监测系统整体框图

先看整体。一个典型的绝缘监测系统,我习惯把它分成四大块:

  • 信号采集前端:负责把高压直流母线上的绝缘电阻信号,转换成低压侧能处理的电压信号。这里通常包含分压电阻网络、多路复用开关、以及一级差分运放。
  • 隔离屏障:这是绝缘监测的核心。没有隔离,高压侧一打火,低压侧的控制芯片和通信接口全得报销。隔离包括电源隔离和信号隔离。
  • 主控单元:负责控制采集时序、运行绝缘电阻算法、判断报警阈值、以及对外通信。
  • 人机交互与通信接口:包括本地显示、按键、以及CAN/RS485等总线接口。

下面这张图是我自己画的一个简化框图,你可以参考一下:

高压侧(DC 1500V) 低压侧(3.3V/5V) 隔离屏障 分压电阻网络 将高压衰减至安全电压 多路复用开关 切换正极/负极对地测量 差分运放 放大微弱信号,抑制共模 隔离电源 DC-DC 隔离模块 隔离通信 数字隔离器 / 光耦 主控芯片(MCU/DSP) 控制逻辑 + 算法运算 ADC 采样 高精度模数转换 通信接口 CAN / RS485 / 以太网 信号 电源 信号 电源

嗯,这里要注意:高压侧和低压侧之间,绝对不能有任何直接的电气连接。我见过有人为了省成本,把高压侧的地和低压侧的地通过一个0欧电阻连在一起,结果一上电,整个低压侧电路直接冒烟。这个教训,希望大家不要重蹈覆辙。

4.2 主控芯片选型(MCU/DSP)

主控芯片怎么选?我个人的经验是,先看算法复杂度,再看外设需求。

  • 如果只是做简单的电阻计算:比如用惠斯通电桥法,或者注入电流法,运算量不大。一个主频在48MHz左右的ARM Cortex-M0/M4内核MCU就足够了。比如STM32G0系列,性价比很高。
  • 如果要做复杂的频谱分析:比如用FFT分析注入信号的谐波成分,或者做自适应滤波,那建议上DSP。比如TI的TMS320F280系列,或者国产的GD32F系列(带硬件乘加器)。
  • 如果系统需要同时管理多通道:比如同时监测8路、16路绝缘电阻,那MCU的ADC通道数、DMA能力、以及定时器资源就很重要了。我建议选带多路12位以上ADC、且支持DMA自动扫描的芯片。

下面这个表格是我自己整理的一个选型参考:

需求场景 推荐芯片系列 主频 关键外设 参考价格(批量)
基础绝缘监测(单通道) STM32G030 48MHz 12位ADC、UART ¥3-5
多通道绝缘监测(4-8路) STM32G474 170MHz 4路12位ADC、HRTIM、CAN-FD ¥15-25
高精度频谱分析 TMS320F280049 100MHz 12位ADC、CLA协处理器、ePWM ¥30-50
超低功耗电池供电 MSP430FR5994 16MHz 16位ADC、低功耗模式 ¥10-20
我的小建议: 选型时别只看主频。我踩过坑——有一款芯片主频200MHz,但ADC采样率只有200ksps,根本不够用。一定要仔细看数据手册里的「ADC转换时间」和「DMA传输速率」。

4.3 隔离电源设计

隔离电源,说白了就是给高压侧电路供电,同时保证低压侧不会被高压侧的电平干扰。常用的方案有两种:

  1. 模块化DC-DC隔离电源:比如金升阳的B0505S系列,输入5V,输出5V,隔离耐压3000VAC。优点是设计简单,直接焊上就能用。缺点是体积大,价格稍高。
  2. 分立式反激电源:用变压器+开关管自己搭。优点是成本低,可以定制输出电压。缺点是设计复杂,需要算变压器匝比、漏感、以及环路补偿。

我个人更推荐在绝缘监测产品里用模块化方案。为什么?因为绝缘监测对电源的纹波和噪声要求很高。你想想看,如果电源纹波有100mV,那ADC采到的信号里就会叠加一个100mV的噪声,直接导致绝缘电阻测量误差变大。模块化电源的纹波通常控制在20mV以内,省心很多。

注意: 隔离电源的「隔离耐压」参数一定要留余量。比如系统最高电压是1500V,那隔离电源的耐压至少要选3000VAC。我曾经遇到过选1500VAC隔离电源的,结果在打耐压测试时直接击穿,整个项目延期了一个月。

4.4 隔离通信设计

隔离通信,就是把低压侧主控芯片的控制信号,安全地传到高压侧。常用的隔离器件有:

  • 光耦:比如PC817、TLP185。优点是便宜,驱动简单。缺点是速度慢(一般10kHz以内),而且有老化问题。
  • 数字隔离器:比如TI的ISO7240、ADI的ADuM1400。优点是速度快(可达100Mbps),寿命长,而且集成度高(一个芯片能隔离4路信号)。缺点是贵一点。
  • 隔离式SPI/I2C:比如ISO6741,专门用于隔离SPI总线。如果你需要高速采集高压侧ADC的数据,这个方案很合适。

我一般怎么选?看通信速率。如果只是传一个开关量(比如报警信号),光耦就够了。如果是传ADC采样值(比如每秒钟传1000次),那必须用数字隔离器。下面是一个简单的隔离SPI通信的接线示意:

// 伪代码:隔离SPI通信配置
// 低压侧主控 -> 数字隔离器 -> 高压侧ADC

// 低压侧(MCU)
SPI_Init(SPI1, 1MHz, SPI_MODE_0);
GPIO_SetPin(CS_PIN, LOW);  // 拉低片选

// 数字隔离器(如ISO6741)
// 输入侧:连接MCU的SPI信号
// 输出侧:连接高压侧ADC的SPI信号

// 高压侧(ADC)
uint16_t adc_value = SPI_Read(SPI1);  // 读取转换结果
GPIO_SetPin(CS_PIN, HIGH); // 释放片选

嗯,这里有个细节:隔离通信的电源域一定要分开。低压侧的VCC1和GND1,高压侧的VCC2和GND2,绝对不能共用。我见过有人把隔离器两侧的GND用跳线连在一起,结果隔离效果直接归零。

核心总结: 系统架构设计,就是要把「高压侧采集」和「低压侧控制」彻底隔离开。隔离电源负责供电,隔离通信负责传信号。主控芯片选型时,先算算你的算法需要多少MIPS,再算算ADC需要多少采样率,最后再决定用MCU还是DSP。别盲目追新,稳定可靠才是硬道理。