————————————基金项目基金项目::重庆市科技攻关计划基金资助项目(2009AB2244)作者简介作者简介::蒋建春(1975-),男,副教授、博士研究生,主研方向:嵌入式系统软件,汽车电子;刘 涛,硕士研究生 收稿日期收稿日期::2011-11-29 修回日期修回日期::2012-03-09 E-mail :Dreamliutao@分布式实时系统的通信中间件分布式实时系统的通信中间件设计与设计与设计与实现实现蒋建春1,2,刘 涛1(1. 重庆邮电大学汽车电子与嵌入式系统研究所,重庆 400065;2. 重庆大学光电技术及系统教育部重点实验室,重庆 400044) 摘 要:面向汽车电子的分布式实时系统通信中间件,须处理大量周期通信或非周期通信事件,并对时间有着严格的限制,不能有效进行通信时刻控制。
为此,参考AUTOSAR 规范,从实时性保证与柔性配置管理角度出发,提出一种分布式实时应用的通信中间件。
该通信中间件具有可重用性、可裁减性和可配置性,可应用于多种操作系统及硬件平台。
通过通信中间件的运行示例分析,验证了该通信中间件的可行性。
关键词关键词::分布式实时系统;中间件;实时性;柔性管理;调度机制;AUTOSAR 规范Design and Realization of Communication Middlewarefor Distributed Real-time SystemJIANG Jian-chun 1,2, LIU Tao 1(1. Institute of Automotive Electronic and Embedded System, Chongqing University of Posts and Telecommunications, Chongqing 400065, China;2. Key Lab of Optoelectronic Technique and System of Ministry of Education, Chongqing University, Chongqing 400044, China)【Abstract 】Facing to Distributed Real-time Systems(DRS) of automotive electronic, communication middleware must handle many aperiodic and periodic communication events under strict time requirements, they can not control communication time. This paper proposes a communication middleware of distributed real-time application referencing AUTOSAR standard by requirements of real-time and flexible configuration mechanism. It has reusability, tailorability and configurability, can hide the difference of communication protocols and be used to different operation system and platforms. Application case analysis of a communication middleware show its feasibility.【Key words 】Distributed Real-time Systems(DRS); middleware; real-time; flexible management; scheduling mechanism; AUTOSAR standard DOI: 10.3969/j.issn.1000-3428.2012.21.066计 算 机 工 程 Computer Engineering 第38卷 第21期V ol.38 No.21 2012年11月November 2012·工程应用技术与实现工程应用技术与实现·· 文章编号文章编号::1000—3428(2012)21—0249—04 文献标识码文献标识码::A中图分类号中图分类号::TP3911 概述缩短系统开发生命周期(System Development Life Cycle, SDLC)并提高软件重用性是开发分布式实时系统软件过程中重要的关注点。
通信中间件集中统一管理了大量有严格时间限制的周期或非周期通信事件,以其自身的复杂度换取了开发应用的便利,受到开发者及用户越来越多的青睐。
通常采用的CORBA 中间件技术,作为一种抽象的规范定义并不限制具体的实施方案,为分布式应用提供了很好的互操作性、平台无关性、语言无关性。
Mini CORBA 和Real-Time CORBA 规范由CORBA 裁剪而来,以便满足分布应用实时性需求及嵌入式环境需求。
Mini CORBA 针对嵌入式应用中有限的资源环境(如CPU 处理能力、内存容量、功耗等),裁减中间件动态分配以适应嵌入式应用,但并没有对实时性要求提供保障,应用于分布式实时系统中通信的可靠性大大降低。
Real-Time CORBA 支持固定优先级的实时应用,提供对象调用操作端到端的可预测性,但是Real-Time CORBA 缺少在不同DRS 间的端对端通信时间的柔性配置管理,不能有效进行通信时刻控制,同时其对象动态调用操作并不适用于嵌入式环境[1-2]。
针对分布式实时系统的嵌入式环境应用,通信中间件必须具有通信实时性保证、通信时间柔性配置管理、以静态方式进行接口调用等特点。
为此,本文参考汽车电子AUTOSAR 规范软件分层架构及通信服务的模块功能[3],设计并实现了一种具有实时性保证、柔性配置管理,适用于汽车电子嵌入式系统的分布式实时应用的通信中间件,进行柔性配置后应用于通信实例中,并进行了运行分析。
2 总体架构设计通信中间件是定义于应用程序和操作系统、硬件平台之间的一个中间层,是定义的一组较为完整的、标准的应用程序通信接口,以实现分布式网络中各节点的外部通信及应用程序之间的内部通信。
欧洲汽车制造商和他们的一级供应商建立的AUTOSAR 规范,旨在促使软件架构由一系列相对独立的构件组成、借由统一接口及端口映射机制250 计 算 机 工 程 2012年11月5日达到应用于汽车电子控制单元(ECU)的分布式实时系统软件快速开发目的,仅为开发者提供了指导,而非完整的实现方案[4-5]层架构中(如图1(a)所示,将软件分成了应用层、AUTOSAR RTE(Real-Time Environment)和基础软件层(BSW),其中基ECU 抽象层和微控制器抽象层。
(a)AUTOSAR 软件架构 (b)通信中间件架构图1 软件架构由于Mini CORBA 和Real-Time CORBA 应用于汽车电子的局限性,根据通信中间件的定义,本文在AUTOSAR 分层基础上,根据通信服务模块的关联影响分析[6]提出了通信中间件总体架构,如图1(b)按功能差异将通信中间件划分为VFB(Virtual Function Bus)、通信协议栈、通信管理及通信调度4个层次。
VFB 层用于保证应用程序接口、数据类型与通信中间件标准接口、数据类型的一致性;通信协议栈是消息通信的实际承载者,保证数据的期望传输;通信管理及通信调度机制是实时性保证的重要手段,并且其调度点及实时性相关参数可由用户灵活配置,体现通信中间件的柔性配置管理的特点,用户可通过自由配置通信中间件参数而使其满足分布式实时系统的不同应用场合的需求。
因此,中间件实现的主要功能如下:(1)支持大量适应分布式应用的周期信号及非周期信号传输;(2)向应用软件构件(SW-C)提供标准通信服务接口,可将不同SW-C 接口映射、封装,形成可直接调用的标准接口;(3)提供通信管理机制控制及监控周期或非周期信号的传输过程;(4)合理的通信调度机制保证信号传输的实时性; (5)参数配置(如调度点时刻、信号周期等参数)策略保证柔性配置管理的需求;(6)支持多协议传输功能,提供完整的常用车载网络(CAN 、LIN 、FlexRay)通信协议栈;(7)可通过柔性配置管理对网络功能进行选择及裁剪。
3 通信中间件的设计与实现3.1 通信任务模型在分布式网络中通过总线连接多个ECU ,每个ECU 通信中间件(如图1(b)所示架构)根据各自功能进行柔性配置后,ECU 之间即可通过通信中间件进行信号交互,主要包含了信号属性、周期属性及传输路径属性等的配置,这些属性通过管理机制决定了通信任务的运行状况,并同时通过调度机制保证了信号的实时性[7-8]。
应用通信中间件的分布式网络具有通信任务集S(t)={Si}和通信事件集E(t)={Ei},其中,Si 为ECU-i 的通信任务集,包含多个通信任务Ti,j(1≤j ≤NSi ,NSi 为ECU-i 的通信任务数),Ei 为ECU-i 的通信任务集,Ei 包含多个通信事件EVi,j (1≤j ≤NEi ,NSi 为ECU-i 的通信事件数)。
通信任务Ti,j 由ECU-i 中相应的周期或非周期通信事件EVi,j 触发。
假设ECU-1的通信任务集S1包含 5个通信任务,T1,1和T1,2为周期分别是T 和2T 的周期信号发送任务,分别由周期事件EV1,1和EV1,2触发; T1,3为非周期信号发送任务,由非周期通信事件EV1,3触发;T1,4为信号接收任务,由非周期通信事件EV1,4触发;T1,5为网络管理(NM)报文的周期发送任务,由NM 周期通信事件EV1,5触发。
通信中间件各功能的设计及实现将围绕任务集S1展开。
3.2 通信接口映射机制通信中间件参照AUTOSAR 规范设计具有开放式标准定义的通信接口,但由于应用程序组件开发者的相异性,其数据结构类型及通信接口存在很大差异,如需保证不同组件间能正常通信,那么通信中间件必须实现屏蔽此种差异的功能。
文献[4,9]给出了屏蔽差异的RTE 设计方法。
保证数据类型一致性需建立SW-C 数据类型与通信中间件标准数据类型(包含参数、变量、标识符等)间的映射,屏蔽通信接口的差异需将SW-C 通信端口进行映射、封 装,形成符合中间件的标准接口,再将其连接于相应的通信服务,从分布式系统程序文件结构角度来看,保证数据类型一致性建立了一个包含数据类型定义的头文件,而屏蔽通信接口差异则建立了一个接口映射的可执行文件。