3. C2000芯片架构概览

数字电源控制的核心在于“感知-决策-执行”的闭环实时性。TI C2000系列(如TMS320F28003x、F28004x、F2837x等)之所以在电源与电机控制领域占据主导地位,并非仅仅因为其CPU主频高,而是因为它将“实时控制”所需的专用加速器、高精度模拟前端、灵活的事件触发系统以及高分辨率PWM输出,集成在一个统一的架构中。理解C2000的架构,不能孤立地看每个模块,而应关注它们如何通过内部总线、中断控制器和硬件触发链协同工作。本章将拆解C2000的六大核心部件:CPU内核、CLA、PWM、ADC、比较器与中断系统,并重点剖析它们之间的数据流与控制流关系。

C2000 实时控制架构:感知-决策-执行闭环 C28x CPU 内核 主频 100~200MHz | FPU | TMU CLA 控制律加速器 独立于CPU的浮点协处理器 模拟前端与比较器 CMPSS 窗口比较器 DAC 12bit 参考 CTRIP / DCAH / DCAL PGA 可编程增益(部分型号) ePWM 模块 高分辨率 HRPWM (150ps) AQ 动作限定器 DB 死区发生器 TZ 故障联防 ADC 模块 12bit / 16bit 模式 4 路同时采样 | 硬件过采样 PPB 后处理 | 触发源可编程 PIE 中断管理器 96 个中断源分组 硬件优先级仲裁 CPU定时器 0/1/2 模拟量输入 硬件跳闸信号 (TZ1-TZ3) ADC结果寄存器 配置/更新占空比 CLA直接读取结果 SOC触发信号 数据流 故障/跳闸 控制流 触发/事件

上图展示了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的开关频率下,控制环路仍有足够的裕量。

核心原理:CPU主频并非唯一决定因素。在数字电源中,“确定性的中断响应时间”比“平均吞吐量”更重要。C2000的硬件中断优先级仲裁和快速上下文切换(自动保存关键寄存器)确保了即使在高负载下,关键控制任务也不会被非关键任务阻塞。

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 + TMUFPU(无TMU)
触发方式PIE中断软件启动或ADC/EPWM硬件触发
典型用途通信、诊断、复杂状态机高频电流环、电压环、滤波
中断延迟~50ns~20ns(无上下文切换开销)
实战建议:在F28004x或F2837x上,建议将电流内环(通常需要50-200kHz执行频率)放在CLA中,将电压外环(通常10-20kHz)放在CPU的ISR中。这样CPU的负载率可以控制在30%以下,为通信和故障处理留出充足空间。

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的干预,并提高了信噪比。

常见误区:很多开发者习惯在ISR中通过软件触发ADC,然后等待转换完成。这在低频开关(<50kHz)下可行,但在高频下会浪费大量CPU周期在等待上。正确做法是使用ePWM硬件触发ADC,并在ADC转换完成中断中读取结果,这样CPU和ADC可以并行工作。

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硬件过流/过压保护事件触发
2ADCINT1电流内环控制100-200kHz
3ADCINT2电压外环控制10-50kHz
4EPWM_INTPWM周期同步任务与开关频率一致
5-12SCI/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),引入了较大的相位延迟。

实际操作步骤:

  1. 将电压环LPF截止频率从1kHz提高到5kHz,减少相位延迟。
  2. 将电压环PID的积分分离功能打开,防止饱和积分。
  3. 将CLA中的电流环计算改为使用查表法优化除法运算,将计算时间从1.2μs降至0.8μs。
  4. 调整CMPSS的滤波时间常数,从50ns增加到100ns,防止高频噪声误触发保护。

结果对比:优化后,输出电压纹波降至35mV,负载阶跃恢复时间缩短至60μs,CLA负载率降至45%。CMPSS保护在短路测试中动作时间小于200ns,有效保护了功率管。

复盘经验:数字电源的性能瓶颈往往不在CPU主频,而在于模拟前端与数字处理之间的延迟匹配。CLA虽然能减轻CPU负担,但需要仔细评估其执行时间与开关周期的比例。此外,CMPSS的滤波参数需要根据实际噪声频谱进行整定,过长的滤波时间会降低保护响应速度,过短则容易误动作。

总结复盘:C2000的架构精髓在于“硬件化”的实时控制链路。PWM触发ADC,ADC触发CLA,CLA更新PWM比较值,而CMPSS则作为独立的硬件看门狗。开发者需要跳出“纯软件”思维,充分利用这些硬件互联机制,才能设计出高性能、高可靠性的数字电源。