4. 系统架构设计
好,咱们进入第四讲。系统架构设计,说白了就是搭骨架。骨架搭歪了,后面填再好的肉也白搭。我见过不少项目,上来就画原理图,结果做到一半发现隔离电源功率不够,或者通信速率上不去,回头改架构,那叫一个痛苦。所以,这一节咱们把几个关键点掰开揉碎了讲清楚。
4.1 绝缘监测系统整体框图
先看整体。一个典型的绝缘监测系统,我习惯把它分成四大块:
- 信号采集前端:负责把高压直流母线上的绝缘电阻信号,转换成低压侧能处理的电压信号。这里通常包含分压电阻网络、多路复用开关、以及一级差分运放。
- 隔离屏障:这是绝缘监测的核心。没有隔离,高压侧一打火,低压侧的控制芯片和通信接口全得报销。隔离包括电源隔离和信号隔离。
- 主控单元:负责控制采集时序、运行绝缘电阻算法、判断报警阈值、以及对外通信。
- 人机交互与通信接口:包括本地显示、按键、以及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 隔离电源设计
隔离电源,说白了就是给高压侧电路供电,同时保证低压侧不会被高压侧的电平干扰。常用的方案有两种:
- 模块化DC-DC隔离电源:比如金升阳的B0505S系列,输入5V,输出5V,隔离耐压3000VAC。优点是设计简单,直接焊上就能用。缺点是体积大,价格稍高。
- 分立式反激电源:用变压器+开关管自己搭。优点是成本低,可以定制输出电压。缺点是设计复杂,需要算变压器匝比、漏感、以及环路补偿。
我个人更推荐在绝缘监测产品里用模块化方案。为什么?因为绝缘监测对电源的纹波和噪声要求很高。你想想看,如果电源纹波有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。别盲目追新,稳定可靠才是硬道理。