CN113031974A - 一种变速器控制单元软件刷写方法 - Google Patents

一种变速器控制单元软件刷写方法 Download PDF

Info

Publication number
CN113031974A
CN113031974A CN202110290775.7A CN202110290775A CN113031974A CN 113031974 A CN113031974 A CN 113031974A CN 202110290775 A CN202110290775 A CN 202110290775A CN 113031974 A CN113031974 A CN 113031974A
Authority
CN
China
Prior art keywords
software
service
flash
controller
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202110290775.7A
Other languages
English (en)
Inventor
陈鸿
罗毅
舒玉春
邓艺培
王运
陈卫强
习建民
谭清
方世杰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chongqing Tsingshan Industrial Co Ltd
Original Assignee
Chongqing Tsingshan Industrial Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chongqing Tsingshan Industrial Co Ltd filed Critical Chongqing Tsingshan Industrial Co Ltd
Priority to CN202110290775.7A priority Critical patent/CN113031974A/zh
Publication of CN113031974A publication Critical patent/CN113031974A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种变速器控制单元软件刷写方法,具体包括如下步骤:智能识别所需刷写的软件,判断软件版本是否一致,软件件号是否一致,并在刷写前通过配置及所读取到的软件版本,变速箱序列号,智能判断手柄信息是否一致,同时实现CB0/CB1/APPL之间的跳转关系;软件刷写完成后,利用UDS写服务,写入项目所需信息,写特定的开CAN或关CAN,利用UDS读服务读取硬件版本号、软件件号、软件版本号,刷写完成后对比手柄信息,读取CALID码/CVN码等,对读取的硬件版本号、软件件号、软件版本号与配置文件里的设置信息进行自动对比。本发明可对控制器Boot及应用程序进行更新,并通过校验防错措施,保证控制器客户功能实现的同时,提高了软件刷新工作的效率及软件刷写的正确性。

Description

一种变速器控制单元软件刷写方法
技术领域
本发明属于汽车变速器领域,具体涉及一种变速器控制单元软件刷写方法。
背景技术
随着汽车市场对配置要求更新频率的增加,对整车厂而言,与配置和功能密切相关的控制器的更新也要提高效率来应对市场变化。针对仅需要更新控制器软件就可以满足配置或功能变化的情况,控制器刷写功能、升级功能是最直接有效的方式。但是由于应用层软件的刷写必须采用相应的Bootloader作为引导程序,若售后需刷写Boot往往需要进行控制器开盖处理,并采用特定的软件及工具进行boot更新,这样不仅麻烦而且效率还很低,由于需刷写软件的字节数较多,加之需要升级的控制器数量多,故刷写控制器需要较长的时间。生产上,其会影响生产线节拍和生产效率,而对于经销商,为客户升级车辆配置,花费时间长易引起客户的抱怨以及维修人员的调配。故如何提高刷新控制器的效率是当前汽车电子行业急需解决的问题。
ECU的开发周期较长,并且在汽车电子产品开发中安全性要求较高,可靠性的指标要求也很高,所以软件更新的情况在软件下载过程及售后都有可能出现,为方便售后服务,节约成本,同时避免对ECU硬件产品的破坏,汽车行业按照各种标准采用专用的诊断测试设备,通过标准的通信接口对ECU控制程序或者数据进行更新,一般情况下,Bootloader为常驻在ECU内部flash特定位置的程序,基于客户定义的机制或者协助用户定制的机制,按照UDS等通信协议拟定,以实现程序的功能。
发明内容
本发明的目的在于提供一种变速器控制单元软件刷写方法,提高刷新控制器的效率。
本发明的技术方案是这样实现的:本发明公开了一种变速器控制单元软件刷写方法,包括如下步骤:
智能识别所需刷写的软件,判断软件版本是否一致以及软件件号是否一致,并在刷写前通过配置及所读取到的软件版本、变速箱序列号,智能判断手柄信息是否一致,若全都一致,则开始进行刷写;
通过UDS服务实现底层驱动、底层、应用层驱动、应用层程序之间的切换,实现底层软件的刷写;
下载应用层驱动,然后读取控制器系统信息并启动应用程序下载。
进一步地,智能识别所需刷写的软件后,对所需刷写的软件文件顺序自动排列,若软件个数不对,或软件命名不符合规格,提示刷写失败及失败原因。
进一步地,在软件刷写前,通过UDS服务读取控制器的硬件版本号,自动与刷写脚本配置信息中待刷写的控制器硬件版本号进行对比,判断待翻库的控制器硬件版本号是否正确,如果对比正确,则继续进行刷写,如果对比失败,则提示刷写失败及失败原因。
进一步地,在软件刷写前,通过UDS服务读取控制器的软件项目件号,自动与刷写脚本配置信息中待刷写的软件项目件号进行对比,判断待刷写的控制器软件项目是否正确,如果对比正确,则继续进行刷写,如果对比失败,则提示刷写失败及失败原因。
进一步地,在软件刷写前,为防止误刷手柄信息,所采取的防错措施包括以下内容:
通过UDS服务读取控制器的软件版本号及变速箱序列号,自动与刷写脚本配置信息中软件版本号对比,判断待刷写的变速器与控制器软件项目是否匹配,如果对比正确,则继续进行刷写,如果对比失败,提示刷写失败及失败原因;
通过UDS服务读取控制器的机械或电子手柄,自动与刷写脚本配置信息中机械或电子手柄进行对比,判断待刷写的变速器与将要刷写的软件是否匹配,如果对比正确继续进行刷写,如果对比失败,提示刷写失败及失败原因。
进一步地,通过UDS服务实现底层驱动、底层、应用层驱动、应用层程序之间的切换,实现底层软件的刷写,具体包括:
通过UDS服务跳转进入底层软件文件层,再利用UDS服务跳转至底层驱动文件层,通过UDS服务进入刷写底层驱动扩展会话模式,正式进入刷写,在刷写完成底层软件软件后,检验底层驱动数据的完整性,并对指纹信息进行写入;
下载应用层驱动后检验应用层驱动数据的完整性,读取控制器系统信息并启动应用程序下载,下载应用程序至Flash,检测有效性后退出。
进一步地,软件刷写完成后,利用UDS写服务,写入项目所需信息,写特定的开CAN或关CAN,利用UDS读服务读取变速箱序列号、软件项目件号、软件版本号及手柄信息,刷写完成后对比手柄信息,读取校准标识码/校准验证号码,将读取的硬件版本号、软件项目件号、软件版本号分别与配置文件里的设置信息进行自动对比,并将读取及对比的结果进行显示。
进一步地,软件刷写完成后,所写入的项目信息包括整车手柄信息、开CAN或关CAN信息、请求是否需要NVM 初始化信息、传感器基本信息。
进一步地,软件刷写完成后,通过UDS服务读取控制器的软件项目件号及软件版本号,分别自动与刷写脚本配置信息中的软件项目件号及软件版本号进行对比,判断待翻库的控制器项目软件项目及软件版本号是否正确,如果对比均正确,则提示软件刷写成功,如果对比失败,则提示刷写失败及失败原因;
软件刷写完成后,通过UDS服务读取控制器的变速箱序列号及机械或电子手柄,自动进行对比,判断待刷写的变速箱手柄是否正确,如果对比均正确,则提示软件刷写成功,如果对比失败,则提示刷写失败及失败原因;
软件刷写完成后,通过UDS服务读取控制器开或关CAN信息、 NVM是否初始化信息、对传感器类型与脚本配置的类型进行对比,判断所写入的传感器类型与配置中的是否一致,如果是,则提示刷写成功,如果否,提示刷写失败及失败原因。
进一步地,软件刷写完成后,根据实际需求,进行变速箱特性数据写入,利用UDS服务对不同长度的特性数据进行写入到控制器的NVM中,若刷写失败,则提示失败原因;同时对写入完成的特性数据,利用UDS服务从NVM中读取出后与特性数据文件进行自动对比,若对比失败,则提示失败及失败原因。
本发明至少具有如下有益效果:本发明的流程包括智能识别所需刷写的软件,判断软件版本是否一致,软件件号是否一致,并在刷写前通过配置及所读取到的软件版本,变速箱序列号,智能判断手柄信息是否一致。同时实现CB0(底层驱动)/CB1(底层软件)/APPL(应用程序)之间的跳转关系,实现软件刷写,另外,软件刷写完成后,利用UDS写服务,写入项目所需信息,写特定的开CAN或关CAN,利用UDS读服务读取硬件版本号、软件件号、软件版本号,刷写完成后对比手柄信息,读取CALID(校准标识)码/CVN(校准验证号)码等。对读取的硬件版本号、软件件号、软件版本号与配置文件里的设置信息进行自动对比,并将读取及对比的结果打印到LOG记录文件中,提高刷写的正确性,方便刷写人员查看核对,避免操作者错误刷写。最后,利用UDS写服务,对变速箱特性数据进行刷写,对写入完成的特性数据从NVM中读取出后与特性数据文件进行自动对比,并将对比的结果显示到LOG记录文件中,利用该方法开发的刷写脚本可单独刷写软件,单独刷写特性数据,合刷软件与特性数据。
本发明提出的上述软件刷新方法可对控制器Boot及应用程序进行更新,并通过校验防错措施,保证控制器客户功能实现的同时,提高了软件刷新工作的效率及软件刷写的正确性,为控制器刷写及翻库带来了便利,减少对硬件的损耗。
本发明提出的上述软件刷新方法可以应用于一键刷写工具ECUFLASHER刷写、诊断仪售后刷写、EOLP刷写台量产刷写。其中一键刷写工具用于新品阶段产品TCU刷写与软件翻库升级刷写,具有刷写速度快,操作简便等优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例提供的一种变速器控制单元软件刷写方法的流程图;
图2为本发明实施例提供的软件刷写中流程跳转步骤。
具体实施方式
下面对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
参见图1和图2,本发明实施例提供一种变速器控制单元软件刷写方法,包括如下步骤:
S1:智能识别所需刷写的软件,对所需刷写的软件文件顺序自动排列;
S2:通过读取控制器的硬件版本号,判断是否与所需的软件版本一致;
S3:通过读取控制的软件件号,判断是否与所刷写的软件件号是否一致;
S4:通过变速箱序列号与软件版本号两者结合以及读取控制器的机械或电子手柄与刷写配置的机械或电子手柄进行智能对比判断所需刷写的软件为机械或电子手柄;
S5:通过UDS 10服务的不同参数实现底层驱动、底层、应用层驱动、应用层程序之间的切换,实现底层软件的刷写;
S6:通过UDS 31服务中的01 F0 00 00参数后接CRC32算法,检验刷写数据的完整性,并对指纹信息进行写入;
S7:下载应用层驱动后利用UDS 31服务检查CB1_SBL的完整性,然后读取控制器系统型号(F18A);
S8:启动应用程序下载,下载应用程序至Flash,检测有效性后退出;
S9:利用UDS服务写电子或机械手柄信息 ;
S10:写入开CAN或关CAN信息;
S11:写入传感器基本信息;
S12:刷写软件完成后,通过UDS读取控制器的软件项目件号,自动与刷写脚本配置信息中软件项目件号对比;
S13:刷写软件完成后,通过UDS读取控制器的软件版本号,自动与刷写脚本配置信息中软件版本号对比;
S14:在刷写软件完成后,通过UDS读取控制器的变速箱序列号及机械或电子手柄,自动进行对比,判断待翻库的变速箱手柄是否正确;
S15:在刷写完成后,通过UDS读取控制器是开或关CAN、 NVM是否初始化;
S16:读取传感器类型,对传感器类型与脚本配置的类型进行对比;
S17:在软件刷写完成后,通过UDS服务读CALID 码及CVN码,并把读取得到的结果显示出;
S18:软件刷写完成后,根据实际需求,进行特性数据写入,利用UDS服务对不同长度的特性数据进行写入到控制器的NVM中,若刷写失败则提示失败原因。
在软件刷写前,针对步骤S1-S3包括以下内容:
1)智能识别所需刷写的软件,对所需刷写的软件文件顺序自动排列,若软件个数不对,或软件命名不符合规格,提示刷写失败及失败原因;
2)通过UDS读取控制器的硬件版本号,自动与刷写脚本配置信息中待刷写的控制器硬件版本号对比,判断待翻库的控制器硬件版本号是否正确,如果对比正确继续进行刷写,如果对比失败,提示刷写失败及失败原因;
3)通过UDS读取控制器的软件项目件号,自动与刷写脚本配置信息中软件项目件号对比,判断待刷写的控制器软件项目是否正确,如果对比正确继续进行刷写,如果对比失败,提示刷写失败及失败原因;
进一步地,在软件刷写前,步骤S4为防止误刷手柄信息,所采取的防错措施包括以下内容:
1)通过UDS读取控制器的软件版本号及变速箱序列号(变速箱序列号包含软件项目件号,能识别软件项目),自动与刷写脚本配置信息中软件版本号对比,判断待刷写的变速器与控制器软件项目是否匹配,如果对比正确继续进行刷写,如果对比失败,提示刷写失败及失败原因;
2)通过UDS读取控制器的机械或电子手柄,自动与刷写脚本配置信息中机械或电子手柄进行对比,判断待刷写的变速器与将要刷写的软件是否匹配,如果对比正确继续进行刷写,如果对比失败,提示刷写失败及失败原因;
进一步地,在软件刷写开始时,为实现底层软件与应用同时刷写成功,所使用的方法S5-S8,所包括的内容如下:
1)通过UDS10服务的03 02模式跳转进入CB1文件层,再利用10服务的01 03 61跳转至CB0文件层,通过10服务 61 63 62进入刷写CB0扩展会话模式,正式进入刷写,其中,为检验底层刷写数据的完整性,利用UDS 31服务中的 01 F0 00参数后接CRC32算法方式;
2)在刷写完成CB1软件后,利用31服务中的01 F0 00 00参数后接CRC32算法,检验刷写数据的完整性,并对指纹信息进行写入;
3)在刷写完成应用层驱动CB1_SBL完整性后读取控制器系统信息(F18A)并启动应用程序下载,下载应用程序至Flash,检测有效性后退出。
进一步地,软件刷写完成后,所写入的项目信息,S9-S11包括以下内容:
根据工程实际需要,写入整车电子或机械手柄信息、写入开CAN或关CAN信息 、请求是否需要NVM 初始化 、写入压力传感器的类型,森萨塔或安费诺传感器。
进一步地,刷写时需要实现CB0(底层驱动)/CB1(底层软件)/APPL(应用程序)之间的跳转关系,刷写不同bin文件所使用的UDS服务,每个服务所对应的肯定及否定响应。在刷写底层或应用层有的文件采用CRC32算法,为确保程序的正确性,安全请求失败3次后TCU不接受数据发送与传输。当安全失败3次后,软件开发中请求通讯保持服务,持续10S时间,若密钥正确可解锁TCU进行正常的数据传输与发送以实现应用程序下载。
进一步地,在刷写软件完成后,所读取的相关项目信息,S12-17,包括以下内容:
1)通过UDS读取控制器的软件项目件号及软件版本号,自动与刷写脚本配置信息中软件项目件号与软件版本号对比,判断待翻库的控制器项目软件项目及软件版本号是否正确,如果对比均正确提示软件刷写成功,如果对比失败,提示刷写失败及失败原因;
2)通过UDS读取控制器的变速箱序列号及机械或电子手柄,自动进行对比,判断待刷写的变速箱手柄是否正确,如果对比均正确提示软件刷写成功,如果对比失败,提示刷写失败及失败原因;
3)通过UDS读取控制器的变速箱序列号及软件版本号,自动进行对比,判断待刷写的变速箱手柄是否正确,如果对比均正确提示软件刷写成功,如果对比失败,提示刷写失败及失败原因;
4)通过UDS读取控制器是开或关CAN、 NVM是否初始化初始化、对传感器类型与脚本配置的类型进行对比,判断所写入的传感器类型是否与配置中的是否一致,如果对比均正确提示刷写成功,如果对比失败,提示刷写失败及失败原因;
进一步地,软件刷写完成后,根据实际需求,进行特性数据写入,利用UDS服务对不同长度的特性数据进行写入到控制器的NVM中,若刷写失败则提示失败原因;同时对写入完成的特性数据,利用UDS服务从NVM中读取出后与特性数据文件进行自动对比,若对比失败提示失败原因。
在软件刷写时序中,如果目标ECU有否定响应,则重启软件刷写时序。
在软件刷写时序中,如果目标ECU有服务响应超时(P2CAN_Server 超时),则重启软件刷写时序。
在软件刷写时序中,客户端需要在S3Server超时前,执行一次功能寻址诊断设备在线服务,保持诊断会话模式。
在软件刷写时序中,功能寻址报文可能会重复发送多次,以确保网络上所有控制器都收到并响应这些功能寻址请求,被编程服务器应能正确响应客户端的每次请求。
编程步骤中允许被编程ECU不处理功能寻址。上电/复位发生后,ECU首先执行引导程序,引导程序执行一些基本的初始化,其中必须完成对CAN的初始化,然后检查外部软件刷写请求标志是否已设置,如果标志已被设置,那么即使应用程序是有效的,引导程序也会继续进一步执行。外部软件刷写请求标志存放在RAM中被保护的固定地址中,当应用程序收到软件刷写请求时,将编程请求标志(比如:0x5555AAAA)写入该固定地址。
如果当前没有软件刷写请求,则检验应用程序的状态。如果应用程序是有效的,引导程序则启动应用程序,应用程序在默认会话模式中启动。如果应用程序无效,ECU在默认会话模式继续执行引导程序并且等待转至扩展会话模式,再至用来ECU编程的编程会话模式。
服务器(ECU)的应用程序处于扩展模式时,客户端可以通过带有编程会话子参数的诊断会话控制服务请求激活服务器软件刷写。编程模式可以通过ECU复位、默认模式和编程模式会话超时离开。
上述方案为软件刷写时编程三步骤以及ECU控制器在软件刷写的一个响应机制。
预编程步骤中可进行bin文件的识别,若识别出无相关的底层文件,或应用层引导程序文件,则设置刷新失败。并且对底层文件进行及时的模式跳转以保证后期的boot程序能正常刷新成功。同时,可通过UDS服务中的22服务读取软件版本、软件件号、手柄信息等,以实现智能防错。
进入编程步骤对boot及应用层的2个bin文件请求对应的UDS服务进行刷写,包括28服务、85服务、10服务、27服务、31例程服务、34下载服务、36数据传输服务、37退出数据传输服务、11电控复位服务。
刷写方法采用不同的服务进行切换,并利用31服务不同的参数,分别对bootloader及应用程序进行完整性检查,有效性检查;并采用不同参数对bootloader及应用程序进行不同地址段的擦除。
使用34服务不同的参数进行bootloader程序的下载与应用程序的下载。利用已编程的读函数识别不同的bin文件,对36及37服务进行合理的调用,完成boot及应用层的数据传输与退出。根据不同的安全密钥采用27服务发送27 01 及27 02进而保证数据接收与传输数据的正确性。
通过22服务,2E服务对特性数据进行NVM存储与读取,利用31服务检验数据的完整性保证数据成功刷写进入TCU内部。
利用不同的ID区分保证不同的层级,例如(7F2,7DF,7E1,7E9)完成不同层级的数据请求与传输。
下面列举一个本发明的具体实施例。
1)通过识别所需刷写的软件,请求UDS 22服务,读取硬件版本、软件版本、变速箱序列号、软件件号、机械或电子手柄,诊断ID:0x7E1,长度0x03;
2)利用10服务的模式跳转,实现应用层、应用层驱动、底层驱动跳转,诊断ID:0x7E1,长度0x02;
3)利用10服务实现底层扩展会话及编程会话跳转,诊断ID:0x7F2,长度0x02;
4)利用27服务实现底层驱动安全请求,为底层驱动软件做铺垫;
5)请求下载CB0 SBL 34 00 44 服务,诊断ID:0x7F2,长度0x0B;
6)利用36服务实现底层驱动文件的数据传输,36服务的分包大小由工程实际对刷写时间或节拍要求设定,诊断ID:0x7F2;
7)37服务退出数据传输后,请求31例程控制31 01 F0 00 服务,检测CB0 _SBL完整性,算法为CRC32校验,并同时使用31例程检测CB0 flash驱动有效性,诊断ID:0x7F2;
8)请求清除下载CB1数据所需的地址后,利用34 00 44 刷写底层软件,底层软件起始地址及下载数据长度由控制器硬件接受能力施行,诊断ID:0x7F2;
9)底层软件传输利用36服务并采取不同分包大小实现,诊断ID:0x7F2;
10)请求退出数据传输37服务,诊断ID:0x7F2,长度0x01;
11)请求31例程控制31 01 F0 00 服务底层软件的完整性,并利用CRC32校验;
12)利用11 01使能控制器复位,为下载应用层驱动与应用程序做准备,诊断ID:0x7F2,长度0x02;
13)下载应用层驱动时,利用10服务的扩展会话及27服务的安全请求,使控制器接收响应机制,诊断ID:0x7F2;
14)请求31 例程控制31 01 02 03 服务检查编程前置条件,诊断ID:0x7E1,长度0x04;
15)请求10 83 进入扩展会话模式,诊断ID:0x7DF,长度0x02;
16)请求85 82进入故障设置类型,诊断ID:0x7DF,长度0x02;
17)通讯控制28 83 03不使能发送与接收,诊断ID:0x7DF,长度0x03;
18)针对应用层驱动,利用10服务的默认,扩展与编程跳转,实现对控制器的编程,诊断ID:0x7E1,长度0x02;
19)请求seed安全密钥27 01服务,诊断ID:0x7E1,长度0x02;
20)发送seed key安全密钥27 02服务,诊断ID:0x7E1,长度0x06;
21)写入设备指纹信息2E 01 84服务,诊断ID:0x7E1,长度0x0A ;
22)请求下载应用层驱动34 00 44服务,诊断ID:0x7E1,长度0x0B;
23)根据不同的分包大小利用36服务实现数据传输,并采用37服务退出 ;
24)请求31例程控制31 01 F0 00 服务CB1 SBL完整性CRC32校验,诊断ID:0x7E1,长度0x08;
25)针对应用层软件,首先利用31服务对需刷写的地址及长度进行清除,诊断ID:0x7E1;
26)请求下载压缩的应用层数据34服务,诊断ID:0x7E1;
27)应用层软件传输利用36服务并采取不同分包大小实现,诊断ID:0x7F2;
28)请求退出数据传输37服务,诊断ID:0x7E1,长度0x01;
29)请求31例程控制31 01 F0 01服务APPL有效性校验,诊断ID:0x7E1,长度0x04;
30)请求11 03 TCU复位服务,诊断ID:0x7E1,长度0x02;
31)通讯控制28 80 03使能发送与接收,诊断ID:0x7DF,长度0x03;
32)请求85 81进入故障设置类型开,诊断ID:0x7DF,长度0x02;
33)请求10 81进入默认回话模式,诊断ID:0x7DF,长度0x02;
34)请求写入手柄信息,2E服务,诊断ID:0x7E1;
35)请求写入开/关CAN信息,2E服务,诊断ID:0x7E1;
36)请求写入NVM是否需要初始化,2E服务,诊断ID:0x7E1;
37)请求写入传感器信息,2E服务,诊断ID:0x7E1;
38)请求读取软件项目件号及软件版本号、手柄信息,22服务,诊断ID:0x7E1,长度0x03;
39)请求读取变速箱序列号与手柄信息,22服务,诊断ID:0x7E1,长度0x03;
40)请求读取开/关CAN与NVM是否初始化信息,22服务,诊断ID:0x7E1,长度0x03;
41)请求读取NVM是否初始化信息,22服务,诊断ID:0x7E1,长度0x03;
42)请求读取传感器类型初始化信息,22服务,诊断ID:0x7E1,长度0x03;
43)请求读取CALID否初始化信息,22服务,诊断ID:0x7E1,长度0x03;
44)请求读取传感器类型初始化信息,22服务,诊断ID:0x7E1,长度0x03;
45)请求读取CALID否初始化信息,22服务,诊断ID:0x7E1,长度0x03;
46)请求读取CVN码否初始化信息,22服务,诊断ID:0x7E1,长度0x03;
47)请求写入特性数据信息,2E服务,诊断ID:0x7E1。
按本方法所开发的脚本识别不同的数据的传输与下载,通过在刷写时自动打印出的log文件查看刷写的特性数据为那个整车厂。同时,为完成清除故障码操作,利用14服务对故障码进行清除操作,消除历史故障对控制器的影响,防止误报。
软件刷写完成后,利用UDS服务写手柄信息 、写入开CAN或关CAN信息、写入传感器基本信息,通过UDS服务读取控制器的软件项目件号及软件版本号,自动与刷写脚本配置信息中软件项目件号与软件版本号对比,通过UDS服务读取控制器的变速箱序列号及机械或电子手柄,自动进行对比,判断待刷写的变速箱手柄是否正确,通过UDS服务读取控制器是开或关CAN、 NVM是否初始化、对传感器类型与脚本配置的类型进行对比,通过UDS服务读CALID 码及CVN码,并把读取得到的结果显示出,进行特性数据写入,利用UDS服务对不同长度的特性数据进行写入到控制器的NVM中,若刷写失败则提示失败原因。
软件刷写流程体现在TCU上电之后,如果Customer boot与应用程序软件都没有,那么TCU将停留在Customer 底层的默认会话模式。如果应用层程序没有,那么TCU将停留在应用层的默认会话模式。
所以根据当前TCU的状态,采用不同的UDS命令和CANID来进行刷新。ECU执行刷写引导程序过程中分别采用10 61,10 63,10 62请求执行默认,扩展,编程会话,使其跳转至刷写引导程序中。
安全访问服务27在对关于安全、排放需要限制访问的ECU内使用。安全访问服务用来解锁ECU,以便能够进行数据上传和下载。安全访问服务将使用安全访问算法,根据不同整车厂获取得到。
请求下载服务34用来发起一个从诊断仪到ECU的数据传输,否定响应按UDS规范回复。
数据传输服务36用来进行诊断仪到ECU传输数据下载。如果发起一个请求下载,待传输的数据包含在数据传输服务的请求报文的参数Transfer Request Parameter(传输请求参数)中。Transfer Request Parameter数据量N,根据芯片不同,可自定义,但不能大于0x34服务应答报文中的max Number Of Block Length(最大区域长度)。
当接收到一个请求下载(0x34)服务,Block Sequence Counter(块序列计数器)应该初始化为0x01。这意味着在请求下载(0x34)服务后,第一个数据传输(0x36)服务请求的Block Sequence Counter从1开始计数,该值依次递增加1,当达到0xFF后,下一个TransferData的Block Sequence Counter值以0x00开始,依此循环计数。
37服务用来退出诊断仪和ECU之间的数据传输,其返回参数包含一个两字节校验和(CRC16-CITT),诊断仪需要该校验和来支持数据传输。ECU将请求下载服务规定的所有数据字节(即每请求下载序列中所有Block Sequence Counter后跟的数据内容)写入内存后,再将其返读出来并计算校验和。当校验和错误时,则诊断仪停止刷写。
一个逻辑块的所有数据可通过服务序列请求下载、数据传输和请求退出传输3个步骤下载至ECU。一个逻辑块可由多个软件段组成,软件段的下载由请求下载服务请求启动,请求下载服务通知引导程序内存地址及段长度。一个软件段下载完成后,开启另一个软件段的请求下载,一个逻辑块包含的所有段的数据通过一个或多个的数据传输请求传输。
通过例程参数01 F0 00用来保证底层驱动的完整。通过例程参数01 F0 01检测底层flash驱动的有效性。
参数为31 01 FF 00的例程控制服务请求可以擦除被请求的逻辑块。在擦除Flash驱动的例程被调用前,请求擦除的逻辑块的有效状态位必须设为无效。这样可以在Flash过程没有成功结束时阻止意外执行应用程序。另外,此前写入数据服务请求接收到的指纹数据须在逻辑块擦除前存储到非易失性存储器。
通过34 服务请求boot的下载,36传输boot中的数据,通过例程 01 F0 00用来保证boot驱动的完整。
电控单元复位11 03 Flash软件刷写过程由ECU复位服务请求终止,可使ECU返回到正常ECU操作。
为了避免代码的意外激活,Flash驱动代码必须从RAM存储器完全擦除。因为这些代码可能导致擦除或程序操作的终止。
诊断模式切换,分别请求 10 01,10 03 ,10 02进入默认、扩展、编程模式,刷写应用层引导程序及应用层。安全请求解锁TCU进行数据下载与上传。
通过34服务请求CB1(底层软件)下载,36服务传输CB1(底层软件)中的数据,37服务退出数据传输,通过例程参数 01 F0 00用来保证应用层软件驱动的完整性。
通过31服务擦除记忆以装载应用层程序,34服务请求下载应用层程序,36服务传输应用层数据,37服务退出应用层数据传输,31服务检查应用层的数据的完整性,11 03电控单元复位退出。
本发明公开了一种自动变速箱TCU控制单元Bootloader(底层驱动)刷写方法,可同时刷写Customer boot(客户底层软件)与应用程序。同一个TCU硬件平台控制器首先通过刷写不同的整车厂Customer boot底层文件(安全密钥不同),实现TCU不同整车厂项目平台区分,其次再通过匹配对应整车厂安全密钥进行刷写应用层程序,完成项目软件刷写。通过该刷写方法实现了对TCU平台硬件的统一,只需要根据项目需求分别刷写对应Customerboot与应用程序,即可实现分项目使用,避免不同整车厂项目多个TCU硬件平台管理。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种变速器控制单元软件刷写方法,其特征在于,包括如下步骤:
智能识别所需刷写的软件,判断软件版本是否一致以及软件件号是否一致,并在刷写前通过配置及所读取到的软件版本、变速箱序列号,智能判断手柄信息是否一致,若全都一致,则开始进行刷写;
通过UDS服务实现底层驱动、底层、应用层驱动、应用层程序之间的切换,实现底层软件的刷写;
下载应用层驱动,然后读取控制器系统信息并启动应用程序下载。
2.如权利要求1所述的变速器控制单元软件刷写方法,其特征在于:智能识别所需刷写的软件后,对所需刷写的软件文件顺序自动排列,若软件个数不对,或软件命名不符合规格,提示刷写失败及失败原因。
3.如权利要求1所述的变速器控制单元软件刷写方法,其特征在于:在软件刷写前,通过UDS服务读取控制器的硬件版本号,自动与刷写脚本配置信息中待刷写的控制器硬件版本号进行对比,判断待翻库的控制器硬件版本号是否正确,如果对比正确,则继续进行刷写,如果对比失败,则提示刷写失败及失败原因。
4.如权利要求1所述的变速器控制单元软件刷写方法,其特征在于:在软件刷写前,通过UDS服务读取控制器的软件项目件号,自动与刷写脚本配置信息中待刷写的软件项目件号进行对比,判断待刷写的控制器软件项目是否正确,如果对比正确,则继续进行刷写,如果对比失败,则提示刷写失败及失败原因。
5.如权利要求1所述的变速器控制单元软件刷写方法,其特征在于:在软件刷写前,为防止误刷手柄信息,所采取的防错措施包括以下内容:
通过UDS服务读取控制器的软件版本号及变速箱序列号,自动与刷写脚本配置信息中软件版本号对比,判断待刷写的变速器与控制器软件项目是否匹配,如果对比正确,则继续进行刷写,如果对比失败,提示刷写失败及失败原因;
通过UDS服务读取控制器的机械或电子手柄,自动与刷写脚本配置信息中机械或电子手柄进行对比,判断待刷写的变速器与将要刷写的软件是否匹配,如果对比正确继续进行刷写,如果对比失败,提示刷写失败及失败原因。
6.如权利要求1所述的变速器控制单元软件刷写方法,其特征在于:通过UDS服务实现底层驱动、底层、应用层驱动、应用层程序之间的切换,实现底层软件的刷写,具体包括:
通过UDS服务跳转进入底层软件文件层,再利用UDS服务跳转至底层驱动文件层,通过UDS服务进入刷写底层驱动扩展会话模式,正式进入刷写,在刷写完成底层软件软件后,检验底层驱动数据的完整性和有效性,并对指纹信息进行写入;
下载应用层驱动后检验应用层驱动数据的完整性,然后读取控制器系统信息并启动应用程序下载,下载应用程序至Flash,检测有效性后退出。
7.如权利要求1所述的变速器控制单元软件刷写方法,其特征在于:软件刷写完成后,利用UDS写服务,写入项目所需信息,写特定的开CAN或关CAN,利用UDS读服务读取变速箱序列号、软件项目件号、软件版本号及手柄信息,刷写完成后对比手柄信息,读取校准标识码/校准验证号码,将读取的硬件版本号、软件项目件号、软件版本号分别与配置文件里的设置信息进行自动对比,并将读取及对比的结果进行显示。
8.如权利要求7所述的变速器控制单元软件刷写方法,其特征在于:软件刷写完成后,所写入的项目信息包括整车手柄信息、开CAN或关CAN信息、请求是否需要NVM 初始化信息、传感器基本信息。
9.如权利要求7所述的变速器控制单元软件刷写方法,其特征在于:软件刷写完成后,通过UDS服务读取控制器的软件项目件号及软件版本号,分别自动与刷写脚本配置信息中的软件项目件号及软件版本号进行对比,判断待翻库的控制器项目软件项目及软件版本号是否正确,如果对比均正确,则提示软件刷写成功,如果对比失败,则提示刷写失败及失败原因;
软件刷写完成后,通过UDS服务读取控制器的变速箱序列号及机械或电子手柄,自动进行对比,判断待刷写的变速箱手柄是否正确,如果对比均正确,则提示软件刷写成功,如果对比失败,则提示刷写失败及失败原因;
软件刷写完成后,通过UDS服务读取控制器开或关CAN信息、 NVM是否初始化信息、对传感器类型与脚本配置的类型进行对比,判断所写入的传感器类型与配置中的是否一致,如果是,则提示刷写成功,如果否,提示刷写失败及失败原因。
10.如权利要求1或7所述的变速器控制单元软件刷写方法,其特征在于:软件刷写完成后,根据实际需求,进行变速箱特性数据写入,利用UDS服务对不同长度的特性数据进行写入到控制器的NVM中,若刷写失败,则提示失败原因;同时对写入完成的特性数据,利用UDS服务从NVM中读取出后与特性数据文件进行自动对比,若对比失败,则提示失败及失败原因。
CN202110290775.7A 2021-03-18 2021-03-18 一种变速器控制单元软件刷写方法 Pending CN113031974A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110290775.7A CN113031974A (zh) 2021-03-18 2021-03-18 一种变速器控制单元软件刷写方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110290775.7A CN113031974A (zh) 2021-03-18 2021-03-18 一种变速器控制单元软件刷写方法

Publications (1)

Publication Number Publication Date
CN113031974A true CN113031974A (zh) 2021-06-25

Family

ID=76471669

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110290775.7A Pending CN113031974A (zh) 2021-03-18 2021-03-18 一种变速器控制单元软件刷写方法

Country Status (1)

Country Link
CN (1) CN113031974A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113741936A (zh) * 2021-08-31 2021-12-03 重庆长安汽车股份有限公司 一种基于uds协议的并行刷写方法、装置、车辆及计算机可读存储介质
CN113760334A (zh) * 2021-09-27 2021-12-07 北京国家新能源汽车技术创新中心有限公司 一种ecu程序刷写方法以及装置
CN114265382A (zh) * 2021-11-12 2022-04-01 潍柴动力股份有限公司 Ecu刷写故障处理方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286066A (zh) * 2007-12-28 2008-10-15 奇瑞汽车股份有限公司 一种汽车控制器软件刷新的方法
CN103984340A (zh) * 2014-05-21 2014-08-13 安徽江淮汽车股份有限公司 一种变速箱控制单元的软件刷写方法
DE102014218882A1 (de) * 2013-10-21 2015-04-23 Schaeffler Technologies Gmbh & Co. Kg Verfahren zur Bereitstellung einer Software-Versions-Kennung von mindestens einem Steuergerät für eine Software-Versions-Prüfung durch eine Testeinheit
CN109992464A (zh) * 2019-03-25 2019-07-09 东风航盛(武汉)汽车控制系统有限公司 一种集成应用层软件刷写的vcu自动测试方法
WO2021008184A1 (zh) * 2019-07-18 2021-01-21 南京依维柯汽车有限公司 新能源汽车上的fota固件远程升级系统及其升级方法
US20210397433A1 (en) * 2018-10-15 2021-12-23 Autonetworks Technologies, Ltd. On-board update device, update processing program, program update method, and on-board update system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101286066A (zh) * 2007-12-28 2008-10-15 奇瑞汽车股份有限公司 一种汽车控制器软件刷新的方法
DE102014218882A1 (de) * 2013-10-21 2015-04-23 Schaeffler Technologies Gmbh & Co. Kg Verfahren zur Bereitstellung einer Software-Versions-Kennung von mindestens einem Steuergerät für eine Software-Versions-Prüfung durch eine Testeinheit
CN103984340A (zh) * 2014-05-21 2014-08-13 安徽江淮汽车股份有限公司 一种变速箱控制单元的软件刷写方法
US20210397433A1 (en) * 2018-10-15 2021-12-23 Autonetworks Technologies, Ltd. On-board update device, update processing program, program update method, and on-board update system
CN109992464A (zh) * 2019-03-25 2019-07-09 东风航盛(武汉)汽车控制系统有限公司 一种集成应用层软件刷写的vcu自动测试方法
WO2021008184A1 (zh) * 2019-07-18 2021-01-21 南京依维柯汽车有限公司 新能源汽车上的fota固件远程升级系统及其升级方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
刘志军;顾睿;黄若琼;: "基于OTA的车辆ECU软件远程刷写系统", 汽车与驾驶维修(维修版), no. 06, 10 June 2020 (2020-06-10) *
李娇娇;张宏伟;陈金干;: "基于LabVIEW的新能源汽车控制器刷写软件设计", 软件工程, no. 02, 5 February 2020 (2020-02-05) *
汪春华;白稳峰;刘胤博;张玉稳;: "基于CAN总线UDS服务BootLoader应用开发", 电子测量技术, no. 02, 15 February 2017 (2017-02-15), pages 166 - 170 *
王涛: "于CAN诊断汽车控制器刷新软件的设计与实现", 中国优秀博硕士学位论文全文数据库(硕士)信息科技辑, no. 03, 15 March 2016 (2016-03-15), pages 38 - 63 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113741936A (zh) * 2021-08-31 2021-12-03 重庆长安汽车股份有限公司 一种基于uds协议的并行刷写方法、装置、车辆及计算机可读存储介质
CN113741936B (zh) * 2021-08-31 2024-04-19 重庆长安汽车股份有限公司 一种基于uds协议的并行刷写方法、装置、车辆及计算机可读存储介质
CN113760334A (zh) * 2021-09-27 2021-12-07 北京国家新能源汽车技术创新中心有限公司 一种ecu程序刷写方法以及装置
CN114265382A (zh) * 2021-11-12 2022-04-01 潍柴动力股份有限公司 Ecu刷写故障处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN113031974A (zh) 一种变速器控制单元软件刷写方法
CN110474961B (zh) 纯电乘用车基于can总线实现多路远程ota升级方法
US8458689B2 (en) Method and apparatus for reprogramming engine controllers
US20080033609A1 (en) Automotive diagnostic and tuning system
RU2142168C1 (ru) Способ полного перепрограммирования стираемой энергонезависимой памяти
US9239718B2 (en) System for field upgrading of firmware in multiple units
CN110134415A (zh) 一种控制器及其软件升级方法和装置
CN111679836B (zh) 一种汽车ecu刷写系统及方法
JP2002044742A (ja) 車載制御装置の運用システム及び車載制御装置
CN111190629B (zh) 一种嵌入式终端升级软件包及其解析方法
JP2002278783A (ja) ファームウェア書き換えシステム
CN109086058A (zh) 车载程序升级系统
CN113094072A (zh) 车辆升级方法、装置、电子装置及存储介质
US20060218340A1 (en) Data validity determining method for flash EEPROM and electronic control system
CN114398066A (zh) 一种域控制器的软件升级方法、系统及应用
JP2009123226A (ja) 車載制御装置の運用システム及び車載制御装置
CN108920168B (zh) 支持多个同类ECU同时升级且具防程序不匹配功能的Bootloader方法
US20240020111A1 (en) Data processing method and related device
CN115904411A (zh) 一种应用于售后市场的软件防错刷方法和系统
US6301709B1 (en) Circuit pack system with semi-or fully-automatic upgrade capability
CN111796839B (zh) 控制器程序管理方法和装置
KR100484159B1 (ko) 원격 펌웨어 업그레이드 방법 및 그 디스플레이 장치
WO2024108456A1 (zh) 一种控制器升级方法以及装置
CN111813597A (zh) 一种空调器
CN111190615A (zh) 远程修改设备参数及升级的方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination