基于MPC555的发动机电控系统的嵌入式编程接口库设计
本文介绍的柴油机电控系统嵌入式软件平台就是面向汽车电子,遵循OSEK标准,应用于汽车动力总成控制的系统平台。 软件平台由微型系统内核和应用编程接口库组成。嵌入式操作系统内核负责任务调度及事件处理等,编程接口库负责将开发常用的算法和MPC555底层硬件的驱动函数进行控件级封装,供用户调用。在嵌入式系统中,开发人员通过调用编程接口库中已有的API函数,就可以实现常用运算功能以及常规硬件操作。
图1 发动机电控系统层次图
整个电控系统包括硬件平台、底层驱动、嵌入式软件平台和上层用户四个层次。各个层次关系,如图1所示。
硬件平台简介
发动机电控系统硬件平台主控CPU为MPC555,它是一款高性能的32位单片机,是专为汽车电子、航空航天、智能系统等高端嵌入式控制系统所设计的芯片。其独特之处在于其具有浮点运算单元,支持浮点代码的直接编程;此外,MPC555还具有可编程的时间处理模块,可通过对该模块的独立编程,实现对发动机曲轴、凸轮轴等复杂周期信号的处理,无需外接单独的CPU,从而大大简化了软、硬件设计。
图2 发动机电控系统硬件电路结构框图
以MPC555为核心控制单元,辅以相应的输入信号处理、输出控制和通讯单元设计的发动机电控系统硬件电路结构框图,如图2所示。
嵌入式操作系统内核简介
该嵌入式操作系统是以MPC555/MPC556单片机为硬件运行平台,参照欧洲OSEK标准,构建的超微型实时安全的嵌入式操作系统内核。该系统为用户提供各种任务调度、事件处理及中断响应机制,并由操作系统管理各个任务之间的切换和信息传递。
为满足系统实时性的要求,操作系统任务管理采用基于任务优先级的可抢占式任务机制,任务之间通过消息邮箱和消息队列传递变量和信息。另外,系统内核利用开放源码机制,通过裁减与移植,可以支持多种国际主流处理器。
该嵌入式操作系统内核的功能结构,如图3所示。
图3支持汽车电子的嵌入式操作系统内核结构图
嵌入式编程接口库设计
应用编程接口库的设计是将发动机电控系统需要的常规算法和硬件基本操作封装为函数形式,嵌入在操作系统中,为开发人员提供一个友好安全的软件平台。
该嵌入式编程接口库的结构,如图4所示。
图4 支持汽车电子的嵌入式编程接口库结构图
嵌入式基础编程接口库
嵌入式基础编程接口库是指各行业在电子控制方面通用的编程接口库。该库利用现有车辆数据作为模拟数据进行控制算法和线性插值算法库函数验证,数据结构符合 ASAP2标准。该接口库为用户提供了一整套开发中常用的算法函数和基本操作,对典型的算法和操作进行控件级封装,为应用程序提供一个完整的通用的系统调用函数库。
该函数库主要包括:
1. 2D、3D线性插值算法接口库:在二维、三维表中,经过线性插值得到与输入量对应的函数值,用于发动机控制参数查表算法。
2. PID控制器算法接口库:PID控制器是一种线性控制器。它根据给定值与实际输出值构成控制偏差,将偏差的比例、积分和微分通过线性组合构成控制量,主要用于控制喷油输出信号。
3. 平滑滤波处理算法接口库:主要用于对采集的模拟信号进行平滑和去抖处理。4. 其他汽车电子控制系统中,常用的控制算法和信号处理函数接口库。
嵌入式基础编程接口库的设计有两个目的:一是方便调用应用程序,增加程序可靠性和编程效率;二是希望通过将处理方法标准化,在不改变程序结构的情况下,可以将程序言在不同的硬件平台上进行移植,免去了软件开发人员对一些典型算法和操作的重复编程。
嵌入式专用编程接口库
嵌入式专用编程接口库,是指针对特定柴油机和ECU的硬件特殊需要设计的系统专用编程接口库。该接口库的设计符合OSEK操作系统调用规范,为用户提供底层硬件MPC555的各个功能模块的驱动,并针对汽车电子完成了基本的数据处理工作,提供软件方面的可调用函数。嵌入式专用编程接口库主要包括:
1. 模拟量输入检测及处理接口库:发动机的温度、压力等传感器信号以电压形式被电控单元ECU的模拟量通道采集。信号采集方式可以是需要时调用采集函数,也可以设置成QADC单元自动按定时器周期顺序采集。在系统初始化时,用户可根据具体情况分别设定各个通道的采集方式。
2. 开关量输入/输出接口库:用于对离合器、刹车等开关量信号采集并做去抖处理,结果赋值给指定的全局变量,供用户需要时读取。传感器电源、涡轮增压器控制等开关量输出,则通过直接调用相应函数由引脚输出高低电平实现。I/O口的引脚方向在系统初始化时根据硬件设计设定。
3. 周期量输入检测及输出控制接口库:MPC555单片机内部集成的时间处理单元TPU自
- 汽车电子嵌入式软件编程接口库设计(07-09)