当前位置:首页 > 汽车电子 > 汽车电子技术文库
[导读] 在汽车电子开发、测试和售后诊断中,我们经常需要对ECU进行固件升级,即“刷新”。 当前市面上的主流方案是通过硬编码的方式实现,但这种方式的缺点也显而易见:只有懂编程的工程师才能做,一般工

在汽车电子开发、测试和售后诊断中,我们经常需要对ECU进行固件升级,即“刷新”。

当前市面上的主流方案是通过硬编码的方式实现,但这种方式的缺点也显而易见:只有懂编程的工程师才能做,一般工程师无法胜任;当需要修改刷新流程的时候,刷新工具必须重新编译生成软件。这对于刷新工具的维护极为不便。

针对这一痛点,勤壮提供了一套通过脚本实现的方案。由于采用图形化配置界面,任何类型的工程师都可以轻松胜任;当需要修改的时候也只需修改脚本本身,无需重新编译生成整个软件,相比其他方案更方便、更灵活、更容易上手。

接下来我们按照步骤一一解析:

1.如何配置脚本?

首先我们有必要了解下两个专有名词:刷新规范和QzTitan。

刷新规范

刷新规范一般由整车厂制定,详细定义了刷新的具体步骤。一般分为刷新前、刷新中、刷新后。

刷新前:切换会话、安全访问等;

刷新中:34/36/37服务执行具体刷新动作;

刷新后:完整性校验、兼容性校验等。

QzTItan

QzTItan是一款简单易用的、图形化的、综合流程配置工具,文件后缀为ttn和ttb。

QzTItan可用于各种功能的开发,如刷新、IMMO等,同时可用于基础软件测试用例的开发,如:诊断测试用例、NM测试用例等,能够满足绝大多数汽车电子开发中的开发和测试场景。

由于使用图形化的配置方式,QzTItan相比于使用硬编码具有更强的灵活性,使得非软件开发人员也能轻松使用。

流程由语句和语句之间的关系组成。语句采用基础加扩展的基本方式,软件预定义了一些常用的语句,如:If、delay、assign、math、service、sendmsg。若预定义语句无法满足要求,可以通过usercall机制调用外部自定义函数。

由于脚本文件是二进制的,所以可以在各种软硬件平台上使用。软件平台包括:windows、linux、无操作系统环境,硬件平台包括:PC、MCU等。

用Titan实现刷新规范

通过不同语句的组合形成一个刷新流程,下面以1001为例来说明如何配置服务:

1.从左侧选中10服务;

2.拖放到中间的画布;

3.在右侧属性窗口配置该服务的属性。

注意:1.什么是FastSA?SA一般由两条服务组成:RequestSeed和ResponseKey,FastSA指的就是这两条服务的组合。系统会自动根据配置调用SADLL,计算Key。2. 添加语句的方式:拖放。

ttn与ttb的关系

ttn是ttb的源文件,ttn可生成ttb,ttb不可以反向生成ttn,所以需要注意保存ttn。

2.如何执行脚本?

我们首先会用到QzSaturn这个工具,QzSaturn是一款总线和诊断测试工具,是整个工具链中的主软件,文件后缀为:*.stn。

QzSaturn的主要功能包括:报文监控、图形监控、总线记录与回放、全车诊断、工程面板、流程、诊断、刷新、网报报文发送等,覆盖了汽车电子开发与测试中最常用的功能。刷新是其功能之一。

刷新步骤:

1.导入ttb文件

将配置完成的脚本导入到QzSaturn刷新子窗口中。

2.导入刷新数据文件

指的是要刷的数据文件,支持HEX、S19和BIN。

3.基本参数的配置

对ECU基本参数进行配置,如:RequestID、ResponseID。

4.SA算法库的导入

刷新前一般需要解SA,解锁算法由SA算法库实现。在windows平台的文件后缀为*.dll,DLL本身的制作方法见下文。

5.CRC配置

选择相应的CRC类型及相关信息,并点击按钮计算CRC。

6.开始刷新。

如何制作SA算法库?

本质是制作一个特定接口的动态链接库*.dll。

制作工具:Visual Studio 2015

开发语言:C++/C++

接口函数:extern “C” __declspec(dllexport) UINT32 saturn_key_generate(UINT8* p_seed,

UINT32 seed_length,

UINT32 level,

UINT8* param

UINT8* p_key,

UINT32 key_length,

UINT32& key_size)

参数说明:

P_seed:Seed

Seed_length:Seed长度,一般为4;

Level:SA level.以2701为例,应填01

Param:用户自定义

P_key:Key Buffer,用于存储函数返回的Key

Key_length:Key Buffer的指定长度,

Key_size:Key实际长度,一般跟Seed长度一致

两种方式:源码封装方式、二次封装方式。

源码封装方式:直接在图示位置写代码实现SA算法。

二次封装方式:在图示位置调用外部算法库。一般用于整车厂需要对算法保密的场景。

通过以上操作,可以实现适应不同场景、灵活和高效的刷新。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭