利用硬件分析器进行实时执行探查
本示例演示了如何使用硬件分析器模块对使用 C2000™ Microcontroller Blockset 算法进行实时执行探查。
在这个例子中,您还可以使用 C2000™ 处理器对永磁同步电机的无传感器磁场定向控制进行执行时间探查。
简介
这Hardware Profiler该模块允许您使用通用输入输出 (GPIO)、嵌入式实时分析和诊断 (ERAD) 以及定时器测量模式来分析目标硬件上的函数调用子系统。
GPIO:在下游函数调用子系统执行前后设置和清除 GPIO 引脚。
ERAD:测量和分析下游函数调用子系统的从头到尾的执行时间。
Timer:通过计算执行前计时器计数和执行后计时器计数之间的时间间隔来测量事件的执行时间。
注意:
硬件分析器模块支持所有 TI 目标设备的 GPIO 和定时器测量。ERAD 测量仅支持选定的板卡。
ERAD 测量模式下的 Hardware Profiler 模块始终提供最长的执行时间。
前提条件
必需的硬件
要运行此示例,您可以使用任何 TI™ C2000™ 硬件。为了方便起见,本示例已预先配置为在 TI Piccolo F280049C Launchpad 硬件上运行。
然而,示例中解释了如何对任何具有所需配置的 TI™ C2000™ 硬件执行探查的步骤。
可用模型
该示例包含以下模型:
gettingstartedwithhardwareprofiler.slxprofiling_mcb_pmsm_foc_sensorless_f280049C.slx目标模型profiling_mcb_pmsm_foc_host_model.slx主机模型
模型
打开 gettingstartedwithhardwareprofiler.slx 模型。
open_system('gettingstartedwithhardwareprofiler.slx')
创建、配置和运行模型
按照以下步骤创建和配置一个简单的模型,以便在 TI C2000 硬件上运行。
1.在 MATLAB® 提示符下输入 slLibraryBrowser 以打开 Simulink® 库浏览器。
2.导航至“库”> C2000™ Microcontroller Blockset >“调度”,然后选择“硬件分析器”模块。
3.双击“硬件分析器”模块。查看块掩码,其中包含块的描述和配置参数。

4.在 MATLAB 中,选择首页 > 新建 > Simulink 模型。
5.将“硬件分析器”模块从库中拖到模型中。
6.将测量模式设置为 ERAD、定时器或 GPIO。
选择 ERAD 模块以进行 ERAD 测量模式。
指定 GPIO 测量模式的 GPIO 编号。
确保采样时间参数与算法的原始触发时间相匹配。

7.将要进行性能分析的函数添加到函数调用子系统中。
8.将其连接到硬件分析器中的函数调用端口。
对于 ERAD 或定时器测量模式,将显示模块连接到计数端口。
对于 GPIO 测量模式,将数字存储示波器 (DSO) 连接到 GPIO 引脚,并将 GPIO 引脚设置为监测正脉冲的宽度。
配置模型
1.打开 gettingstartedwithhardwareprofiler.slx 模型。
2.打开建模选项选项卡,然后按 Ctrl+E(模型设置)打开配置参数对话框。
3.转到硬件实现 > 硬件板,选择 TI Piccolo F280049C LaunchPad,然后点击确定。

4.在“硬件”选项卡上,点击“监控和调优”。

5.在显示模块或仿真数据检查器 (SDI) 中观察 ERAD 和定时器的输出。

具有定时器和 ERAD 模式的硬件分析器模块以时钟周期为单位提供输出。要将其转换为秒,请使用以下公式:

6.对于 GPIO 测量模式,点击“构建、部署和启动”以生成代码。
7.观察输出并计算正脉冲的宽度,以确定执行时间。
电机控制模型执行时间分析
打开 profiling_mcb_pmsm_foc_sensorless_f280049C.slx 目标模型。为了方便起见,TI Piccolo F280049C Launchpad 硬件已预先配置好以执行此示例。
使用此模型,您可以:
使用硬件分析器模块分析子系统的执行时间。
对模型中的各个模块进行分析。
对探查结果进行基准测试。
要在其他受支持的 TI 硬件板上运行该模型,请按照以下配置进行操作:
open_system('profiling_mcb_pmsm_foc_sensorless_f280049C.slx') 
配置模型
按照“配置模型”部分所示的步骤配置 profiling_mcb_pmsm_foc_sensorless_f280049C.slx 模型。
使用硬件分析器探查子系统
使用 profiling_mcb_pmsm_foc_sensorless_f280049C.slx 模型执行子系统探查。请按照以下步骤对子系统进行分析:
1.选择要进行分析的子系统:
在这个例子中,高亮显示的子系统是 Current_Controllers。
右键点击 Current_Controllers 子系统,然后选择 Block Parameters(子系统)。

2.启用“视为原子单元”选项:
启用“视为原子单元”参数。这样可以确保软件在确定块方法的执行顺序时,将子系统视为一个整体。

3.插入 Trigger 模块:
双击子系统。插入一个触发器块,然后双击 Trigger 块打开其属性,并将触发器类型设置为函数调用。

4.添加 Hardware Profiler 模块:
返回到函数调用子系统
(profiling_mcb_pmsm_foc_sensorless_f280049C/Embedded Processor/Foc Algorithm (profiling_foc_sensorless_algorithm)/Current Control/Closed Loop) 的上一级,并添加一个硬件分析器模块。将函数调用端口连接到子系统的函数调用触发器。
将 Count 端口的输出转换为单一数据类型,然后除以一个较大的因子。例如,对于这个子系统,由于预计执行时间在几百,将其除以
10,000。

5.在 SCI 发送总线上创建一个额外的输入端口,并将计数信号连接到该端口 (profiling_mcb_pmsm_foc_sensorless_f280049C/Embedded Processor/Foc Algorithm (profiling_foc_sensorless_algorithm)/Current Control)。

6.在 Debug_signals 中,向总线选择器添加端口,并指定要选择的索引。

7.在主机模型中包含常量:
打开
profiling_mcb_pmsm_foc_host_model.slx主机模型(profiling_mcb_pmsm_foc_host_model/Serial Communication/Convert_to_SI_Units),并包含用于除以分析器输出的常量。

在目标硬件上生成代码并运行模型
1.点击硬件选项卡上的编译、部署和启动以将目标模型部署到硬件上。
2.执行步骤 7 到 12。基于 C2000 处理器的永磁同步电机无传感器磁场定向控制配置主机模型的串口主机和电机位置。

测量模块执行时间
在本任务中,您将对 Simulink 模型中的单个模块进行分析,以测量其执行时间。请按照以下步骤分析模块:
1.打开目标模型。
2.右键点击要分析的模块。在“子系统和模型引用”选项下,选择“从选择创建子系统”。

由于该模块现在包含在子系统中,您可以按照“使用硬件分析器探查子系统”部分中描述的方式,继续执行整个探查函数调用子系统工作流程。
基准测试结果
当 Hardware Profiler 模块设置为定时器测量模式时,对子系统和模块探查,会观察到以下结果。这些结果是通过以下配置获得的:
TI 板:F280049C LaunchPad 运行频率为 100 MHz
发动机:BLY172S,转速 3000RPM
数据类型:浮点
您可以观察 FluxObserver 和 SpeedMeasurement 模块的探查计时器结果。
