[发明专利]一种用于汽车ECU程序自动刷写测试的方法和装置有效
| 申请号: | 201710131592.4 | 申请日: | 2017-03-07 |
| 公开(公告)号: | CN106874055B | 公开(公告)日: | 2020-01-31 |
| 发明(设计)人: | 魏红军 | 申请(专利权)人: | 上海怿星电子科技有限公司 |
| 主分类号: | G06F8/65 | 分类号: | G06F8/65;G06F8/61;G06F11/36 |
| 代理公司: | 11551 北京鼎承知识产权代理有限公司 | 代理人: | 管莹;韩德凯 |
| 地址: | 200000 上海市松*** | 国省代码: | 上海;31 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 用于 汽车 ecu 程序 自动 测试 方法 装置 | ||
1.一种汽车ECU软件程序自动刷写测试方法,其特征在于包括以下步骤:
(1)获取文件数量并根据文件数量N创建一个初始测试序列,该测试序列包括所有的程序版本切换,测试序列的元素个数为N×(N-1)+1;
(2)从测试序列中获取需要刷写的文件序号;
(3)判断序号是否合格,若序号不合格则测试循环结束;若序号合格则执行步骤(4);
(4)初始化刷写接口,再加载步骤(2)中获取的文件序号所对应的刷写文件,初始化ECU诊断线程结束标志;
(5)启动ECU诊断步骤;
(6)开始进行刷写操作;
(7)等待刷写操作结束;
(8)刷写操作结束后,等待步骤(5)中的ECU诊断线程结束时产生的诊断结束标志;
(9)当出现诊断结束标志时,卸载刷写文件并关闭刷写接口;
(10)存储刷写操作结果;将刷写操作相关数据、诊断数据和刷写结果存储到文件中;
(11)判断刷写操作是否成功,如果刷写操作失败,进行修改测试流程的操作,然后执行步骤(12);如果刷写操作成功,执行步骤(12);
(12)判断一个测试循环是否结束,如果未结束,则返回步骤(2),进行下一个刷写操作;
其中,步骤(1)中包括以下子步骤:
(1a)获取刷写文件个数N;
(1b)初始化测试序列,该测试序列为空,不包含任何元素;
(1c)初始化数字a为0;
(1d)判断a是否小于N-1,如果小于则继续下一步,否则跳至步骤(1i);
(1e)初始化数字b,使其等于a+1;
(1f)判断b是否小于N,如果小于,则执行下一步,否则将a自身递增加1,返回至步骤(1d);
(1g)在测试序列尾部依次添加元素a、b;
(1h)数字b递增加1,返回至步骤(1f);
(1i)在测试序列尾部添加元素0;
其中,步骤(5)中包括以下子步骤:
(5a)初始化诊断数据;
(5b)检测是否正在进行刷写前准备操作;
(5c)如果一定时间内未检测到刷写前准备工作,则跳转至第步骤(5e);若检测到,则执行步骤(5d);
(5d)向ECU发送诊断命令并获取返回的诊断数据;
(5e)等待程序刷写结束;
(5f)检测到程序刷写结束后,开始检测是否正在进行刷写后执行操作;
(5g)如果一定时间内未检测到刷写后执行工作,则跳转至步骤(5i);若检测到,则执行步骤(5h);
(5h)向ECU发送诊断命令并获取返回的诊断数据;
(5i)置位诊断结束标志,退出;
其中步骤(11)中的进行修改测试流程的操作步骤包括,使当前程序文件序号为所述a,使目标程序文件序号为所述b,并执行以下步骤:
11.1)如果当前刷写顺序为序列中最后一个,则不修改测试序列;
11.2)如果执行刷写前的ECU程序是初始程序,此时所述a为-1,且b小于N-1,则令c等于b加1,将c插入到未执行的测试序列之前,再将未执行的测试序列所有元素加1对N取余,测试序列修改完毕;
11.3)如果执行刷写前的ECU程序是初始程序,且从初始程序向所有程序进行刷写均失败,则插入测试序号-1到测试序列中,测试序列修改完毕;
11.4)如果测试序列中最后一个元素为序号为所述b的所述目标程序,则查找当前目标程序b之后是否存在元素a,若存在,则将其之后的所有元素移动到未执行的测试序列的最前面;
11.5)如果任何其他程序到目标程序b的刷写均已刷写失败,则删除其后的任何从目标程序b出发,经过一个元素再返回目标程序b的元素段,并删除连续重复以及连续的已完成刷写的元素;
11.6)如果以上条件均不满足,则插入一个元素到未测试的序列元素之前,该元素到目标程序b的刷写工作未执行或已执行成功,然后在其后再插入目标元素b。
2.一种用于执行如权利要求1所述汽车ECU软件程序自动刷写测试方法的自动刷写测试装置,其包括:
测试序列生成模块,所述测试序列生成模块用于获取用户提供的刷写文件数量,并创建测试序列;所述测试序列生成模块还用于在刷写失败时修改测试序列;
测试序号判断模块,所述测试序号判断模块用于从测试序列获取需要刷写的文件序号,并判断所述文件序号是否合格;
ECU诊断模块,所述ECU诊断模块用于进行ECU诊断测试,通过确定是否在执行刷写前的准备工作或是否正在进行刷写后执行操作来向ECU发送诊断命令并获取诊断结果;
刷写模块,所述刷写模块根据测试序号判断结果初始化刷写接口,并根据ECU诊断模块提供的诊断结束标志关闭刷写接口,所述刷写模块还用于刷写操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海怿星电子科技有限公司,未经上海怿星电子科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710131592.4/1.html,转载请声明来源钻瓜专利网。





