资讯中心

联系我们

深圳市维立信电子科技有限公司
地址:深圳市福田区红荔路第一世界广场A座8D-E
咨询电话:0755-83766766
E-mail:info@welissom.com

如何通过软件设置实现双向直流电源的过流保护?

2025-12-19 10:27:15  点击:

  通过软件设置实现双向直流电源的过流保护,需结合硬件采样电路与软件控制算法,核心目标是实时监测电流值,在超过安全阈值时快速切断输出或限制功率,防止设备损坏。以下是具体实现方法及关键步骤,涵盖采样、算法设计、保护策略和实际案例:

  一、过流保护的核心需求

  双向直流电源的过流保护需满足以下要求:

  双向检测:

  无论电源处于正向供电(Buck模式)还是反向充电(Boost模式),均需监测电流方向及大小。

  快速响应:

  在短路或过载发生时,保护动作时间需小于硬件熔断器动作时间(通常<10μs)。

  分级保护:

  区分瞬时过流(如短路)和持续过载,采取不同策略(如立即关断或限流)。

  抗干扰能力:

  避免因噪声或采样误差导致误动作。

  二、软件实现关键步骤

  1. 硬件采样电路设计

  电流传感器选择:

  霍尔传感器(如ACS712):隔离测量,适合高精度场景。

  采样电阻+运放:低成本方案,需注意共模电压和功率损耗。

  采样信号处理:

  硬件低通滤波(RC滤波,截止频率<1/5 PWM频率)抑制高频噪声。

  运放调理电路将采样电压缩放至MCU的ADC输入范围(如0-3.3V)。

  2. 软件采样与数据处理

  ADC配置:

  多通道采样:若需同时监测输入/输出电流,配置ADC多通道扫描。

  采样频率:至少为电流变化频率的10倍(如PWM频率20kHz时,采样频率≥200kHz)。

  触发方式:使用定时器触发ADC同步采样,避免相位误差。

  数字滤波算法:

  移动平均滤波:减少随机噪声干扰。

  c#define WINDOW_SIZE 10float moving_average(float new_sample) {    static float buffer[WINDOW_SIZE] = {0};    static int index = 0;    static float sum = 0;        sum -= buffer[index];    buffer[index] = new_sample;    sum += new_sample;    index = (index + 1) % WINDOW_SIZE;    return sum / WINDOW_SIZE;}

  中值滤波:抑制脉冲干扰(如开关噪声)。

  3. 过流判断与保护策略

  阈值设定:

  硬件阈值:根据器件规格设定最大允许电流(如MOSFET的IDSS)。

  软件阈值:留一定余量(如硬件阈值为10A,软件阈值设为9A)。

  分级保护逻辑:

  瞬时过流(短路):

  检测到电流超过短路阈值(如3倍额定电流),立即关断PWM输出(硬件比较器+软件确认)。

  示例:

  c#define SHORT_CIRCUIT_THRESHOLD 30.0  // 30A短路阈值if (current_sample > SHORT_CIRCUIT_THRESHOLD) {    disable_pwm();          // 立即关断PWM    set_fault_flag(SHORT_CIRCUIT); // 设置故障标志}

  持续过载:

  检测到电流超过过载阈值但低于短路阈值,启动限流模式或延时关断。

  示例(限流模式):

  c#define OVERLOAD_THRESHOLD 15.0  // 15A过载阈值#define LIMIT_DUTY 0.2           // 限流时PWM占空比上限if (current_sample > OVERLOAD_THRESHOLD) {    if (current_sample > SHORT_CIRCUIT_THRESHOLD) {        disable_pwm();    } else {        duty_cycle = min(duty_cycle, LIMIT_DUTY); // 限制占空比        set_pwm(duty_cycle);    }}

  4. 故障恢复机制

  自动恢复:

  适用于瞬时故障(如接触抖动),检测到电流恢复正常后自动重新启动。

  示例:

  cvoid check_recovery() {    if (fault_flag == SHORT_CIRCUIT && current_sample < RECOVERY_THRESHOLD) {        delay_ms(100); // 延时100ms确认故障消除        if (current_sample < RECOVERY_THRESHOLD) {            enable_pwm();            clear_fault_flag();        }    }}

  手动恢复:

  严重故障(如硬件损坏)需人工复位(如按下复位按钮或通过通信指令)。

  三、实际案例:双向Buck-Boost变换器的过流保护

  场景描述

  设备:双向DC/DC变换器,输入24V,输出48V,额定电流10A。

  保护目标:

  短路时在5μs内关断,过载时限流至8A。

  实现步骤

  硬件配置:

  使用霍尔传感器ACS712测量电流,输出电压范围0-5V(对应-30A~+30A)。

  ADC采样分辨率12位(0-3.3V输入),采样电阻分压后接入ADC。

  软件实现:

  采样与滤波:

  定时器触发ADC每10μs采样一次,移动平均滤波窗口大小设为5.

  过流判断:

  短路阈值:25A(对应ADC值≈2.75V)。

  过载阈值:12A(对应ADC值≈1.32V)。

  保护动作:

  短路时立即禁用PWM,并通过GPIO触发硬件关断电路(如驱动光耦切断MOSFET栅极)。

  过载时限制PWM占空比为40%(经验值,需根据实际调试调整)。

  测试结果:

  

  四、注意事项

  硬件与软件协同:

  硬件比较器可实现硬保护(如短路时直接关断),软件实现软保护(如过载限流),双重保障。

  采样延迟补偿:

  若采样与PWM周期不同步,需在软件中补偿延迟(如预测下一周期电流值)。

  多任务调度:

  在RTOS中,将保护任务设为最高优先级,确保及时响应。

  EMC设计:

  在采样线路上增加磁珠或共模电感,抑制开关噪声干扰。

  五、总结

  通过软件实现双向直流电源的过流保护,需结合高精度采样、快速滤波、分级判断和可靠恢复机制。关键点包括:

  选择合适的电流传感器并优化采样电路;

  采用数字滤波算法提高信噪比;

  设计分级保护逻辑(瞬时关断+持续限流);

  加入故障恢复功能提升系统鲁棒性。

  实际应用中需根据具体硬件参数(如MCU性能、传感器精度)调整阈值和滤波参数,最终实现响应时间<10μs、误动作率<0.1%的可靠保护。