WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
一、前言WWW_PLCJS_COM-PLC-技.术_网
CAN(Controller Area Network)通信以其方式灵活、实时性高、抗干扰能力强和较强的容错能力以及低成本的优势,已被普遍应用于汽车多控制器间的通信以及控制器的在线标定系统中[1>,如BENZ、BMW、JAGUAR、ROLLS、POLO等车。作为整车控制神经中枢的发动机控制器,在不断地执行复杂的发动机控制算法程序的同时,也要不断地进行多ECU的通信以及标定操作指令的执行。随着发动机控制算法的复杂化,多ECU间的通信和监测标定的数据量也随之加大,从而占用了很大一部分发动机控制器的资源,增大了CAN总线的负载,很容易发生CAN通信负载率过高、通信塞车、影响数据的正常传输等问题。文中主要以所开发的高压共轨电控系统为应用背景,一方面介绍了高压共轨电控系统控制器的CAN接口硬件电路的设计;另一方面介绍了实时多任务系统的CAN通信模块的软件结构设计,从而可以有效地解决CAN通信模块的瞬时负载率过高的问题,改进了CAN通信模块的程序结构,在一定程度上优化了发动机控制器的CPU资源,同时为整个CAN通信软件系统的扩展提供了一个有效的方法。WWW_PLCJS@_COM%-PLC-技.术_网
二、CAN通信模块的硬件接口设计WWW_PLCJS※COM-PLC-技.术_网(可※编程控※制器技术门户)
所开发的高压共轨柴油机控制器采用Motorola公司功能强大的32位微处理器MC68376,它内部集成了多个智能化的、独立的功能模块,带有片上CAN210B协议的控制器模块(TouCANTM)[4-5>,从而为整个控制器的开发以及CAN通信模块的硬件电路的设计提供很大的硬件支持。WWW_PLCJS_COM-PLC-技.术_网
为了实现TouCAN模块的CAN通信,设计相应的CAN控制器接口、抗干扰等硬件电路是十分必要的。图1为高压共轨柴油机控制器的CAN通信硬件电路模块,其中DCP5S3-100为光电隔离电源,用于隔离CPU电源与CAN系统所需电源,避免CAN系统的电压波动影响CPU的正常工作电压。WWW_PLCJS@_COM%-PLC-技.术_网
WWW※PLCJS_COM-PL#C-技.术_网(可编※程控※制器技术门户)
利用两片高速光隔器件6N137(U1,U2),构成隔离电路,用于隔离电流扰动,提高系统的抗干扰能力。P_L_C_技_术_网——可——编——程——控-制-器-技——术——门——户
U3为PHILIPS公司生产的CAN控制器接口芯片PCA82C250,是连接CAN控制器和物理总线的接口,它最初为汽车中高速通信(最高达1Mb/s)应用设计,可以提供对总线的差动发送能力和对CAN控制器的差动接收能力。采用PCA82C250可以增加通信距离,提高系统的瞬间抗干扰能力,保护总线,降低干扰。WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
三、实时多任务系统WWcW_PLCJS_COM-PLC-技.术_网
随着控制系统控制算法的复杂化,为了满足整个高压共轨柴油机电控系统的实时性和软件系统的可扩展性要求,文中采用自主开发的实时多任务系统调度内核OS,对整个高压共轨电控系统控制软件进行管理和调度,在保证整个控制系统实时性的基础上,对整个控制器资源进行优化。WWW.PLCJS.COM——可编程控制器技术门户
本系统的OS为一可裁剪的、基于优先级的可剥夺式实时多任务动态内核,提供任务调度与管理、时间管理、任务间同步与通信、中断服务等功能。最多可以实现对256个任务的管理和调度,其绝大部分代码由移植性很强的ANSIC编写,只有小部分和微处理器相关代码用汇编语言编写,因此系统内核具有较好的可移植性。此外,操作系统内核(OS)能够实现基于任务优先级的调度机制(优先级高的任务可以随时抢占优先级低的任务的CPU使用权),允许对任务进行动态的创建和删除。通过对调度器实行开、关操作,可以实现内核的不可剥夺型和可剥夺型功能的切换。每个任务作为整个应用的一部分,被赋予一定的优先级,每个任务都有自己的一套CPU寄存器和堆栈空间。实时操作系统下的任务通常是一个无限循环,都可能处在以下5种状态之一:休眠态、就绪态、运行态、等待态及中断态,由操作系统内核提供的API实现如图2所示的任务状态的切换。WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
——可——编——程——控-制-器-技——术——门——户
图3为实时多任务系统下的高压共轨柴油机电控系统嵌入式系统结构图,整个控制系统包含4个部分:硬件平台、硬件抽象层、嵌入式实时操作系统(OS)、嵌入式应用程序(控制策略算法)。其中硬件抽象层位于操作系统和硬件之间,包含了系统中与硬件相关的大部分功能,通过特定的上层接口与操作系统进行交互,向操作系统提供底层的硬件信息,并根据操作系统的要求完成对硬件的直接操作。由于引入了一个中间层次,屏蔽了底层硬件的多样性,操作系统不再直接面对具体的硬件环境,而是面向由这个中间层次所代表的逻辑上的硬件环境,因此把这个中间层次叫做硬件抽象层(HAL,hardware abstraction layer),在目前的嵌入式领域中通常也叫做板级支持包(BSP,board support package)。在实现上,BSP是一个介于操作系统和底层硬件之间的软层次,包括了系统中大部分与硬件相关的软件模块。WWW_PLC※JS_COM-PmLC-技.术_网
在功能上包含两部分:系统初始化及与硬件相关的设备驱动(如信号采样模块、功率驱动模块以及CAN通信驱动模块等)。嵌入式实时操作系统为整个控制系统的调度中心,调度内核根据硬件抽象层提供的控制系统传感器信号等信息,同时考虑控制系统的实时性要求,实现对整个控制系统控制算法程序基于优先级的任务调度机制,从而保证了控制系统中重要的控制功能实时性的要求,并且保证了整个软件系统中各个任务执行顺序的有序性和执行周期的可确定性,为整个软件系统的扩展提供了一个很好的平台。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
四、CAN通信模块的软件结构设计WW.W_PLC※JS_C,OM-PL,C-技.术_网
在整个车辆控制系统中,CAN通信负责多个通信站点的数据传输工作。图4为高压共轨电控系统的CAN通信网络,整个系统具有4个CAN通信站点,高压共轨柴油机控制器为整个CAN通信网络的核心。在系统正常工作时,高压共轨柴油机控制器与变速器控制器通过CAN通信实时地进行转矩速度控制,同时传送车辆状态数据至汽车仪表控制器。WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
在发动机标定过程中,发动机控制器还接收和执行标定指令,实时上传监测标定数据。由此看来,CAN通信模块在整个发动机控制系统中占有很大的比重,大量的CAN数据通信与传输占用了一定的控制器CPU资源,尤其在标定过程中,由于标定与监测的数据量大,从而造成CAN通信网络负载率增加,发动机控制器中CAN通信与标定模块所占用的CPU资源也随之增加,使得用于执行发动机控制算法的CPU资源相对降低。因此,合理规划CAN通信软件模块的结构,将有助于优化控制器CPU资源,提高电控发动机系统的实时性。WWW_PLC※JS_COM-PmLC-技.术_网
WWcW_PLCJS_COM-PLC-技.术_网
图5、图6分别为传统程序结构与实时多任务系统下的控制系统软件结构。在传统的程序结构中,CAN通信软件模块作为系统循环中的一个子模块,而在实时多任务系统下,CAN通信软件模块被分成了几个任务序列。由图5可以发现,传统的软件结构至少存在2个问题。WWW_PLCJS※COM-PLC-技×术_网(可编程控※制器技术门户)
WWW_PLCJ-S_COM-PLC-技.术_网(可-编程控-制器技术-门户)
WWW_PLC※JS_COM-PLC-技.术_网(可编程控※制器技术门户)
(1)整个系统程序是一个循环结构,且对每个大模块而言,由于程序进入的条件不同,因而CPU所执行的程序长短有极大的差异,使整个循环的执行周期具有较大的不确定性,因此造成CAN通信模块执行周期会随着不同模块的进入条件不同而发生或长或短的变化,在最恶劣的情况下,系统仅仅是CAN通信模块的循环结构,从而会造成CAN通信的负载率过高,影响到系统通信的实时性。WWW_PLCJS@_COM%-PLC-技.术_网