TSMaster是同星智能推出的一款汽车总线工具链软件,目前已成为广大汽车工程师,尤其是汽车电子工程师最常用的工具之一。它是一个国产替代非常强大的开发、仿真、测试环境。广大工程师在工作中对TSMaster的诊断功能应该会使用比较多,下面我们就来具体价绍下TSMaster诊断功能。
一、Diagnostic TP参数配置
TSMaster提供了诊断控制台基础功能,用户可以根据需求配置自己的发送和应答请求。
1、传输层协议
主要包括:Bus Type、Channel、Request ID/Response ID/Function ID、Request ID Type/Response ID Type /Function ID Type、Filled Byte、STMin、BlockSize、FD Max DLC、Max Length。
诊断传输层类型,目前已经支持CAN/CAN FD/LIN,接下来支持以太网和Flexray等。TSMaster目前支持多个诊断模块同时在线工作,这里用于选择当前诊断模块使用系统的哪一个逻辑通道。
2、服务层参数
服务层参数主要包含S3,P2时间参数,以及加载SeedKey的DLL。DLL加载界面如下图所示。
3、TesterPresent
在Diagnostic Tp参数配置中使能TesterPresenter,TSMaster会提供一个全局的开关。用户通过该开关,可以直接打开和关闭TesterPresent命令。
二、基础诊断配置
该模块包含BasicDiagnostic参数和CombinedService。对于执行过程完全独立的命令,则放入BasicDiagnostic中;对于必须多个命令组合才能够完成的命令,则放入CombinedService中。
1、添加删除服务命令
把鼠标放到需要添加和删除的服务命令上方,右键展开,选择是否需要添加和删除该服务。
2、配置BasicDiagnostic服务参数
以Session Control为例,主要包含如下参数的配置:
(1)配置服务名称:用户可以配置一个易于理解和管理的服务名称。
(2)Is Function ID:本诊断服务是否采用Functional ID发送诊断请求。
(3)选择子服务类型:比如Session Control中的DiagnosticSessionType就包含如上图所示的Session类型。
(4)参数列表的字节序:支持Motorola和Intel字节序。
(5)参数列表:诊断服务除了诊断ID和子服务类型ID,还可以带着参数发送给被测ECU。参数列表包含请求和应答帧的参数列表,其配置方法如下所示,用户可以选择增加/删除多种类型的参数。
3、配置CombinedServices报文
(1)Download File:组合服务目前只支持了下载文件服务,如果用户有其他组合需求,可以反馈给上海同星,合理的需求可以作为标准服务模块添加到软件中。
(2)Checksum:在程序下载过程中,为了保证数据的完整性,需要引入Checksum算法对数据的完整性和有效性进行校验。TSMaster诊断模块的符合服务中,引入了主流的CRC算法进行校验。
(3)载入Binary数据文件:Hex,S19文件格式内部是带数据起始地址和长度的,但是对于Binary类型的二进制文件来说,他内部是不带数据的起始地址的,因此,再载入Binary数据文件的时候,用户需要手动输入数据起始地址段的长度。
4、同步到控制台
三、系统变量的灵活应用
TSMaster把系统变量作为参数引入诊断模块中,极大的拓展了诊断模块跟其他模块数据交互的能力。
1、系统变量关联Console服务
用户在诊断控制台中可以根据需要灵活配置诊断服务。这些诊断服务配置好过后,用户需要在诊断控制台中双击启动该诊断服务。但是如果用户想在Panel界面中启动该诊断命令,则还需要借助系统变量。
2、外部程序控制诊断
外部程序可以通过系统变量跟TSMaster进行数据交换。
四、自动诊断流程
1、流程用例管理
TSMaster的自动化诊断流程不仅仅是针对某一个具体的应用,而是针对整个项目的诊断流程进行管理。用户可以根据完整项目的需求,配置测试诊断流程组,每个组里面可以包含多个不同的诊断流程,在一个诊断流程中才包含具体的诊断步骤。
2、配置诊断流程(UDS Flow)
(1)基本配置步骤:在左边的管理栏中选中一个诊断流程节点-在右边的编辑区域,添加,删除,编辑诊断步骤-添加步骤后,编辑步骤名称-选择该步骤的类型-选择该步骤地址类型,物理地址还是功能地址-配置详细的诊断请求数据包和应答数据包-配置本步骤结束后步骤之间的等待时间-配置本步骤发生错误的错误处理方法
(2)工具栏
诊断流程配置工具栏如下图所示:
(3)诊断步骤类型
测试步骤中,为了增加诊断配置的灵活性,设计了5中类型可供选择,如下图所示,主要包含:Normal,SelectConfig,SeedAndKey,DownloadFile,TesterPresent,RoutineControl。通过这5种类型,基本上涵盖住了市面上所有主流的诊断流程需求。
(4)步骤间隔时间
诊断流程模块步骤跟步骤之间的时间间隔是可以设置的,如下图所示,单位为ms:
(5)出错处理
现阶段出错处理,主要包含两个参数:错误后重试次数以及错误后停止还是继续运行。在后续产品规划中,出错后允许跳转到指定的流程中(比如跳转到擦除流程中),进一步增加自动运行流程模块的灵活性。
(6)使能步骤/位置调整
对于已经完成配置的诊断流程步骤,用户根据左边的选择框来勾选想要执行的诊断步骤。
五、典型应用
TSMaster诊断功能的典型应用,主要包含读取车辆VIN码、写入配置信息、Flash Bootloader流程这三块的典型应用操作。
六、常见问题汇总
1、擦除地址配置
(1)固定地址和长度
如果擦除地址是固定的地址,处理方法最简单。直接配置一个Normal内容的服务,里面直接填入原始数据即可。如果擦除地址为0x00801234,擦除长度为0x0000C000。
(2)可变地址和长度
地址根据载入的不同Hex文件,对应的数据地址和长度是可变的。对于这种情况,则需要用到系统变量。则需要用到系统变量。以示例hex文件为例。诊断模块每次载入Hex文件的时候,会自动提取Hex一些特征信息作为系统变量注册到系统中。
2、Seed&Key的值
如果Seed&Key值是固定值,直接采用选择Normal模式,填入固定的值即可。本章节主要讲解基于Seed&Key动态计算Key值。
3、为什么读取上来的字符串是反的
用户期望读取的字符串是ReadDemo,但是读取上来的字符串是omeDdeaR,完全是反的。这是因为配置的字符串解析顺序跟实际的字符存储顺序不匹配,所以解析出来的字符串也跟着是反的。
解决方法:调整字符串的解析顺序,比如之前为Motorola,现在修改为Intel,修改过后,读取的字符串就和期望的字符串匹配了。