一
背景和挑战
| 背景:
当前汽车市场竞争激烈,多品牌并存,新车发布速度加快,价格逐渐降低,功能日益多样化。随着车辆功能的不断提升与优化,ECU(电子控制单元)的代码量也随之增加,这导致用户在每次车辆软件升级时需要等待较长时间,影响用户体验,进而影响各汽车制造商(OEM)的品牌声誉。为了解决这一问题,确保控制器稳定运行,提升软件刷写的效率,同时不断满足用户的多样化需求,堆栈刷写技术应运而生。
| 技术挑战:
• 确保刷写过程的稳定性:避免在刷写过程中出现中断或错误,导致ECU损坏、文件不完整等;
•优化刷写的效率:缩短刷写时间,提升生产线和售后刷写的效率;
•保证刷写数据的可靠性:确保数据在刷写的过程中不会被泄露。
二
什么是堆栈刷写?
堆栈刷写也叫Queued Flash是一种快捷、有效的数据刷写。在运行刷写时,上位机对ECU同时发送多帧连续的诊断请求到控制器。与传统刷写不同的是,在传统的刷写流程中,上位机和ECU之间是一种一问一答的形式,这就意味着上位机必须等到上一个诊断请求响应后,才能发送下一个诊断响应,从而导致数据传输出现过剩的情况,刷写速度变缓。
而堆栈刷写是在初个诊断请求发出去后,无需等待响应,即可接着发送诊断请求,直到缓存饱和,由此可大大提升刷写速率。
(图1 传统刷写和堆栈刷写区别)
三
堆栈刷写方案
| 方案概述:
本文讲述的堆栈刷写实现方案,是由风丘科技自研的工程诊断仪Q-Testr.Expert和车辆通信卡MC800组成。其主要原理是,将车辆通信卡和电脑连接在一起,实现电脑和通信卡的连接,进而连接到车辆,实现诊断报文的收发。
(图2 方案逻辑图)
| 队列刷写原理:
下文将以一个堆栈刷写的流程示意图进行简单阐述。
(图3 堆栈刷写原理图)
T1时刻:Tester(上位机)发送36 01用来请求,请求刷写数据的一个Block块,之后ECU(控制器)给出流控帧表明自己的诊断传输能力;
T2时刻:Tester发送完最后一个Block块后,没有等待ECU的响应,而是直接发送了下一个请求36 02;
T3时刻:ECU响应36 01正响应;
T4时刻:ECU响应7F 36 78,表示此刻在处理其他的诊断请求,需要等待一会儿。
堆栈刷写核心在于Tester多帧请求发送顺序不能乱,且接收的响应也应按照诊断请求的顺序。
优势
01.
大大提升了刷写速率,尤其在生产线上,每个工位都是有固定的时间,避免因刷写速度缓慢而导致停线,并减少停线时间。
02.
堆栈刷写的大小可设置,便于用户更好管理刷写过程,并可根据实际情况调整刷写堆栈大小,优化资源利用。
03.
对于较大的软件更新包,用户往往需要等待较长时间来完成车辆的升级过程。然而,利用堆栈刷写技术,即可大大缩短这一等待时间,使用户能够更快获取软件新版本,确保汽车系统始终保持实时更新状态......
(素材使用声明:本账号素材使用力求合法,若不慎侵权请联系我们删除;本账号内容未经授权使用,将依法追究责任。)
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.