基于OSEK/VDX标准的汽车仪表信息系统设计

来源:岁月联盟 作者:洪运富 李伟 盛 时间:2010-08-30
摘要  介绍了当前在国际汽车界占据主导地位的汽车系统开放式平台---OSEK/ VDX标准,并用于指导设计了一套以16位单片机MC9S12DG128为核心的汽车仪表信息系统。 关键字 OSEK/VDX; RTOS; MC9S12DG128; CAN总线; LIN总线   随着电子工业的快速,从传统的基于机械力工作的机械仪表到基于电测原理的电器式仪表,从模拟电子式仪表到最新的步进电机式全数字仪表,汽车仪表技术在不断的进步和提高。文中介绍的汽车仪表信息系统,是第四代汽车仪表。它作为汽车CAN总线上的一个节点,可以在仪表盘上显示车速、发动机转速、里程、冷却水温度、蓄电池电压、燃油液位等数据,并具有汽车诊断数据接口,读出保存的数据可以分析汽车的运行情况,也可以作为汽车黑匣子使用;软件设计基于国际流行的OSEK/VDX标准,与汽车的其他部件之间具有通用的接口,便于扩展。 1 OSEK/VDX标准汽车电子系统在整车中所占的比重逐年增大。从发动机、变速箱的控制到防抱死、悬挂控制,直至巡航、通讯、在线诊断等 ,控制内容越来越多,控制系统越来越复杂。为了解决汽车中软件含量增加、在操作系统和通信网络方面重复开发、软件工程师的效率不能满足高质量产品的要求等诸多问题,欧洲汽车行业在20世纪90年代提出了车内多控制单元的开放式分布控制标准OSEK/VDX(Offene Systeme und deren Schnittstellen fur die Elektronik im Kraftfahrzeug/Vehicle Distributed eXecutive)。其含义是汽车电子系统的开放平台和统一接口,主要包括操作系统OS、通信COM、网络管理NM和OSEK实现语言OIL等四个标准。这些标准是欧洲汽车行业先进开发技术的,提供了将各种先进汽车电子设备有机集合在一起的网络化嵌入式系统的开发规范。 1.1 操作系统OSOperating SystemOSEK/ VDX操作系统(OS)定义了一个小的、可伸缩的实时操作系统RTOS,对于存储容量有限和功能专用的嵌入式系统是非常理想的。从运行在8位微处理器上的系统到运行在32位处理器上的系统都可以使用这个OS。操作系统可管理实时任务、强化定时器的功能(报警)、共享资源,使用事件进行任务的同步和管理进程间的通信,OS在OSEK/VDX中的层次模型如图1所示。OSEK/ VDX 实时操作系统是整个系统的软件平台。传统控制系统采用前后台系统,即后台长期地运行着一个主控程序,前台是与硬件相关的中断处理,这种系统在实时性的处理,以及系统的可扩展性方面都有缺陷,对于庞大系统的管理困难很大。OSEK/ VDX的操作系统可以对中断级、系统行为级和任务级3个级别的事件进行处理。其中,中断级被赋予最高的优先级,它是系统与外界交互的直接手段,将影响系统的实时性;系统行为级被放在其次的位置上,这些行为是系统进行实时性控制的实现方法,以应用程序形式存在,并用来完成某种功能的任务级,其优先级最低。此外,操作系统还提供了任务管理、调度、事件管理(如用于任务间通讯的邮箱、消息队列等) 、内存资源管理、报警和出错处理等诸多功能。操作系统使OSEK/ VDX的整体管理更加容易,人们更多需要关注的是任务本身而不是操作系统。因为系统对于任务的管理基于优先级,一旦任务的优先级确定了,则其余的工作完全由操作系统来调度。


图1  OSEK OS在OSEK/VDX中的层次模型 1.2 通信COMCommunicationOSEK/VDX的通信COM定义了一个应用程序内或者应用程序之间进行任务间或者处理器之间通信的接口和协议。该协议提供标准API服务,每个标准都可以独立操作。通信力求独立于协议,并使其在任何环境下都能灵活运用。为了实现这个目标,OSEK/VDX建立了五层模型(见图2)。

图2  OSEK/VDX通信模型

与COM一起最常用的网络硬件是控制器局域网(CAN),它已成为工业标准网络协议,应用于汽车和工业领域。该规范并不排除其他网络协议,如以太网的TCP/IP协议、点对点协议或者其他专用协议,并且在单一的COM环境中,多个硬件网络标准可以混合使用。COM规范定义了异步通信模型,应用程序在恢复运行之前不必等待消息,并且当它得不到请求的消息时,也不会被阻塞,消息的内容和使用方法与COM无关。OSEK COM 允许0 长度的消息存在。在内部通信情况下,交互层IL ( Interaction Layer) 使消息数据立即发送到接收方;在外部通信情况下,IL 将1 个或多个消息压缩成指定的交互层协议数据单元,并把它们传递到下层处理。COM 任务间的通信机制可通过调用StartCOM(),StopCOM( ),SendMessage()和ReceiveMessage()等系统服务函数进行数据交换。 1.3网络管理NMNetwork Management)OSEK/VDX网络管理规范定义了监控静态网络中节点的算法,提供了一个控制网络管理组件的应用程序接口API,扩展了网络提供的状态和配置信息。网络管理最初来源于汽车环境,因此网络被假定是静态的。在静态网络中,网络上所有可能的节点都是已知的,并且是固定的,但是在一个应用中并不是每一个节点都有效。任意一个节点都能被定义,如导航系统、娱乐设备和安全设备等;每一个节点都能在规定的间隔内获得整个网络的状态信息。OSEK/VDX的NM为网络监控提供了两种机制:一种是通过监控应用的消息进行间接监控;另一种是对于特定的网络管理利用标记机制进行直接监控。OSEK NM的应用主要包括以下几个部分:◆ OSEK/VDX NM 与应用程序的接口(API) ;◆ 节点监控的算法;◆ OSEK/VDX NM 与OSEK COM 的接口;◆ 转换到睡眠状态的算法;◆ OSEK/VDX NM 协议数据单元(NMPDU) 。一个应用系统中网络管理与其他部分的关系如图3所示。

                         图3、网络管理环境

 1.4  OSEK实现语言(OSEK Implementation Language为了达到软件可移植的目标,OSEK OIL 规范提供一种在特定CPU 中配置OSEK 应用的机制。每个CPU对应一个OIL描述,所有的OSEK系统对象用OIL 对象来描述。OSEK 应用的OIL 描述是一组OIL 对象的组合,CPU 是这些OIL 对象的容器。OIL 明确地为每个OIL 对象定义了所有标准属性。每个OSEK应用可以定义附加的特殊执行属性和引用并限制每个属性的取值范围。OIL 中的对象包括:CPU (处理器) 、OS(操作系统) 、AppMode (应用模式) 、ISR ( 中断服务) 、Resource ( 资源) 、Task(任务) 、Counter (记数器) 、Event (事件) 、Alarm(报警器) 、Com(通信子系统) 、Message (消息) 、Ipdu (交互层协议数据单元) 、NM(管理)等。汽车API 标准的出现是在开发时间和降低成本、提高软件质量和模块的可移植性上迈进了一大步。不同的一致类、不同的调度模式和静态配置的特征保证了OSEK/ VDX OS 能广泛地运用在不同的场合,适用于不同的硬件。而OSEK/ VDX操作系统内核又不局限于汽车行业,充分说明了其强大的生命力。现在有很多提供符合OSEK/ VDX 的操作系统供应商,如WindRiver、Motorola、ETAS 、Sysgo、Accelerated Technologies 和Realogy 都在推动OSEK/ VDX的和应用。 2 汽车仪表信息系统汽车仪表是汽车中不可缺少的组成部分,负责记录并显示汽车的各种数据,其主要包括车速表、里程表、发动机转速表、油量表、气压表、电压表等(系统结构如图4所示)。其核心内容是实现汽车仪表及全车运行数据的数字化与信息共享。由图4可知,本系统主要由中央控制器、数据存储模块、数据采集模块和诊断接口等部分组成。仪表中央控制器是本系统的核心部分,主要任务包括数据收集、数据存储和管理分析以及数据交换。数字仪表及仪表板以具有LIN接口的仪表机芯为特征;所有仪表机芯均以Freescale公司的8位单片机为核心,实现步进电机、十字线圈、液晶、数码管以及LED指示灯输出。手持诊断设备具有大屏幕LCD及按键,通过自定义专用总线与中央控制器相连,主要功能包括:黑匣子数据下载、实时数据下载、配置数据交互,在线故障分析与诊断等。           

图4、汽车仪表信息系统结构框图

2.1仪表中央控制器仪表中央控制器的核心采用Freescale公司的16位单片机MC9S12DG128。基本功能包括通过LIN总线与数字仪表进行通讯交换数据、发布控制指令驱动步进电机等;通过CAN总线与汽车的其他总成交换数据、发布控制命令;通过诊断总线与手持式设备交换数据,输出实时运行数据、输出记录数据、接受配置指令;实现对多路模拟量、开关量、频率量、周期量的实时采样与监控; 具有车载设备所要求的可靠性、EMC等性能。 2.2、步进电机的使用新一代仪表与先前仪表的最显著区别就是仪表机芯的变化。由于一般动圈式指示仪表抗震性差、过载能力弱、指针易抖动等弱点,而动磁式十字交叉机芯也存在一致性、通用性差的缺点,迫切需要一种一致性、通用型、可靠性好的驱动机芯。步进电机刚好满足这些要求,它在工作原理上做出技术创新,通过线包与磁钢间产生电磁转矩驱动指针工作。步进电机式汽车仪表由微控制器完成各种模拟信号的采集,经过换算后直接控制步进电机,再由步进电机驱动指针,在刻度盘上指示被测模拟信号。步进电机式仪表与动圈式或者动磁式十字交叉线圈仪表相比有显著特点:    ◆ 指示精度高,一致性比较好;    ◆ 重复性和通用性好;    ◆ 可靠性和稳定性好;◆ 步进电机的驱动和控制相对比较简单;当今国外发达国家普遍使用全数字式汽车仪表显示装置,绝大部分是步进电动机式汽车仪表,并准备向更高方向发展。本系统选用Freescale公司的步进电机接口驱动芯片,带有2路步进电机驱动接口。 2.3、中心控制器软件设计本文的汽车仪表信息系统的软件设计是在免费的嵌入式实时操作系统uC/OS-II的基础上,通过修改uC/OS-II实时系统内核,使它符合OSEK/VDX协议从而实现开发目的。uC/OS-II是一个抢先式的内核,即已经准备就绪的高优先级任务可以剥夺正在运行的低优先级任务的CPU使用权,这个特点使得它具有良好的实时性。uC/OS-II提供的主要功能包括任务管理、进程调度、任务间通讯及内存管理等。 3 结束语OSEK/ VDX是汽车ECU 开发的新的通用国际性标准,采用OSEK/ VDX 规范开发的实时系统能够提高软件模块的移植效率、实现软件模块的重复利用及在不同电子控制单元之间的通信。OSEK/ VDX规范已有很成熟的实现,并且有功能强大的开发环境,采用OSEK/VDX 进行汽车电控单元开发已成为发展趋势。  【1】      OSEK/VDX Network Management ,Concept and Application Programming Interface ,Version 2.5.3 26th-July-2004【2】      罗克露等译.OSEK/VDX汽车电子嵌入式软件编程技术.北京航空航天大学出版社,2004【3】      邵贝贝.单片机嵌入式应用的在线开发方法.清华大学出版社,2004

图片内容