这篇电子技术论文发表了控制器刷写效率的软件开发方法,通过对汽车控制器的升级,汽车的配置功能越来越多样化,为了满足市场对控制功能升级的需求,论文通过刷写控制器软件来升级配置功能,以下是对这种方法的开发和实现方法。
摘要:随着汽车市场对配置要求更新频率的增加,对整车厂而言,与配置和功能密切相关的控制器的更新也要提高效率来应对市场变化。针对仅需要更新控制器软件就可以满足配置或功能变化的情况,控制器刷写功能来升级功能是最直接有效的方式,但是由于软件的字节数较多,加之需要升级的控制器数量多,故刷写控制器需要较长的时间。生产上,其会影响生产线节拍和生产效率;而对于经销商,为客户升级车辆配置,花费时间长易引起客户的抱怨以及维修人员的调配。故如何提高刷写控制器的效率是整车厂需要解决的问题。文章提出一种软件开发方法,将控制器的软件分块开发,每个模块都有各自的功能,故功能更新时,只需要刷写有需要更新的软件模块即可,无需刷写所有软件。这样,在保证控制器客户功能实现的同时,提高了控制器在执行诊断刷写功能时的效率。
关键词:电子技术论文,诊断刷写,配置升级,软件开发,提高效率
1、背景与意义
随着汽车市场对功能的多元化要求越来越高,对配置升级的需求越来越频繁,整车厂为了适应变化满足需求,对与配置功能密切相关的控制器升级方式也层出不穷。针对只需要更新控制器软件即可以实现配置功能升级的情况,基于诊断功能刷写控制器的应用得到整车厂的青睐,无论是在生产线,还是在经销商处。但是,由于功能复杂和多元,控制器的软件代码字节数也增加很多,在加之有时需要刷写升级的控制器较多,这就很影响在线刷写时候的效率,刷写的软件字节数越多,所需要的时间越长,其对生产线上会影响生产节拍,经销商处则易引起客户抱怨,所以刷写效率是整车厂急需解决的问题。本文针对通过刷写控制器软件来升级配置功能情况,提出一种控制器模块化开发方法,目的是满足市场对配置功能升级需求的同时,降低刷写控制器软件所需要的时间以改善效率,以及促进产品设计开发的平台化发展。
2、控制器软件模块化开发方法
多数整车的配置功能由控制器的软件实现的,为了节省零部件开发和管理成本,整车厂开发控制器时硬件上尽量做到平台化,用软件差异实现不同的配置功能。故针对配置功能升级的情况,只需升级控制器软件即可实现。但由于控制器软件字节数多,在加之可能升级的控制器数目增加,故刷写软件的效率则显得尤为重要。针对效率提升,影响刷写控制器效率的主要原因是需要刷写的每个控制器的软件字节数多,即便升级的功能很简单,也需要刷写控制器的整个软件,尤其是底层和驱动软件,功能升级几乎是不涉及更改,但是却要重新刷写,这都影响刷写字节数和效率。故减小刷写软件字节数是最有效的方式。本文提出控制器软件模块化开发方法,就是基于配置和功能,将控制器的软件分模块,即分类,开发时按照所对应的模块进行开发,并且做好每个软件模块接口定义从而实现功能。这样开发的好处在于日后升级控制器时,根据不同升级配置的需求,仅更新对应模块的程序即可,刷写时也只需要刷写该模块的程序,而无需更新控制器所有程序,以达到减少需要刷写软件字节数从而提高刷写效率的目的。下面以组合仪表为例,详细阐述该软件开发和刷写方式。
2.1软件模块化
组合仪表作为行车电脑,需要集成的信息很多,显示屏图片信息,数值信息,设置信息等,故其软件开发很具有代表性。根据整车功能配置需求定义,可以将软件开发分为如图1模块。1)Systemblock:用于软件底层与控制器硬件接口。2)Calibrationblock:有些功能需要组合仪表参与学习,标定。该软件模块中可以集成该方面的参数,该模块软件组合仪表应用不多,例如空调控制器,动力方面的控制器的应用较多。3)Basicblock:主要集成网络层等信息数据传递的相关参数。4)HMIblock:主要是集成人机交互界面的信息。5)Applicationblock:主要是集成控制器功能应用信息。由于模块中的Applicationblock中集成了组合仪表的多数功能,如果功能区别明显,也可以划分子模块进行开发。根据车型配置信息,将与组合仪表相关的功能逐个分解到各个软件模块中进行开发,并且根据接口定义开发每个block之间的软件,做到各个模块之间完美调用以实现功能。
2.2具体实现
图2举例说明一个功能的实现如何将对应的软件程序进行模块划分。基于上图实例,如果日后升级车辆配置,例如增加前雷达配置,故更新的内容是屏幕切换雷达图,波纹状态指示等信息,这样至于基础软件或者底层驱动根本就无缺更新,这样只需要刷写,HMI和applicationblock即可。以此方式,来减少更新软件需要刷写字节的数量来提高效率。如果applicationblock也有子模块,这样只需要刷写子模块软件即可,如此刷写效率会进一步提高。
3、实践分析
基于以上理论基础,进行了仿真分析,其思路是定义一些简单功能,将控制器的软件进行模块划分式开发,假设需要更新配置,则刷写对应的block验证是否有效。图3为基于配置信息,将控制器的功能代码分解成个逐个模块,当然刷写时候必然要加载驱动,例如擦除,检查刷写数据的可靠性等。图4和图5为对控制器的软件模块刷写的刷写代码,目的是验证基于该开发方式的控制器在功能升级时,能否实现刷写成功。将需要刷写的程序模块,放在指定路径下,刷写时加载该路径后,等待控制器是否能被刷写成功,由图6得,刷写成功。
4、结论
基于以上分析,可知本文提出控制器软件模块化开发来提高控制器软件刷写效率是可以实现的。开发阶段将车辆配置与控制器软件功能对应后,逐个将每个功能分解到各自的软件模块中进行开发,且做到每个模块的接口定义从而实现控制器的功能。故在产品更新或者功能升级时,只需将与需要升级功能的软件升级即可,则务必升级全部软件,以此提高控制器软件刷写效率和产品的平台化开发。
参考文献
[1]陆叶.ISOBootloader控制器安全高效实现程序刷写.中国集成电路,2011,20,5,79-82.
[2]王玲利,孟晨兴.基于CAN总线的车载控制器标定系统设计.汽车与配件,2014,43,39-40.
作者:张宏 李阳春 李洪雷 单位:华晨汽车工程研究院
推荐期刊:《计算机与网络》(半月刊)创刊于1975年,由信息产业部电子无线通信专业情报网主办。本刊办刊宗旨为认真贯彻执行国家对科技期刊制定的有关政策和法规,坚持本刊的电子技术类科技期刊属性,充分发挥本刊科技信息载体的作用。