一、汽车电子软件架构
随着汽车总线技术的出现,传统的各控制器系统独立设计产生的问题越来越多,对汽车电子嵌入式(基础)软件提出了更高的要求。如保证总线消息对定时的统一性要求;总线数据的传输控制方式、数据流控制等硬件实现方式;总线数据解析,保证协议数据与应用数据之间的有效衔接和匹配;基于不同的电源供电方式,各总线节点的内部状态控制、电压等级状态同步、总线错误管理等。由此产生了相关国际组织(OSEK、VDX、HIS、EASIS、AUTOSAR等),这些组织试图定义和规范汽车电子或软件架构及工具链。
1、OSEK
1993年德国汽车工业界联合推出了“汽车电子的开放式系统及接口软件规范”,即OSEK(open system and the corresponding interfaces for automotive electronics)。1994年法国汽车工业界建立了相似规范VDX(vehicle distributed executive),此后OSEK 与VDX 合并形成最终的OSEK/VDX 规范体系(图1),并且广泛应用于汽车电子行业。
OSEK/VDX 分别定义了OSEK 操作系统OS(Operating System)和OSEK 实现语言OIL(OSEK Implementation Language), 以及数据链路层DLL(Data Link Layer)、交互层IL(Interaction Layer)和网络管理NM(Network Management)规范,其中数据链路层与交互层合并为OSEK COM 规范。在开发过程中又附加了3 个标准:OSEK/VDX 实时接口(ORTI)、适用于线控起动和线控制动的OSEK/VDX时间触发操作系统及OSEK/VDX 容错通信规范。
OSEK/VDX 很好地解决了汽车电子软件架构及基础软件标准的有无问题, 也是汽车电子软件架构领域第1个成型的行业标准,得到了各整车企业、零部件企业和软件开发商的广泛支持,特别是汽车电子控制领域的所有操作系统均符合OSEK 规范,目前OSEK/VDX 规范已升级为国际标准(ISO17356)。
2、2010年国内基于OSEK/VDX的汽车控制系统研究开发
①标题:OSEK/VDX嵌入式实时操作系统在汽车稳定性控制器中的应用
著者:郜文 李继来 梁华为
著者单位:中国科学院合肥智能机械研究所 中国科学技术大学自动化系
根据OSEK/VDX标准设计嵌入式实时操作系统,侧重于任务管理,资源管理部分的实现。并在自主开发的汽车稳定性控制器硬件在环仿真平台上进行验证。实验结果表明:在OSEK嵌入式实时操作系统上开发的控制平台系统能可靠的完成硬件在环仿真中的信号采集,信号发生,制动控制等功能,控制效果及实时性良好,且程序具有可靠的稳定性。加载了实时操作系统之后,其控制算法只需经过很小的改动就可以移植到新的平台上,提高了控制软件的开发效率。
②标题:基于OSEK/VDX乘用车车身CAN/LIN网络设计与实现
著者:李研强 李杨 王知学 李建新
著者单位:山东省科学院自动化所,
[page]
针对目前国内主机厂缺乏CAN/LIN网络的设计能力,提出基于OSEK/VDX规范的车身CAN/LIN网络的设计方法。设计了典型的车身网络架构,定义了帧的传输类型,对间接网络管理作了深入的研究,并且给出了间接网络管理中监督帧的设计方法及具体实现方式。同时对网络状态作了阐述,完善了网络管理的内容。最后利用德国 Vector 公司CANoe软件仿真和实物ECU进行了仿真和测试。
该论文是山东省重大科技专项“汽车车身网络及相关ECU系列电子产品的开发和产业化”(编号2007ZHZX10503)。
③标题:基于OSEK/VDX的操作系统任务调度算法的优化及实现
著者:毛成勇; 刘祥志; 成巍;
著者单位:山东省科学院自动化研究所山东省汽车电子技术重点实验室;
[page]
现在流行的嵌入式系统多采用基于优先级的抢占式任务调度算法,它能很好地保证高优先级的任务运行,但不能保证低优先级的任务运行; 对于同优先级下的多个任务的情况更是无能为力,基于OSEK/VDX此规范,提出了一种满足OSEK/VDX 操作系统规范的任务管理机制和任务调度算法。对EDF算法改进,基于改进的任务调度算法在μC/OS-II 内核予以实现。该算法要求在建立任务时确定任务的时限,当任务的时限达到时提高其优先级,保证该任务得以运行,使系统在保证高优先级任务得以运行的同时保证低优先级任务和同优先级下的多个任务也得以运行,从而保证了系统的实时性。
④标题:基于μCosⅡ的OSEK/VDX实时操作系统任务管理实现
著者:季力; 张宏杰;
著者单位:浙江机电职业技术学院电气系; 浙江大学信电系;
提出了一种满足OSEK/VDX操作系统规范的任务管理机制,通过修改μCosⅡ的任务调度算法,在Freescale的MC9S12系列芯片上成功进行了移植,实现了同优先级多任务的调度。
在OSEK/VDX 系统中,每个就绪态的进程被放入到其相应优先级的FIFO 队列,不同优先级的FIFO 队列构成一个队列组,该就绪队列组就是调度的基础。调度器首先搜索该队列组,找出包含就绪进程的优先级最高的队列,然后找到该队列中等待时间最长的进程,最后完成上下文切换。
设计了新的任务管理数据结构,在OS_TCB{}中增加了能够实现同优先级别任务链表的单向指针变量struct os__tcb *OSTCBEqu。
[page]
参考文献
[1] 陈虹 自主汽车电子软件架构技术战略解析与规划 汽车技术 2010,(6)
[2] 陈虹 汽车电子嵌入式基础软件产业链模式的实践与展望 汽车工程 2010,(6)
[3] 郜文 李继来 梁华为 OSEK/VDX嵌入式实时操作系统在汽车稳定性控制器中的应用计算机系统应用 2010,19(4)
[4] 李研强 李杨 王知学 李建新 基于OSEK/VDX乘用车车身CAN/LIN网络设计与实现 汽车电器2010,(3):19-22
[5] 毛成勇 刘祥志 成巍 基于OSEK/VDX的操作系统任务调度算法的优化及实现 山东科学 2010,(3)
[6] 季力 张宏杰 基于μCosⅡ的OSEK/VDX实时操作系统任务管理实现 自动化与仪器仪表 2010,(1)