历史上的今天

今天是:2024年11月25日(星期一)

正在发生

2019年11月25日 | 汽车总线与诊断 | 如何使用流程脚本机制实现刷新

发布者:CuriousTraveler 关键字:SA算法库  QzTitan  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 算法。

 

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

 

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

 

 

关于勤壮:


上海勤壮汽车科技有限公司成立于 2016 年,致力于成为国内顶级的汽车电子开发服务商,为国内汽车主机厂和零部件供应商提供本土化、定制化的优质服务。为国内汽车主机厂和零部件供应商提供包括汽车电子基础协议栈软件开发服务、汽车电子总线和诊断专用测试工具、以及汽车诊断相关的定制化开发服务。2019 年勤壮正式并入上海艾拉比智能科技有限公司,双方整合优势资源,为客户提供更优质的服务。


关键字:SA算法库  QzTitan  ECU 引用地址:汽车总线与诊断 | 如何使用流程脚本机制实现刷新

上一篇:Automechanika车身维修及喷涂国际大赛 将于上海闪耀登场
下一篇:电动车故障诊断 博世引入增强现实技术

推荐阅读

机器人系统以功能及系统实现为载体,通过自主或半自主的感知、移动、操作或人机交互,体现类似于人或是生物的智能水平;它能够扩展人在尺度、时间、空间、环境、情感、智能以及精度、速度、动力等方面所受到的约束和限制,并为人服务。 中国作为世界最大的机器人消费国,除了工业机器人连续 5 年成为世界最大的市场外,服务机器人的需求也增长显著。...
日本软银近日开始推广一款面向企业的扫地机器人“TheWhiz”。这款扫地机器人每月支付租金499美元(约3510元人民币)。 “TheWhiz”由软银的美国机器人分部与香港智能清洁设备子公司共同研发,身高0.9米,初到办公室时需要有人带领它先熟悉环境,以便计算出固定的清扫路线,目前仅提供日本本土、中国香港地区租赁。 这台机器人用到了优步公司的技术。...
当前全球新能源汽车发展浪潮浩浩荡荡,不过受汽车产业转型调整的影响,2019年中国新能源汽车产销规模首次出现下滑,但动力电池产业继续保持增长。中国动力电池企业龙头凭借技术、工艺以及成本等优势,正与国际车企积极合作,加速动力电池产品走向世界的进程。当前,如何在新一轮的国际竞争中占据有利地位,突破产业链薄弱环节,保障新能源汽车产品安全,实...
华为今天发布鸿蒙HarmonyOS 2升级公告,9款手机获得正式版,另外还有6款机型开启公测招募,包括1款手机、5款平板。  即日起,开启鸿蒙OS 2正式版升级的机型有:  华为畅享20 5G、华为畅享10、华为畅享9S、华为麦芒8、荣耀8X、荣耀20i、荣耀20青春版、荣耀10青春版、荣耀Play 3。  以上机型用户可通过会员中心App、我的华为App(华为机...

史海拾趣

小广播
最新汽车电子文章
厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2026 EEWORLD.com.cn, Inc. All rights reserved