随着电子模块的迅速增加,ADAS、无人驾驶场景带来的海量数据交互和实时性要求,OTA技术带来的信息安全挑战,对汽车总线仿真、测试、诊断、标定工具链的性能提出了更高的要求。本文主要讲解如何利用TSMaster的系统变量触发标定和诊断功能。
1
标定和诊断概述
1、标定
1
XCP/CCP标定
通过CCP或者XCP协议来实现对控制器内部参数进行动态调整的过程称之为标定。CCP协议:是一种基于CAN总线的标定协议。XCP协议:通用测试标定协议,是继CCP之后的协议升级版,可以应用于多种总线。
2
特点
1)均采用主从的模式,单个主机可以同时与多个从机通讯。
2)主机通过下发命令与从机建立连接,解锁,读取数据,修改参数等操作。
XCP/CCP协议,配合A2L文件,可以直接在软件上更改某些参数,执行器就会给相应的反馈。TSMaster 标定模块依赖如下两类文件和运行 XCP 或 CCP 协议栈的ECU。
2、诊断
TSMaster 提供了诊断控制台基础功能,用户可以根据需求配置自己的发送和应答请求。目前已经支持 CAN/CANFD/LIN/UDS BootLoader,后续将会支持Some/IP和DoIP等。
2
标定和诊断使用
1、创建TSMaster标定
1)选择创建新工程或者创建空工程(后续选择保存位置),单击即可。
2)点击应用 -> 标定管理器 ->设备配置(右击,新建ECU)->填写ECU名称确认即可创建成功。
2、创建TSMaster诊断
点击Diagnositc ISO TP ->添加DIagnositc,页面将会弹出新的诊断框。
3、TSMaster系统变量触发标定
1)选择驱动,点击XCP即可选择XCP/CCP协议。
2)选择数据库,导入A2L文件,导入成功即可通过数据库协议内存,测量列表查看和配置相关信息。
3)如需安全算法,点击协议 -> Speed和Key算法DLL文件,单击导入文件。
4)选择逻辑通道,配置内存地址映射。
5)点击连接ECU- >启动在线标定测量,即可成功连接。(如连接错误请检查逻辑通道,内存配置)
6)点击数据库选择一个PWM信号,右击可以选择添加至信号激励、图形、面板、数值,如下所示:
7)通过修改信号激励或者面板变量的值去更改信号的数值,通过图形和数值显示,信号值已被更改。
8)同时支持C脚本更改变量的值,点击系统变量选择一个变量。
9)复制写入代码。
10)通过C脚本,Step函数,实现每隔一秒数值加一。
4、TSMaster系统变量触发诊断
1)首先点击诊断窗口 ->诊断 BasicConfig 窗体中,选中目标服务,然后右键菜单中把该诊断服务注册为系统变量,点击系统变量此变量将显示。
2)在面板添加Button,关联此变量,更改面板值,可以观察图形中值已经被修改。
3)通过C脚本使此变量0 1跳变,通过图形和面板可进行观察。
3
二次开发
1、支持其他语言进行二次开发,本例使用C# 调用TSMaster API实现标定功能,使用软件为Visual Studio 2019。
创建一个新工程,步骤如下:选择C# -> Windows窗体应用 ->点击下一步。
2、设置项目名称 -> 存储位置 ->点击创建。
3、导入 TSMaster.dll文件,引用 -> 添加引用 选择dll文件,确认。
4、点击引用,查看TSMaster 相关调用函数。
5、添加TSCalibration类
点击添加 -> 类,修改名称 -->添加(A).成功创建TSCalibration 类。
6、导入TSMaster 定义类型。
7、通过public创建,读取和写入两个类。
8、打开TSMaster 仿真 ->系统变量 ->内部变量,滑动条滑动到底部,即可看见标定控制器状态(Calibration.Status),标定控制器自动化寄存器状态(Calibration.Controller)。
9、只需对系统变量值进行读取和写入就可触发标定。
10、点击开启连接,打开最近关闭的TSMaster并启动,依次点击启动ECU,启动测量。
11、输入变量名点击读取,实时值显示变量值为25。写入变量名,写入值50,即可看见变量的值变为50。