CANOE使用一:创建TestModule-基于UDS的Panel界面及使用Capl编写BootLoader自动化刷写流程(多文件or多段下载)

  • 前言
  • Panel界面
  • 控件使用
  • 文件解析
  • 下载流程

————————————————

前言

请输入公众号:总线网络。关注我,获取汽车网络开发及测试方面资料,更新干货!
我做的测试脚本平台符合目前各大车厂所需,包括can通信、UDS/TP、NM(Autosar、Osek、间接NM)、BootLoader,联系方式:qq95_62_64_348 vx:ymx095616
对canoe工具的使用,相信大家都有一定的了解了,本文就不再讲解工具基础的使用。

Panel界面

在这里插入图片描述
FBL panel界面图示

控件使用

如上图所示,我们放置两个 Path Dialog 来获取Driver和App路径,此路径是存在于盘下的任何一个路径;再通过File Number确定文件个数(>=1),最后通过Button(start)开始刷写。至于CAPL Output View控件则是我们进行输出提示语,进度条是每个文件刷写的进度。好了,话不多说,正文开始!

文件解析

刷写文件常见的三种:S19/HEX/BIN,本文不对BIN文件做解析,没难点。
通过文件路径后缀名识别出是哪种文件类型,再将之用于代码判断。因为文件类型不同,解析方式不同。这里简单说明下文件类型。
在这里插入图片描述
文件类型判断

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
如上数据:
6. ::HEX开头
7. 02:0x02个字节数据,即为2个数据
8. 0000:地址0x0000
9. 02:数据类型:(1)0x00:下载的数据
(2)0x01:读取文件结束标志
(3)0x02:扩展段地址记录,例上0xFFB<<4等于0xFFB0是为段文件初始地址再加上0x1000等于0x10FB0。(相当于左移4位再加上下一行的地址即为新的擦除地址值)
(4)0x03:开始段地址记录
(5)0x04:扩展线性地址记录,相当于把0xFFB<<16再加上初始地址0x1000
(6)0x05:开始线性地址 记录
10. F2:checksum值 F2 = 0X100 -(0X02+0X10+…+0XFB),注意,这个值最终结果只能是一个字节的数。
代码:
在这里插入图片描述
解析函数接口代码
在这里插入图片描述
通过解析函数fileGetStringSZ代码来对文件进行彻底的解析并存到driver或者app的buff中。最后在下载数据里直接导入此buff。

下载流程
一. 预编程

在进行下载的时候,一般会有一个预编程,在进入编程模式之前会进行对DID读取,28和85服务使用。有些客户甚至会要求31服务预编程条件检测。

二. 编程模式

进入到编程模式后,一般会对DID进行写入,比如指纹,日期等,写入格式均有要求。
在这里插入图片描述
写入数据如图示

三. driver下载

对driver下载,一般是直接下载,34-36-37.下载完之后会进行31CRC校验或者在37进行CRC校验。
在这里插入图片描述
driver下载流程图

四.app下载

一般app下载会涉及到多文件/多段下载。我们本文主要就是介绍这个。
在这里插入图片描述
多段下载解析代码如图示
利用for循环将Tempi(段)和二位数组将数据存入buff中,就可以得出app的二维数组数据。
在这里插入图片描述
多文件下载代码如图示
当第一次加载文件后并进行下载成功时,会自动判断此时下载成功文件个数是否等于填入的应该下载的文件个数值,利用while(文件个数>完成刷写文件个数?),通过暂停函数在panel界面加载剩下的文件(自动识别加载与否)来进行下一步的解析并反复走下载流程(擦除地址、请求下载、下载、停止下载、CRC校验、一致性检验)达到多文件下载的目的。

五. 复位

当所有文件下载完成并完成一致性校验,会进行一次复位看是否能够回到APP状态中。

六. 逆向测试

逆向测试:对测试进行故障测试(获得想要的故障,例如返回期望NRC)。
这里介绍常见的逆向测试
在这里插入图片描述
逆向测试如图示
以上逆向测试用例全都是自动化测试并出报告。需要测试用例可私。
请输入公众号:总线网络。关注我,获取汽车网络开发及测试方面资料,更新干货!
分享总线开发知识
分享CAN/CANFDLIN/ETH等网络资料
分享CANoe/TSMaster/PCAN等设备工具使用
分享UDS/NM/Bootloader测试用例等
一起来学习,进步,交流吧!
在这里插入图片描述

  • 16
    点赞
  • 157
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值