一种电动汽车电动空调控制器软件刷新系统和方法与流程

文档序号:12718898阅读:491来源:国知局
本发明属于电动汽车控制器开发领域,特别是涉及一种电动汽车的电动空调控制器软件刷新系统。
背景技术
:传统汽车的压缩机由发动机直接驱动,在电动汽车中由于发动机的取消,因此改为电机驱动,软件更加复杂,往往需要进行缺陷修复以及版本更新,因此在研发、生产、使用与维护阶段,都会有软件更新升级需求。对于大多数以飞思卡尔单片机作为MCU的车载控制器,开发者往往通过P&E或者BDM等专门工具进行程序调试和烧写,当然也可以使用串行通讯接口,传统的方法是使用UART外设实现数据传输,然而车载控制器数量繁多并且往往有外壳保护来满足相当高的防水防尘要求,给程序更新带来了极大的不便。因此采用传统的程序更新方式费时费力,效率低下,极大的影响车载控制器的开发、调试及使用。Bootloader又称引导加载程序,是系统加电/复位后在应用程序前运行的一段软件代码。在现有的汽车控制器的刷新方法中,Bootloader软件架构由PBL和SBL两部分组成。PBL由主引导模块、诊断模块、网络模块、CAN驱动模块和定时器模块组成,SBL由FLASH的擦除\编程代码组成。程序刷新需要通过预存在ROM中的PBL将SBL下载到RAM区,SBL再负责更新代码或数据。同时现有的刷新方法及系统对硬件需求高,除上位机和目标控制器外,过程实现需额外提供刷新装置包括:诊断欲刷新单元和诊断刷新单元。因而刷新过程相对较复杂,效率低,且成本更高。技术实现要素:本发明要解决的技术问题是,基于电动汽车电动空调对应用程序更新的需求,本发明提供一种安全高效的基于CCP协议自主扩展的通信协议的电动汽车电动空调控制器软件刷新系统。为解决上述技术问题,本发明采用如下技术方案:一种电动汽车电动空调控制器软件刷新系统,包括,汽车空调控制器、USB-CAN卡、上位机,其特征在于:汽车空调控制器内预先贮存Bootloader引导程序,上位机中装载Labview程序,上位机将待更新的应用程序发送至CAN总线上,USB-CAN卡负责连接上位机和汽车空调控制器,实现上位机与汽车空调控制器的物理通信支持;上位机主要分为下载操作区和显示区,在下载操作区按照文件选择、读取、连接、下载需求完成系统功能操作,在显示区显示连接和下载状态、以及读取经过处理的待更新的应用程序文件;所述待更新的应用程序文件为S19文件格式;所述的通信协议在CCP协议的基础上根据下载文件格式及Bootloader原理参考CCP指令格式自定义扩展了两条扩展指令;所述Bootloader引导程序有启动加载模式和下载模式,Bootloader引导程序在下载模式接收待更新的应用程序文件并存入汽车空调控制器存储器,在加载模式下加载应用程序,完成软件更新。上述技术方案中,两条扩展指令分别为:S19_Message指令:下载S19记录信息帧,携带每条记录中的基本信息,包括类型、数据地址、数据长度、校验和信息;S19_Data指令:下载S19记录数据帧,携带每条记录中的有效数据。上述技术方案中,当Bootloader引导程序切换至下载模式时,Labview程序基于自定义扩展的CCP协议将应用程序发送至CAN总线上建立上下位机连接并进行应用程序数据下载,下位机将接受的数据存放在对应存储区,数据传输完毕,上位机发送断开连接命令,上下位机结束通讯;当Bootloader引导程序切换至启动加载模式,汽车空调控制器开始执行应用程序,软件更新结束。上述技术方案中,汽车空调控制器主控MCU采用片内集成FLASH存储的单片机。上述技术方案中,所述的USB-CAN卡采用NI公司的USB-9862。一种电动汽车电动空调控制器软件刷新方法,其特征在于包括如下步骤:S1、通过BDM下载器将预先编写的Bootloader引导程序首次装入空调控制器单片机,所述Bootloader程序长期贮存在单片机芯片内部存储器中,在受到触发时启动加载应用程序或者下载基于CCP协议的扩展指令文件;S2、应用程序编写完后,进行编译,在codewarrior工程文件中生成S19文件;S3、启动上位机,找到S19文件所在路径,进行文件的读取解析并按照自主扩展的CCP协议进行重新组帧等待发送;S4、将Bootloader模式选择开关切换至下载模式;S5、建立上下位机连接,上位机发送握手信号,并等待下位机返回DTO信息判断是否握手成功,若发送成功,则等待启动下载命令,若连接不成功,则显示连接失败;S6、进行数据下载,按照自主扩展的CCP协议,上位机发送S19文件数据,下位机接受数据,并将数据正确存放在对应存储区;S7、数据传输完毕,上位机发送断开连接命令,上下位机结束通讯;S8、将Bootloader模式选择开关切换至加载模式,控制器开始执行应用程序;软件更新结束。上述技术方案中,所述自主扩展的CCP协议,除包括验证身份时使用的CONNECT,EXCHANGE_ID,GET_SEED指令以及断开连接时使用的DISCONNCET指令外,还包括根据下载文件格式及bootloader原理参考CCP指令格式自定义的两条扩展指令。上述技术方案中,两条扩展指令分别为:S19_Data指令:下载S19记录数据帧,携带每条记录中的有效数据;S19_Message:下载S19记录信息帧,携带每条记录中的基本信息,包括类型、数据地址、数据长度、校验和信息。上述技术方案中,在数据下载传输过程中,上位机读取S19文件并拆分重组,发送一条记录时,先发送S19_Data指令,再发送S19_Message,每发送完一条记录时要及时进行校验;待所有记录发送成功后显示发送成功断开与空调控制器连接。相对于现有技术,本发明的有益效果为:从软件架构、程序刷新过程来看,本发明自主设计的配套上位机软件与Bootloader引导程序,整套系统使用简单。Bootloader整体存放在控制器内存中,软件结构更简单,控制器直接接收CAN网络上的目标代码或数据,过程简便。从通讯协议来看,本发明的通信协议在CCP协议基础上根据下载文件格式及bootloader原理进行了自定义扩展,在充分利用CCP安全性的同时简化了通信过程。从数据传输可靠性验证来看,本发明系统在数据传输过程中,每接收完一条记录进行数据校验,而不是如传统协议(诊断服务规范符合ISO14229,通讯传输协议符合ISO15765-2/4)中,诊断设备在数据传输结束后进行传输可靠性验证。从刷新完成后程序加载方式来看,硬件开关对主芯片指定引脚进行状态切换,避免占用存储空间,有别于传统指定标志位存在后进入应用程序的方式。从硬件需求来看,除上位机和目标空调控制器外,硬件部分仅需USB-CAN卡,不需要额外提供包括诊断欲刷新单元和诊断刷新单元的刷新装置。综上所述,本发明通过CAN总线更新程序,提高系统升级的效率和可操作性,而且可以直接利用汽车上现有的CAN网络资源,节约成本和人力;借鉴CCP协议中部分与安全性有关的指令,同时针对Bootloader原理自定义扩展指令,以此作为通信协议,充分利用CCP协议的安全性,并简化通信过程。附图说明图1为本发明所述电动汽车电动空调控制器软件刷新系统的硬件结构框图。图2为本发明实例中电动汽车电动空调控制器软件刷新系统的空调控制器单片机存储空间划分示意图。图3为本发明实例中电动汽车电动空调控制器软件刷新系统的上位机软件流程图。图4为本发明实例中电动汽车电动空调控制器软件刷新系统下位机Bootloader程序流程图。具体实施方式如图1所示电动汽车电动空调控制器软件刷新系统的硬件结构框图,本发明包括装有上位机Labview软件的上位机、USB-CAN卡、贮存了Bootloader引导程序的汽车空调控制器,上位机实现将待更新的应用程序发送至CAN总线上,USB-CAN通信模块负责连接上位机和汽车空调控制器,实现上位机与控制器CAN通信的物理支持,预先在汽车空调控制器中存储的Bootloader引导程序在下载模式接收待更新的应用程序并存入存储器,在加载模式下加载应用程序,完成软件更新。通信协议在CCP协议基础上根据下载文件格式及Bootloader原理进行了自定义扩展,在充分利用CCP安全性的同时简化了通信过程。所述的上位机软件采用Labview平台进行设计,如图2所示,主要分为下载操作区和显示区。使用时,按照文件选择、读取、连接、下载等完成系统功能操作,在显示区显示连接和下载状态以及读取并经过处理的19文件。所述的USB-CAN卡采用NI公司的USB-9862。所述的汽车空调控制器主控MCU采用FreescaleMC9S12XD256单片机,此款单片机具备MSCAN模块,片内集成256KFLASH存储器,FLASH支持在线编程,满足应用程序通过CAN总线下载、更新的需求,CAN收发芯片采用TJA1050。本发明所述的系统包括步骤:S1、预先编写的Bootloader程序首次装入单片机需要通过BDM下载器,以后将长期贮存在芯片内部存储器中,执行加载程序或者下载应用程序功能。S2、应用程序编写完后,进行编译,在工程文件中生成待发送的S19文件。S3、启动上位机,找到文件所在路径,进行文件的读取解析并按照自主扩展的CCP协议进行重新组帧。S4、将Bootloader模式选择开关切换至下载模式。S5、建立上下位机连接,上位机发送握手信号,并等待下位机返回DTO判断是否握手成功,若发送成功,则等待启动下载命令,若连接不成功,则显示连接失败。S6、进行数据下载,按照自主扩展的CCP协议,上位机发送数据,下位机接受数据,并将数据正确存放在对应存储区。S7、数据传输完毕,上位机发送断开连接命令,上下位机结束通讯。S8、将Bootloader模式选择开关切换至加载模式,控制器开始执行应用程序。软件更新结束。所述的自主扩展的CCP协议,包括验证身份时使用的CONNECT,EXCHANGE_ID,GET_SEED指令以及断开连接时使用的DISCONNCET指令外,根据下载文件格式及bootloader原理参考CCP指令格式自定义扩展了如下两条指令。S19_Message:下载S19记录信息帧,携带每条记录中的基本信息,包括类型、数据地址、数据长度、校验和等信息,相应的CRO如下:0x1FCTRTYPEADD0ADD1LENCHECKS19_Data:下载S19记录数据帧,携带每条记录中的有效数据,相应的CRO如下:0x30CTRDATA0DATA1DATA2DATA3DATA4DATA5所述的下载文件格式为S19文件,S19文件是飞思卡尔推荐使用的标准文件传送格式,是一段直接烧写进ECU的ASCII码。上述步骤1中,考虑到Bootloader也是一段程序,不允许修改或擦除,为了避免与应用程序存储地址与其重合,需要对空调控制器单片机内部的存储单元进行划分,划分的单片机存储空间如图2所示,在编写应用程序时,要注意合理放置代码区间。上述步骤中,上位机labview软件流程图如图3所示,建立逻辑连接时,除了发送CONNECT命令外,本系统还使用了CCP协议中的GET_SEED与UNLOCK命令来获取密钥和解除保护状态,通过此种密钥机制保证系统安全。应用程序按顺序以指令的形式发送至下位机,待一条记录的CAN报文发送完毕后,经过一段时间的的延时,读取下位机返回的DTO,判断S记录是否发送成功。若发送成功,则继续发送下一条S记录,直到全部S记录发送完毕,此时再发送一条DISCONNECT指令,告知下位机发送完毕;否则显示“发送失败”。上述步骤中,空调控制器中的Bootloader程序流程如图4所示,通过模式切换开关决定是执行加载功能还是下载功能,在下载功能中,逻辑连接成功后才能接收上位机指令,接受完一条记录时要及时进行校验,回复上位机DTO,如果校验正确则将其存入存储区,否则等待上位机重新发送。当接收到DISCONNECT指令时,说明发送完成,这时Bootloader等待开关切换为加载模式。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1