




已阅读5页,还剩30页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SmartSAR RTE基于 AUTOSAR 的汽车电子软件运行 时环境及其生成 (删减版) 浙江大学浙江大学 ESE 工程中心工程中心 彭威彭威 硕 士 学 位 论 文 论文题目 SmartSAR RTE基于 AUTOSAR 的 汽车电子软件运行时环境及其生成 作者姓名 彭威 指导教师 姚敏 教授 杨国青 博士 学科(专业) 计算机应用技术 所在学院 计算机科学与技术 提交日期 2011/1/19 A Dissertation Submitted to Zhejiang University for the Degree of Master of Engineering TITLE: SmartSAR RTE-Runtime Environment and its Generation for Automotive Electronics Software based on AUTOSAR Author: Peng Wei Supervisor: Prof. Yao Min Ph.D Yang Guoqing Subject: Computer Application Tec. College: Computer Science and Tec. Submitted Date: Jan. 2011 浙江大学硕士学位论文 摘要 i 摘要摘要 近年来,市场对汽车电子功能的需求开始变得愈发强烈,使得汽车制造商不 得不依赖于全行业统一的标准化体系,以及通用性、互换性更强的软件来降低软 件的复杂度。汽车开放体系架构(AUTOSAR)致力于解决软件功能对硬件的依 赖、软件系统标准化和软件的可重用性,正发展成为汽车电子软件行业中的广泛 标准。 本文在调研了 AUTOSAR 的运行时环境(RTE)规范的基础上,结合课题组 在嵌入式汽车电子软件领域的研究现状, 设计了一个基于 AUTOSAR 标准的嵌入 式汽车电子软件运行时环境,实现了软件组件运行和通信等 RTE 的主要概念,并 设计和实现了一个运行时环境的源代码生成工具。经过实验表明,本文的研究内 容能缩短基于 AUTOSAR 的汽车电子新产品的研发时间和测试时间,快速构建 ECU 软件,从而帮助企业节省成本和实现快速的市场反应。 本文的主要工作可以总结为如下几个方面: 1) 对 AUTOSAR 标准及开发方法论、已有的汽车电子软件解决方案提供商 的产品和开源组织提供的基础开发平台做了深入细致的调研,为基于 AUTOSAR 规范的 RTE 实现架构奠定了理论基础。 2) 设计了 RTE 实现框架和运行机制,提供给软件组件网络无关的通信支持 和运行环境,抽象 ECU 基础软件和底层实现。 3) 设计和实现了一个 RTE 代码生成器,根据 ECU 配置描述文件自动生成 RTE 源代码,实现快速 ECU 软件开发。 关键词关键词: AUTOSAR,运行时环境,代码生成,软件开发工具 浙江大学硕士学位论文 Abstract ii Abstract In recent years, the market demand for automotive electronics functions is becoming increasingly strong, making the car manufactures have to rely on standardized architectures, interchangeability stronger software components to reduce software complexity and costs. AUTOSAR is intended to provide software standardization and improve reusability. This paper investigates the AUTOSAR runtime environment (RTE) specification. Based on the laboratory research in automotive electronics software, we designed an implementation of AUTOSAR RTE, to achieve the main RTE concepts: execution and communications of software components. Then a source code generator is implemented to generate the proposed RTE code for AUTOSAR applications. Experiment results show that the proposed RTE and code generator can shorten the development and test time of new automotive electronics products, and construct new ECU software rapidly to help companies achieve rapid market response. The main work of this paper can be summarized in the following aspects: 1) Investigated the development of AUTOSAR standards and methodologies, existing automotive electronics software solutions and open source development platform, laid a theoretical foundation for an implementation base on AUTOSAR RTE. 2) Designed a framework and operational mechanism for RTE implementation that provides software components communications support and operating environment and abstracts underlying ECU implementation. 3) Designed and implemented a code generator based on Artop for the proposed RTE implementation. The code generator can automatically generate RTE source code according to ECU configuration description file. Keywords: AUTOSAR, runtime environment, code generation, software development tool 浙江大学硕士学位论文 目录 I 目录目录 摘要 .i Abstract ii 第 1 章 绪论 1 1.1 课题背景 1 1.2 国内外发展现状 2 1.2.1 汽车电子发展现状 2 1.2.2 AUTOSAR 发展现状 . 3 1.3 课题研究内容及意义 4 1.4 本文结构 5 1.5 本章小结 5 第 2 章 研究基础 6 2.1 领域基础 6 2.1.1 AUTOSAR 体系结构 . 6 2.1.2 开发方法论 12 2.2 技术基础 15 2.2.1 SmartSAR 15 2.2.2 SmartRTE 16 2.2.3 Artop 16 2.2.4 代码生成 17 2.3 本章小结 17 第 3 章 SmartSAR RTE 功能设计 . 18 第 4 章 SmartSAR RTE 代码生成 . 19 第 5 章 SmartSAR RTE 测试与应用 . 20 第 6 章 工作总结与展望 21 6.1 工作总结 21 6.2 工作展望 22 参考文献 23 攻读硕士学位期间主要的研究成果 26 致谢 27 浙江大学硕士学位论文 图目录 II 图目录图目录 图 1.1 世界汽车电子市场发展趋势 . 2 图 2.1 AUTOSAR 体系架构14 6 图 2.2 软件组件描述模型 . 8 图 2.3 软件组件 S/R 通信 . 10 图 2.4 AUTOSAR 开发流程 . 12 图 2.5 RTE 协议阶段23 . 14 图 2.6 RTE 生成阶段23 . 14 图 2.7 SmartSAR 平台总体结构 15 图 2.8 Artop 架构图 16 浙江大学硕士学位论文 表目录 III 表目录表目录 未找到图形项目表。未找到图形项目表。 浙江大学硕士学位论文 第 1 章 绪论 1 第第1 1章章 绪论绪论 1.11.1 课题背景课题背景 随着汽车的广泛普及以及人们开始对汽车的安全、环保和智能化使用等要 求,汽车电子产品的数量急剧增长,在整车成本中的比例也越来越高。作为汽车 与信息两大产业交叉的新兴行业,汽车电子产业集软件与嵌入式系统技术、半导 体技术等于一体,正在全球范围内蓬勃发展。汽车电子软件系统的日益复杂并且 在汽车电子中所占比例逐渐上升,不仅推动着嵌入式操作系统和基础软件等底层 支撑软件的发展,同时也促进了应用开发支持软件技术的发展,形成汽车电子产 品开发环境技术这样一个行业。 复杂的汽车功能越来越多,使得汽车电子软件的开发也越来越复杂,汽车行 业的软件工程师们不仅需要面对规模越来越庞大的 ECU 软件,同时面对着使用 不同开发支持软件进行协同开发的挑战,包括控制算法建模和系统设计、ECU 软 件开发和测试标定以及仿真模拟软件等。与此同时,整车企业都定义各自的工具 链及其软件架构的需求规范1,造成了软件复用能力差的低效 ECU 软件开发方 式。为控制汽车软件的复杂性和多样性,提高软件复用,降低开发成本等问题, 欧洲车系厂商主导的汽车开放体系架构(AUTOSAR)致力于建立一个开放、标 准化的软件体系架构及开发工具链,将大大降低系统的成本,提高其质量,对全 球市场产生了重大影响。软硬件标准化是汽车电子发展的趋势, 。在时间和成本 的严格要求下,企业使用具有标准化架构和集成开发软件工具链将能在残酷的市 场竞争中占得上风2。 SmartSAR3是浙江大学嵌入式系统工程中心自主研制的汽车电子软件开发 运行平台。它提供一套符合 AUTOSAR 流程的工具链组成的集成开发环境、底层 的嵌入式实时操作系统和支撑软件。SmartSAR 平台是国内领先的汽车电子软件 开发平台, 对填补国内同类技术空白, 缩小同国外先进汽车电子技术水平的差距, 培育我国的汽车电子产业具有重要的现实意义。 浙江大学硕士学位论文 第 1 章 绪论 2 1.21.2 国内外发展现状国内外发展现状 汽车电子经过多年的发展,已经成为汽车工业发展的关键部分。只有通过紧 盯全球及国内汽车电子行业的发展现状和最新技术,才能正确指导未来产业的前 进方向。 .1 汽车电子发展现状汽车电子发展现状 汽车产业是当今世界上全球化程度以及和其他产业关联度最高的产业之一。 消费者的个性化使用和政府对环保、节能要求的不断提高,使得汽车上的嵌入式 功能越来越多。微处理器等半导体工业的飞速发展更是使汽车制造商采用更多的 元器件和车身网络来满足市场的发展需求,一些豪华车上的电子产品已占到整车 的 50%以上,汽车工业已经进入更加智能和可靠的新时代4。汽车行业付出了巨 大的努力来用电子系统替代机械系统,使得汽车电子产品成为为驱动全球经济增 长的关键点之一。 20 年前全球汽车电子产品市场的销售额只有 40 亿美元, 到 2000 年为 600 亿,到 2008 年更是到达 1500 亿美元(见图 1.1) 。如今汽车行业的技术 创新有 70%来自电子系统5。 图 1.1 世界汽车电子市场发展趋势 中国的汽车市场是全球汽车市场发展最快的一个,汽车电子业的发展相对于 汽车市场而言更加迅猛,但是相比于国外新车汽车电子支出平均占整车价值的 26.2%,高端车将近占 40%,我国的汽车电子产品所占比重才刚刚超过 10%6。 除了所占比重偏低,我国的汽车电子行业还在一个不容回避的短板,那就是对核 浙江大学硕士学位论文 第 1 章 绪论 3 心元器件技术和软件产品的研发能力仍十分落后,尤其在发动机、地盘和变速箱 等核心器件的控制系统技术上,几乎被国外汽车电子巨头垄断4,目前全球著名 的一些汽车零部件供应商,比如博世、德尔福等均已大规模抢占中国市场,占据 了国内近 70%的市场份额。 随着从新产品的提出到投入市场的周期越来越短,汽车制造商的创新压力越 来越大,这主要是由于创新严重依赖于电子系统,生产者努力减少整体复杂度渐 增的系统开发时间,这也就决定了各个生产商之间除了商业竞争,他们也必须一 起合作定义一个标准参考体系架构,以缩短整体开发时间。未来的车型将普遍受 益于全行业统一的标准化程序,以及通用性、互换性更强的软件。由欧洲的主要 汽车制造商以及供应商合作制定的AUTOSAR系统架构标准受到了汽车工业界的 强烈关注并开始进入实现阶段,正在全球汽车工业中扮演一个关键软件技术的领 导者角色。 .2 AUTOSARAUTOSAR 发展现状发展现状 AUTOSAR (AUTomotive Open System ARchitecture),即汽车开放系统架构, 是由主要的汽车制造商以及供应商合作开发的一种开放式标准化的汽车软件系 统结构,目前总成员数已达到 150 多个7。AUTOSAR 的主要目标是通过建立独 立于硬件分布的软件架构以提高软件的可重用性,提供规范的汽车电子软件开发 方法论,制定基础软件应用接口规范,提高系统的灵活性,方便系统的改动和升 级,可以在开发早期发现错误,从而提高开发效率和减少开发费用。 AUTOSAR 将取代或扩展较早的专有软件体系解决方案,使得软件将从硬件 中分离出来并有机会分开销售。 采用 AUTOSAR 后软件工程师们可以不再因 ECU 的更新换代而重新设计软件组件,汽车制造商可以在不同微处理器中进行选择, 因为他们不再依赖于某一独特的硬件体系8。 目前 AUTOSAR 已经公布 4.0 版本, 市场上也出现了多个软硬件公司推出的开发工具,许多汽车电子软件供应商都推 出了较为完善的支持 AUTOSAR 开发流程的工具,比较知名的有: Vector Informatic 德国 Vector 公司针对 AUTOSAR 开发了包括 DaVinci 开发工具套件以及 浙江大学硕士学位论文 第 1 章 绪论 4 MICROSAR 基础软件模块等在内的完整解决方案9。用户可以基于 Vector 的 Davinci Developer 进行 ECU 的 AUTOSAR 软件架构设计,生成 ECU 各控制算法 模块的软件接口代码。 dSPACE dSPACE 开发的 SystemDesk 可以进行组件建模、系统设计和仿真,其代码生 成工具可直接从 MATLAB/ Simulink/Stateflow 为以图形形式指定的功能生成产 品级代码10。 EB EB 公司开发的 tresos 产品族实现了 AUTOSAR 流程的 ECU 基础软件开发, 它提供一个基于 Eclipse 的配置和代码生成工具,与 EB Auto-Core 一起可以生成 完整的 ECU 程序11。 1.31.3 课题研究内容及意义课题研究内容及意义 运行时环境(RTE)位于 AUTOSAR 架构中的中间层,向软件组件间以及软 件组件和基础软件组件间提供通信服务,使软件组件可以独立于网络拓扑独立设 计和开发。运行时环境生成器是 AUTOSAR 开发流程中定义的自动化 RTE 代码 生成工具,可以生成完整的 RTE 实现代码。对基于 AUTOSAR 架构的汽车电子 软件而言,RTE 生成器是十分重要且必不可少的,它可以大幅缩短代码生成和开 发时间,有利于显著提高产品级代码的质量。 本文在研究 AUTOSAR 的运行时环境的基础上,设计了一种符合 AUTOSAR 规范的 RTE 实现架构,并基于此架构实现了一个 RTE 生成器。本文的主要贡献 在于: 1) 探索基于 AUTOSAR 标准的汽车电子运行时环境技术。本文研究基于 AUTOSAR 标准的运行时环境技术,实现了 AUTOSAR 标准的核心功能, 对于我们紧跟国际领先的汽车电子技术,提高汽车电子软件的可移植性 和相互协同能力,特别是 AUTOSAR 的最新发展有一定的现实意义。 2) 设计和实现了上述运行时环境的自动化代码生成器。本文通过设计和实 浙江大学硕士学位论文 第 1 章 绪论 5 现基于 AUTOSAR 标注的运行时环境的代码生成工具,实现运行时环境 源代码的自动化生成,为本文课题组开发的汽车电子软件开发平台完成 了重要的功能。 本文的研究内容对于本课题组所属实验室在汽车电子软件方面的整体战略以 及后续研发做出了有益的探索,对填补了国内同类产品的空白、打破国外的技术 限制、满足汽车电子领域的重大应用需求,以及对我国汽车工业及相关电控行业 的发展具有重要的推动意义。 1.41.4 本文结构本文结构 根据本章所述的课题背景和研究内容,本文其余部分的内容结构安排如下: 第二章为研究基础,介绍了本文研究的领域基础和技术基础。着重介绍了 AUTOSAR 体系架构方法论和运行时环境技术。 第三章为 SmartSAR RTE 设计和实现,详细阐述了 SmartSAR RTE 的实现框 架和运行机制。 第四章为 SmartSAR RTE 代码器的设计和实现,介绍 SmartSAR RTE 代码生 成工具的总体结构,各个模块的实现策略。 第五章为应用实例,首先介绍 RTE 的配置和优化方法,并配置了一个采用 AUTOSAR 流程开发的车身控制应用实例。 第六章为工作总结和展望,总结了本文的工作以及对未来工作的展望。 1.51.5 本章小结本章小结 本章介绍了本文课题背景、研究现状和课题研究内容及意义,阐述了汽车电 子软件运行时环境的重要性和现实意义。 浙江大学硕士学位论文 第 2 章研究基础 6 第第2 2章章 研究基础研究基础 汽车电子软件的开发是软件工程与嵌入式系统技术的综合,不仅涉及嵌入软 件和硬件基础平台,也还需要一系列辅助设计和开发工具的支持。 2.12.1 领域基础领域基础 本文的研究内容为基于 AUTOSAR 标准的运行时环境及生成。AUTOSAR 标 准在已有汽车电子软件标准之上定义了一个网络运行时环境12,希望能提高汽车 电子软件的可移植性和相互协同能力。 .1 AUTOSARAUTOSAR 体系结构体系结构 AUTOSAR 定义了电子控制单元(ECU)上的标准模块化的软件架构,从底 向上包括微控制器抽象层(MCAL) 、ECU 抽象层,基础服务层(BSW) 、运行时 环境(RTE)和应用软件层总共五层,如图 2.1 所示。AUTOSAR 以提高系统整 合能力为主要目标,定义虚拟功能总线来抽象硬件和网络,使得在系统设计阶段 早期就已完成软件的整合13;通过标准化交互接口和软件组件模型,从而提高各 层的软件复用,加快系统集成和产品推向市场的速度,降低开发成本。 Microcontroller Application Layer Mircrocontroller Drivers OnBoard Device Abstraction System ServicesMemory Services Communication Services Memory Drivers Communication Drivers Memory Hardware Abstraction Communication Hardware Abstraction I/O Hardware Abstraction I/O Drivers Complex Derivers AUTOSAR Runtime Enviroment (RTE) 图 2.1 AUTOSAR 体系架构14 虚拟功能总线(VFB)15是对底层基础软件和网络拓扑的抽象。通过虚拟功 能总线,应用层的软件组件可以使用预先定义的端口来通信,至于通信是 ECU 浙江大学硕士学位论文 第 2 章研究基础 7 内部的还是 ECU 之间的, 只有经过系统配置完后, 软件组件被部署的具体的 ECU 上时才能确定。因此,虚拟功能总线使得软件组件的内部实现和系统设计并行开 发,同时也使软件组件可以独立于具体 ECU 和车身网络的实现,从而可以在系 统设计的早期就确定系统中的软件组件。 MCAL 层是典型底层物理设备的抽象,由各设备的驱动程序组成。BSW 层 是由众多提供标准化功能和接口的基础服务软件组件构成。AUTOSAR 定义了一 套确定的基础软件模块,包含通信服务、IO 抽象、存储管理和错误诊断以及操作 系统等。基础服务软件间可以通过标准化的接口自由使用其他模块提供的 API, 比如操作系统提供的众多服务,COM 提供的通信功能等16。 RTE层是整个AUTOSAR软件架构的核心, 为应用层中的软件组件提供统一、 独立于硬件拓扑的运行环境,是实现虚拟功能总线概念的主体。RTE 采用底层基 础软件提供的服务来实现上层软件组件的实际运行、数据通信等。 应用层由 ECU 上的所有位于 RTE 之上 AUTOSAR 软件组件构成,是系统外 在功能的具体表现。应用层把位于它之下的整个 ECU 软件当作是虚拟功能总线 的实现。 软件组软件组件件实现实现 为了降低电子软件成本和快速推向市场,提高产品质量,汽车工业界开始广 泛的采用组件模型17。AUTOSAR 定义了多种软件组件类型以适应不同的需求, 如基础软件组件(BSW)和 RTE 之上的应用层软件组件。应用层软件组件又按 照是否和硬件相关分为应用软件组件、传感-执行软件组件和标定软件组件三种。 最普通的是应用软件组件,它主要实现复杂的控制算法,属于功能的控制核心部 分,通过向传感-驱动软件组件发送信号来驱动外部硬件设备。 软件组件是一组完成相关控制算法的功能的最小集合,使用的形式化软件组 件模板18来描述其外观和内部实现行为。 AUTOSAR软件组件描述包括组件类型、 内部行为、接口、数据类型定义等。组件类型描述了软件组件的端口方向和端口 的接口类型。多个软件组件可以通过连接器组合成一个组合组件,以表示一个更 浙江大学硕士学位论文 第 2 章研究基础 8 大的功能集合,这种层次嵌套的组合模式,可以隐藏组件内部的功能组合,对外 只暴露允许的通信端口。所有 ECU 上的软件组件本身就构成一个 ECU 的软件组 件。 根据通信方向,端口分为供型端口和需型端口。端口的接口类型描述了端口 的通信类型:发送-接收(S/R)和客户-服务(C/S)两种。接口由数据元素(或 C/S 的操作)构成,前者可以使供型端口向需型端口发送数据,后者使需型端口 向供型端口发送命令执行某个操作,如图 2.2 所示。 图 2.2 软件组件描述模型 端口构成软件组件的外观,定义了软件组件与其他软件组件之间通信的内容 和方法。根据这些信息,就可以在系统设计阶段把软件组件的功能添加进来,而 不必等到软件组件的具体实现19。软件组件的具体实现由内部行为来描述。内部 行为中的运行实体是组件运行和 RTE 调度的基本代码单元, 它使用上述端口的通 信功能。内部行为还定义了 RTE 事件,由 RTE 事件来激活运行实体的运行。RTE 事件分:周期事件、数据接收事件、操作调用事件等,由 RTE 来决定 RTE 事件 的触发。 运行实体只能通过端口与其他软件组件通信, 它们不被允许直接访问RTE 之下的基础软件。 运行时环境运行时环境 运行时环境在 AUTOSAR 软件架构中位于应用层和基础软件层之间, 是虚拟 浙江大学硕士学位论文 第 2 章研究基础 9 功能总线在一个具体 ECU 上的运行时表现形式。RTE 对应用层的软件组件封装 了下层的基础软件,并利用下层的基础软件比如操作系统、COM 等的功能实现 向上层软件组件提供运行、组件间通信和生命周期控制,类似于向应用层提供基 础软件的接口20。 1. 生命周期管理生命周期管理 RTE 向软件组件提供运行环境,负责管理软件组件的运行实体的运行。RTE 按照软件组件的内部行为中定义的 RTE 事件,在适当的情况下触发某个 RTE 事 件以激活相对应的运行实体运行。 所有软件组件的运行实体都必须由 RTE 事件激 活才能运行。此外,RTE 还向 ECU 状态管理器提供控制整个 RTE 运行的开关接 口,以便在系统停机或睡眠状态下开启和关闭 RTE。 2. 组件通信实现组件通信实现机制机制 软件组件的运行实体在通过端口与其他软件组件通信是通过调用RTE API函 数而非直接实现的, 都在 RTE 的管理和控制之下。 每个 API 遵循统一的命名规则 且只和软件组件自身的描述有关,比如图 2.3 中软件组件“SWC1”的运行实体 “A” 通过供型端口 “switch” 的向外发送名为 “a” 的数据元素, 软件组件 “SWC2” 的运行实体“B”通过需型端口“cmd”接收这个数据,则运行实体“A”实现时 调用的 RTE API 是 Rte_Write_switch_a,运行实体“B”实现时调用的 RTE API 是 Rte_Read_cmd_a。由此可见软件组件在实现与其他软件组件通信时,不依赖于具 体的 ECU 软件平台,也不依赖于它所处的网络环境和与它通信的对方的位置。 软件组件可以独立地实现其功能算法,并且从一个 ECU 迁移到其他 ECU 上时, 无需修改实现代码,从而真正实现虚拟功能总线的概念(见图 2.3) 。 软件组件的实现假定 RTE 能够保证提供唯一的上述 RTE API。 软件组件感知 的 RTE API 仅由端口和通信内容决定其函数名格式,如果不同软件组件恰好有同 名端口,并且端口的类型也一致的情况下,RTE 无法保证 API 的唯一。所以 RTE 在实现API的时候会在函数名上加上软件组件的类型名以保证不同类型的软件组 件的 RTE API 不会冲突。RTE 通过在由软件组件确定的 RTE API 和 RTE 实际实 现的 API 做个映射来关联它们(见图 2.3) 。 浙江大学硕士学位论文 第 2 章研究基础 10 图 2.3 软件组件 S/R 通信 RTE API 到实际 API 的映射,隐藏了 API 的实现。比如对某个具体的 ECU 内通信途径,可能实现为直接函数调用;对一个 ECU 间的通信,则可通过 COM 实现。RTE 可以在 API 映射时,尤其是 ECU 内的映射,做一些优化工作。有些 ECU 内的 S/R 通信 API 可以直接映射到赋值语句;有些 ECU 内的 C/S 通信 API 可以直接映射为调用服务运行实体的语句。这些优化可以节省函数调用的开销, 提高 RTE 的实时性。 软件组件不允许绕过 RTE 直接访问下层基础软件提供的服务。服务、ECU 抽象和复杂驱动被抽象成一个同样有端口的软件组件,通过服务连接器与应用层 的软件组件组合成 ECU 组合组件。BSW 中的组件都具有标准化的 AUTOSAR 接 口。 3. RTE 通信通信模式模式 RTE 提供两种主要的通信模式:发送-接收和客户-服务通信, 此外 RTE 还允许 组件内部运行实体间的中间变量通信。每种通信模式根据软件组件的端口属性和 运行实体属性而有不同的实现机制。 S/R 通信按照端口接口中数据元素的 isQueued 属性分为:数据分发型 (isQueued=false)和事件分发型(isQueued=true) 。数据分发型是指采用 S/R 接 浙江大学硕士学位论文 第 2 章研究基础 11 口的需型端口只对最近最新收到的数据元素内容感兴趣,事件分发型则是对所接 收到的历史数据都感兴趣。 数据分发型的 S/R 通信提供两种语义的通信语义:显示访问和隐式访问。隐 式访问是:访问某个数据元素的运行实体在单次运行周期内从需型端口读取到的 数据元素内容保持不变,或对供型端口发送的数据只有运行实体运行结束后才会 反应在 VFB 上, 且只有最后一次才生效。 隐式访问向运行实体提供运行期的稳定 数据内容和数据一致性。因此,运行实体使用隐式访问方式读写的数据内容只可 能是原始通信数据缓存的拷贝。显示通信是指:运行实体通过非阻塞的 RTE API 显示的从 RTE 的通信缓存中抽取数据或直接向其中写入新数据内容,和隐式相 反,显示通信每次读取的数据都可能不同,每次发送的数据都能立即反应在 VFB 视图上。 事件分发型数据的收发相当于消息通信,每个需型端口中的数据元素都有一 个缓冲队列存储接收到的数据元素,使接收者不会丢失未及时处理的数据。如果 接收者处理速度不及导致队列溢出,RTE 会抛弃新到的数据,并通过 RTE API 向 接收者报告这一错误。事件分发型都是显示访问的。 AUTOSAR 把运行实体分为第一类和第二类运行实体。第二类运行实体是有 等待点和有超时的同步调用,第一类则是使用非阻塞 RTE API 的那些运行实体。 所有 S/R 通信模式中发送数据的 RTE API 都是非阻塞的,显示通信中接收数据的 RTE API 则有阻塞和非阻塞两种。阻塞的显示接收会在没有新数据时阻塞调用它 的运行实体。发送方的运行实体也有一个可以阻塞自己的 RTE API,运行实体使 用它来等待接收方的反馈通知(如等待发送操作是否成功) ,通过指定属性 AcknowledgementRequest 实现。 AcknowledgementRequest 属性可以用于指定一个超 时时间,RTE 监控这个超时时间,对于 ECU 间通信,可以使用 COM 提供必要的 功能来实现监控,如果是 ECU 内部通信,RTE 必须监控一个超时定时器。数据 元素的每次发送,RTE 保证只有一次发送反馈,这个反馈表明发送成功与否。此 外,发送结果的状态信息应该可以从 RTE API 的返回值中获得,而且状态信息遵 循 last-is-best 原则,当一个数据项发送完成,状态信息被重置。 浙江大学硕士学位论文 第 2 章研究基础 12 C/S 通信模式按照运行实体定义的服务器调用点(ServerCallPoint)类型同样 也分为两种:同步和异步。同步 C/S 通信中软件组件的运行实体通过 C/S 接口的 需型端口向其他软件组件发出操作命令后,在 RTE API 内部会停止自己,等服务 器操作完成再继续运行;异步 C/S 通信中的客户则调用非阻塞的 RTE API 与服务 器通信,不等服务器操作完成便接着往下运行。异步 C/S 通信的客户可以通过另 外一个阻塞的 RTE API 去取得服务操作的完成结果。C/S 通信一般用于软件组件 与基础服务软件之间的通信。 上述 S/R 和 C/S 通信都是用于软件组件之间的通信,RTE 还允许提供运行实 体之间的软件组件内部通信。内部通信的对象是由内部行为定义的运行实体中间 变量(InterRunnableVariable) ,它们只能被一个软件组件内部的运行实体访问。 InterRunnableVariable 的访问方式与软件组件之间的 S/R 通信相似, 同样支持 显示和隐式两种语义,唯一区别是 RTE API 函数名中没有端口的名字,而由运行 实体的名字替代。 .2 开发开发方法论方法论 AUTOSAR 定义了的系统设计与开发流程的通用技术方法,叫做 AUTOSAR 方法论21。AUTOSAR 方法论将系统开发过程分为不同的阶段,主线是从系统设 计到 ECU 配置到 ECU 可执行文件生成,如图 2.4 所示。还有一条直线是软件组 件的设计和实现。每个阶段都定义有配套的辅助工具,各个工具之间以给定模板 为格式的 XML 作为信息交互的载体。 .XML .XML .XML.EXE .XML 系统配置 输入 系统配置 描述 系统配置 的ECU提取 ECU配置 描述 ECU可执行 程序 设计系统 提取ECU 信息 配置ECU 生成代码 编译 图 2.4 AUTOSAR 开发流程 浙江大学硕士学位论文 第 2 章研究基础 13 AUTOSAR 方法论定义的流程主要步骤可以划分为两个阶段:第一阶段是整 体功能的定义和设计,这一阶段主要是由整车厂商规划系统的功能,软件供应商 设计和实现的软件组件,只需提供符合 AUTOSAR 标准接口的描述文形式,系统 设计者便可以很方便地把各个组件实现整合起来。设计软件系统的同时,还可以 设计硬件网络拓扑结构,定义网络通信的内容,最后按照 ECU 为单位,抽取各 个 ECU 的描述信息,这一阶段的支持工具通常需要软件组件设计工具和系统配 置工具等。 第二阶段是各个 ECU 局部的详细配置, 以系统配置抽取的 ECU 信息为基础, ECU 的配置既是进一步的细化配置,也是更贴近于 ECU 实现的配置。这一阶段 的内容包括运行时环境的配置,操作系统和 COM 通信的配置,以及相关基础服 务软件的配置,结果是产生一个包含 ECU 整体信息的配置描述文件。最后各个 模块的代码生成工具根据此配置文件生成各个模块的代码,再和软件组件的实现 集成在一起编译生成 ECU 可执行文件。 AUTOSAR 方法论的最大特点是对开发流程和工具做了比较详细的定义。 AUTOSAR 定义了开发流程中需要各个工具的所扮演的角色,以符合 AUTOSAR Schema 的标准格式 XML 文件作为工具间信息传递的载体,这种信息交换方式贯 穿 AUTOSAR 开发工具链的始终22。统一的格式简化了工具之间的连接,无论是 设计过程中的反复迭代,无论采用自顶向下还是自下而上的方式均能适用,使得 不同开发工具供应商开发的工具可以很方便集成一套完整的解决方案。 AUTOSAR 开发工具之间兼容性的增强在很大程度上有利于减小基于模型的 AUTOSAR 软件开发流程的实施难度。 RTERTE 生成生成 RTE 生成是使用方法论定义中的 RTE 代码生成工具根据输入描述文件生成 RTE 源代码。RTE 生成过程分两个阶段:协议阶段和生成阶段。协议阶段是 RTE 代码生成工具以软件组件描述为输入生成软件组件的 RTE API 头文件。生成阶段 是 RTE 代码生成工具以 ECU 配置描述为输入生成完整的 RTE 源代码23。 浙江大学硕士学位论文 第 2 章研究基础 14 软件组件的开发需要使用 RTE 特定 API, RTE 生成器使用软件组件描述中的 AUTOSAR接口和端口以及内部行为中的运行实体和RTE事件等信息可以生成包 含发送和接收数据的 RTE API 声明头文件,见图 2.5。有了这份 API 声明,软件 组件的实现代码就可以编译成目标代码,用来分析组件的实现信息,比如存储大 小等。 图 2.5 RTE 协议阶段23 RTE 生成阶段是在整个 RTE 配置完成之后才能进行,见图 2.6。RTE 生成阶 段同时还计算所需要的 OS 资源。 RTE 生成阶段可以和 ECU 其他模块的代码生成 并行进行,生成内容包括 OS 任务内容、RTE API 实现等。RTE 生成器以 ECU 描 述文件为输入,输出全部可编译的 RTE 代码。本文的主要贡献之一正是设计和实 现了一个符合 AUTOSAR 的 RTE 代码生成器。 图 2.6 RTE 生成阶段23 浙江大学硕士学位论文 第 2 章研究基础 15 2.22.2 技术基础技术基础 .1 SmartSARSmartSAR SmartSAR 软件平台是浙江大学嵌入式系统工程中心自主研制的汽车电子软 件开发运行平台。SmartSAR 平台参考了 AUTOSAR、OSEK/VDX、UML、CAN、 J1939 等国际标准,是一个包括嵌入式实时操作系统、集成开发环境和支撑软件 的面向汽车电子的嵌入式软件系统平台3,见图 2.7。 在 SmartSAR 平台中进行 AUTOSAR 的 ECU 开发流程中,首先使用软件组 件建模工具设计软件组件模型,软件组件的控制算法模型可以在 MATLAB & Simulink 中建立,建模工具会自动将其结果导入并生成符合 AUTOSAR 标准的软 件组件描述。然后使用系统配置工具进行整体设计:导入软件组件,设计硬件拓 扑结果,设计网络信号配置,进行数据映射和组件部署。系统配置工具自动生成 ECU 抽取的描述文件并导入 ECU 配置工具进行单个 ECU 的配置,ECU 配置中 将软件组件的运行实体分配到具体的任务,并配置其他的基础软件模块后产生 ECU 配置描述。最后各个代码生成工具以 ECU 配置描述为输入,生成可编译的 代码,从而完成整个 ECU 代码的开发。 运行环境运行环境SmartSAR RTESmartSAR RTE 集成开发环境集成开发环境 SmartSAR IDESmartSAR IDE 模型驱动模型驱动 的设计的设计 开发工具开发工具 SmartSAR SmartSAR DesignerDesigner 资源调度和映射资源调度和映射通信支持通信支持 分布式自动集成工具分布式自动集成工具 SmartSAR GeneratorSmartSAR Generator ECUECU抽象层抽象层 MCUMCU抽象层抽象层 硬件抽象层硬件抽象层SmartSAR HALSmartSAR HAL 操作系统操作系统SmartSAR OSSmartSAR OS 操作系统内核操作系统内核 操作系统服务接口操作系统服务接口 基础软件基础软件SmartSAR BSWSmartSAR BSW 存储存储 服务服务 通信通信 服务服务 诊断诊断 服务服务 基础软件服务接口基础软件服务接口 汽车电子应用软件组件接口汽车电子应用软件组件接口 可视化的可视化的 自动配置自动配置 工具工具 SmartSAR SmartSAR ConfigerConfiger 基于标准化组件的汽车电子软件开发平台基于标准化组件的汽车电子软件开发平台SmartSARSmartSAR 汽油发动机汽油发动机ECUECU管理系统管理系统SmartEMSSmartEMS自动变速箱自动变速箱TCUTCU管理系统管理系统SmartAMTSmartAMT 图 2.7 SmartSAR 平台总体结构 浙江大学硕士学位论文 第 2 章研究基础 16 .2 SmartRTESmartRTE SmartRTE 是本课题组参考 AUTOSAR 标准研究的面向汽车电子嵌入式领域 的运行时环境中间件。SmartRTE 提供了一套自己的软件组件及系统描述,并设 计了其运行机制和代码生成工具24。SmartRTE 是类 AUTOSAR RTE 的,虽然只 提供了简单的基本功能,但是为本文的研究打下了重要的技术和方法基础。 .3 ArtopArtop Artop ( AUTOSAR Tool Platform,AUTOSAR 工具平台) 是 AUTOSAR 成员 组成的社区为开发工具的通用基础功能而实现的工具开发平台。工具开发者可以 在此平台基础之上开发兼容 AUTOSAR 设计和配置的商业工具。Artop 包含了开 发 AUTOSAR 工具所需要的基本通用模块。 它包括多个版本 AUTOSAR 元模型的 实现和一系列相关服务, 比如最吸引人的是其对 AUTOSAR 各个版本的描述文件 的序列化和基于规则的验证功能25。 Artop 是以 Eclipse 及其成熟技术 EMF 为平台的,它为 Eclipse 工程提供扩展 点,这些扩展点简化了上述 Artop 提供的基本通用模块的实现,因此也方便了基 于 Artop 平台的 AUTOSAR 工具链的开发。基于 Artop 的开发工具产品的典型结 构分为四层,如下图 2.8 所示。工具供应商在竞争层开发商业产品,采用下两层 Artop 提供的功能实现最终用户的需求。 Competitive Layer Artop AUTOSAR Layer(AAL) Artop Eclipse Complementary Layer (ECL) Eclipse Artop User Group Tool Vendor Eclipse Foundation Commercial Products Basic Foundations for AUTOSAR Tools Eclipse Platform 图 2.8 Artop 架构图 浙江大学硕士学位论文 第 2 章研究基础 17 本课题组作为 AUTOSAR 成员之一,使用 Artop 作为 SmartSAR 的集成开发 环境的基础平台。本文研究内容之一部分实现于最上层竞争层,通过使用下层 AAL 层提供的基本功能构建一个 AUTOSAR 运行时环境的代码生成工具。 .4 代码生成代码生成 代码生成,顾名思义是创建并使用程序生成程序,或者说是代码替代人写代 码,它将抽象的输入模型或文件,转化成具体的底层的实际代码,能替代繁琐的 手工编写代码,提高系统的准确性和稳定性,开发速度也将得到极大的提升。目 前,常见的代码生成技术为模板方式,各种动态网页生成技术都可以看作是模板 方式的,生成过程只需一次就完成,常见于 IDE 和编辑器的实现中。 本文实现的代码生成器采用 Velocity 模板引擎。Velocity 是一个基于 Java 的 模板引擎,使用模板语言(VTL)来引用由 Java 代码定义的对象,可以被当作独 立工具来产生源代码,或者作为其他系统的集成组件使用26。当用 Velocity 应用 于构建源代码生成工具时,可以分离目标源代码表示和后台业务逻辑模型的开 发,有利于长期维护。
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 时间的认识课件
- 秩序岗位服务培训
- 时间和方向课件
- 时间与管理课件讲解
- 2025版电梯维保与应急物资储备服务合同范本
- 二零二五年度市政道路建设项目招投标合同范本
- 二零二五年度矿产资源中介服务合同范例
- 2025版高钙石建筑材料原料购销合作框架协议
- 二零二五年度建筑工程设备租赁及保养合同
- 二零二五年度医疗设备生产与销售及售后服务合同
- 2022年高校教师资格证《高校教师职业道德》考试题库(全真题库)
- NB∕T 10731-2021 煤矿井下防水密闭墙设计施工及验收规范
- 《用户体验要素》以用户为中心的产品设计课件
- 千方百剂操作流程
- 油品计量工(高级技师)技能操作理论考试总题库-上(单选题-下部分)
- DB32T 1553-2017 高速公路工程工程量清单计价规范
- 组织知识清单
- GB-T 1040.2-2022 塑料 拉伸性能的测定 第2部分:模塑和挤塑塑料的试验条件
- 城镇燃气安全管理专业知识
- 一页纸的劳动合同范本(5篇)
- 免疫缺陷病PPT精品课件
评论
0/150
提交评论