你目前正在查看 应用笔记 | TSMaster如何使用同星标定模块

应用笔记 | TSMaster如何使用同星标定模块

overview前言
前面我们出了关于TSMaster应用笔记系列的几篇文章,小伙伴反馈都非常实用,也是工程师们在使用TSMaster软件中切切实实会遇到的问题,今天继续给大家带来应用笔记系列文章——如何代码自动发送LIN报文。
本文目录

一、标定输入文件准备

TSMaster 标定模块依赖如下两类文件和运行 XCP 或 CCP 协议栈的 ECU。
(TSMaster依赖的A2L文件和Seed&Key文件)

1|A2L文件

A2L 文件是采用 ASAP2 指定的一套类 XML 语言的描述性语言(采用开标签和关标签来描述信息)书写的文件,它里边包含了某个特定的 ECU 中的软件和系统信息,还包含了上位机和 ECU 通讯方式的约定,它用来指导上位机和 ECU 的通讯交互过程,让他们对交互的信息有一致的认识,从而是上位机工具准确且友好的将 ECU 中的信息展现给用户。

目前同星 XCP 和 CCP 模块只支持载入最高版本为 1.6x 的 A2L 文件,新版的(版本号大等于 1.7)A2L 文件仅仅支持部分载入,若只有新版 A2L 文件,请先通过相关工具另存1.6x 版本再使用 TSMaster 载入。

2|Seed & Key 算法文件

出于安全的考虑,ECU 中的某些数据或者请求会被限制访问。控制器不正确的例程执行(如:钥匙学习、胎压标定等等)或数据下载(控制器程序刷新等)会损坏当前控制器或其它的车辆部件,可能会导致车辆无法正常行驶、车检不达标、车辆安全性降低等。这种访问限制的主要措施在于算法(类似于钥匙)的实现,即种子(seed)和密钥(key)。

上位机(手机、电脑等)向控制器请求 seed 种子,控制器随机产生一个随机数作为 seed(例如:1122334455667788-长度不定,内容不定)。控制器将该种子返回给上位机。上位机利用控制器给定的算法(不同控制器可能存在不同算法) 和种子生成密钥,并将密钥发送给控制器。控制器将自己生成的密钥(生成算法一致)和上位机发送的密钥进行对比,若一致则打开上位机的访问限制,否则上位机仍不能进行限制性的访问(如:刷新、标定学习等)。

由于 seed 是随机产生的,即控制器每次生成的均不同。因此上位机必须实现控制器的指定算法,否则访问限制不会解除。

若 ECU 支持seed和Key算法,则 TSMaster 依赖实施了对应解锁算法的 DLL 文件。关于此文件的制作方法,请参考 AN0002。

3|支持标定的 ECU

由于演示需要,本例使用 Vector 安装包自带的 XCPSim 虚拟 ECU 作为示例,展示如何使用 TSMaster 对这个 ECU 进行标定。在实际应用中应当将 ECU 切换为用户真实的 ECU。

XCPSim 默认基于 Vector 虚拟1的硬件通道2运行,故应用程序只需连接Vector 虚拟1的硬件通道1即可与之进行通信。

安装Vector CANoe Demo版本或 Vector CANape 后,使用 everything 搜索“XCPSim.exe”并启动它:

(上图为Vector的XCPSim)

二、同星标定License授权

同星标定模块是 TSMaster 免费软件中少数几个需要注册才能使用完整功能的模块之一,若没有注册同星标定模块,在实际标定中会有如下限制。

1|无标定License的限制

序号 功能 限制
1 支持的硬件 TSMaster所有支持的硬件(同星、Vector、PEAK、英特佩斯、Kvaser、周立功)都可以链接,但是只能监控变量,无法修改变量
2 监控变量数量 每个ECU可以同时监控最多8个变量
3 下载,修改变量 不支持

2|标定License特性

标定 License 依赖硬件,且只能安装在同星的硬件中,故其他品牌的工具无法注册标定 License。注册同星标定 License 后,使用方面需要注意的特性如下:
序号功能限制
1支持的硬件同星生产的硬件
2监控变量数量无限
3下载,修改变量支持,无限数量
4支持的通道安装 License 的硬件自带的所有 CAN 通道, 注意,在一个 TSMaster 应用程序里仿真的其他工具的通道是不支持标定 License 的

3|同星标定License授权

请联系同星智能获取标定 License 授权的相关信息。联系方式如下。

地址:上海市嘉定区曹安公路 4801 号同济大学国家大学科技园嘉定分园 904室
邮箱:sales@tosunai.cn
电话:+86-021-59560506

在获得了同星标定 License 的授权,并得到了带 License 的硬件后,插入硬件,使用 TSMaster 连接硬件一次后,在 TSMaster 的关于页面中,将出现授权信息:

(授权信息将显示在 TSMaster 的关于窗口中)

三、TSMaster标定模块基本配置

1|TSMaster标定模块用户界面

根据如下步骤创建一个新工程,并使用标定模块:
1)新建工程
点击新建工程将会弹出模板选择对话框:

(点击工具栏-工程-新建按钮)

2)选择标定工程模块

3)创建一个标定空工程

4)在标定窗口中,选中“设备”节点,在其上点击右键,选择“新建 ECU”

5)输入 ECU 的名称后点击确定,系统将自动添加并选中新创建的 ECU

6)驱动选择,用户根据需要,在参数第一行,选择 XCP 还是 CCP 协议,在选择协议后,再载入数据库文件。若载入 A2L 文件后需要调整协议,则在协议更改后,需要再次载入一遍 A2L 文件。

7)载入 A2L 文件,首先选中“数据库”一行,点击右侧的“打开”按钮, 选中这个 ECU 的 A2L 文件,载入过程和文件大小有关,若文件很大,则需要耐心等待片刻。

8)载入完成后系统会自动将源 A2L 文件拷贝至工程目录,并自动为 A2L 命名,其命名格式是:ECU 名称作为前缀 + 源 A2L 文件名

(载入A2L文件后,界面将显示A2L文件名)

载入 A2L 文件后,可以查看 ECU 节点下方展开的“数据库”、“协议”。

 

9)数据库页面显示了 A2L 内部的测量量和特性等信息

10)数据库支持搜索,可以输入任意关键字以过滤变量
11)协议页面显示 ECU 的标定协议属性

12)点击“Seed 和 Key 算法 DLL 文件”右侧的“打开”按钮,加载 ECU 的解锁算法 DLL 文件,若 ECU 无需解锁则可跳过此步骤。

 

13)载入 Seed 和 Key 的 DLL 文件后,系统会将此 DLL 拷贝到工程文件夹中, 并自动为其命名,命名规则是:ECU 名称作为前缀 + 算法 DLL 文件名

14)将需要观测的变量添加到测量列表中

15)记录引擎
记录引擎默认是未激活状态,需要勾选最下方的激活复选框以使能记录引擎,在测量运行过程中自动记录所需要的变量值

16)勾选记录引擎并编辑引擎注释,此注释信息将自动记录到目标 mat 文件中

2|基本的测量功能配置

1)添加测量对象
(选中需要观测的变量后,点击右键选择添加至列表)

2)切到“测量列表”页面,将看到刚才添加的测量对象

3)测量列表中定义了每个变量所使用的测量模式,若需要集体修改测量模式,可以按住 shift 多选测量对象,并在右侧任意一个选中的测量模式一列中,选择另一个测量模式,即可完成所选部分的全部切换

4)本示例设置前三个观测量为 10ms DAQ,最后一个观测量为 100ms DAQ

3|配置标定硬件通道并启动标定

1)设置硬件通道
在本例中,使用的是 Vector 虚拟 1 的硬件通道 1,在实际应用中,请选择ECU 所在的通道

连接 TSMaster 成功后,点击标定界面工具栏左上角的“连接”,将连接被测 ECU,并自动解锁;连接成功后,再点击“运行”按钮,将启动 DAQ,此时 ECU 将自动发送 DAQ 报文至工具端。

2)标定测量开始时,可从报文信息窗口观察 XCP 报文

3)设置标定模块的自动运行
标定模块也可以随 TSMaster 应用程序的启动而自动启动,而不需要手动点击连接和启动按钮

4|基本的标定功能

在 DAQ 启动后,TSMaster 自动将 ECU 内部的每一个变量映射到与之对应的系统变量中,即 ECU 内部的变量的变化将直接作用在系统变量中,故可以通过观测这些系统变量来观测 ECU 内部的变量。而对于标定量来说,与其对应的系统变量时可写的,写入这些系统变量意味着修改 ECU 内部的标定量。

4-1 通过系统变量观测ECU变量

用户可以在 TSMaster 软件中任何可观测系统变量的窗口中(图形、面板、仪表盘、小程序、系统变量管理器等等),添加并观测所需观测的系统变量,当然也包括标定 ECU 关联的系统变量。添加观测信号最为快捷的方法是从数据库中过滤所需的信号,选中单个或多个信号,点击右键,在右键菜单中选择添加至图形,或是面板。如下图所示:

(直接从数据库向图形窗口添加观测量)

另一种方法是在已有的测量窗口中直接添加。以图形窗口为例,在信号列表中右键单击,在弹出的右键菜单中选择“添加系统变量”:

将弹出系统变量选择器:

可以在选择器中过滤,例如输入“sine”:

(系统变量选择器的过滤功能)

选择“ecu1.sineSignal”后点击确定按钮,将可以在图形窗口观察该变量的实时变化曲线:

(在图形窗口中添加了测量对象对应的系统变量)

按照此方法逐个添加示例中已添加 DAQ 的四个观测量:

选择分离视图,将四个坐标轴分开:

可看到分开显示的四个变量:

4-2 通过系统变量修改标定量

修改标定量同样针对其所关联的系统变量,可通过小程序,系统变量管理器,信号激励等功能修改一个标定量,以信号激励窗口为例,首先打开信号激励窗口

点击左上角的“添加系统变量”按钮,将打开系统变量选择器,注意,灰色的变量是只读变量,即观测量,这类变量是不能修改值的,故应当选择可写入的系统变量(即标定量):

信号激励窗口不但可以修改标定量,还可以修改除了标定意外的任意可写入的系统变量的值,例如让某个系统变量跟随一个特定的自定义曲线变化,故具有非常广泛的应用。

 

选择两个信号“ecu1.sineSignal”和“ecu1.sineSignalFreq”,点击确定后,信号激励列表将出现这两个新增的系统变量:

(向信号激励窗口新增系统变量)

可以看到 ECU 内部这两个变量的默认值是 1,点击第一个信号的物理值的上键,让其自增 1:

(可通过按钮和文本框修改系统变量的值)
当把幅值改为 2  后,切换到图形窗口,可以看到正弦波的幅值发生了变化:
(对修改后的标定量所影响的测量量进行观测)

4-3 通过信号激励窗口制造变量变化曲线

将幅值信号的信号生成器类型选择为正弦波,可以控制 ECU 内部的标定量以正弦波方式变化

选择后点击信号生成器一列最右侧的配置按钮,将打开信号生成器的配置界面,可以看到周期生成的属性中,周期是 100 ms,表示激励的周期,可以增加或缩小,最小周期是 1 ms,注意,周期越小,网络负荷越重。

 

此外可以修改信号的周期、幅值、相位和偏移量等等参数值:

(信号生成器属性配置)

修改完毕后点击确定按钮,可以看到信号生成器还未启动,需要手动点击蓝色的启动箭头以启动信号生成,当然也可以勾选此窗口右上角的闪电选择框,让其在 TSMaster 应用程序启动时一同启动运行

点击启动后,可以看到信号生成器处于运行状态,此时信号“ecu1.sineSignal”将以 100 ms 为周期产生变化,此时可以暂停信号生成或停止信号生成

切换到图形窗口,可以看到幅值被同时修改后的正弦曲线产生的变化:

4-4 修改信号的测量模式

除了 ECU 内部自带的 DAQ 测量模式外,系统还提供了查询(Polling)模式
本例中修改 noiseSignal 为查询模式,并将 pulseSignal 进行分频:

随后启动标定测量,可以看到多种测量模式同时运行中。

四、信号记录功能

同星 XCP 模块支持直接将信号记录到 mat 文件中,这给基于 MBD 的算法开发和测试带来极大的便利。基本的信号记录功能参考之前的章节,本章节介绍如何将 CAN 信号和标定信号同时记录在一个文件中。

1|关联CAN数据库

断开TSMaster的连接,将dbc文件拖入 TSMaster 中,将自动打开数据库查看器并载入此数据库。数据库载入后需要配置信号映射功能,将 CAN 信号映射到系统变量中,这样的好处是系统的仿真,调试直接依赖系统变量,若后续更改了数据库,只需更改信号映射即可,而无需修改脚本,无需修改与系统变量相关的任何元素。
(拖入dbc文件,本例使用“Powertrain.dbc”)

2|配置符号映射引擎

点击“仿真”工具栏中的“符号映射”,将打开符号映射管理器,在此例中我们希望记录“EngineData”报文中“EngSpeed”这个信号的值,在对话框左侧的过滤器中输入“speed”,过滤出带“speed”的数据库符号,在右侧的系统变量列表中,点击右键添加一个新的系统变量:

系统变量选择器对话框将弹出:

由于内部变量为系统自动生成,用户需要添加的变量都应当在用户变量列表中,故切换到用户变量页面,添加一个新的用户变量:

输入新的用户变量为“XCPSimBus.engine_speed”:

添加后的系统变量将在列表中显示出来:
选中这个变量后点击“确定”,将在符号映射中添加这个新创建的变量。添加后,同时选中左边栏的信号,和右边栏的系统变量,再在上方工具栏中点击“连接”按钮,将创建 CAN 信号到系统变量的符号映射。

连接成功后将会提示映射创建成功:

符号映射引擎默认是关闭状态,需要勾选左上角的“激活”使其在应用程序连接时自动工作:

3|激励CAN信号

在实际的应用中,变化的 CAN 信号来自接收到的报文,在本例中,为了演示需要,将构造一条发送报文来激励信号,打开 CAN / CAN FD 发送窗口,点击左上角的“添加”按钮,选择 EngineData 报文后点击确定:

选中“EngSpeed”信号,修改其激励属性:

(修改CAN信号生成器)

本例中选择了正弦波:

(勾选发送窗口右上角的闪电按钮,使其自动激励)
启动仿真后,可以看到这个信号的值呈现 3 秒周期的自动变化:

4|查看映射变量

这时候我们可以在图形窗口中映射变量“XCPSimBus.engine_speed”的变化曲线,首先点击右键选择添加系统变量:
选择系统变量:
图形将显示映射后的系统变量的变化曲线:

5|记录系统变量

打开记录引擎的系统变量记录页面,此页面不但可以记录映射的系统变量, 也可以记录其他任何系统变量。右键点击后,选择“添加”按钮:
在系统变量选择器中,选择需要记录的系统变量:
选择后,记录系统变量界面增加了一条系统变量记录:
按 F5 启动应用程序,可以看到带系统变量记录的测量过程:
停止应用程序后,mat 文件将自动创建在 TSMaster 二进制文件路径bin\Logging\signals\ 下面。

五、信号回放功能

1|添加记录文件

在被测 ECU 的“测量记录”节点上点击右键,选择“载入”以加载并回放记录文件。加载后的文件的链接将保留在测量记录中,用户可以切换回放目标,并反复回放某个记录文件。
在弹出的对话框中选择 TSMaster 输出的 mat 格式的记录文件:
若记录文件很大,将显示回放进程对话框,用户可以随时打断回放过程:

2|通过TSMaster回放记录文件

可以在记录文件中点击右键,选择回放功能:

3|通过Matlab回放记录文件

直接将 mat 文件拖入 Matlab 界面中,即可在工作区载入此 mat 文件内容。
关于TSMaster软件

TSMaster 是同星推出的虚拟仪器软件平台,可连接、配置并控制所有同星的硬件工具、设备,实现汽车总线嵌入式代码生成、监控、仿真、开发、诊断、标定、Bootloader、I/O 控制、测试测量、EOL 等多种场合的功能需求。且软件 90%功能免费。

 

TSMaster 自带的小程序功能支持用户自定义仿真测试面板,测试流程,测试逻辑,甚至测试系统和自动化生成报告。用户基于 TSMaster 所写的每一行代码具有硬件无关性,可分享,可引用,可跨硬件平台。

 

此外,TSMaster 可支持 Matlab Simulink 联合仿真,支持联合 Carsim 完成带车辆动力学模型的 ECU 算法仿真测试(软实时 HIL)。内置 C 脚本、Python 脚本编辑器,可直接在 TSMaster 中执行 ECU 代码。

 

TSMaster 还可以支持 Vector、Kvaser、PEAK、ICS、周立功总线工具及市场上主流的仪器(示波器、波形发生器、数字万用表)、板卡(AI、DI、DO 等),可实现多硬件、多通道联合仿真、测试。

发表回复