TSMaster应用笔记2:如何使用XCP模块进行标定

描述

 

 

 

  标定,作为整车及ECU开发过程中不可或缺的一个开发流程,对整车及ECU性能的优化起着至关重要的作用,可是行业内可供选择的标定工具种类却非常有限,TSMaster将为广大的研发工程师和标定工程师提供一个全新选择。
 

    接下来小星将通过几篇应用笔记,告诉大家如何使用TSMaster进行标定。
 

 

 

A

标定输入文件准备

 

TSMaster XCP标定模块依赖如下两类文件和运行XCP协议栈的ECU。

模块

 

1 A2L文件
 

A2L文件是采用ASAP2指定的一套类XML语言的描述性语言(采用开标签和关标签来描述信息)书写的文件,它里边包含了某个特定的ECU中的软件和系统信息,还包含了上位机和ECU通讯方式的约定,它用来指导上位机和ECU的通讯交互过程,让他们对交互的信息有一致的认识,从而是上位机工具准确且友好的将ECU中的信息展现给用户。目前同星XCP模块只支持载入最高版本为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文件。关于此文件的制作方法,请参考随后的应用笔记。
 

3 支持XCP的ECU

由于演示需要,本例使用Vector安装包自带的XCPSim虚拟ECU作为示例,展示如何使用TSMaster对这个ECU进行标定。在实际应用中应当将ECU切换为用户真实的ECU。XCPSim默认基于Vector虚拟1的硬件通道2运行,故应用程序只需连接Vector虚拟1的硬件通道1即可与之进行通信。安装Vector CANoe Demo版本或Vector CANape后,使用everything搜索“XCPSim.exe”并启动它:

模块

 

 

B
 

同星XCP license授权

 

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

 

1 无XCP License的限制
 

 

序号

 

 

 

功能

 

 

 

限制

 

 

 

1

 

 

 

支持的硬件

 

 

TSMaster所有支持的硬件(同星、Vector、PEAK、英特佩斯、Kvaser、周立功)都可以连接,但是只能监控变量,无法修改变量

 

 

2

 

 

 

监控变量数量

 

 

每个ECU可以同时监控最多8个变量

 

 

3

 

 

 

下载,修改变量

 

 

不支持

 

 


 

2 XCP License特性
 

XCP License依赖硬件,且只能安装在同星的硬件中,故其他品牌的工具无法注册XCP License。注册同星XCP License后,使用方面需要注意的特性如下:

序号

 

 

 

 

功能

 

 

 

 

特性

 

 

 

 

1

 

 

 

支持的硬件

 

 

同星生产的硬件

 

 

 

2

 

 

 

监控变量数量

 

 

无限

 

 

3

 

 

 

下载,修改变量

 

 

支持,无限数量

 

 

4

 

 

 

支持的通道

 

 

安装License的硬件自带的所有CAN通道,注意,在一个TSMaster应用程序里仿真的其他工具的通道是不支持XCP License的

 

 

3 同星XCP License授权
请联系同星智能获取XCP License授权的相关信息:

地址:上海市嘉定区曹安公路4801号同济大学国家大学科技园嘉定分园

邮箱:sales@tosunai.cn

电话:+86-021-59560506

网址:www.tosunai.cn

技术论坛:www.tosun.tech

应用案例:https://github.com/TOSUN-Shanghai/TSMaster
 

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

模块

 

C
 

TSMaster XCP标定模块基本配置

 

1 TSMaster XCP模块用户界面

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

模块

(2)选择标定工程模版
 

模块

 

(3)这将创建一个空的标定工程

模块

 

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

模块

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

模块

(6)载入A2L文件,首先选中“数据库”一行,点击右侧的“打开”按钮,选中这个ECU的A2L文件,载入过程和文件大小有关,若文件很大,则需要耐心等待片刻。
(7)载入完成后系统会自动将源A2L文件拷贝至工程目录,并自动为A2L命名,其命名格式是:ECU名称作为前缀 + 源A2L文件名。

模块

载入A2L文件后,可以查看ECU节点下方展开的“数据库”、“协议”。
(8)数据库页面显示了A2L内部的测量量和特性等信息

模块

(9)数据库支持搜索,可以输入任意关键字以过滤变量

模块

(10)协议页面显示ECU的标定协议属性

模块

(11)点击“Seed和Key算法DLL文件”右侧的“打开”按钮,加载ECU的解锁算法DLL文件。
(12)载入Seed和Key的DLL文件后,系统会将此DLL拷贝到工程文件夹中,并自动为其命名,命名规则是:ECU名称作为前缀 + 算法DLL文件名。

模块

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

模块

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

模块

(15)勾选记录引擎并编辑引擎注释,此注释信息将自动记录到目标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应用程序的启动而自动启动,而不需要手动点击连接和启动按钮,勾选窗口右上角的闪电按钮,将使得标定模块在TSMaster连接时自动运行。

模块

4 基本标定功能
在DAQ启动后,TSMaster自动将ECU内部的每一个变量映射到与之对应的系统变量中,即ECU内部的变量的变化将直接作用在系统变量中,故可以通过观测这些系统变量来观测ECU内部的变量。而对于标定量来说,与其对应的系统变量时可写的,写入这些系统变量意味着修改ECU内部的标定量。
(1)通过系统变量观测ECU变量用户可以在TSMaster软件中任何可观测系统变量的窗口中(图形、面板、仪表盘、小程序、系统变量管理器等等),添加并观测所需观测的系统变量,当然也包括标定ECU关联的系统变量,以图形窗口为例,在信号列表中右键单击,在弹出的右键菜单中选择“添加系统变量”:

模块

在图形中,添加系统变量,将弹出系统变量选择器:
 

模块

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

 

模块

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

模块

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

模块

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

模块

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

模块

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

模块

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

模块

信号激励窗口不但可以修改标定量,还可以修改除了标定意外的任意可写入的系统变量的值,例如让某个系统变量跟随一个特定的自定义曲线变化,故具有非常广泛的应用。选择两个信号“ecu1.sineSignal”和“ecu1.sineSignalFreq”,点击确定后,信号激励列表将出现这两个新增的系统变量:

模块

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

模块

当把幅值改为2后,切换到图形窗口,可以看到正弦波的幅值发生了变化:
 

模块

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

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

模块

选择后点击信号生成器一列最右侧的配置按钮,将打开信号生成器的配置界面,可以看到周期生成的属性中,周期是100 ms,表示激励的周期,可以增加或缩小,最小周期是1 ms,注意,周期越小,网络负荷越重。此外可以修改信号的周期、幅值、相位和偏移量等等参数值:

模块

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

模块

点击启动后,可以看到信号生成器处于运行状态,此时信号“ecu1.sineSignal”将以100 ms为周期产生变化,此时可以暂停信号生成或停止信号生成。切换到图形窗口,可以看到幅值被同时修改后的正弦曲线产生的变化:
 

模块

4 修改信号的测量模式

除了ECU内部自带的DAQ测量模式外,系统还提供了查询(Polling)模式:

模块

本例中修改noiseSignal为查询模式,并将pulseSignal进行分频:
 

模块

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

模块

D

信号记录功能

 

同星XCP模块支持直接将信号记录到mat文件中,这给基于MBD的算法开发和测试带来极大的便利。基本的信号记录功能参考之前的章节,本章节介绍如何将CAN信号和标定信号同时记录在一个文件中。1 关联CAN数据库断开TSMaster的连接,将dbc文件拖入TSMaster中,将自动打开数据库查看器并载入此数据库。数据库载入后需要配置信号映射功能,将CAN信号映射到系统变量中,这样的好处是系统的仿真,调试直接依赖系统变量,若后续更改了数据库,只需更改信号映射即可,而无需修改脚本,无需修改与系统变量相关的任何元素。
 

模块

2 配置符号映射引擎

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

模块

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

模块

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

模块

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

模块

添加后的系统变量将在列表中显示出来:

‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍模块‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍‍

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

模块

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

模块

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

模块


3 激励CAN信号

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

模块

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

模块

本例中选择了正弦波,勾选发送窗口右上角的按钮,使其自动激励:
 

模块

启动仿真后,可以看到这个信号的值呈现3秒周期的自动变化:

模块

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

模块

选择系统变量:

模块

图形将显示映射后的系统变量的变化曲线:

模块


 

5 记录系统变量

打开记录引擎的系统变量记录页面,此页面不但可以记录映射的系统变量,也可以记录其他任何系统变量。右键点击后,选择“添加”按钮:

模块

在系统变量选择器中,选择需要记录的系统变量:

模块

选择后,记录系统变量界面增加了一条系统变量记录:

模块

按F5启动应用程序,可以看到带系统变量记录的测量过程:

模块

停止应用程序后,mat文件将自动创建在TSMaster二进制文件路径 bin\Logging\signals\ 下面。

 

E

信号回放功能

 

1 添加记录文件

在被测ECU的“测量记录”节点上点击右键,选择“载入”以加载并回放记录文件。加载后的文件的链接将保留在测量记录中,用户可以切换回放目标,并反复回放某个记录文件。

模块

在弹出的对话框中选择TSMaster输出的mat格式的记录文件:

模块

若记录文件很大,将显示回放进程对话框,用户可以随时打断回放过程:

模块

2 通过TSMaster回放记录文件

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

模块

3 通过Matlab回放记录文件

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

模块

关于mat文件信号生成timeseries,以及在simulink回放等功能,请参考后续的应用笔记。

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分