使用 XCP 测量与标定
准备与连接
- 将所需的 BUSMASTER CAN 通道配置为 Classic CAN 并连接 CAN。
- 打开 XCP Settings。设置通道、主节点 CTO ID、从节点响应/DTO ID、标识符格式和超时时间。
- 在 A2L 组中,浏览并选择 ECU 的 A2L 文件。如果存在多个 MODULE 或多个 XCP-on-CAN 传输层,请选择目标条目。在应用之前,检查导入的 CTO/DTO ID、标识符格式以及任何报告的标称波特率不匹配问题。
- 选择采集模式。首次使用时,请选择 Polling 或 Automatic。如果 Measurement 状态报告 Polling 负载过高,请增大间隔时间或减少所采集的工作集。
- 点击 OK,从 A2L Browser 中添加所需对象,然后点击 Connect。
读取数值
- 在工作集中选中一个或多个可读的标量行(Ctrl 或 Shift 可多选)。Acquire 复选框控制的是连续采集,而非单次读取。
- 点击 Read Now。
- 查看 Value、Unit、Quality 和 Last Result。需要所选对象的只读 A2L 元数据时,请使用 Properties。Good 质量仅适用于当前成功会话中的数值;在 Stop 或 Disconnect 之后,BUSMASTER 会将缓存值标记为过期。
写入并验证标定
- 双击一个可写标量 CHARACTERISTIC 的 Value 单元格,或选中该行后按 F2。带掩码(Masked)和只读对象无法编辑。
- 输入所需的物理值并按 Enter。在发送任何内容之前,BUSMASTER 会先验证数值语法、是否支持转换以及 A2L 限值。
- BUSMASTER 会立即写入该对象,并在您编辑下一个对象之前将其读回。
- 使用 Value、Quality 和 Last Result 验证 ECU 的读回结果。点击或选择其他位置会取消未完成的编辑,不会发送。Esc 仍保留其在 BUSMASTER 中的既有含义:断开 Host CAN。
启动 Polling 或 DAQ
- Polling 周期性地读取已启用的工作集对象。如果负载估计过高,请增大间隔时间或减少工作集。
- DAQ 使用 ECU 报告的能力和 MIN_DAQ 列表编号来构建动态 DAQ 列表。所配置的事件通道必须存在于 ECU/A2L 工程中。
- Automatic 在方案受支持时使用 DAQ,不受支持时回退到 Polling 并显示明确原因。
使用 Acquisition 开关来启动和停止采集。采集运行期间,Add、Remove、Move Up、Move Down 以及 Acquire 复选框的更改均被禁用。界面刷新速度刻意低于采样数据流;Value 显示最新可用值,而不是为每个 DTO 单独重绘一次。
错误与恢复
注意:在 XCP 处于连接状态时,现有的 CAN TX 任务可以继续运行。在添加、删除或更改 CAN TX 任务之前,请先停止采集并断开 XCP。应用 TX 任务快照可能会清空共享的硬件发送队列,并丢弃正在传输中的 XCP 请求。更改任务后,请重新连接 XCP。如果某个 XCP 命令超时且通信被报告为失步,请使用 XCP Disconnect 开关,然后断开并重新连接 BUSMASTER CAN,再进行重试;切勿盲目重试标定写入。
- 如果 ECU 拒绝某个命令,请阅读 Log / Diagnostics 以获取 XCP 错误及相关对象或命令类别。在重试之前,先纠正会话、访问、地址、数值或 ECU 状态问题。
- 在发生不明确的 CTO 超时后,BUSMASTER 不会盲目重发该命令。XCP Disconnect 仍然可用,并可在本地完成且不报错。在开始新的 XCP 会话之前,请重新连接 Host CAN 通道,以免迟到的响应被误认为是新命令。
- 如果 CAN 中断,XCP 会话和测量将停止。如果主窗口(Main Window)被隐藏,请重新打开它,并按照显示的恢复状态进行操作。
- 如果 A2L 加载失败,请纠正所报告的文件、include、行、MODULE 或引用问题。先前已提交的模型仍保持可用。
- 当读或写操作(包括其结果发布)处于待处理状态时,A2L 重新绑定会被拒绝。请等待操作完成后再应用候选模型;已经确认的写入不得迁移到来自较新 A2L 模型的地址。
- 如果缺少 XCP_Protocol.dll 或其 ABI 不兼容,则仅禁用 XCP。常规的 CAN、UDS、Trace、Logging 及其他 BUSMASTER 功能仍然可用,并且 CFX 中的 XCP 部分会被保留。
运行代码库验收模拟器
在 BUSMUST 双设备 XCP 测试台上,在代码库根目录打开 PowerShell 并运行 Tests\Automation\XCP_HIL\start_xcp_simulator.ps1。该脚本会构建本机 BMAPI 从节点,以独占方式打开所配置的从节点 UID/端口,并打印一条 status=ready 的 JSON 记录,以及 A2L 路径、500 kbit/s 波特率、请求 ID 0x555 和响应/DTO ID 0x556。保持该窗口开启,使用打印出的值配置 BUSMASTER,并执行读取、在线写入、Polling 和 DAQ。在模拟器窗口中按 Ctrl+C 可停止它并打印最终的请求、DOWNLOAD 和 DAQ 计数器。
当前版本的边界
- 基于 Classic CAN 的 XCP,支持一个 ECU 和一个活动的 XCP 会话。
- 支持的标量类型涵盖 32 位整数和 FLOAT32。不受支持的数组、曲线(curve)、映射(map)或更大的数据类型将显示为不受支持,且不会被静默访问。
- 本版本中 BIT_MASK 对象为只读。
- XCP 工作集中已解析的标量 MEASUREMENT 值可以作为 Physical 元素添加到 CAN Signal Graph。在 XCP 采集运行期间,它们会持续更新。
- XCP 窗口遵循现有的 BUSMASTER Windows 兼容性缩放模型;不提供独立的按显示器 DPI 行为。
权威来源: BUSMASTER DITA help source XCP_Operations.dita, compiled into BUSMASTER.CHM with the application.