基于CAN总线的电动汽车电控设备控制软件升级方法转让专利

申请号 : CN201110385339.4

文献号 : CN102495744B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈建明谭淼蒋时军王征宇杨洪波

申请人 : 湖南南车时代电动汽车股份有限公司

摘要 :

本发明公开了一种基于CAN总线的电动汽车电控设备的控制软件升级方法,按照TCP/IP协议给CAN网络互联各设备分配特定设备号以区分各设备,给设备内部的多芯片分配类型号和芯片号以区分各芯片,上位机通过查找设备号、芯片号,与目标电控设备之间建立点对点通讯,完成升级操作。

权利要求 :

1.基于CAN总线的电动汽车电控设备的控制软件升级方法,其特征在于,按照TCP/IP协议给CAN网络互联各设备分配特定设备号以区分各设备,给设备内部的多芯片分配类型号和芯片号以区分各芯片,包括以下步骤:步骤一,汽车电控系统从正常的程序应用状态进入到程序升级状态,在CAN协议层之上,应用TCP/IP协议中的握手协议完成上位机与电控设备之间的匹配应答和确认,建立点对点网络连接,未匹配成功的设备将相应的CAN节点挂起;

步骤二,人工选择要烧写的COFF执行文件,按既定文件COFF格式进行解析,判断需要烧写的FLASH区域,并发送命令到相应电控设备进行相关FLASH区的擦除操作;

步骤三,擦除完成后,按既定协议与上位机通过CAN总线交互指令和数据,将接收到的数据和参数烧写入目标FLASH区,并反馈电控设备的状态信息;

步骤四,待程序烧写完成后,上位机给整个网络发广播帧,被更新的设备收到此帧信息后,跳转到程序入口开始运行,其余各设备CAN节点收到此帧信息后被唤醒继续运行,并反馈唤醒状态,所述电控设备控制软件包括管理程序和应用程序,所述管理程序负责软件升级时的调度工作,通过CAN网络,由上位机指令触发,在软件升级时,由管理程序通过CAN总线下载对电控设备进行控制的应用程序,所述应用程序控制电控设备的具体动作;软件升级过程中,所述管理程序保持不变,只对所述应用程序进行更新。

2.根据权利要求1所述升级方法,其特征在于,所述步骤一中,CAN总线应用TCP/IP协议中的握手协议发送联机命令到各设备寻求匹配,所述联机命令只包含设备号。

3.根据权利要求1所述升级方法,其特征在于,匹配成功,则电控设备完成一段匹配服务程序,把设备置于安全状态,之后处于程序升级的激活态,同时,同一子网内未匹配成功的设备也必须完成一段匹配服务程序,把设备置于安全状态,之后处于程序升级的休眠态。

4.根据权利要求1所述升级方法,其特征在于,对FLASH区进行擦除时,须匹配擦除密码,匹配成功才能进行擦除操作。

5.根据权利要求1所述升级方法,其特征在于,所述步骤三中,在CAN协议的应用层移植一种TCP/IP协议下的停-等协议,具体为启动了一个错误检测处理段,错误包括发送错、接收错、校验错和通信超时错,一旦检测到错误,即启动错误的自动恢复例程。

6.根据权利要求1所述升级方法,其特征在于,擦除完成后,按上述TCP/IP协议和重传机制,电控设备与上位机通过CAN总线交互指令和数据,并将接收到的数据和参数接收到缓存;数据接收完毕,则把缓存数据烧写入FLASH区,并且反馈烧写和校验状态信息到上位机。

说明书 :

基于CAN总线的电动汽车电控设备控制软件升级方法

技术领域

[0001] 本发明涉及电动汽车内部电控设备的控制软件的升级方法,具体设计一种基于CAN总线的电动汽车电控设备控制软件升级方法。

背景技术

[0002] 随着汽车电子技术的发展,电子控制单元(MCU)越来越多的应用于现代电子汽车上。在电子控制软件开发过程中,以及汽车产品的试用期间中,由于控制软件的升级,软件开发人员和汽车主机厂需要对控制其软件进行刷新。控制软件一般存储在芯片中可反复电擦除的FLASH区,采用现有的软件刷新方法,工程人员需要打开控制器,借助连接设备进行FLASH烧写,实际操作很不方便,而电动汽车上存在诸多电控设备,按照现有方法对各设备电子控制软件的更新升级尤为不方便。由于电动汽车上的电控设备实现CAN总线互联,如何合理规划程序架构,利用CAN总线实现电控设备的控制软件升级成为当今研究热点。
[0003] 经初步检索,发现与本发明相近的技术方案如下:
[0004] 申请号为200810021772.8的中国发明专利公开了一种汽车电子控制器软件CAN线烧写的控制方法,所述方法包括以下步骤:步骤A:从电子设备系统正常的应用程序运行状态进入到刷新模式;步骤B:对汽车电子系统的存储器进行检验,并判断存储器中是否保存有正确的应用程序;步骤C:如果存储器中没有正确的应用程序,从诊断设备下载应用程序代码,基于CAN线传输并刷新应用程序。这样使用基于CAN线的诊断设备进行FLASH烧写,方便了汽车在产品阶段的控制器软件刷新。使用CAN接口进行刷新,对于车上的任何一个CAN节点接口都可以作为诊断仪的接口,对于控制器布置在汽车这样布置空间相对狭小的环境中,软件的刷新带来了很大的方便,而且成本很低。
[0005] 上述技术方案的缺点在于:1、在进行多电控设备控制软件刷新升级的时候,由于缺乏有效的设备参数标定方法,不方便识别设备和进行下一步软件升级;2、方案的架构无重用性机制,每个电控设备要重复编写软件升级管理的程序段,代码重用效率不高。

发明内容

[0006] 有鉴于此,本发明提供一种基于CAN总线的电动汽车电控设备控制软件升级方法,通过与各电控设备之间建立点对点连接,对各电控设备控制软件进行升级操作。
[0007] 本发明采用的技术方案是:
[0008] 基于CAN总线的电动汽车电控设备的控制软件升级方法,按照TCP/IP协议给CAN网络互联各设备分配特定设备号以区分各设备,给设备内部的多芯片分配类型号和芯片号以区分各芯片,包括以下步骤:
[0009] 步骤一,汽车电控系统从正常的程序应用状态进入到程序升级状态,在CAN协议层之上,应用TCP/IP协议中的握手协议完成上位机与电控设备之间的匹配应答和确认,建立点对点网络连接,未匹配成功的设备将相应的CAN节点挂起;
[0010] 步骤二,上位机选择要烧写的执行文件,按既定文件格式进行解析,判断需要烧写的FLASH区域,并发送命令到相应电控设备进行相关FLASH区的擦除操作;
[0011] 步骤三,擦除完成后,按既定协议与上位机通过CAN总线交互指令和数据,将接收到的数据和参数烧写入目标FLASH区,并反馈电控设备的状态信息;
[0012] 步骤四,待程序烧写完成后,上位机给整个网络发广播帧,被更新的设备收到此帧信息后,跳转到程序入口开始运行,其余各设备CAN节点收到此帧信息后被唤醒继续运行,并反馈唤醒状态。
[0013] 进行软件升级之前,根据所在子网的CAN总线的传输速率,选择相应的CAN通信速率。
[0014] 优选地,所述电控设备控制软件包括管理程序和应用程序,所述管理程序负责软件升级时的调度工作,通过CAN网络,由上位机指令触发,在软件升级时,由管理程序通过CAN总线下载对电控设备进行控制的应用程序,所述应用程序控制电控设备的具体动作;软件升级过程中,所述管理程序保持不变,只对所述应用程序进行更新。
[0015] 优选地,所述步骤一中,CAN总线应用TCP/IP协议中的握手协议发送联机命令到各设备寻求匹配,所述联机命令只包含设备号;若匹配成功,则电控设备完成一段匹配服务程序,把设备置于安全状态,之后处于程序升级的激活态,同时,同一子网内未匹配成功的设备也必须完成一段匹配服务程序,把设备置于安全状态,之后处于程序升级的休眠态;匹配成功后电控设备将所需电控设备号标识、芯片型号标识、芯片编号标识、FLASH区域信息等必要信息反馈到上位机,上位机根据反馈信息调入适应该芯片类型及FLASH区域的约束文件。
[0016] 优选地,所述步骤二中,人工选择需要升级下载的执行文件,上位机按照执行文件的格式直接解析,生成一个下载链表,链表中包括需要烧写的程序代码在执行文件中的首地址和长度、需要下载的FLASH区域、目标FALSH区域的首地址和长度,下载子块的块号,以及在程序中的逻辑区域名称等必要信息,判断需要烧写的FLASH区域;对FLASH区进行擦除时,须匹配擦除密码,匹配成功才能进行擦除操作。
[0017] 优选地,所述步骤三中,在CAN协议的应用层移植一种TCP/IP协议下的停-等协议,具体为启动了一个错误检测处理段,错误包括发送错、接收错、校验错和通信超时错,一旦检测到错误,即启动错误的自动恢复例程;擦除完成后,按上述TCP/IP协议和重传机制,电控设备与上位机通过CAN总线交互指令和数据,并将接收到的数据和参数接收到缓存;每到一块数据接收完毕,则把缓存数据烧写入FLASH区,并且反馈烧写和校验状态信息到上位机。
[0018] 本发明的有益效果在于:
[0019] 1、给各电控设备分配设备号、芯片号,通过TCP/IP协议中的握手协议建立上位机与电控设备之间的点对点联系,使得整个更新过程可由上位机直接控制,不需要额外增加设备,方便、准确、快捷;
[0020] 2、电控设备内部的程序架构分成两个独立编译的程序,包括应用程序和管理程序,根据电控设备的功能,编制不同的应用程序,管理程序只要根据芯片类型的不同做少量更改,即可通用于多类芯片型号,代码重用性强;
[0021] 3、在CAN协议的应用层,实现了一种发送错、接收错、校验错和超时错时重传的可靠性传输协议,强力确保了下载软件的正确性。

附图说明

[0022] 图1是本发明的具体实施方式的流程图。

具体实施方式

[0023] 下面结合附图和具体实施方式来进一步阐述本发明。
[0024] 基于CAN总线的电动汽车电控设备的控制软件升级方法,按照TCP/IP协议给CAN网络互联各设备分配特定设备号以区分各设备,给设备内部的多芯片分配类型号和芯片号以区分各芯片,包括以下步骤:
[0025] 步骤一,汽车电控系统从正常的程序应用状态进入到程序升级状态,在CAN协议层之上,应用TCP/IP协议中的握手协议完成上位机与电控设备之间的匹配应答和确认,建立点对点网络连接,未匹配成功的设备将相应的CAN节点挂起;
[0026] 步骤二,上位机选择要烧写的执行文件,按既定文件格式进行解析,判断需要烧写的FLASH区域,并发送命令到相应电控设备进行相关FLASH区的擦除操作;
[0027] 步骤三,擦除完成后,按既定协议与上位机通过CAN总线交互指令和数据,将接收到的数据和参数烧写入目标FLASH区,并反馈电控设备的状态信息;
[0028] 步骤四,待程序烧写完成后,上位机给整个网络发广播帧,被更新的设备收到此帧信息后,跳转到程序入口开始运行,其余各设备CAN节点收到此帧信息后被唤醒继续运行,并反馈唤醒状态。
[0029] 进行软件升级之前,根据所在子网的CAN总线的传输速率,选择相应的CAN通信速率。
[0030] 优选地,所述电控设备控制软件包括管理程序和应用程序,所述管理程序负责软件升级时的调度工作,通过CAN网络,由上位机指令触发,在软件升级时,由管理程序通过CAN总线下载对电控设备进行控制的应用程序,所述应用程序控制电控设备的具体动作;软件升级过程中,所述管理程序保持不变,只对所述应用程序进行更新。
[0031] 优选地,所述步骤一中,CAN总线应用TCP/IP协议中的握手协议发送联机命令到各设备寻求匹配,所述联机命令只包含设备号;若匹配成功,则电控设备完成一段匹配服务程序,把设备置于安全状态,之后处于程序升级的激活态,同时,同一子网内未匹配成功的设备也必须完成一段匹配服务程序,把设备置于安全状态,之后处于程序升级的休眠态;匹配成功后电控设备将所需电控设备号标识、芯片型号标识、芯片编号标识、FLASH区域信息等必要信息反馈到上位机,上位机根据反馈信息调入适应该芯片类型及FLASH区域的约束文件。
[0032] 优选地,所述步骤二中,人工选择需要升级下载的COFF执行文件,上位机按照执行文件的COFF格式直接解析,生成一个下载链表,链表中包括需要烧写的程序代码在COFF文件中的首地址和长度、需要下载的FLASH区域、目标FALSH区域的首地址和长度,下载子块的块号,以及在程序中的逻辑区域名称等必要信息,判断需要烧写的FLASH区域;对FLASH区进行擦除时,须匹配擦除密码,匹配成功才能进行擦除操作。
[0033] 优选地,所述步骤三中,在CAN协议的应用层移植一种TCP/IP协议下的停-等协议,具体为启动了一个错误检测处理段,错误包括发送错、接收错、校验错和通信超时错,一旦检测到错误,即启动错误的自动恢复例程;擦除完成后,按上述TCP/IP协议和重传机制,电控设备与上位机通过CAN总线交互指令和数据,并将接收到的数据和参数接收到缓存;每到一块数据接收完毕,则把缓存数据烧写入FLASH区,并且反馈烧写和校验状态信息到上位机。
实施例
[0034] 如图1所示:
[0035] 操作人员通过上位机的操作权限认证,进入软件升级系统,进行软件升级之前,根据所在子网的CAN总线的传输速率,选择相应的CAN通信速率,汽车电控系统从正常的程序应用状态进入到程序升级状态。
[0036] 在CAN协议层之上,应用TCP/IP协议中的三次握手协议查找目标电控设备,匹配成功后,建立点对点网络连接,未匹配成功的设备将相应的CAN节点挂起。
[0037] 匹配成功后电控设备的动作为:目标电控设备完成一段匹配服务程序,把设备置于安全状态,之后处于程序升级的激活态,同时,同一子网内未匹配成功的设备也必须完成一段匹配服务程序,把设备置于安全状态,之后处于程序升级的休眠态。
[0038] 目标电控设备将所需电控设备号标识、芯片型号标识、芯片编号标识、FLASH区域信息等必要信息反馈到上位机,上位机根据反馈信息调入适应该芯片类型及FLASH区域的约束文件。
[0039] 上位机选择要烧写的COFF执行文件,按既定文件的COFF格式进行解析,生成一个下载链表;链表中包括:需要烧写的程序代码在COFF文件中的首地址和长度,下载到FLASH的区域,在FALSH中的首地址和长度,下载子块的块号,以及在程序中的逻辑区域名称等必要信息,判断需要烧写的FLASH区域,进行电擦除;擦除之前需要进行密码验证,防止非操作人员误操作。
[0040] 在CAN协议的应用层移植一种TCP/IP协议下的停-等协议,具体为启动了一个错误检测处理段,错误包括发送错、接收错、校验错和通信超时错,一旦检测到错误,即启动错误的自动恢复例程;
[0041] 擦除完成后,按上述协议和重传机制,电控设备与上位机通过CAN总线交互指令和数据,并将接收到的数据和参数接收到缓存;每到一块数据接收完毕,则把缓存数据烧写入FLASH区,并且反馈烧写和校验状态信息到上位机。
[0042] 待程序烧写完成后,上位机给整个网络发广播帧,被更新的设备收到此帧信息后,跳转到程序入口开始运行,其余各设备CAN节点收到此帧信息后被唤醒继续运行,并反馈唤醒状态。
[0043] 至此,整个升软件级过程结束,各电控设备跳入相应应用程序执行各自功能。
[0044] 本发明通过与各电控设备之间建立点对点连接,对各电控设备控制软件进行升级操作,本领域普通技术人员在本发明精神及技术启示范围内所作出的变形,均应视为在本发明的保护范围之内,本发明的具体保护范围,视其权利要求书而定。