一个复杂的嵌入式实时电控系统的开发往往是从系统需求定义开始,过程包括系统硬件的设计与实现,系统软件功能定义、编码、验证,直到最后的系统集成与测试。对软件工程师而言,开发中将面临硬件平台不断升级、软件功能复杂程度大幅增加和开发周期不断缩短的多重压力。因此,系统开发团队中软硬件开发人员首先必须要有很好的分工和合作,其次必须建立良好的软件架构,这样才能在提高开发效率的同时,降低系统的开发成本。
好的软件架构(模式或者是框架)能够为软件开发提供坚实的基础,它应该是很好组织起来的标准组件,并且拥有使开发者复用组件的代码库,这一点已成为当今软件开发行业,特别是嵌入式系统开发的基本要求。为了提高软件开发效率和软件代码的复用性,电控系统软件应采用分层、模块化的软件架构,应对层中以及层间的各软件功能块进行很好的封装,使之成为软件系统的“标准组件”,进而满足上述现代嵌入式系统的要求。在这种软件架构下,以模型为基础的软件设计方法和自动代码生成工具可以得到最充分的应用,从而能提高系统的开发效率和开发质量,以下即以电控共轨系统为例进一步说明电控软件的结构与开发流程。
表8-1为典型的电控共轨控制系统的软件架构,在该软件结构中,整个软件分为三层,即硬件层(Hardware Abstraction Layer)、中间层(Middle Layer)和应用层(Application Layer),各层软件根据需要实现的功能,又分为具有不同功能的子模块。图8-53所示为典型高压共轨系统软件模块。这样分层、模块化的软件架构,无论对控制系统的硬件平台更换或软件功能升级,只需要替换软件系统各层中的相应模块即可,控制系统的维护也非常方便。这与国际上通用的AUTOSAR(Automotive Open System Architecture)标准的核心思想基本类似。
表8-1 电控共轨控制系统软件架构
在表8-1和图8-53中电控共轨系统三个软件架构层中,分别包括的子模块有:
1.应用层
(1)油量的控制 包括预喷油量和主喷油量的计算,以及根据增压压力、大气压力、气温、水温、油温等物理量对油量的各种修正限制量功能,巡航控制功能,怠速稳定控制功能,加速过渡过程控制功能,起动控制功能,超速保护功能,冒烟限制功能等。
(2)提前角的控制 包括预喷间隔和主喷提前角的计算,以及根据增压压力、大气压力、气温、水温、油温等物理量对喷油正时的各种修正限制量功能,加速过程对喷油正时的修正,转速传感器误差对喷油正时的修正等。
(3)共轨系统高压泵的泵油角的控制 包括基本泵油角和泵油PID(Propor- tion Integration Differentiation,比例积分微分)控制量的计算。
图8-53 共轨系统中各层的软件功能模块
(4)目标轨压的控制 根据发动机工况,确定设定目标轨压。
(5)目标转速的控制 怠速闭环控制及其他工况的调速特性转速控制。
(6)对发动机各种状态的判断 如起动状态、怠速状态、加速状态、停机状态等。
(7)所有全局变量和标定MAP的定义。
(8)系统配置的定义。
(9)各数学函数的定义。(www.daowen.com)
(10)时间片任务分配函数的定义。
(11)中断任务的处理。
(12)主调度函数。
2.中间层
(1)完成对喷油泵油的驱动输出。
(2)故障诊断和处理。
(3)判缸逻辑和齿数校正。
(4)通讯协议的实现 包括CCP(CAN Calibration Protocol)协议、KWP2000(Keyword Protocol 2000)协议、SAE J1939协议等。
(5)开关量采集和输出。
(6)模拟量的采样及标定。
(7)发动机转速的计算。
(8)ECU上下电处理。
3.硬件层
(1)硬件寄存器配置。
(3)泵油喷油等执行器驱动函数的定义。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。