AUTOSAR基础概念学习

一、AUTOSAR CP 的整体软件栈分层图

这是 AUTOSAR Classic Platform( AUTOSAR CP 经典平台)的分层软件架构(Layered Software Architecture)

------------------------------------------------------层级从上到下---------------------------------------------------------

  1. Application Layer 应用层:软件组件 SWC(Software Component 软件组件或软件模块),实现整车应用功能,不直接碰硬件。Vector公司的Davinci Developer软件可以用于AUTOSAR应用层模块的架构设计
  2. Runtime Environment(RTE,运行时环境):应用层和底层 BSW 之间的中间层,负责 SWC 之间、SWC 和 BSW 的通信,是 AUTOSAR 的核心隔离层。
  3. Basic Software(BSW,基础软件) :包含 4 个子模块。Vector公司的Davinci Configurator软件可用于配置符合AUTOSAR架构的底层软件模块。
    • Services Layer ------服务层:OS、通信、诊断、存储等系统服务
    • ECU Abstraction Layer ------ECU 抽象层:屏蔽 ECU 板级外设差异
    • Microcontroller Abstraction Layer ------MCAL 微控制器抽象层:直接封装 MCU 芯片寄存器,芯片驱动
    • Complex Drivers ------复杂驱动:处理一些高实时、特殊硬件驱动(不属于标准 MCAL)
  4. Microcontroller 微控制器(MCU 硬件)

简单区分:AUTOSAR Classic Platform(CP)用于传统 ECU;AUTOSAR Adaptive Platform(AP)是高性能域控制器,架构完全不一样,这张图不是 Adaptive。

二、基础概念扫盲

1、SWC = Software Component 软件组件或软件模块。一个SWC可用于实现一个特定的软件功能模块

左右标记红色的,是SWC的接口,用于和其他模块进行数据传输。Require ports------R型端口,接收数据;Provide ports------P型端口,发送数据

2、S/R Port------Sender / Receiver Port,通过变量/全局变量传递数据

3、C/S Port------Client/Server Port,通过函数传递数据

4、所有的软件接口和模块必须先在Oobject Browser中创建,然后再将其在Software Design的图形化界面中进行实例化。在Oobject Browser中创建的软件接口和模块是库或者类型的这种状态;而在Software Design中,实例化后的才是真正的软件模块实体。

创建模块

创建接口

5、一个SWC内部可能包含一个或者多个Runnable,Runnable即函数,它是实现软件功能的实体。

每个Runnable有一个或者多个trigger,即函数的调度触发机制。例如周期触发或者事件触发等。

SWC内部的Runnable,可以通过SWC的输入端口读取数据,也可以通过SWC的输入端口发送数据。

Runnable直接也可以互相传输数据,这类接口被称为Inter Runnable Variable,

6、如果某个功能需要多个SWC共同实现,我们将这些SWC的接口用线连接起来,这样我们就建立了连线关系,或者叫做connector连线关系。连线关系确定了不同软件模块之间的数据流向,数据流只能从P型接口流向R型接口,而且只有同类的port才能进行连线。比如sender只能和receiver port进行连线,而server port只能和client port进行连线,且要求接口类的数据或者函数配置是相同的。

7、对于这些SWC,我们可以使用一个容器将这些SWC装在一起,从而形成一个层次化的软件架构设计。这种可以装入多个SWC的容器,叫做Composition。

8、汽车总线网络:软件模块会从总线网络上读取信号,也会向总线网络上发送信号。因此我们需要为SWC创建Port,专门用于与总线上的信号进行通讯,这些接口上的数据与总线上的信号进行关联,建立映射关系,这个操作叫做Data Mapping。

9、在一个嵌入式软件的工程中,通常有很多个SWC和很多个Runnable,我们通常会配置多个任务,即Task。然后将这些Runnable分配到不同的Task中去运行,将Runnable分配到Task的动作,称为Task Mapping。

相关推荐
寇旨2 小时前
AUTOSAR_CP文档图解==>AUTOSAR_CP_SWS_PDURouter
autosar·isolar工具
寇旨2 小时前
AUTOSAR_CP文档图解==>AUTOSAR_CP_SWS_CANStateManager
autosar·isolar工具
寇旨14 小时前
AUTOSAR_CP文档图解==>AUTOSAR_CP_SWS_COMBasedTransformer
网络·autosar
2601_967287571 天前
轮胎侧壁上的 91V 是什么意思,负荷指数与速度级别怎么看
运维·服务器·汽车
yuanxi2001 天前
中国汽车企业欧洲网点扩张:大客户销售的关系力启示
职场和发展·汽车·创业创新·学习方法
勤劳X码农2 天前
2026年汽车解说AI配音软件怎么选?
人工智能·汽车
嘿嘿-663 天前
GPT-6.1 Sol 实战:做一个可交互的 3D 汽车展厅
人工智能·gpt·3d·chatgpt·汽车
weixin_419658313 天前
CAPL的数据类型(一)
车载系统·自动驾驶·汽车·信号处理
制冷技术咨询与服务3 天前
新能源汽车线束的漏水问题
汽车·新能源汽车线束
杨福宇3 天前
100BASE T1以太网实时控制的危机V3.21 ——辅助自动驾驶难达标
网络·网络协议·安全·自动驾驶·汽车