如今人们对于汽车发动机性能要求的提高导致了微型控制单元的大规模使用,面对当今ECU开发过程中动辄上千万行的代码,传统的手写代码方式的弊端已暴露无遗,传统的发动机电控系统开发方式也以开发周期过长而不能适应现代开发要求。基于模型的设计方法因其图形化的设计理念,近年来得到了快速的发展。国外的工程师已经能够充分利用MATLAB/Simulink等平台来进行建模仿真,然而国内在此领域仍没有太大的突破。本论文在MATLAB/Simulink开发平台中,利用基于模型的设计方法,对飞思卡尔S12X这一单片机的接口模块进行设计,并基于RTW技术完成了C代码及A2L文件的自动生成,提高了开发效率。
首先解析了CAN总线的通信协议,介绍了ASAP标准产生的背景及意义,根据标定过程中不同设备间的接口分析各ASAP文件所描述的内容。分析了符合CCP协议的消息格式和8字节数据场信息,并以简单的CCP命令为例介绍数据场中各字节所代表的内容,进而解析了CCP接口程序的基本工作流程。
然后基于MATLAB/Simulink平台设计了ECU底层接口模块。通过对Simulink库中已有的对于CAN接收以及发送模块的分析,掌握了CAN模块的基本设计思路与方法并发现了其中的不足,在此基础上对CAN模块进行了完善,使之能够完成CAN通信,模块设计完成后通过目标语言编辑器完成了由Simulink模型自动生成目标C代码,并对模型进行了验证。
完成底层CAN模块的搭建之后,利用Stateflow有限状态机,完成了CCP模块的搭建。在解析了Simulink内原有的CCP模块之后,对其进行了功能上的补充,增加了FLASH烧写的功能,使CCP模块能行使其全部功能。通过调用main主函数文件控制代码的自动生成,最后通过描述在Simulink界面下的操作过程进一步完善表达了代码的自动生成过程。
最后基于Simulink平台设计ECU数据接口,主要控制实现ASAP2描述文件即A2L文件的自动生成,A2L文件既可以用A2L编辑器手工生成也可以基于MATLAB/Simulink中RTW技术自动生成,本文基于MATLAB/RTW技术自动生成A2L文件,最终与上位机ATI VISION标定软件进行通信,实现了模型的硬件测试及代码有效性检查。