1. 实时控制系统与STM32平台选型

实时控制系统的“实时”并不是指“运算速度快”,而是指系统对外部事件作出响应的时间具有可预测性,并且能在规定的截止时间(Deadline)之前完成关键动作。一个控制回路即使平均响应很快,只要偶尔出现超时,也可能导致电机失步、电源环路振荡或机械机构碰撞。因此,实时性本质上是一个时间约束问题:事件发生、计算完成、执行器动作三者之间的时间必须被限定在可证明的范围内。

硬实时与软实时的区别

硬实时(Hard Real-Time)要求任务必须在截止时间前完成,一旦超时即视为系统失败,后果可能是不可接受的。例如三相无刷电机的电流环通常运行在 10 kHz~20 kHz,即周期 50~100 μs,若某次电流采样或 PWM 更新延迟超过一个周期,就会造成转矩脉动甚至过流。软实时(Soft Real-Time)则允许偶尔超时,只导致服务质量下降,例如上位机波形刷新、状态日志上传,延迟几十毫秒通常不影响控制功能。

判断一个任务属于硬实时还是软实时,可以从三个维度评估:超时后果是否可逆、截止时间是否严格、以及抖动(Jitter)是否被约束。硬实时任务不仅要求平均执行时间短,更要求最坏执行时间(WCET)和中断延迟可界定。下表给出典型控制任务的实时性归类示例(参数为教学示例,非实测值):

任务典型周期实时类型超时后果
电流环 / PWM 更新50~100 μs硬实时过流、转矩脉动
速度环1 ms硬实时转速波动、失稳
位置轨迹插补1~5 ms硬实时轨迹偏差、机械冲击
状态监测与保护1~10 ms硬实时故障未及时切断
参数上传 / 波形显示10~100 ms软实时界面卡顿

STM32F4/F7/H7 在实时控制中的定位

STM32 各系列在实时控制中的差异,核心来自内核主频、Cache 结构、总线矩阵和定时器/PWM 资源。F4 系列基于 Cortex-M4,主频约 168~180 MHz,带单精度 FPU,无指令/数据 Cache,中断延迟确定,适合中低端电机控制、数字电源等对成本敏感的场景。F7 系列基于 Cortex-M7,主频约 216 MHz,带 FPU 和 I/D Cache,算力明显提升,但 Cache 会引入访问时间不确定性,需要合理配置 MPU 和 Cache 策略。H7 系列主频可达 480 MHz 甚至更高,双精度 FPU、多总线域、大容量 TCM RAM,适合多轴伺服、复杂环路和高速采样场景。

选型时不能只看主频。对于硬实时控制,TCM RAM(紧耦合内存)和 AXI/SRAM 的访问延迟差异会直接影响中断服务程序的最坏执行时间。H7 的 ITCM/DTCM 可让关键代码和数据以零等待方式访问,而放在普通 AXI SRAM 中的代码可能因总线竞争产生抖动。因此,高主频芯片若把关键中断代码放在非确定性存储区,实时性未必优于低主频但结构简单的 F4。

时钟树与总线架构对响应时间的影响

STM32 的时钟树决定了内核、总线和外设的时钟来源与分频关系。以 H7 为例,PLL1 输出经分频后驱动 CPU 与 AXI 总线,PLL2/PLL3 分别驱动外设和定时器。若定时器时钟与 CPU 时钟不同源或分频不当,PWM 分辨率与中断触发时刻会产生偏差。总线架构方面,AHB/APB 桥、总线矩阵仲裁和 Flash 等待周期都会影响中断响应。Flash 取指若未开启预取和 Cache,在高主频下需要插入等待周期,导致中断入口延迟增加。

下图给出一个典型的实时控制信号链与平台资源关系示意,说明从外部事件到执行器动作之间,时钟、总线、存储和定时器如何共同影响响应时间。

实时控制信号链与STM32平台资源关系 外部事件 编码器/霍尔/ADC 定时器触发 TIM 更新/捕获 NVIC 中断响应 Cortex-M 内核 控制算法 PID/电流环 PWM 输出 驱动执行器 t0 事件 t1 触发 t2 中断入口 t3 计算完成 t4 输出 采样/触发延迟 中断延迟 + 总线仲裁 WCET + Cache/TCM 影响 PWM 更新延迟 总响应时间 = 采样延迟 + 中断延迟 + 计算时间 + 输出延迟,硬实时要求其最坏值 < 截止时间

选型评估方法

面向实时控制的 MCU 选型,建议按以下顺序评估,而不是先看价格或主频:

  1. 确定控制环周期与截止时间。例如电流环 50 μs、速度环 1 ms,据此推算允许的中断延迟和计算时间预算。
  2. 估算最坏执行时间。用指令周期、Flash 等待周期、Cache 命中率和中断嵌套层数做保守估算,必要时用 DWT 周期计数器实测。
  3. 核对定时器与 PWM 资源。高级定时器数量、互补输出、死区插入、编码器接口是否满足拓扑需求。
  4. 检查存储确定性。关键 ISR 和查找表是否可放入 TCM 或 CCM RAM,避免与 DMA 争用总线。
  5. 评估模拟外设。ADC 采样率、分辨率、注入通道与定时器联动能力,决定电流采样是否能在 PWM 中点完成。
  6. 留出余量。建议 CPU 占用率不超过 60%~70%,为故障保护和通信任务保留时间。
选型时可用一个简单判据:若关键中断的 WCET 加上最大中断延迟后,仍小于控制周期的 50%,则该平台在该任务上具备较好的硬实时余量。若接近或超过 80%,即使功能能跑通,也不建议用于量产硬实时系统。
不要用“平均响应时间”评估硬实时系统。Cache 未命中、DMA 占用总线、Flash 等待周期变化都可能让某一次中断延迟远高于平均值。必须关注最坏情况,而不是典型情况。

综合来看,F4 适合成本敏感、控制环周期在 50 μs 以上的中低端场景;F7 适合需要更高算力但仍能接受 Cache 管理的场合;H7 适合多轴、高速采样和复杂算法的硬实时控制。选型的核心不是“选最强的”,而是让最坏响应时间、外设资源和成本三者匹配控制需求。