将 C2000 模块与多处理器建模结合使用
您可以将C2000™ 微控制器模块模块与多处理器一起使用。
与外部硬件(例如 ADC 或 PWM)交互的多处理器模块成对出现。该模块由一个数据输入或输出模块(例如 ADC Read (SoC Blockset))和一个接口模块(例如 ADC Interface (SoC Blockset))组成,分别模拟软件驱动程序的行为和硬件的物理行为。在代码生成过程中,数据输入或输出块会变成给定硬件外设的驱动程序代码,而接口块会被移除并替换为实际的设备硬件。
C2000 微控制器模块集模块相当于多处理器模块对中的数据输入或输出模块。在代码生成过程中,代码块集会生成相应的驱动程序代码。在仿真,由于缺少接口对,这些模块不会生成任何数据,可以将其视为输入模块的 Constant 模块或输出模块的 Terminator 模块。
注意
您可以使用 Variant Subsystem, Variant Model 模块添加仿真行为。
将 Embedded Coder 添加到任务中
要配置多处理器模型以使用C2000 微控制器模块集驱动程序模块,请按照以下步骤操作。
创建一个新的多处理器模型,并将 Hardware board 参数设置为 TI F2837D Launchpad。
构建一个由 ADC Interface (SoC Blockset) 模块驱动的空事件驱动任务。此图显示的是示例模型。


在 Simulink® 库浏览器中,从 C2000 Microcontroller Blockset > F2837xD 组中,将 ADC 模块添加到模型中的任务。

在 ADC 模块中,将 trigger source 参数设置为 Software。
启动 Hardware Mapping 工具。将 ADC_Task 参数设置为 ADCA1_isr。此设置将 ADCA1_isr 中断映射到包含 ADC 模块的任务。
使用 SoC Builder (SoC Blockset) 工具将模型部署到连接的
TI F2837D Launchpad。ADC 模块现在可以对硬件中的 ADC 进行采样。
将 Embedded Coder 中断链接到事件
要配置多处理器模型以生成映射到C2000 微控制器模块集的模块,请按照以下步骤操作。
创建一个新的多处理器模型,并将 Hardware board 参数设置为 TI F2837D Launchpad。
构建一个由 ADC Interface (SoC Blockset) 模块驱动的空事件驱动任务。此图显示的是示例模型。


在 Simulink 库浏览器中,从 C2000 Microcontroller Blockset > F2837xD 组中,将 ADC 模块添加到模型中的任务。

在 ADC 模块中,将 trigger source 参数设置为 Software。
启动 Hardware Mapping 工具。将 ADC_Task 参数设置为 ADCA1_isr。这会将 ADCA1_isr 中断映射到包含 ADC 模块的任务。

使用 SoC Builder (SoC Blockset) 工具将模型部署到连接的
TI F2837D Launchpad。ADC 模块现在可以在指定的中断上对硬件的 ADC 进行采样。
此表显示了C2000 微控制器模块模块的中断与 Hardware Mapping (SoC Blockset) 工具中的中断之间的映射关系。
| 中断类型 | 模块中断参数 | 任务映射中断参数 |
|---|---|---|
| 模数转换器 (ADC) | ADCAn | ADCAn_isr |
| 脉冲宽度调制器 (PWM) | EPWMn_TZ | EPWMn_TZ_isr |
EPWMn | EPWMn_isr | |
| 电诱发复合动作电位 (ECAP) | ECAPn | ECAPn_isr |
| 增强型正交编码器脉冲 (eQEP) | EQEPn | EQEPn_isr |
| 串行外设接口 (SPI) | SPIA_RX_isr | SPIA_RX_isr |
SPIA_TX_isr | SPIA_TX_isr | |
| 直接内存地址 (DMA) | DMA_CH n | DMA_CHn_isr |
| 集成电路间总线 (I2C) | I2CA | I2CA_INT_isr |
I2CA_FIFO | I2CA_FIFO_isr | |
| 串行通信接口 (SCI) | SCIA_RX | SCIA_RX_isr |
SCIA_TX | SCIA_TX_isr | |
| 控制器局域网 (CAN) | CANA_n | CANA_n_isr |
| 外部中断 (XINT) | XINTn | XINTn_isr |
| 定点单元 (FPU) | FPU_OVERFLOW | FPU_OVERFLOW_isr |
| FPU_UNDERFLOW | FPU_UNDERFLOW_isr | |
| Viterbi、复数运算和 CRC 单元 (VCU) | VCU | VCU_isr |
另请参阅
Timer-Driven Task (SoC Blockset) | Event-Driven Tasks (SoC Blockset) | 硬件映射