OSEK/VDX实时操作系统的研究与应用
2010-03-20陈晓霞苑文举
陈晓霞,苑文举
(长春工业大学计算机科学与工程学院,长春130012)
引言
为满足日益庞大复杂的汽车电子控制软件的开发需要,1993年欧洲汽车工业界联合推出了OSEK/VDX标准。OSEK/VDX[1]是应用在模块和静态实时操作系统上的标准,由主要的汽车制造商、供应商、研究机构以及软件开发商所发起。OSEK,是指德国的汽车电子类开放系统和对应接口标准(open system s and the corresponding interfaces for automotive electronics),OSEK/VDX规范从实时操作系统、软件接口、通信和网络管理等方面对汽车的电子控制软件开发平台作较为全面的定义与规定。而VDX则是汽车分布式执行标准(vehicle distributed executive),后者最初是由法国独自发起的,后来加入OSEK团体。两者的名字都反映出OSEK/VDX的目的是为汽车电子制定标准化接口。
本文主要介绍了一种遵循OSEK规范,并在的基础上,设计开发了一种应用到CAN网络通信中的节点通信的嵌入式实时操作系统。
1 OSEK OS与μC/OS-II的特点
本文针对OSEK/VDX OS介绍了其主要特点[2],重点分析了它的运行机制。OSEK/VDX具有实时性、可移植性、可扩展性3个特点。本文就是根据这3个特点来构造一个符合CAN网络通信的操作系统。
μC/OS-II是一个著名的源代码公开的内核,它的主要性能特点是:源代码公开,可移植,可固化,可裁剪,抢占式,多任务,可确定性,实用性和可靠性。该操作系统都有成功应用的实例,这些应用的实践是该内核实用性和可靠性的最好依据。
2 OSEK OS的运行机制的分析
2.1 进程(TASK)管理和调度
OSEK规范把进程分为基础进程和扩展进程。图1和图2是基本任务和扩展任务的状态转移图。
图1 基本任务
图2 扩展任务
2.2 同步机制
OSEK提供了两种同步机制,即对共享资源的互斥访问机制和事件机制。系统在处理多个进程对共享资源的互斥访问时,采用信号量对临界区数据或资源加锁。在某一时刻只能有一个进程访问资源,但是某些操作可能会出现优先级反转的情况,即当一个高优先级的进程试图访问一个已经被较低优先级的进程占用的资源时,则该高优先级的进程必须等待,直到低优先级的进程释放该资源。而此时有介于这两个优先级之间的进程可能就会先于较高优先级来抢占资源,这就造成了优先级反转。为了避免这种情况发生,OSEK操作系统采用了优先级最高限度协议(Priority Ceiling Pro tocol)[3]。使用该协议同时解决了死锁的问题。
2.3 符合类
为了使OSEK操作系统能够在有不同计算能力(不同CPU、不同存储容量)的ECU上运行,OSEK定义了4个符合类,分别是BCCl、ECCl、BCC2、ECC2。每一个符合类包括一组操作系统特性,代表一类应用程序的需求,也包含了这些操作系统特性运行所需要的硬件需求。
3 OSEK/VDXOS的应用
笔者所研究的项目旨在通过OSEK OS来实时监控车载网络中的各个节点,通过即时更新的配置信息,判断其当前的可操作性和工作状态。车载网关和网络节点由CAN总线连接,使用CAN 2.0B[4]协议通信。网络节点将相应的配置信息(包括故障码和由传感器采集到的相关参数)装入周期性发送的专用网络管理报文中。车载网关负责收集这些配置信息,并通过基于IPv6的无线网络将其发送至远程故障诊断服务器。待服务器分析故障信息,得出相应的处理信息后,再将处理信息发回至车载网关,并由其下发至网络节点以执行相应操作。显然,OSEK/VDX OS的实时性[3]更符合项目的需求。图3为该应用的硬件连接流程。
使用自行设计的CAN节点构建逻辑环路通信,该节点采用Microchip公司的PIC18F2580作为中央控制单元,PCA82C250作为CAN转换器,节点间的通信使用CAN 2.0B协议。考虑到今后的扩展需求,拟使用29位扩展标识符。车载网关采用Samsung公司S3C2410为CPU的ARM开发板,使用Microchip公司MCP2510 CAN控制器与总线通信,将经过裁剪后的μC/OS-II操作系统应用于其中。
图3 硬件连接流程
CAN2.0协议通信的接收机制是通过设置过滤寄存器和屏蔽寄存器来过滤29位扩展标识符,以判断是否需要接受总线上当前传输的CAN报文。CAN报文标识符域和数据域的具体使用情况如图4所示。
图4 CAN报文标识符域和数据域的具体使用情况
本文通过OSEK OS的实时性,可移植性和可扩展性[6]为CAN网络节点的通信提供了一套符合OSEK/VDX规范的操作系统。该操作系统是通过将裁剪后的μC/OS-Ⅱ移植到该系统中,此操作系统对CAN网络节点的通信进行了相关的任务管理,在节点通信的过程中对其进行了中断处理,以及对不同事件的处理进行了分类,这样就保证了网络节点通信的精确和方便。
4 测试结果
将CAN节点与车载网关以总线连接,通过车载网关可以提取如下数据以验证稳定逻辑环路通信的形成过程,同时也为下一步的理论研究提供了宝贵的数据资料。如表1所列。
表1 网络节点形成稳定逻辑环路通信的数据
5 总 结
根据实际项目的需要,在CAN网络中实现了OSEK OS的研究与应用。该操作系统支持两种类型的网络管理,通过提取的数据,对各网络节点形成稳定逻辑环路通信的过程加以定量的分析和验证。在此基础上与项目已有部分相结合,提出了远程故障诊断系统的方案。
[1]The OSEK/VDX Group.OSEK/VDX Operating System version 2.2.
[2]The OSEK/VDX Group.OSEK/VDX System Generation,OIL:OSEK Implementation Language version 2.3[EB/OL].(2003-10-15)[2010-07].http://www.osek-vdx.org.
[3]KM Zuberi.EM ERALDS-OSEK:A Small Real-time Operating System for Automotive Control and Monitoring[EB/OL].(2003-10-15)[2010-07].http://www.sae.org.
[4]CAN Specification V 2.0.
[5]罗蕾.嵌入式实时操作系统及应用开发[M].北京:北京航空航天大学出版社,2005.
[6]袁铭蔚,孙泽昌,陈觉晓.一种嵌入式实时操作系统——OSEK/VDX OS[J].测控技术,22(12):45-47.