TSMaster软件使用一-基于14229的UDS-BootLoader多段多文件刷写(支持TSMaster/vector-canoe/Pcan/Kvaser/Zlg/InterpidCS驱动)

2 篇文章 5 订阅
1 篇文章 7 订阅
  • 前言
  • TSMaster软件介绍
  • 主界面
  • 一、刷写Panel界面控件含义
  • 二、加载配置文件方式
  • 三、BootLoader刷写过程
    ————————————————
前言

TSMaster软件

TSMater软件介绍

它是一个媲美canoe的软件,详细介绍点击此处查看TSMaster软件下载
好了,来看看它的刷写怎么编写吧

主界面在这里插入图片描述
一、刷写Panel界面控件含义

1、OEM选择
主机厂选择,这个用于刷写和boot时读DID需要。
2、提示
当前操作在哪一步,会提示加载配置文件成功/失败;读取did成功/失败;刷写成功/失败;修改ID、DID成功/失败;加载刷写文件成功/失败;等。
3、配置文件
路径框,加载配置文件paramerter.txt的绝对路径,不需要自己改,下面会详细说明怎么获取配置文件路径。
4、alter
点击,窗口自动弹出paramerter.txt,去修改里面的值,然后textbox里会自动刷新修改的值。此按钮是调用windows的exe命令来操作txt。下面会详细说明怎么获取exe命令。
5、info
配置文件路径正确时,会自动加载ID、DID的值,也可以在框里改值,16进制格式;最后选择app还是boot里读取。读取的值会以ASCII格式显示在界面上,一 一对应。
6、read
点击,获取info信息,读取DID。
7、文件个数
需要刷写的文件个数。
8、下载次数
需要连续下载的次数
9、app path
需要连续刷写的次数
10、driver path
路径框,获取driver绝对路径并显示出来。
11、app path
路径框,获取app绝对路径并显示出来。
12、load
点击,出现文本框找寻刷写文件路径,然后会将路径写入paramerter.txt并显示在路径框里;此按钮是我自己做的exe(API)来操作的(TSMaster控件无路径按钮),调用windows的exe命令来操作。下面会详细说明怎么做一个exe。
13、ok
点击,进行刷写;
14、下载进度
刷写的进度条,范围:0-100;

二、加载配置文件方式

点击启动按钮后,配置文件自动加载进去,如下图。
在这里插入图片描述在这里插入图片描述

1、获取配置文件路径思路

(1)用app.get_configuration_file_path函数获取当前工程目录,再用sprintf函数去获取配置文件路径,如下图
在这里插入图片描述在这里插入图片描述
(2)找到cfg文件夹就可以fopen,fgets读取parameter.txt的值。parameter.txt里的值,如下图
可以清楚的看到[ID]/[DID]/[FILE],与panel的信息一一对应。
ID就不说了,用来发报文id,DID是用于获取ECU版本信息。
在这里插入图片描述
(3)通过程序启动事件将上面获取的值赋值给系统变量,而控件又绑定了系统变量,因此,控件显示出配置文件的值。
在这里插入图片描述

2、修改配置文件路径思路(控件alter)

要想直接点击button按钮就弹出txt文件,如下图效果:
在这里插入图片描述
代码如下图:通过app.execute_app()函数调用windows下的notepad.exe打开配置文件路径,本来想用system的,但是TSMaster已经集成这个函数了,故选择它。并且打开时,没有命令窗口,完美!
在这里插入图片描述

3、获取刷写文件路径思路(控件load)

要想跟canoe一样,实现用户自己查找刷写文件并把路径加载在textbox框里,就得自己做一个exe,同样用system或者app.execute_app()。
我的思路:
(1)用VS2019建一个命令c++文件,做一个exe。
在这里插入图片描述
(2)弹出电脑盘符窗口,VS部分代码,可以识别.s19或者.hex,看自己选择。如下图
在这里插入图片描述
效果如下图:
在这里插入图片描述
(3)刷写文件打开后,还需要将它写入配置文件中,而配置文件路径跟exe有关系,就同一个工程目录下(自己建)
在这里插入图片描述
VS代码写完集成exe后,exe集成在VS目录下解决方案文件下,然后把exe放到\exe\下,实在不会做exe的请去度一下。VS代码如下图
①获取当前exe文件路径
②出现选择刷写文件的窗口,选择文件
③拆掉exe,只保存当前工程路径
④拼接配置文件路径
⑤只读方式打开配置文件
⑥找到配置文件中的apppath字符串,因为要在这一行写入路径
⑦写入刷写文件路径
⑧只写方式打开配置文件
⑨写入成功后,程序自动刷新面板路径
在这里插入图片描述

三、BootLoader刷写过程

当界面信息确认好后,即可开始刷写。老操作,文件先要解析后数据存入数组buff中以便传输。
1、文件解析

S19文件解析:

S1 10 2000 00 00 00 00 00 00 00 00 00 00 00 00 10 BF
如上数据:

  1. S1:文件地址字节数为1+1=2个,最常见还有S2、S3以此类推;
  2. 10:表示10后面的所有数据个数是0x10个字节,即为16个字节;
  3. 2000:文件地址0x2000
  4. 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01:数据
  5. BF:checksum值 BF = 0XFF - (0X10 +0X20 + 00 …+0X10),注意,这个值最终结果只能是一个字节的数。
HEX文件解析:

:020000020FFBF2
:021000000001EC
如上数据:

  1. ::HEX开头
  2. 02:0x02个字节数据,即为2个数据
  3. 0000:地址0x0000
  4. 02:数据类型: (1)0x00:下载的数据
    (2)0x01:读取文件结束标志
    (3)0x02:扩展段地址记录,例上0xFFB<<4等于0xFFB0是为段文件初始地址再加上0x1000等于0x10FB0。(相当于左移4位再加上下一行的地址即为新的擦除地址值)
    (4)0x03:开始段地址记录
    (5)0x04:扩展线性地址记录,相当于把0xFFB<<16再加上初始地址0x1000
    (6)0x05:开始线性地址 记录
  5. F2:checksum值 F2 = 0X100 -(0X02+0X10+…+0XFB),注意,这个值最终结果只能是一个字节的数。
    部分解析代码如下图
    在这里插入图片描述
    driver路径正确时打印出他的段需要传输的段数,起始地址,长度,CRC等信息在这里插入图片描述
    app路径正确时打印出他的段需要传输的段数,起始地址,长度,CRC等信息在这里插入图片描述
    2、刷写
    刷写流程通过定时器来完成
    预编程:一般是要先检查适合刷写的条件,有一定车速或没写信息等,不可刷写。
    如下图可看到,自己搭的UDS框架服务。
    在这里插入图片描述
    driver编程:driver一般时一个文件一个段但是36的块有可能有很多,因此用判断条件:当前传输块个数<总块数时,循环此定时器。步骤step定死在当前step数。
    在这里插入图片描述
    app编程:app要考虑多文件多段下载,因此需要判断文件个数、段数、块数来确定传输方式在这里插入图片描述
    后编程:一般是复位在这里插入图片描述
    编程结果判断:通过传输过程中返回的正响应or负响应来确定返回值正确与否,TRUE代表响应正确;FALSE代表响应错误;DownloadComplete代表刷写流程完成,但是还得通过复位后收到的APP、NM报文通信来确定是否刷写成功,最后界面给出结果。
    在这里插入图片描述
    有兴趣的同学可以联系我
    请输入公众号:总线网络。关注我,获取汽车网络开发及测试方面资料,更新干货!
    分享总线开发知识
    分享CAN/CANFDLIN/ETH等网络资料
    分享CANoe/TSMaster/PCAN等设备工具使用
    分享UDS/NM/Bootloader测试用例等
    一起来学习,进步,交流吧!
    在这里插入图片描述
  • 29
    点赞
  • 135
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
ISO 14229 UDS(统一诊断服务)是国际标准化组织制定的一套用于汽车诊断和通信的协议。该标准规定了汽车电子系统和诊断仪之间的通信方式和接口规范,以实现车辆的故障诊断和维修。 UDS的下载是指将诊断软件通过标准化的通信协议下载到车辆的电子控制单元(ECU)中,以实现车辆的诊断和维修功能。 UDS下载的过程主要包括以下几个步骤: 1. 确定EUC的硬件和软件版本:在进行UDS下载之前,需要确定车辆的硬件和软件版本,以保证下载的诊断软件与车辆的ECU兼容。 2. 建立通信连接:通过车辆诊断接口(例如OBD-II接口)以及相应的诊断仪,与车辆的ECU建立通信连接。通信连接可以通过有线或者无线方式实现。 3. 选择下载文件:根据车辆故障代码和诊断需求,选择合适的诊断软件文件,并将其下载到诊断仪中。 4. 设置下载参数:设置下载参数,如速率、地址等,以确保下载的诊断软件能够正确地写入ECU。 5. 执行下载:通过诊断仪发送下载指令,将诊断软件将写入目标ECU。下载过程中,诊断仪会不断与ECU进行通信,保证下载的完整性和正确性。 6. 验证下载结果:下载完成后,进行验证,确保诊断软件已经成功地写入了ECU,并且能够正常运行。 UDS下载是现代汽车维修和诊断的重要环节,能够帮助技师准确、高效地诊断和维修车辆故障。随着汽车电子和通信技术的不断发展,UDS下载在汽车维修行业中的重要性日益突显。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值