车载以太网TSMaster的DoIP功能操作指南

您是否想浏览中国自主品牌出口车型,可以为您切换到易车国际站。

本文介绍:

车载以太网诊断协议,DiagnosticsoverInternetProtocol简称为DoIP,可以通过以太网协议进行汽车诊断。DoIP是一种用于在车辆之间或车辆与诊断设备之间进行通信和诊断的标准协议。通过DoIP,诊断工程师可以通过以太网或远程访问和诊断车辆的电子系统,并可以进行以太网控制器的诊断访问和刷写。

DoIP是TSMaster支持的重要功能之一,本文主要介绍TSMaster的DoIP模块中诊断服务功能操作,以及相应的传输层配置,并结合诊断功能常见的使用操作进行展开,本文要点如下:

1.TSMasterDoIP的同星以太网硬件准备

2.TSMasterDoIP模块如何开始使用

3.TSMaster被测仪IP网络接口配置

4.TSMasterDoIP诊断传输层配置

5.TSMaster基础诊断配置

6.TSMaster诊断控制台

7.TSMaster自动诊断流程与注册系统变量

8.诊断典型应用

本文关键词:DoIP,车载以太网诊断,基础诊断,自动诊断流程,以太网

1、TSMasterDoIP的同星以太网硬件准备

TSMaster的DoIP软件功能的实现,是以同星的以太网硬件作为基础。其中应用于DoIP的同星以太网硬件有TE1051、TE1054(规划中)、TE1021。

TE1051是一路以太网转USB接口的设备,可以将标准以太网100Base-Tx1000Base-T或车载以太网100/1000Base-T1的数据通过USB接口传输到PC上,并通过TSMaster软件实现以太网数据的仿真、分析、测试,也可以实现DoIP和SOMEIP等功能。同时,TE1051设备小巧且外壳坚固,无需外部供电,适用于各种环境工况下的DoIP诊断刷写。

图1-1TE1051硬件

TE1021是一路车载以太网转普通以太网接口(100/1000Base-T1to100Base-Tx/1000Base-T)的介质转换工具。用户可以将100Base-T1转换为100Base-Tx或将1000Base-T1转换为1000Base-T。可适用于不同以太网接口的DoIP应用场景,同时TE1021小巧且外壳坚固,携带方便。

图1-2TE1021硬件

2、TSMasterDoIP模块如何开始使用

TSMaster的DoIP模块的创建与基本使用流程如下:

▲Step1:DoIP位于主菜单【应用】->【DoIP】,如图2-1。

图2-1DOIP

▲Step2:【添加DoIP】模块,可以添加多个DoIP模块,如图2-2。

图2-2添加DoIP模块

▲Step3:根据ECU的配置设置车载以太网传输层参数,比如诊断仪类型、通道、被测件IP地址等以太网参数和安全访问算法。具体操作流程在下文第3章节展开。

图2-3连接以太网被测件

图2-4ISO5765-2消息

▲Step5:服务以及流程都配置好之后,在【自动诊断流程】处直接打开启动按钮,执行诊断流程。如图2-5所示。

图2-5执行自动诊断流程

3、TSMaster诊断仪IP网络接口配置

TSMaster的网络接口配置流程如下:

▲Step1:找到主菜单【硬件】->【TCP/IPStack】,如图3-1。

图3-1TCP/IPStack

▲Step2:【EthCH1】右键选择【AddNetworkCard】,如图3-2。

图3-2添加网络接口

▲Step3:在【GeneralSetting】中选择【用户自定义Mac】,输入自定义Mac地址。如图3-3。

图3-3自定义Mac地址

▲Step4:【使能IPV4】,然后打开【添加】按钮,输入诊断测试仪的IP地址和IP掩码,如图3-4。

图3-4添加IP地址

4、TSMasterDoIP诊断传输层配置

TSMaster提供了DoIP的诊断传输层的配置功能,用户可以根据需求配置相应的传输层配置比如诊断仪类型、通道、IP地址、端口和请求和应答ID、以及安全算法等一系列配置。

4.1诊断传输层

诊断传输层的配置根据诊断仪类型分为两种:TE系列设备和系统TCP/IP。

4.1.1TE系列设备

TE系列设备类型以TE1051为例,TE1051是一个1路以太网转USB接口的工具,通过USB接口传输到PC上,并通过TSMaster软件实现以太网数据的DoIP功能。

对于DoIP诊断传输层ISOTP,包含被测件和测试仪的以太网参数和诊断ID参数,如图4-1所示。

图4-1DoIP诊断传输层ISOTP配置

DoIP诊断传输层ISOTP的具体参数如下分类介绍:

▲总线类型:诊断传输层类型。

使用同星DoIP功能选择总线类型为【Ethernet】,如图4-2所示。

图4-2DoIP诊断总线类型

▲诊断仪类型:诊断设备类型。

通过USB连接PC,选择的诊断仪类型为【TE系列设备】,若是传统的网线连接PC则选择系统TCP/IP,如图4-3所示。

图4-3Ethernet诊断仪类型选择

▲通道:诊断模块用到的逻辑通道。

TSMaster支持多个诊断模块同时在线工作,这里用于选择当前诊断模块的应用逻辑通道,通过下拉列表进行选择,如图4-4所示。

图4-4Ethernet通道选择

▲IP地址掩码:以太网通信使用的IP地址掩码。

▲被测件IP:被测件的IP地址。

在DoIP通信中,IP地址掩码和被测件IP地址需要根据具体的网络拓扑结构和通信需求进行设置。

▲被测件端口:被测件端口号。

在ISO13400标准中端口13400被指定为DoIP通信的默认端口号。

▲测试仪IP:测试仪的IP地址。

测试仪IP为连接PC的测试设备(如同星的TE051)的IP地址。根据IP地址掩码和被测件IP,将PC的IP地址和被测件IP配置在同一网段内,以此两者可以正常连接和通信。测试仪IP地址的配置在前面的第3章已详细说明。

▲测试仪端口:测试仪或PC的端口

注意:对于诊断工具的端口号设置并没有固定的规定,用户可以根据需求自己设置或者使用软件自动分配的端口号。

▲请求ID/应答ID/功能ID:设置诊断模块PC工具端的诊断请求/应答/功能帧的ID。

4.1.2系统TCP/IP

系统TCP/IP类型以TE1021为例,TE1021是直接通过系统的网口连接PC。

DoIP诊断传输层ISOTP,包含被测件和测试仪的以太网参数和诊断ID参数,如图4-5所示。

图4-5DoIP诊断传输层ISOTP配置

使用同星DoIP功能选择总线类型为【Ethernet】,如图4-6所示。

图4-6DoIP诊断总线类型▲诊断仪类型:诊断设备类型。

诊断仪通过PC系统的网口连接PC,则选择的诊断仪类型为【系统TCP/IP】,如图4-7所示。

图4-7Ethernet诊断仪类型选择

用于选择当前诊断模块的应用逻辑通道,这里默认是【SystemEthernetInterface】,如图4-8所示。

图4-8Ethernet通道选择

▲测试仪IP:PC的系统的网口的IP地址。

根据IP地址掩码和被测件IP,将PC的IP地址和被测件IP配置在同一网段内,使得两者可以正常连接和通信。找到电脑的【设置】->【网络和Internet】,找到网口所连接的以太网,选择【属性】,在【IP分配】选择【编辑】按钮。选择手动,打开IPv4,填写IP地址以及子网掩码。如图4-9所示。

图4-9PC端以太网IP地址设置

4.2诊断服务层

图4-10诊断服务层参数

4.2.1路由激活

【连接DUT之后自动执行路由激活命令】:勾选后,当测试仪或PC与被测件建立网络连接后,软件自动执行路由激活命令。

【激活类型】,共有5种类型:

1.【Default】:默认激活模式(DefaultActivationMode),这是最基本的路由激活类型,通常用于建立标准的DoIP通信会话。在默认激活模式下,设备之间会进行基本的身份验证和参数交换,以建立通信连接。

2.【WWH-OBD】:全球调和车载诊断系统要求的诊断通信激活,在这种模式下,设备之间可能需要进行额外的身份验证和安全验证,以确保通信的合规性和安全性。

3.【ISO/SAEReserved】:为未来的标准或特定应用保留的路由激活模式。

5.【AdditionalOEM-SpecificUse】:为原始设备制造商(OEM)提供的特定用途而保留的额外路由激活模式。不同的OEM可以根据自己的需求和车辆网络架构,定义和使用特定的路由激活模式,以满足其独特的诊断、通信或安全要求。

上述两个参数可以点开【详情】按钮,查看图示说明,如图4-11所示。

4.2.3诊断仪在线

上述两个参数的示意图,可以点开【详情】按钮,查看图示说明,如图4-12所示。

【诊断仪在线】:TSMaster断模块中,可以选择配置并使能诊断仪在线命令,如图4-13所示。

图4-13诊断仪在线设置

诊断仪在线的发送字节是可选的。支持三种类型:

【默认诊断仪在线服务】:为最常用的0x3E0x80。

【从基础配置中选择】:从基本诊断配置中选择配置好的3E命令。

【用户自定义】:用于自定义的字节。

4.2.4种子密钥

TSMaster中提供了两种SeedKey种子密钥的处理方法。第一种就是常用的加载主流的种子密匙的DLL动态链接库;第二种是提供了内置的种子密钥的解释器,可以直接编写SeedKey源代码,并可以保存生成DLL动态链接库。

—4.2.4.1载入动态链接库

TSMaster不仅支持了C/C++,Delphi等语言封装的DLL文件,也新增支持基于DotNet平台如C#,VB.Net等语言编写的DLL动态链接库,可以高效兼容不同平台生成的安全访问DLL,为工程师带来更便捷的使用体验。

载入动态链接库加载界面,如图4-14所示。

图4-14载入动态链接库

图标从左往右依次为:

【1】加载DLL

【2】删除DLL

【3】打开DLL校验器,通过DLL校验器,用户可以判断加载的DLL接口是否正确,算法是否符合设计要求。比如,用户选择Seed的Level过后,输入Seed值,点击GenKey进行判断。如果该DLL接口跟模板定义接口统一,则会输出提示信息:GenerateKeySuccess,然后用户根据Key值跟目标值对比,进一步确认DLL中的算法是否符合设计要求。如图4-15。

图4-15SeedKey校验器

【4】可打开TSMaster安装目录下Seed&Key接口工程所在的文件路径。

在TSMaster安装目录中,提供了封装Seed&Key算法的模板工程。如GenerateKeyEx,GenerateKeyExOpt,ASAP1A_CCP_ComputeKeyFromSeed,基于此模板工程开发即可得到能够直接加载的DLL函数。TSMaster默认支持SeedKey函数接口具体为如下:

函数接口1:

unsignedintGenerateKeyEx(

constunsignedchar*ipSeedArray,/*Arrayfortheseed[in]*/

unsignedintiSeedArraySize,/*Lengthofthearrayfortheseed[in]*/

constunsignedintiSecurityLevel,/*Securitylevel[in]*/

constchar*ipVariant,/*Nameoftheactivevariant[in]*/

unsignedchar*iopKeyArray,/*Arrayforthekey[in,out]*/

unsignedintiMaxKeyArraySize,/*Maximumlengthofthearrayforthekey[in]*/

unsignedint&oActualKeyArraySize);/*Lengthofthekey[out]*/

函数接口2:

unsignedintGenerateKeyExOpt(

constchar*iPara,/**/

unsignedint&oActualKeyArraySize)/*Lengthofthekey[out]*/

函数接口3:

boolASAP1A_CCP_ComputeKeyFromSeed(

unsignedshortiSeedArraySize,/*Lengthofthearrayfortheseed[in]*/

unsignedshortiMaxKeyArraySize,/*Maximumlengthofthearrayforthekey[in]*/

unsignedshort*opSizeKey)/*Lengthofthekey[out]*/

如何兼容其他函数接口

在日常使用中经常出现用户已经开发好了SeedKeyDLL,同时该DLL的接口不是上述三种中的任何一种,则无法直接加载到TSMaster的诊断模块中。对此,可以通过二次封装的形式将存在的SeedKey算法库进行包装,生成可以直接加载到TSMaster诊断模块中的DLL。

以一个实际的实例来讲解如何兼容其他接口函数的DLL文件,二次封装流程的示意图,如图4-16。

图4-16二次封装流程

▲第一步:查看当前的DLL,名称为UserSeedKey.DLL。该函数内部的API函数有:

●Seed等级为1的时候,调用函数voidGetKeyFromSeed01(byte*ASeed,byte*AKey);

●Seed等级为3的时候,调用函数voidGetKeyFromSeed03(byte*ASeed,byte*AKey);

●Seed等级为11的时候,调用函数voidGetKeyFromSeed11(byte*ASeed,byte*AKey);

进而得知当前DLL不支持上述三种函数接口,需要进行二次封装。

▲第二步:选择TSMaster安装目录中提供的GenerateKeyEx的模板工程,在该工程中用上述DLL的函数接口。基本思路是:

1.采用Loadlibrary动态用户现有的DLL。

2.根据传入的Level参数,采用GetProcAddress函数动态获取实际的用于计算Key的函数指针。

3.如果获取函数指针成功,则使用该函数指针传输Seed值,并计算对应的Key值。GenerateKeyEx工程二次封装示例,如图4-17。

图4-17GenerateKeyEx工程二次封装示例

▲第三步:该GenerateKeyEx工程开发结束后,TSMaster直接加载GenerateKeyEx所在的DLL。需要注意的是,用户需要把现有的UserSeedKey.DLL拷贝到TSMaster根目录或者GenerateKeyEx.DLL所在的目录。如果不拷贝过去,GenerateKeyEx.DLL执行的时候会出现找不到对应依赖DLL的情况,解锁失败。

—4.2.4.2编写SeedKey代码

在TSMaster的内置算法编辑器里的操作流程,示意如图4-18所示。

图4-18内置算法编辑器

【1】选择SeedKey算法的函数;

【2】打开算法校验器,可以于检查算法结果是否正确;

【3】打开编写代码的窗口;

【4】可用于导出所编写代码的为DLL文件;

【5】选择一个需要的SeedKey函数接口,并支持扩展自定义函数接口;

【6】SeedKey源代码编辑工作区,用于解密算法代码的输入与编辑。

值得注意的是,TSMaster目前提供了最常用的算法函数的接口形式,如果使用自己特殊的函数接口形式,可以联系上海同星支持,可将相应接口增加到选项中。

另外,所有的接口函数都定义了返回值类型为s32。增加此约束,主要是增加函数的严谨性。其中,返回值为0表示成功,返回值为其他值则有对应的错误码。因此,在编辑代码的时候,最后一行需要加上return返回值,如图4-19所示,否则系统执行函数过后会认为算法执行失败,不予往后面执行。

图4-19函数return返回值

5、TSMaster基础诊断配置

基础诊断模块包含基本诊断服务和组合服务。对于诊断过程中独立执行的命令,在基本诊断服务中;用于文件下载的$34、$36和$37放入组合服务中。如图5-1所示。

图5-1基础诊断配置

5.1添加删除服务命令

把鼠标放到需要添加和删除的服务命令上方,右键展开,选择是否需要添加和删除该服务,如图5-2所示。

图5-2添加和删除的服务命令

5.2配置基本诊断参数

以诊断会话控制为例,主要包含如下参数的配置,如图5-3所示。

图5-3配置基本诊断参数

【1】配置服务名称:用户可以配置一个易于理解和管理的服务名称。

【2】是否功能标识符:本诊断服务是否采用功能标识符发送诊断请求。

【3】是否有回复:用户可配置是否检查此服务的回复内容。

【4】选择子服务类型:比如SessionControl中的DiagnosticSessionType就包含如上图所示的Session类型。

【5】参数列表的字节序:支持Motorola和Intel字节序。

【6】参数列表:诊断服务除了诊断ID和子服务类型ID,还可以带着参数发送给被测ECU。参数列表包含请求和应答帧的参数列表,可以选择增加/删除多种类型的参数。如图5-4。

图5-4新增与删除参数

其中,根据不同服务指令,可以设置不同的ID参数。比如诊断请求会话里的诊断会话类型参数是必选设置,而参数列表是可选的。在修改配置后,界面上方会实时显示实际诊断报文的示例报文,如请求协议数据包是:【1001xxxx】:xx表示该参数是可变的,根据用户实际填入的数据确定;诊断仪将要收到的应答协议数据包为【5001xx】。

图5-5请求与应答参数设置

5.3诊断服务参数

诊断模块参数支持7种数据类型。包括:UInt,Int,Single,Double,HexArray,Ascii和SystemVar。如图5-6。

图5-6诊断模块参数类型

【1】UInt:无符号整型,其数据长度必须小于32bits,并且为8的倍数,可以为8,16,24,32bits。

【2】Int:有符号整形,其数据长度必须小于32bits,并且为8的倍数,可以为8,16,24,32bits

【3】Single:单精度浮点数,数据长度为固定的32bits。用户直接输入输出浮点数据。

【4】Double:单精度浮点数,数据长度为固定的64bits。用户直接输入输出浮点数据。

【5】HexArray:十六进制数组,数据长度为8的倍数。输入数据满足16禁止数据类型。

【6】ASCII:ASCII字符串,数据长度为8的倍数。输入数据为ASCII字符数组,转化为16进制后进行发送。

【7】SystemVar:系统变量,数据长度为8的倍数。TSMaster系统变量可支持Uint,Int,Single,Double,UintArray,DoubleArray,HexArray,String等各种数据类型。其具体的数据类型由系统变量自身定义所决定。

5.4配置组合服务

诊断组合服务($343637下载文件)共包含通用配置、擦除Flash配置、请求和传输数据配置、传输退出配置、扩展和辅助的配置。如下详细介绍每个配置。

5.4.1通用配置

通用配置中支持加载下载文件格式为hex/bin/s19/mot/srec/vdf等等。可以对起始地址和数据长度的字节数修改,调调整校验和字节序和自定义CRC校验算法导入和修改,并可通过下载文件查看器下载文件内容。如图5-7。

图5-7通用配置

【1】服务名称:配置该服务的名称

【2】文件名称:加载可执行文件,支持hex\bin\s19\mot\srec\vdf...

【3】hexviewer:TSMaster内置了可执行文件查看编辑器TSHexViewer,用户可以用该工具,查看载入Hex文件的详细信息,如图5-8所示。

图5-8查看载入的下载文件

【4】地址和长度标识符。可修改起始地址和数据长度的字节。

图5-9支持自定义CRC算法导入与修改

当加载好下载文件后,选择指定的算法过,诊断模块会对可执行文件计算其检验和值,包括该可执行文件每一个数据块的检验和值以及文件整体的检验和值,如图5-10所示。

图5-10文件与数据块检验和值

TSMaster的诊断模块能够直接把系统变量作为参数,在计算好每一个数据块与文件的检验和值过后,会进一步自动转化成系统变量,如图5-11。

图5-11检验和系统变量

生成好的检验和系统变量,可以通过系统变量的类型添加到服务参数中。以常用的校验可执行文件的有效性为例,配置如下的$31例程控制服务命令,就可以实现对文件有效性的检查,如图5-12。

图5-12检验和系统变量添加到服务参数

5.4.2擦除Flash配置

擦除Flash配置,可以配置无自动擦除、擦除Hex地址范围、下载每一个数据块之前擦除对应块。期望回复值以实际ECU的响应进行填写输入。如图5-13。

图5-13擦除Flash配置

5.4.3请求和传输数据配置

请求传输数据命令的数据格式可以修改,比如从00修改为AA。可以自定义最大传输数据块的长度,默认为0x202,实际传输层数据包为514字节。如图5-14。

图5-14请求和传输数据配置

5.4.4传输退出配置

传输退出配置,可以设置如下配置,如图5-15:

●无校验

●在ECU端校验($37+块校验和)

●用户自定义

●在PC端校验($37+块校验和)

校验和类型选择无校验或校验每一个数据块

图5-15传输退出配置

5.4.5扩展

图5-16扩展配置

5.4.6辅助

辅助中可对下载文件按连续地址的大小分割,比如将数据块按0x1000进行分割。如图5-17。

图5-17下载文件分割设置

6、诊断控制台

诊断控制台作为诊断命令调试器,可以让用户选择每一条单独的服务命令,编辑发送服务报文和接收服务报文,进行测试验证。主要包含四块工作区域,分别为服务命令选择区,手动命令输入区,诊断命令发送/应答区和诊断信息区,如图6-1所示。

图6-1控制台工作分区

6.1服务命令选择区

服务命令选择区中是根据基础配或者加载ODX/PDX诊断数库生成的可执行服务列表。用户可以双击执行选中的服务或者右键选择执行该服务,如图6-2所示。

图6-2服务命令选择区

6.2手动命令输入区

测试过程中,如果用户想发送任意的诊断命令,则可以在手动命令输入区中输入自己想要发送的任意报文。在输入诊断报文过后,点击右边的Execute按钮,就可以完成诊断报文的发送。为了增加测试灵活性,还可以通过选择框选择采用物理地址发送还是功能ID发送诊断请求报文。如图6-3。

图6-3手动命令输入区

6.3诊断命令发送/应答区

在本区域中,用户可以编辑发送数据段以及期望接收数据段,启动执行来验证被测ECU的诊断响应是否符合实际要求,以及是否同步诊断系统变量,如图6-4。

图6-4诊断命令发送/应答区

6.4诊断信息区

该区域分为服务层信息和ISO15765-2数据流区,其中服务层信息显示当前在诊断模块中的操作步骤流程与响应信息。如图6-5。

图6-5服务层信息

当诊断服务没有得到肯定响应或者无响应时,报错提示信息等。如图6-6。

图6-6服务层信息负响应提示

ISO15765-2数据流区,用于显示诊断模块详细的服务层报文信息。结合前面配置的诊断数据库,还可以把原始的报文数据解析成物理信号等呈现。以22服务为例,可以查看到诊断服务层解析后的参数数据,如图6-7。

图6-7ISO15765-2数据流区

7、TSMaster自动诊断流程与注册系统变量

7.1诊断流程创建与管理

TSMaster的自动化诊断流程不仅仅是针对某一个具体的应用,而是针对整个项目的诊断流程进行管理。用户可以根据完整项目的需求,配置测试诊断流程组,每个组里面可以包含多个不同的诊断流程,在一个诊断流程中包含具体的诊断步骤。

在UDS流程管理栏右键鼠标,展开流程用例管理的操作菜单,如图7-1。

图7-1流程用例管理的操作菜单

操作菜单从上到下分别包含如下操作:

【1】切换UDS流程:切换到当前UDS流程节点。双击该节点,也可以达到切换到该流程节点的效果。切换到该节点过后,节点图标和背景色为蓝色,同时右边的节点流程中展开显示该UDS流程包含的详细诊断步骤,如图7-2。

图7-2切换UDS流程

【2】启动UDS流程:启动该节点的诊断流程。点击该选项后,诊断模块按照右边的配置,从上往下自动执行诊断步骤。

【3】中断UDS流程:点击该节点后,中断正在执行的诊断流程步骤。

【4】添加流程组:新增诊断流程组。比如新增TestGroup1。诊断组下面可以再增加诊断流程用例,其本身不包含诊断步骤。

【5】添加新的测试流程:新增一个诊断流程用例,在诊断流程用例下面可以增加详细的诊断步骤。

【6】编程名称:选中一个流程组或者流程用例,右键选中Editname编辑该节点的名称。

【7】注册系统变量:选择一个诊断流程用例,注册为系统变量。

【8】反注册系统变量:选中已注册为系统变量的诊断流程用例,取消注册系统变量。

【9】删除所选:删除选中的节点。

【10】删除所有:清楚所有的节点。

7.2配置自动诊断流程

TSMaster自动诊断流程,可以快速配置多组诊断流程并可以设置循环运行和注册系统变量用于外部调用等,如下进行详细介绍。

7.2.1自动诊断工具栏介绍

诊断流程配置工具栏如图7-3所示。

图7-3诊断流程配置工具栏

图标依次从左往右为:

【1】新增诊断流程组。

【2】新增诊断流程用例。

【3】删除选中的诊断流程组/用例。

【4】启动配置好的诊断流程。

【5】终端正在运行的诊断流程。

【6】锁定/解锁流程配置区域。如果锁定该区域,在诊断流程区域变得不可编辑。

【7】全选/全不选诊断流程。

【8】使能设置的循环运行次数。

【9】实际运行次数显示。

7.2.2自动化诊断流程配置步骤

在UDS测试流程区里,右键创建新创建一个UDS流程,双击该流程进入后,解锁逻辑器,并可以设置本流程可以循环运行的次数,默认不使能循环运行。如图7-4。

图7-4创建新的UDS流程

然后在逻辑区右键添加步骤或者删除步骤,并进一步解析管理栏中功能。如图7-5。

图7-5诊断步骤添加与管理

【1】在左边的管理栏中选中一个诊断流程节点。

【2】在右边的编辑区域,添加、删除、编辑诊断步骤。

【3】添加步骤后,选择该步骤类型。

【4】编辑步骤名称。

【5】选择该步骤地址类型,物理地址还是功能地址。

【6】配置详细的诊断请求数据包。

【7】配置详细的诊断应答数据包。

【9】配置本步骤发生错误的错误处理方法。

7.2.3诊断步骤类型

测试步骤中,为了增加诊断配置的灵活性,设计了4种类型可供选择,主要包含:普通步骤,选择已有配置,种子和密钥,测试仪在线。通过这4种类型,基本上涵盖了市面上所有主流的诊断流程需求,下面详细介绍每种类型的特点。如图7-6。

图7-6诊断步骤类型

【1】普通步骤:主要用于一些简单的请求数据和应答数据都很直接的场合。直接在请求服务中填入想要发送的请求数据,在应答服务中填入期望的应答报文,比如服务请求数据为【1001】,服务应答数据为【50011234】。如图7-7。如果有些服务不需要响应,则可以不设置有回复。

图7-7普通步骤类型

【2】选择已有配置:该配置设计的目的,就是让用户选择在基础诊断设置中已经配置好的诊断服务,这种方式是TSMaster最推荐的配置方式。选择已有配置过程,如图7-8所示。

图7-8选择已有配置

【3】种子和密钥:种子和密钥只需要选择种子等级和密钥等级参数即可,解密的DLL直接关联到传输层参数配置载入的种子和密钥DLL中,如图7-9所示:

图7-9种子和密钥

对此,无论是在诊断控制台模块中,还是自动诊断流程模块,都是需要先配置好传输层的参数配置。

【4】测试仪在线:为了支持更加灵活的测试需求,在自动化流程步骤中,提供了打开和关闭测试仪在线的命令选择,以及配置该命令数据以及周期间隔:

图7-10启动/停止测试仪在线命令

▲配置测试仪在线的命令的数据以及周期间隔,如7-10:

图7-11配置测试仪在线的命令

诊断流程模块步骤跟步骤之间的延时是可以设置的,单位为ms,如图7-12:

图7-12配置测试仪在线的命令

7.2.5属性

在属性中,可以设置响应出错后的以及本指令是停止还是继续运行,如图7-13所示:

图7-13属性

在TSMaster后续产品规划中,响应出错后允许跳转到指定的流程中(比如跳转到擦除流程中),进一步增加自动运行流程模块的灵活性。

7.2.6使能步骤/位置调整

对于已经完成配置的诊断流程步骤,用户根据左边的选择框来勾选想要执行的诊断步骤。如图7-14。

关于执行顺序调整:无论是测试用例组,测试用例还是测试用例中的具体步骤,用户想调整相互之间执行顺序的时候,直接拖拽对应的测试用例到相应位置即可。

图7-14诊断流程步骤使能

7.3诊断模块的内生系统变量

在TSMaster新添加基础诊断模块后,系统变量管理器会自动生成所有者为诊断模块Diagnostic的系统变量,通过修改系统变量可以配置对应的参数。如图7-15。

图7-15诊断模块系统变量

7.3.1诊断服务通用系统变量

诊断内生的通用系统变量包含:

●导出工程ExportProject:用于导出诊断工程。

●导入工程ImportProject:用于导入已有的诊断工程。

●诊断仪在线TesterIsPresent:是否启动诊断仪在线命令。

●DLC:FD帧的最大DLC值,该参数只有在FD模式下才有效。

●接收连续帧最小帧间隔STMin(R):用户自定义接收端STMin参数,单位ms。如设置为0,表示支持以最短的事件间隔接收,。

●发送连续帧最小帧间隔STMin(T):用户定义发送端STMin参数,单位ms。

●用户自定义连续帧最小帧间隔UserDefineSTMin:是否手动定义连续帧最小帧间隔,单位ms。

●填充字节FiledByte:发送诊断帧填充字节。

●功能ID类型FunctionalIDType:传输层功能ID的类型,0是标准帧,1是扩展帧。

●功能ID(FunctionalID):传输层功能ID。

●应答ID类型ResIDType:传输层应答ID的类型,0是标准帧,1是扩展帧。

●应答ID(ResID):传输层应答ID。

●请求ID类型ReqIDType:传输层请求ID的类型,0是标准帧,1是扩展帧。

●请求ID(ReqID):传输层请求ID。

●总线类型BusType:设置总线类型:0代表CAN总线;1代表CANFD总线;2代表LIN总线;3代表DOIP(基于以太网的诊断)。

●通道Chn:设置诊断模块的通道参数,比如0代表通道1,1代表通道2。

●自动化流程进度UDSProgress:自动诊断流程的实时进度,该变量用来获取自动诊断流程的运行状态。

●安全访问种子和密钥SeedAndKeyDLL:设置种子&密钥DLL的绝对路径,使用时注意转义字符。

7.3.2诊断服务特定系统变量

在基础诊断配置的复合诊断服务添加新的服务后,系统变量管理器同样会生成对应的系统变量:服务名_DataFile,此变量为下载文件的绝对路径,修改此变量可控制下载文件的载入与切换。如图7-16。

图7-16下载文件路径系统变量

7.3.3自动诊断流程的注册系统变量

在诊断控制台中可以根据需要灵活配置诊断服务,这些诊断服务配置好后,用户需要在诊断控制台中双击启动该诊断服务。

如果用户希望在Panel界面中或者程序中启动诊断流程命令,步骤如下:

【1】首先在诊断BasicDiagnosticConfig窗体中,选中目标服务,然后右键菜单把该诊断服务注册为系统变量,如图7-17所示。

图7-17诊断服务注册为系统变量

注册完成后,该流程的图标多出3个小彩圆,表示成为一个注册系统变量的服务,未注册的流程为蓝色圆,如图7-18所示:

图7-18注册为系统变量的图标变化

【2】注册完成后,在系统变量管理器中,就可以看到生成系统变量_Start和_Result如图7-19。

图7-19注册为系统变量的变量

其中_Start的数值赋值为:

●0是空闲状态。

●1是正在执行状态。

●2是执行成功。

●3是执行失败。

_Result的数值结果为:

●>0表示启动诊断流程

●=0表示中断停止诊断流程

●<0为非法参数。

【3】在面板Panel中添加按钮button控件,并关联生成好的系统变量流程名_Start,将将按钮按下事件设置为1,如图7-20。

图7-20面板按钮控件关联系统变量

【4】运行程序,点击Panel的测试按钮,将值1赋给流程名_Start,诊断模块执行相应的诊断流程,实现自动运行诊断流程。

8、DoIP诊断典型应用

本文设计了一个简单的BootLoader流程来说明如何基于TSMasterDoIP模块配置一个FlashBootLoader流程。

8.1配置刷写例程

【1】首先创建UDS流程:注意切换编辑器为解锁状态,否则无法添加新的流程步骤。如图8-1。

图8-1解锁编辑器

【2】切换默认会话,切换扩展会话,然后切换整车制造商自定义会话,在基础诊断配置先提前配置好,如图8-2。然后在自动诊断流程中使用选择已有配置进行添加,如图8-3。

图8-2基础诊断配置会话服务

图8-3切换默认会话、扩展会话、整车制造商自定义会话

【3】添加种子和密钥步骤,解锁ECU,如图8-4。

图8-4种子和密钥步骤

【4】基于读取ID:F080位置处的数据。

方式1:使用普通步骤配置形式,如图8-5。

图8-5普通步骤读取DIDF188零件号

方式2:在基础诊断配置中配置好,然后在流程中使用选择已有配置,如图8-6。

图8-6选择已有配置读取DIDF080

【5】接着在IDF086处写入数据201120000000000000,如图8-7。

图8-7IDF186处写入字符串

【6】检查刷写前提条件,如图8-8。

图8-8检查刷写前提条件

【7】添加FlashDriver/应用程序文件流程。首先在基础诊断配置添加FlashDriver和应用程序文件,如图8-9。

图8-9基础诊断配置添加刷写文件

然后在自动诊断流程中选择相应的已有配置,选择创建好的组合下载服务。如图8-10。

图8-10选择已有的组合下载服务

【8】采用例程控制擦除Flash。通过诊断基础设置配置好后擦除指令,将起始地址和数据长度的系统变量,通过系统变量的方式添加请求参数,如图8-11。

图8-11诊断基础配置擦除指令

然后通过选择已有配置加入到流程中。如图8-12。

图8-12例程控制擦除Flash

8.2DoIP诊断流程一键运行

在完成配置后,总的配置流程如图8-13所示。

图8-13完成FlashBootLoader配置流程

连接以太网被测件之后,通过按钮一键执行自动诊断流程,当每个步骤都是正响应时,会显示为绿色,如图8-14。

图8-14一键执行自动诊断流程

在Ethernet报文消息中可以查看完整的DoIPBootLoader刷写流程,也可以使用总线记录将过程报文记录成blf文件保存。

图8-15Ethernet诊断流程报文

以上,基于TSMaster的DoIP模块,实现零代码方式,可以非常简单快速地开发基于以太网的DoIP诊断流程应用。

THE END
1.奥迪a6l网络超时怎么回事若没有进行实名认证也可能导致网络超时。此时您可以进行实名认证然后重启车机进行连接。 3. 服务器问题 奥迪的服务器在德国当德国服务器维护或者网络有问题时车机可能会出现网络超时。这种情况只能等待服务器恢复正常。 4. 系统故障 奥迪车机系统可能存在故障比如系统升级导致的问题。您可以尝试重启车机按住音量按钮别动或者https://m.pcauto.com.cn/baike/571710/1110565/
2.汽车试验:汽车行驶记录仪试验方法汽车测试技术检查记录仪无线公共网络通信的模式,记录仪向数据分析系统上传行驶记录数据的功能和相关通信协议。 4.1.4.5 数据通信接口检查 目视检查记录仪的通信接口形式、位置及接口保护装置。 4.1.5 安全警示功能检查 分别模拟超时驾驶、未登录驾驶人信息驾驶、超速度限值行驶、速度状态异常和正常、自检状态异常和正常等情况,检查记录https://m.auto-testing.net/news/show-116051.html
3.绝地求生连入游戏超时解决方案国服战网如何快速恢复游戏连接《绝地求生》作为一款热门的大逃杀游戏,吸引了大批玩家。然而,在国服的战网中,许多玩家常常面临游戏连接超时的问题,这不仅影响了游戏体验,也让玩家感到无奈。为了解决这一问题,本文将介绍几种有效的恢复游戏连接的方法。 首先,确保你的网络连接稳定是解决连接问题的第一步。可以通过重新启动路由器或者直接连接网络线来测http://m.youtubizhi.com/guanwang/62057.shtml
4.智能网联汽车云控系统第2部分:车云数据交互规范本文件所述车端与云端之间的数据传输时序是指车端到云端建立网络连接、数据上报的顺序,以及车端到云端再到车端的建立网络连接、车端功能请求、云端指令下发的顺序,如图 3 所示。 8 数据交互协议定义 8.1 数据格式 TCP 报文数据部分的数据格式,包括固定报头和数据段两部分。其中,固定报头总长度固定为 15 字节,包含https://blog.51cto.com/lovebetterworld/5816232
5.车载以太网DoIP协议,详细入门讲解,由浅入深DoIP逻辑连接 DoIP参数设置 DoIP真实交互数据 DoIP协议 在汽车网络通信中,诊断扮演了非常重要的角色,无论是故障筛查、整车下线配置,还是ECU的软件更新、远程OTA等,都离不开诊断技术。 传统基于CAN的诊断相信大家都不陌生,那么如果应用了车载以太网,诊断该如何实现呢?答案是DoIP。 https://blog.csdn.net/2301_76563067/article/details/132697197
6.GPS/北斗卫星定位汽车行驶记录仪功能介绍GPS/北斗卫星定位汽车行驶记录仪通电后会“嘀…”一声长鸣提示开始对系统各部件及接口进行检测,并在LCD显示屏上显示“GPS/北斗卫星定位汽车行驶记录仪”和“系统正在自检请稍候……”,自检完毕后在主显示屏上显示:定位星数、无线网络连接状态、信号强度、车速、等信息。按菜单键选择设备状态可以显示:主电源电压、GPShttps://www.iwgps.com/news/2597.html
7.GB/T19056CAN:控制器局域网络 5 要求 5.1 一般要求 5.1.1 组成 汽车行驶记录仪(以下简称“记录仪”)主要由如下部分组成: a) 主机:包括电源、主控制器、数据存储器、防护存储器、时钟模块、通信模块、定位模块、显示器、驾驶人信息识别模块等; b) 音视频采集单元; https://weibo.com/ttarticle/p/show?id=2309404772650969858275
8.1998年教育部科技进步奖授奖项目(基础类)高校科技98-018 神经网络理论及其智能信息处理应用基础 东南大学 清华大学 北京大学 复旦大学 南开大学 上海交通大学 中国科学技术大学 华南理工大学 西南交通大学 西北工业大学 天津大学 何振亚 李衍达 迟惠生 何永保 母国光 陈天平 张延忻 杨绿溪 戚飞虎 胡光锐 张立明 阎平凡 https://www.edu.cn/ke_yan_yu_fa_zhan/gai_kuang/zheng_ce_fa_gui/ke_ji_jiang_li/200603/t20060323_3711.shtml
9.成都市公安局交通管理局信息系统运行维护服务采购需求市场调查公告成都市货运汽车城区道路行驶证管理系统、执法规范化综合管理系统、移动警务(专网)、移动警务(互联网)、交管便民服务综合管理系统、交管自助机管理系统、公安信息通信网联网设备安全管理系统、H3C入网认证安全管理系统、日志采集系统(合众)、公安交通管理车驾管业务规范化管理系统、智能交通车驾管数据采集及共享服务系统、https://cdjg.chengdu.gov.cn/cdjg/cggg/2021-12/13/content_6c626401ec044b46a8563590665ee119.shtml
10.GBT27930整个充电过程包含六个阶段:物理连接完成、低压辅助上电、充电握手阶段、充电参数配置阶段、充电阶段和充电结束阶段。在各个阶段,充电机和BMS如果在规定的时间内没有收到对方报文或没有收到正确报文,即判定为超时(超时指在规定时间内没有收到对方的完整数据包或正确数据包),超时时间除特殊规定外,均为5s。当出现超时后https://www.cnblogs.com/tgzhu/p/7866402.html