基于OSEK/VDX标准的汽车仪表信息系统设计
来源:岁月联盟
时间:2010-08-30

图1 OSEK OS在OSEK/VDX中的层次模型 1.2 通信COM(Communication)OSEK/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网络管理NM(Network 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