使用基于 XCP 的 CAN 接口,通过第三方标定工具标定 ECU 参数
本示例展示了如何使用基于 XCP 的 CAN 接口在 Texas Instruments® C2000™ 板上监控 Simulink® 模型的信号并调节其参数。
所需的第三方软件
Vector CANape®
注意:使用 Texas Instruments C2000 板将 Simulink 与 CANape 集成,已使用 CANape 16.0 SP6 进行了测试。
所需硬件
任何带有 CAN 模块的 Texas Instruments™ C2000™ 开发板
模型
打开预配置模型 c28x_xcp_can_3pcaltool.slx。

此示例包含四个已启用日志记录的信号和两个用于调节的参数。这四个信号分别是:
计数器 - 在每个时间步长将输出值增加 COUNTER_INCR,COUNTER_INCR 可调。
Sine_Wave - 正弦波
脉冲 - 脉冲信号
常量 - 值为 STEP_PARAM 的常量信号,且 STEP_PARAM 可调。
配置模型
在本任务中,您将配置一个 Simulink 模型,并在第三方校准工具中启用参数校准。
注意:预配置模型不需要这些步骤。如果您更换了硬件或未使用预配置模型,请执行以下步骤。
1.打开模型。
2.转到建模 > 模型设置以打开“配置参数”对话框。

3.打开硬件实现窗格,并从硬件板参数的列表中选择所需的 Texas Instruments C2000 板。
4.展开该板卡的目标硬件资源。
5.转到外部模式选项卡,并选择 XCP on CAN 作为 Communication interface。

6.在目标设备上配置 eCAN 模块。
a.输入 CAN ID 命令和 CAN ID 响应的值。
b.如果您想使用扩展 ID,请选择扩展 CAN ID 选项。
c.选择详细选项,即可在诊断查看器或 MATLAB® 命令行窗口中查看外部模式执行进度和更新。
d.请输入 logging buffer size 的值。
e.如果目标设备支持多个 eCAN 模块,请选择要与外部模式一起使用的 CAN 模块。
f.请输入 Rx 邮箱号码和 Tx 邮箱号码的值。
7.转到代码生成>优化,然后将默认参数行为设置为 Inlined。
8.点击应用和确定。
启动模型监控操作的构建并生成 A2L 文件
在 Simulink 工具条的硬件选项卡上,点击构建以进行监控。

点击 Simulink 工具条栏中的部署,将可执行文件部署到目标位置。
该模型部署在 Texas Instruments C2000 板上,并在 MATLAB 的当前文件夹路径中生成一个名为 modelname.a2l 的 A2L 文件。成功部署后,可以使用第三方校准工具连接到 Texas Instruments C2000 板,以监控信号和调整参数。

在 CANape 中创建一个新工程并连接到 Texas Instruments C2000 开发板
1.打开 Vector CANape 软件。创建一个新工程。
2.将模型生成的 A2L 文件拖放到 CANape 中。这将打开一个新对话框,用于创建一个新设备。点击下一步。
3.在网络设置中,点击新建网络按钮。这将打开一个对话框,可以在其中选择 CAN 通道。另外,将波特率更改为 Simulink 模型中使用的值。接受更改并关闭对话框。
4.点击下一步,最后点击确定。创建新设备后,将打开新创建设备的“设置”对话框。
5.在设置对话框中展开协议选项卡。点击传输层。
6.确保 CAN 主站 ID、CAN 从站 ID 和其他设置与 Simulink 模型中使用的设置相同。
7.点击协议选项卡。转到专家设置。将 SHORT_DOWNLOAD_DISABLED 和 SHORT_UPLOAD_DISABLED 选项更改为 yes。
8.点击“设置”对话框左上角的接受所有更改,然后将其关闭。
9.点击在线连接到 Texas Instruments C2000 目标。
使用第三方工具进行测量和校准
1.展开浏览器窗格中的设备选项卡,打开信号和参数列表。
2.将要监控的信号拖到显示区域,然后选择一个图形窗口。
3.将要调节的参数拖到显示区域,然后选择“参数窗口”。
4.在“开始”选项选项卡中点击开始测量,即可开始监测所选信号。
5.使用“参数”窗口调节参数。
排查第三方工具中的校准问题
当您使用第三方软件进行参数校准时,可能会遇到以下错误:
CANape 连接失败,错误信息为:
No response from the ECU
To resolve this issue, ensure that the CAN Channel Baud Rate, CAN Slave ID, CAN Master ID, CAN ID Type are correct and try to connect again.
CANape 连接失败,并显示以下错误:ECU 暂时无法访问!
Time synchronization is not supported. The target is responding with a standard message that is not recognized by Vector CANape.
To resolve this issue, it is recommended to disable time synchronization on Vector CANape. Navigate to CANape menu and select |Backstage Tab| > |Settings| > |Project settings (Options)| > |Miscellaneous| > |Device Driver|.

第一次点击开始时,数据采集不会立即开始。
To resolve the issue, click Start again.
The issue occurs because CANape sends command 0xD7 (GET_DAQ_EVENT_INFO) and 0xDC (GET_DAQ_CLOCK) to the slave, even though these are not listed as supported optional commands in the ASAP2 file. By default, CANape has XCP_OPTIONAL_CMD_AUTO_LEARNING feature, which learns that the GET_DAQ_EVENT_INFO and GET_DAQ_CLOCK commands are not supported, and correctly sends DAQ on the second attempt. This information persists in the project database, so the failure does not occur again for the same project.