论文部分内容阅读
随着电动汽车的电子化、智能化、和网络化程度越来越高,电动汽车的动力性、安全性和环保性得到大幅度提高,电控单元(ECU,Electronic Control Unit)的数量与日俱增。实践得知:ECU的软件需要通过升级来修复漏洞、增加功能,而ECU必须封装于机械外壳固定在车身,加之数量庞大,传统的拆卸方式对ECU升级导致静电损坏芯片、浪费大量人力物力,增加了电动汽车的生产成本和上市时间,制约了整车厂电动汽车的产业化。考虑到国外商业软件价格昂贵,且封闭技术细节,本文调研国内的整车厂生产线ECU升级的需求后,依托某款车型,独立自主开发出了一套ECU在线升级BootLoader系统,并实现了商业化应用。该系统使ECU在不拆盖,减少调试接口,不增加硬件的情况下,依靠PC端自主开发的软件,利用车身已有通信网络对ECU软件进行升级。本文借鉴Windows BootLoader的重装流程,将一般嵌入式BootLoader改进为Three-stage BootLoader方案,并使之适用于汽车ECU。Three-stage体现为:首先Back-door组件(后门程序,处于In User-Application Upgrade流程,即用户程序中升级)或者Recovery组件(恢复程序,处于In Recovery Upgrade流程,即恢复模式升级)响应升级请求,随后载入Flash-kernel组件(Flash内核)到RAM(random access memory),最后Flash-kernel组件负责升级事务。Three-stage思想将BootLoader的流程阶段化、功能递进化、自举升级简单化,且充分利用了RAM的掉电丢失、执行速率快的优点,保证了整体升级速率和汽车运行安全,同时提高了BootLoader的移植性,减少了对硬件的依赖。根据实际需求,采用MFC设计开发了PC端上位机,界面简洁、操作方便,其中增量更新模块实现了对新旧文件的增量代码提取,减少重复数据的传输;文件处理与解析模块实现了映像文件的PC端预处理,避免ECU端无效数据的处理。下位机中Back-door组件与应用程序集成,随时响应升级请求;Flash-kernel组件位于PC端,请求时载入到ECU中;Recovery组件固化在ECU端,识别并修复受损应用程序。三者都携带自定义的BootLoader协议,简称“BTL通信协议”。完成设计后,首先在实验室搭建平台分模块进行测试,随后进行模拟实车环境进行系统联调,最后在实车中对整体反复进行升级验证。实验结果表明:本文设计的ECU在线升级BootLoader系统满足时间(对于221KB的HEX文件,平均耗时59s)、稳定性、安全的指标,减少了成本,提高了整车厂生产线的效率。