主要内容

本页采用了机器翻译。点击此处可查看英文原文。

日程安排和时间安排

通常,开发人员会选择在定时器中断的上下文中运行 Embedded Coder® 生成的代码。Model 模块以周期性的方式运行,由周期性中断计时,其周期与模型的基本采样时间相关。

这种执行调度模型对于许多系统来说不够灵活,尤其是控制和通信系统,这些系统必须实时响应外部事件。此类系统需要具备以异步方式处理各种硬件中断的能力。

Embedded Coder 软件允许您通过创建由 Hardware Interrupt 模块驱动的任务来建模和生成此类系统的代码,此外还可以创建在定时器中断上下文中处理的任务。

基于定时器的中断处理

对于在定时器中断上下文中运行的代码,模型求解器的每次迭代都是在发出中断并由中断服务例程 (ISR) 处理之后运行的。为 C2000™ 处理器生成的代码默认使用 CPU_timer0

定时器的配置使得模型的基本采样率与中断率相对应。定时器周期和预分频器的计算和设置如下,以产生所需的速率:

Base rate sample time

可实现的最小基本速率采样时间取决于模型复杂度。最大值取决于最大定时器周期值 (2 32 -1) 和 CPU 时钟速度。

如果模型中的模块继承了它们的采样时间值,并且没有明确定义采样时间,则默认值为 0.2 秒。

有关基于定时器的中断处理的详细信息,请参阅C28x 调度器选项

高速外设时钟

事件管理器及其通用定时器(用于驱动 PWM 波形生成)使用高速外设时钟 (HISCLK)。默认情况下,此时钟在 Embedded Coder 软件中被选中。该时钟源自系统时钟 (SYSCLKOUT):

HISCLK = [SYSCLKOUT / (高速外设预分频器)]

高速外设预分频器由 SysCtrl 中设置的 HSPCLK 位决定。HSPCLK 的默认值为 1,对应于高速外设预分频器值为 2。

例如,在 F2812 上,HISCLK 频率变为

HISCLK = 150 MHz / 2 = 75 MHz

外部中断处理

对于在外部中断上下文中运行的代码,该模型使用 C28x Hardware Interrupt 模块。使用 Configuration Parameters > Hardware Implementation > Hardware board settings > Target hardware resources > External Interrupt 配置中断操作。有关详细信息,请参阅Model Configuration Parameters for Texas Instruments C2000 Processors

ADC 中断调度

您可以将 ADC 中断设置为 Simulink® 模型的基本速率。这意味着模型中的每个周期性事件都将以 ADC 中断决定的速率发生。

为了设置基准速率,必须触发 ADC 中断。一般来说,可以使用 ePWM 模块来触发 ADC 中断。ePWM 是一种自由运行计数器,可以配置为按周期性间隔触发 ADC 模块的转换开始。ADC 模块可以在转换结束时触发中断。

ADC 转换开始信号的其他来源包括外部中断和软件。

在任何采用基准利率触发的模型中:

  • 模型中的任何任务的基本速率都不应低于基本速率触发值。

  • ADC 模块的采样时间应与模型的基准采样率相匹配。

有关基于 ADC 中断的调度的详细信息,请参阅C28x 调度器选项基于 C2000 处理器的正交编码器永磁同步电机磁场定向控制