基于串口 XCP 的信号监测和参数调优
您可以使用“监视和调整(外部模式)”操作来调整参数并监视在目标硬件上运行的 Simulink® 模型。
监控和调整功能使您能够调整模型参数,并实时评估不同参数值对模型结果的影响。当您更改模型中的参数值时,修改后的参数值会立即传达给目标硬件。您可以通过查看 Sink 模块或仿真数据检查器 (SDI) 中的输出信号来监控不同参数值的影响。这样做有助于找到性能的最佳值。这个过程称为参数调优。
监控和调优功能可加快参数调优速度。您无需每次更改参数时都重新运行模型。您还可以使用 Monitor 和 Tune 功能,利用实际数据和硬件来开发和验证您的模型,这些数据和硬件正是为该模型设计的。这种软硬件交互仅靠模拟模型是无法实现的。
对于使用串行通信的外部模式,如果目标硬件支持,则可以使用 USB 驱动器上的 COM 端口;或者使用 RS-232 电缆连接计算机上的 COM1 端口。有关如何设置串行通信的详细信息,请参阅与目标硬件建立串行通信。您可以根据通信接口支持的不同波特率配置外部模式。
该模块集支持通过 XCP on Serial 进行监视和调谐仿真。
在基于通用测量和标定协议 (XCP) 的串行连接外部模式仿真中,您可以使用:
Dashboard 模块:此外Sources以及水槽模块,您可以使用Dashboard用于更改参数值和监控参数调整效果的模块。仪表盘库包含一系列模块,您可以使用这些模块以交互方式控制和可视化模型。
仿真数据检查器 (SDI) :您可以使用仿真数据检查器检查和比较来自多个仿真的数据,以验证模型设计。
准备外部模式的 Simulink 模型
本节介绍如何准备 Simulink 模型以在外部模式下运行。
要准备用于外部模式/PIL 和串行通信的模型,请参阅外部模式和 PIL 的串行配置。
按照说明配置硬件网络C2000 Microcontroller Blockset 硬件设置。
创建或打开一个 Simulink 模型。
设置仿真停止时间参数,该参数位于仿真模式的左侧。
按照以下说明配置硬件的模型配置参数:Model Configuration Parameters for Texas Instruments C2000 Processors。在 External mode 下,根据要在模型上运行的外部模式仿真类型,设置 Communication interface 参数。

当您将 Communication interface 设置为基于 XCP 的外部模式时,Set logging buffer size automatically ”参数将变为可用。选择此参数可在仿真期间自动设置硬件缓冲区预分配的字节数。默认情况下,Set logging buffer size automatically 参数处于选中状态。如果清除此参数,Logging buffer size (in bytes) 参数将变为可用,您可以在其中手动指定基于 XCP 的外部模式仿真的内存缓冲区大小。
默认波特率为 115200。您可以提高 Launchpad 或 controlCARD 的 USB 串口波特率。在使用 FTDI 2232H 的 Launchpad 和 controlCARD 上,您可以选择小于或等于 6 Mbps 的任何波特率,或者正好是 9 或 12 Mbps 的波特率。在使用 FTDI 2232D 的控制卡上,您可以选择小于或等于 1.5 Mbps 的任何波特率,或者正好是 2 或 3 Mbps。
您可以在同一数据包中发送多个连续样本,以提高包含高采样率信号的模型的信号记录性能。为此,点击 Hardware 选项卡,在 Prepare gallery 中,选择 Control Panel,然后点击 Signal & Triggering。在 External & Signal Triggering 对话框中,选择“ Send multiple contiguous samples in same packet。有关详细信息,请参阅XCP 外部模式下的信号记录和参数调优(带打包模式)。
注意
在 Packed 模式下,当中断服务例程 (ISR) 内的数据被记录时,可能会出现数据丢失的情况。
在 Configuration Parameters 屏幕中,输入 Maximum number of contiguous samples ”参数的值。该参数决定了单个数据包中可以填充的最大样本数,并据此分配内存。
点击 Apply 和 OK。
Simulink 模型的信号监测和参数调优
基于 XCP 的串行连接外部模式仿真
注意
本节仅适用于将通信接口设置为串口上的 XCP 时。
开始之前,请完成以下事项:准备外部模式的 Simulink 模型部分。
在 Simulink 模型中,确定在仿真中要记录以进行监控的信号。选择已识别的信号,打开其上下文菜单,然后点击与 Enable Data Logging 对应的图标。

Simulink 显示已记录的信号指示器
对于每个已记录的信号。(可选)在模型中放置一个或多个 Sink 模块,然后标记连接到它们的信号以进行日志记录。例如,连接 Display 或Scope模块并标记与其连接的信号以进行日志记录。
要开始仿真,请打开 Hardware 选项卡,然后点击 Monitor & Tune。

Monitor & Tune - Monitor & Tune 下载并运行硬件上的可执行文件。
连接- 在“分步命令”下,点击“连接”。此操作会启动 Simulink 与目标应用程序之间的握手。Connect 命令重新建立与硬件上已运行的可执行文件的通信。这样可以避免重新生成、编译和重新部署代码,从而节省时间。
在 C2000 中,部署可执行文件后,主机会在短暂延迟后发送连接命令。如果目标设备在收到此命令之前完成了初始化例程,它将立即开始执行实时应用程序。因此,该模型可能不会显示初始样本集。这种行为优先考虑实时执行,有助于防止应用程序长时间处于空闲状态时可能出现的电流激增或硬件损坏等问题。
Stop - 要停止在“监控与调优”中运行的模型,请打开 Hardware 选项卡,然后点击 Stop 按钮。
。有关详细信息,请参阅Stop Monitor and Tune。Disconnect - 在“逐步命令”下,当 Simulink 和目标连接时,“连接”按钮变为“断开连接”。断开连接按钮会将 Simulink 与硬件断开连接,但可执行文件仍会继续运行。您可以稍后重新连接以继续与正在运行的应用程序进行交互。
如果模型中没有任何信号被标记为要记录,MATLAB® 命令行窗口将显示警告消息。您可以忽略此警告,也可以将信号标记为需要记录。
在仿真中,当 SDI 中出现新的仿真数据时,仿真数据检查器按钮会显示相关信息。
突出显示。在 Sink 模块或 SDI 中查看仿真输出。
汇模块– 要查看仿真输出,请双击模型中的汇模块。
SDI – 要查看新的仿真数据,请执行以下步骤:
点击“仿真数据检查器”按钮。
Inspect 窗格中会出现新的仿真运行。Inspect 窗格按行列出所有已记录的信号,并按仿真运行进行组织。您可以展开或折叠任何运行结果,以查看运行中的信号。有关信号分组的详细信息,请参阅信号分组。
我们建议您使用 SDI 而不是 Sink 模块,原因如下:
将数据流传输到 SDI 不会将数据存储在内存中,从而更有效地利用硬件上的可用内存。沉降模块,例如Scope在将数据发送到主机之前,先将数据存储在缓冲区中。
使用 SDI,您可以同时传输来自顶层模型和参考模型的信号。Scope 模块只能记录来自顶层模型的信号。
更改模型中的参数值。观察仿真输出的相应变化。
在 Sink 模块中,通过调整参数并观察结果,找到最佳参数值。
当您对结果满意后,停止监控和调整操作,并保存模型。
注意
监控和调整操作会增加板载模型的处理负担。如果软件报告超出限制,则停止监控和调整操作。
停止监控和调整
要停止在“监控和调优”中运行的模型,请打开 Hardware 选项卡,然后点击 Stop 按钮。
。
如果要在不停止代码执行的情况下断开目标应用程序与 Simulink 的连接,点击 Stop > “逐步命令” > “断开连接”。
如果仿真停止时间参数设置为特定的秒数,则监控和调整将在该时间结束时停止。
使用完监控和调优功能后,将仿真模式设置回 Normal。
故障排除
编译过程中出现内存溢出问题
描述
由于内存不足,可能会出现以下错误:
program will not fit into available memory, or the section contains a call site that requires a trampoline that can't be generated for this section. placement with alignment/blocking fails for section ".text" size 0x360apage 0. Available memory ranges: RAMLS_PROG size: 0x3000 unused: 0x2bd7 max hole: 0x2bd6
操作
链接阶段出现的此错误表明内存不足以容纳代码段 (.text) 到目标可用内存中。外部模式仿真需要额外的代码来实现 Simulink 与目标之间的通信,这可能会导致此代码段溢出。为缓解此问题,请在 Configuration Parameters 屏幕中选择 Faster Runs 作为 Build Configuration。此选项以-O3 优化级别编译代码,从而生成更小的代码大小,这可能适合目标内存。

另请参阅
Troubleshooting External Mode Issues | 优化外部模式通信的波特率设置