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。

相关推荐
POMAGTOR5 小时前
【磁吸 POGOPIN 连接器 汽车医疗机器人弹簧顶针】
嵌入式硬件·机器人·汽车
沐欣工作室_lvyiyi8 小时前
基于单片机的汽车防碰撞刹车系统的设计与实现(论文+源码)
单片机·嵌入式硬件·汽车·单片机智能小车
工业机器人视觉检测设备19 小时前
工序全流程自动化升级!云汇智能打造汽车天窗多机器人集成产线
机器人·自动化·汽车
提升汽车音响好物1 天前
斯巴鲁森林人音响升级记录:江门汇声的前后声场与低频搭配
汽车·音频
当下新鲜事1 天前
高压线束绝缘层在线测径为何成为新能源汽车线束制造的关键工序?简博斯JG-L系列测径仪解析
人工智能·汽车·制造
zsmydz8881 天前
新能源汽车TBOX(车载远程信息处理系统)的国家标准体系
汽车·汽车tbox·4g车载tbox·新能源汽车tbox
奋进的电子工程师1 天前
助力汽车软件出海合规,构筑数字世界的软件安全基座
网络·安全·汽车
迅利科技2 天前
新能源汽车零部件研发,SIMULIA一站式仿真解决方案如何缩短研发周期
人工智能·汽车
KONGWX2 天前
出险记录查不准,接口核验堵住骗保漏洞
汽车·api