通过软件设置实现双向直流电源的过流保护,需结合硬件采样电路与软件控制算法,核心目标是实时监测电流值,在超过安全阈值时快速切断输出或限制功率,防止设备损坏。以下是具体实现方法及关键步骤,涵盖采样、算法设计、保护策略和实际案例:
一、过流保护的核心需求
双向直流电源的过流保护需满足以下要求:
双向检测:
无论电源处于正向供电(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%的可靠保护。