0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

简单了解AUTOSRA软件架构

西西 来源:美男子玩编程 作者:美男子玩编程 2022-09-19 15:56 次阅读

AUTOSAR规范主要包括:软件架构、方法论和应用接口三部分内容。其中,软件架构是实现软硬件分离的关键,它使汽车嵌入式系统控制软件开发者摆脱了以往ECU软件开发与验证时对硬件系统的依赖。

在AUTOSAR软件架构中,汽车嵌入式系统软件自上而下分别为:应用软件层(Application Software Layer,ASW)、运行时环境(Runtime Environment,RTE)、基础软件层(Basic Software Layer,BSW)和微控制器(Microcontroller)。

为保证上层与下层的无关性,通常情况下,每一层只能使用下一层所提供的接口,并向上一层提供相应的接口。如图下图所示:

1、应用软件层

应用软件层(Application Software Layer,ASW)包含若干个软件组件(Software Component,SWC)(软件组件在下一篇文章讲解),软件组件间通过端口(Port)进行交互。每个软件组件可以包含一个或者多个运行实体(Runnable Entity,RE),运行实体中封装了相关控制算法,其可由RTE事件(RTE Event)触发。

2、运行时环境

运行时环境(Runtime Environment,RTE)作为应用软件层与基础软件层交互的桥梁,为软硬件分离提供了可能。RTE可以实现软件组件间、基础软件间以及软件组件与基础软件之间的通信。RTE封装了基础软件层的通信和服务,为应用层软件组件提供了标准化的基础软件和通信接口,使得应用层可以通过RTE接口函数调用基础软件的服务。

此外,RTE抽象了ECU之间的通信,即RTE通过使用标准化的接口将其统一为软件组件之间的通信。由于RTE的实现与具体ECU相关,所以必须为每个ECU分别实现。

3、基础软件层

基础软件层(Basic Software Layer,BSW)可分为四层即:服务层(Services Layer)、ECU抽象层(ECU Abstraction Layer)、微控制器抽象层(Microcontroller Abstraction Layer,MCAL)和复杂驱动(Complex Drivers),如下图所示:

可以将基础软件层进一步细化,包括:系统服务( System Services)、存储器服务(Memory Services)、通信服务(Communication Services)等,它们主要用于提供基础软件服务,包括标准化的系统功能和功能接口。如下图所示:

3.1、服务层

服务层(Services Layer)提供了汽车嵌入式系统软件常用的一些服务,其可分为系统服务(System Services)、存储器服务(MemoryServices)以及通信服务(Communication Services)三大部分。

提供包括:网络通信管理、存储管理、ECU模式管理和实时操作系统(Real Time Operating System,RTOS)等服务。除了操作系统外,服务层的软件模块都是与ECU平台无关的。

3.2、ECU抽象层

ECU抽象层(ECU Abstraction Layer)包括板载设备抽象(Onboard Devices Abstraction) 、存储器硬件抽象(Memory Hardware Abstraction)、通信硬件抽象(Communication Hardware Abstraction)和I/O硬件抽象(Input/Output Hardware Abstraction)。

该层将ECU结构进行了抽象,负责提供统一的访问接口,实现对通信、存储器或者IO的访问,从而不需要考虑这些资源是由微控制器片内提供的,还是由微控制器片外设备提供的。该层与ECU平台相关,但与微控制器无关,这种无关性正是由微控制器抽象层来实现的。

3.3、微控制器抽象层

控制器抽象层(Microcontroller Abstraction Layer,MCAL)是实现不同硬件接口统一化的特殊层。通过微控制器抽象层可将硬件封装起来,避免上层软件直接对微控制器的寄存器进行操作。

微控制器抽象层包括微控制器驱动(Microcontroller Drivers)、存储器驱动(Memory Drivers)、通信驱动(Communication Drivers)以及I/O驱动(IO Drivers),如下图所示:

3.4、复杂驱动层

由于对复杂传感器和执行器进行操作的模块涉及严格的时序问题,难以抽象,所以在AUTOSAR规范中这部分没有被标准化,统称为复杂驱动( Complex Drivers)。

编辑:黄飞

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 微控制器
    +关注

    关注

    48

    文章

    7535

    浏览量

    151289
  • 软件架构
    +关注

    关注

    0

    文章

    64

    浏览量

    10280

原文标题:详解AUTOSAR:AUTOSRA软件架构(理论篇—2)

文章出处:【微信号:美男子玩编程,微信公众号:美男子玩编程】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    简单C语言架构,很简单哦 !!!

    简单C语言架构,很简单哦。。。。{:4_95:}
    发表于 04-04 20:03

    软件架构

    软件架构软件架构软件架构
    发表于 03-29 21:54

    TestStand和LabVIEW软件架构

    不同访问级别的用户测试限制管理简单和高级的操作界面并行测试功能,允许在一个单一的DUT上同时测试多种产品或运行多个测试此外,NI TestStand本身具有非常模块化的软件架构,它允许工程师们使用这些组件
    发表于 04-15 09:40

    嵌入式软件开发中的程序架构

    单片机软件开发的初期大多数开发者采用的都是简单的前后台顺序执行架构。在嵌入式软件开发中,程序架构主要分为三种,本篇文章将对这三种程序
    发表于 02-02 06:58

    软件架构存在的意义

    嵌入式或单片机软件开发的初期大多数开发者采用的都是简单的前后台顺序执行架构在嵌入式软件开发中,程序架构主要分为三种,本篇文章将对这三种程序
    发表于 10-27 09:34

    主流的嵌入式CPU架构-ARM架构详解

    简单聊聊  上一篇,介绍到了什么是嵌入式,以及嵌入式与单片机、PC机的区别,简单聊了聊有关嵌入式软件学习的一些内容。这一片打算接着上一篇的内容,详细的说一下现在主流的嵌入式CPU架构-
    发表于 12-13 06:05

    软件架构的作用与设计思路

    痛苦;能最大限度地复用原有的代码;使代码高内聚低耦合,维护和修改简单方便。2.设计思路2.1架构风格嵌入式系统软件与硬件联系紧密。首先想到要将硬件的驱动程序和功能应用的程序...
    发表于 12-20 06:04

    CMSIS软件架构概述 

    目录CMSIS软件架构库文件说明CMSIS软件架构CMSIS概述     CMSIS软件架构由四
    发表于 12-22 07:34

    嵌入式开发中常用的软件架构

    单片机软件开发的初期大多数开发者采用的都是简单的前后台顺序执行架构(我就是这样的)。在嵌入式软件开发中,程序架构主要分为三种,本篇文章将对这
    的头像 发表于 01-01 10:16 5578次阅读
    嵌入式开发中常用的<b class='flag-5'>软件</b><b class='flag-5'>架构</b>

    SWE.2的软件架构设计

    过程ID:SWE.2 过程名称:软件架构设计 过程目的:软件架构设计过程目的是建立一个架构设计,识别哪些
    的头像 发表于 01-11 10:36 2759次阅读

    详解四种软件架构的应用和优缺点

    如果一个软件开发人员,不了解软件架构的演进,会制约技术的选型和开发人员的生存、晋升空间。这里我列举了目前主要的四种软件
    的头像 发表于 02-15 15:04 6910次阅读

    微服务软件架构应用研究综述

    自2014年,微服务架构概念经Martin Flower提出以来,受到广泛关注,为更好了解微服务架构风格,本文首先分析、梳理了软件架构的发展
    发表于 05-26 09:26 2次下载

    深入探讨软件定义架构及其意义

    在上期文章中,我们了解了现代GNSS模拟中的软件定义架构,并与传统架构进行了对比,本期文章中我们将继续深入探讨软件定义
    的头像 发表于 02-08 10:40 718次阅读
    深入探讨<b class='flag-5'>软件</b>定义<b class='flag-5'>架构</b>及其意义

    SWE.2软件架构设计

    过程ID : SWE.2 过程名称 : 软件架构设计 过程目的 : 软件架构设计过程目的是建立一个架构设计,识别哪些
    的头像 发表于 08-24 09:43 928次阅读

    简单了解SDK与APK的区别

    不少小伙伴在开发软件中会提到两个词:API和SDK。虽然它们看起来很专业,但其实背后的概念并不复杂。这篇文章能简单的帮你了解SDK与APK的区别。
    的头像 发表于 10-11 10:08 1109次阅读