3. C2000芯片架构概览
数字电源控制的核心在于“感知-决策-执行”的闭环实时性。TI C2000系列(如TMS320F28003x、F28004x、F2837x等)之所以在电源与电机控制领域占据主导地位,并非仅仅因为其CPU主频高,而是因为它将“实时控制”所需的专用加速器、高精度模拟前端、灵活的事件触发系统以及高分辨率PWM输出,集成在一个统一的架构中。理解C2000的架构,不能孤立地看每个模块,而应关注它们如何通过内部总线、中断控制器和硬件触发链协同工作。本章将拆解C2000的六大核心部件:CPU内核、CLA、PWM、ADC、比较器与中断系统,并重点剖析它们之间的数据流与控制流关系。
上图展示了C2000实时控制的核心闭环逻辑。模拟信号经比较器或ADC量化后,既可以通过中断通知CPU进行复杂算法处理,也可以直接通过硬件触发链驱动PWM跳闸或更新占空比。CLA作为独立于CPU的协处理器,能够在不占用主CPU中断周期的前提下完成滤波、PID等控制律运算。理解这张图,是后续进行电源环路设计和故障保护设计的基础。
3.1 CPU内核与实时处理能力
C2000的CPU基于C28x架构,这是一个专为实时控制设计的32位定点/浮点内核。与通用MCU不同,C28x在指令集层面做了大量针对控制算法的优化。例如,它支持单周期乘法累加(MAC)指令,这对于数字滤波器(如IIR、FIR)的执行效率至关重要。此外,大多数C2000型号内置FPU(浮点单元)和TMU(三角数学单元),TMU能够硬件加速sin、cos、atan等运算,这对于坐标变换(如Park变换、Clarke变换)和锁相环(PLL)计算非常有用。
在流水线设计上,C28x采用8级流水线,但通过分支预测和原子操作指令,保证了实时中断响应的确定性。对于数字电源而言,最关键的指标是中断延迟——从事件发生(如ADC转换完成)到ISR(中断服务程序)第一条指令执行的时间。C2000的典型中断延迟在几十纳秒级别,这保证了在100kHz甚至1MHz的开关频率下,控制环路仍有足够的裕量。
3.2 CLA(控制律加速器):卸载CPU的利器
CLA是一个独立于C28x CPU的32位浮点协处理器,它拥有自己的总线、寄存器和流水线。这意味着CLA可以与CPU并行运行。在典型的双有源桥(DAB)或LLC电源中,电压环和电流环的PID计算、以及峰值电流模式的预测算法,都可以完全放在CLA中执行。CPU则专注于通信(如CAN、UART)、人机交互和系统状态管理。
CLA的编程模型非常独特:它不能直接运行C语言编译的完整程序,而是通过特定的CLA编译器将C子集编译为CLA指令集。开发者需要将控制算法编写为独立的函数,并通过__mdebug()或中断标志来启动。CLA访问ADC结果寄存器和PWM比较寄存器时,无需CPU介入,这消除了传统架构中“CPU读ADC->计算->写PWM”的串行延迟。
| 特性 | CPU (C28x) | CLA |
|---|---|---|
| 主频 | 100-200 MHz | 与CPU同频 |
| 浮点支持 | FPU + TMU | FPU(无TMU) |
| 触发方式 | PIE中断 | 软件启动或ADC/EPWM硬件触发 |
| 典型用途 | 通信、诊断、复杂状态机 | 高频电流环、电压环、滤波 |
| 中断延迟 | ~50ns | ~20ns(无上下文切换开销) |
3.3 ePWM模块:高分辨率与灵活性
ePWM模块是C2000区别于普通MCU的另一个核心。每个ePWM模块包含两个输出(ePWMxA和ePWMxB),可以配置为互补输出、独立输出或死区插入。其内部结构包括:时基周期寄存器(TBPRD)、比较寄存器(CMPA/CMPB)、动作限定器(AQ)和死区发生器(DB)。
对于数字电源,高分辨率PWM(HRPWM)至关重要。在F28004x上,HRPWM可以提供约150ps的占空比分辨率。这意味着在1MHz开关频率下,占空比调节精度可以达到0.015%,远高于普通PWM的8位或10位分辨率。这直接决定了输出电压纹波的大小和静态调整精度。
此外,ePWM模块支持硬件故障联防(TZ)。当比较器或外部引脚触发故障信号时,PWM输出可以在一个时钟周期内被强制拉低或置高,无需软件干预。这是电源保护的最后一道硬件防线。
// 配置ePWM1为互补输出,死区300ns,周期10kHz
EPwm1Regs.TBPRD = 2000; // 时基周期
EPwm1Regs.CMPA.bit.CMPA = 1000; // 50%占空比
EPwm1Regs.TBCTL.bit.CTRMODE = 0; // 递增计数
EPwm1Regs.AQCTLA.bit.CAU = 1; // 递增匹配时置高
EPwm1Regs.AQCTLA.bit.CAD = 2; // 递减匹配时拉低
EPwm1Regs.DBCTL.bit.OUT_MODE = 3; // 使能死区
EPwm1Regs.DBFED.bit.DBFED = 30; // 下降沿延迟300ns
EPwm1Regs.DBRED.bit.DBRED = 30; // 上升沿延迟300ns
3.4 ADC模块与触发同步
C2000的ADC并非简单的采样-转换器,而是一个事件驱动的采样系统。它支持最多4路独立ADC同时采样,每路ADC可以配置为12位模式(高速)或16位模式(高分辨率)。更重要的是,ADC的启动触发源(SOC)可以来自ePWM模块的特定事件(如周期匹配、比较匹配),也可以来自比较器输出或软件。
这种硬件触发机制保证了采样与PWM开关动作的精确同步。例如,在峰值电流模式控制中,需要在功率管导通的中点采样电感电流。通过将ADC触发配置为ePWM的CMPA匹配事件,可以确保采样时刻的抖动小于几纳秒,这对于抑制次谐波振荡至关重要。
ADC还内置了后处理块(PPB),可以对转换结果进行硬件限幅、偏移校正和过采样求平均。这减少了CPU的干预,并提高了信噪比。
3.5 比较器子系统(CMPSS)与硬件保护
CMPSS模块集成了模拟比较器、12位DAC参考和数字滤波功能。它独立于ADC工作,可以持续监测电压或电流信号。当模拟输入超过DAC设定的阈值时,比较器输出立即跳变,该信号可以直接连接到ePWM的TZ输入端,实现逐周期限流或过压保护。
CMPSS的典型应用是峰值电流限制。在硬开关全桥或反激电源中,原边电流通过采样电阻转换为电压,送入CMPSS。当电流超过设定阈值时,比较器输出触发PWM关断,无需软件判断。这避免了软件延迟导致的电流过冲。
此外,CMPSS还支持数字滤波(可配置消隐时间和毛刺滤波),防止噪声引起的误触发。在电机驱动中,CMPSS还可以用于无传感器反电动势检测。
3.6 中断系统与优先级管理
C2000采用PIE(外设中断扩展)模块管理多达96个中断源。这些中断源被分为12组,每组映射到CPU的12个中断线(INT1-INT12)。PIE模块负责硬件优先级仲裁,确保高优先级的中断(如ADC转换完成、TZ故障)能够抢占低优先级任务。
在数字电源设计中,中断优先级分配是系统稳定性的关键。建议将故障保护(TZ)设为最高优先级(INT1),将电流环控制设为次高优先级(INT2),将电压环控制设为第三优先级(INT3),而通信和显示任务则放在后台循环或低优先级中断中。
| 优先级 | 中断源 | 典型用途 | 最大执行频率 |
|---|---|---|---|
| 1 (最高) | TZ1-TZ3 | 硬件过流/过压保护 | 事件触发 |
| 2 | ADCINT1 | 电流内环控制 | 100-200kHz |
| 3 | ADCINT2 | 电压外环控制 | 10-50kHz |
| 4 | EPWM_INT | PWM周期同步任务 | 与开关频率一致 |
| 5-12 | SCI/SPI/CAN | 通信与监控 | 低频 |
3.7 实战案例:基于F28004x的同步Buck变换器控制
下面通过一个48V转12V、开关频率200kHz的同步Buck变换器,说明如何利用C2000的架构特性实现高性能控制。
背景与约束:要求输出电压纹波小于50mV,负载阶跃响应恢复时间小于100μs,且需要逐周期峰值电流保护。
系统配置:
- PWM配置:使用ePWM1作为控制输出,互补模式,死区100ns。HRPWM使能,以获得高占空比分辨率。
- ADC配置:ADCINA0采样输出电压(分压后),ADCINB0采样电感电流(通过电流检测放大器)。使用ePWM1的周期匹配事件触发ADC同步采样。
- CLA配置:将电压环PID和电流环PID均放在CLA中。CLA由ADCINT1触发启动。
- CMPSS配置:CMPSS1监测电感电流,阈值设为15A(对应1.5V采样电压)。当电流超过阈值时,CMPSS输出直接连接到ePWM1的TZ1,强制PWM输出低电平。
初始现象与调试:在满载10A测试时,发现输出电压纹波达到80mV,超出规格。通过查看CLA中的电流环变量,发现电流环带宽不足,导致对负载阶跃响应过慢。
分析过程:检查CLA执行时间,发现电流环PID计算耗时约1.2μs,在200kHz开关周期(5μs)内占用24%,但电压环计算耗时较长(约2μs),导致CLA总负载率超过60%。进一步分析发现,电压环中使用了低通滤波器(LPF)处理输出电压,该LPF的截止频率设置过低(1kHz),引入了较大的相位延迟。
实际操作步骤:
- 将电压环LPF截止频率从1kHz提高到5kHz,减少相位延迟。
- 将电压环PID的积分分离功能打开,防止饱和积分。
- 将CLA中的电流环计算改为使用查表法优化除法运算,将计算时间从1.2μs降至0.8μs。
- 调整CMPSS的滤波时间常数,从50ns增加到100ns,防止高频噪声误触发保护。
结果对比:优化后,输出电压纹波降至35mV,负载阶跃恢复时间缩短至60μs,CLA负载率降至45%。CMPSS保护在短路测试中动作时间小于200ns,有效保护了功率管。
复盘经验:数字电源的性能瓶颈往往不在CPU主频,而在于模拟前端与数字处理之间的延迟匹配。CLA虽然能减轻CPU负担,但需要仔细评估其执行时间与开关周期的比例。此外,CMPSS的滤波参数需要根据实际噪声频谱进行整定,过长的滤波时间会降低保护响应速度,过短则容易误动作。