论文部分内容阅读
为了提高研发效率、缩短研发周期、加快升级换代节奏,基于模型的设计方法成为了当前汽车领域的研究热点。发动机作为汽车最重要的部件,其控制技术的开发成为重中之重,本文正是针对发动机控制平台的开发而展开的。在平台开发的初始阶段,研究了发动机的硬软件架构,分析了对于带有嵌入式实时操作系统的程序架构。发动机控制系统对实时性有较高的要求,不同任务对实时性的要求也有所不同,要首先满足核心任务的实时性指标,然后考虑任务调度与协调。因此需要有一套合理的任务划分体系作为基础,用以保证所有任务在满足实时性指标的前提下正常运行。控制架构中,实时性要求非最高级任务采用嵌入式实时操作系统μC/OS-Ⅱ进行管理,而对实时性要求最高的任务由外部中断直接处理。论文根据上述机制,建立了发动机控制模型框架。为了提高开发效率,缩短开发周期,使用MATLAB/Embedded Coder工具箱作为平台开发主要工具,利用自动代码生成技术,并结合MATLAB脚本语言定制符合要求的平台开发环境。因此,首先研究了在Simulink平台开发嵌入式程序的一般流程,结合Simulink自带的ERT系统分析其自动生成的代码。自动代码生成技术是如今嵌入式开发技术的发展趋势,但是基于ERT系统生成的代码并不能直接运行,并且不满足μC/OS-Ⅱ系统的程序结构。论文基于ERT系统,开发了基于μC/OS-Ⅱ系统的多任务模式程序架构。架构中,编写一系列脚本文件用于控制模型配置与代码生成。系统目标文件用以控制整个代码的生成过程,回调函数文件用于配置模型的参数,主程序模板文件用于控制生成符合μC/OS-Ⅱ系统主程序结构的文件,钩子函数文件在代码生成的最后阶段调用Code Warrior自动编译生成的代码。在构建的环境下,还建立了μC/OS-Ⅱ系统的任务模块和中断模块。最后,论文根据上述环境与模块,建立了测试模型,其重点是测试论文建立的程序框架是否满足μC/OS-Ⅱ系统的任务调度机制。在生成的文件中,添加了相应的测试代码,不同的任务控制不同的LED灯。在实验中,通过示波器观测不同端口电压的变化情况,分析任务的运行情况,满足事先的分析,表明在论文构建的框架下生成的代码,能够满足μC/OS-Ⅱ系统的任务调度机制。