在电动汽车充电桩和储能系统中,绝缘检测是确保系统安全运行的关键环节。我最近完成了一个基于STM32F103的高压绝缘检测模块设计,采用不平衡电桥法测量电池组对地绝缘电阻,并通过隔离RS485与主控通信。这个方案已经在多个充电桩项目中实际应用,效果稳定可靠。
这个设计最大的特点是:
核心测量电路采用不平衡电桥结构,由两个精密电阻(R1、R2)与被测绝缘电阻(Rp、Rn)组成。具体参数选择需要考虑:
电阻值选择:
电压采样点设计:
plaintext复制Vbus(+) --- Rp --- GND
|
R1
|
Vmid (ADC采样点)
|
R2
|
GND --- Rn --- Vbus(-)
保护电路:
主控采用STM32F103C8T6,关键外围电路包括:
ADC采样电路:
RS485隔离电路:
电源设计:
绝缘电阻计算是软件的核心,基于以下物理模型:
c复制// 绝缘电阻计算公式推导
void INS_Calculate_Resistor(float v_pos, float v_neg, float v_bus, Insulation_Result_t *Result)
{
// 正极绝缘电阻计算
Result->r_positive = (R_BRIDGE_HIGH * (v_bus - v_pos * 2.0f)) / (v_pos * 2.0f);
// 负极绝缘电阻计算
Result->r_negative = (R_BRIDGE_HIGH * (v_bus - v_neg * 2.0f)) / (v_neg * 2.0f);
// 单位转换为MΩ
Result->r_positive /= 1000.0f;
Result->r_negative /= 1000.0f;
}
主程序采用状态机设计,确保实时性:
c复制void Main_Loop(void)
{
while(1) {
// 1. 切换测量通路
Set_Measure_Path(POSITIVE_PATH);
HAL_Delay(10); // 稳定时间
// 2. ADC采样
v_pos = ADC_GetValue() * 3.3f / 4095;
// 3. 切换通路测量负极
Set_Measure_Path(NEGATIVE_PATH);
HAL_Delay(10);
v_neg = ADC_GetValue() * 3.3f / 4095;
// 4. 计算绝缘电阻
INS_Calculate_Resistor(v_pos, v_neg, v_bus, &result);
// 5. 通信上报
RS485_SendResult(&result);
HAL_Delay(1000); // 1秒周期
}
}
采用通用文本协议,格式如下:
code复制[帧头][长度][命令字][数据][CRC]
典型数据帧示例:
code复制INS,Rp=1.25,Rn=0.98,Ubus=750.0,Alarm=0\r\n
协议特点:
校准方法:
抗干扰措施:
典型问题解决:
实测数据:
| 项目 | 指标 |
|---|---|
| 测量范围 | 1kΩ-10MΩ |
| 精度 | ±5% |
| 响应时间 | <2s |
| 工作温度 | -40~85℃ |
这套方案稍作修改可应用于:
关键调整点: