汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2)

汽车基础软件AutoSAR自学攻略(三)-AutoSAR CP分层架构(2)

下面我们继续来介绍AutoSAR CP分层架构,下面的文字和图来自AutoSAR官网目前最新的标准R24-11的分层架构手册。该手册详细讲解了AutoSAR分层架构的设计,下面让我们来一起学习一下。

Introduction介绍
目的及投入

本文档的目的
分层软件架构描述了 AUTOSAR 的软件架构:
➢ 它以自上而下的方式描述了 AUTOSAR 软件的层次结构,并且
➢ 将基础软件模块映射到软件层,并且
➢ 展示了它们之间的关系。

这份文件侧重于概念分层软件架构的静态视图:

➢ 它没有指定具有详细静态和动态接口描述的结构化软件架构(设计)

​ ◼ 这些信息包含在基本软件模块自身的规范中。

Scope and Extensibility

AUTOSAR 的应用范围
AUTOSAR 专门用于汽车电子控制单元(ECU)。此类 ECU 具有以下特性:
➢ 与硬件(传感器和执行器)的强交互,
➢ 连接到诸如 CAN、LIN、FlexRay 或以太网等车辆网络,
➢ 计算能力和内存资源有限(与企业解决方案相比)的微控制器(通常为 16 位或 32 位),
➢ 实时系统,以及
➢ 从内部或外部闪存执行程序。

注意:在 AUTOSAR 的概念中,ECU 指的是一个微控制器加上外围设备以及相应的软件/配置。机械设计不在 AUTOSAR 的范围内。这意味着如果在一个外壳中布置了不止一个微控制器,那么每个微控制器都需要其自身的 AUTOSAR-ECU 实例描述。

AUTOSAR 可扩展性
AUTOSAR 软件架构是一种通用方法:
➢ 标准模块的功能可以扩展,同时仍保持合规,
◼ 但它们的配置必须在自动基本软件配置过程中予以考虑!
➢ 非标准模块可以作为复杂驱动程序集成到基于 AUTOSAR 的系统中,
➢ 不能添加更多层。

Top view

AUTOSAR 架构在最高抽象级别上区分了三个软件层:应用程序、运行时环境和在微控制器上运行的基础软件。

image-20250103214136028

Coarse view

AUTOSAR 基础软件在以下层中进一步划分:Services 服务、ECU Abstraction ECU 抽象、Microcontroller Abstraction 微控制器抽象和Complex Drivers 复杂驱动程序。

image-20250103214215069

详细视图

基本软件层进一步细分为功能组。服务的示例包括系统服务、内存服务和通信服务。

image-20250103214336699

Microcontroller Abstraction Layer 微控制器抽象

image-20250103215941855

微控制器抽象层是基础软件的最低软件层。它包含内部驱动程序,这些内部驱动程序是能够直接访问微控制器(µC)和内部外设的软件模块。

任务: 使更高的软件层独立于微控制器(µC)

特性:

​ 实现:取决于微控制器
​ 上层接口:标准化且与微控制器无关

ECU Abstraction Layer ECU 抽象层

image-20250103215958890

ECU 抽象层与微控制器抽象层的驱动程序相连接。它还包含外部设备的驱动程序。

它提供了一个 API,用于访问外设和设备,无论它们的位置(微控制器内部/外部)以及它们与微控制器的连接方式(端口引脚、接口类型)如何。

**任务:**使更高的软件层独立于 ECU 硬件布局

特性:

实现:微控制器(µC)独立,电子控制单元(ECU)硬件相关

上层接口:微控制器(µC)和电子控制单元(ECU)硬件独立

Complex Drivers Layer复杂驱动程序层

image-20250103220012304

复杂驱动程序层从硬件延伸到 RTE 。

任务: 提供集成特殊用途功能的可能性,例如设备驱动程序:
➢ 不在 AUTOSAR 中指定的;
➢ 具有非常高的时间限制的;
➢ 用于迁移目的等。

特性:

实现:可能取决于应用程序、微控制器(µC)和电子控制单元(ECU)硬件
上层接口:可能取决于应用程序、微控制器(µC)和电子控制单元(ECU)硬件

Services Layer服务层

image-20250103220022238

服务层是 BasicSoftware 的最高层,其与应用软件的相关性也适用:虽然对 I/O 信号的访问由 ECU 抽象层涵盖,但服务层提供:
➢ 操作系统功能
➢ 车辆网络通信和管理服务
➢ 内存服务(NVRAM 管理)
➢ 诊断服务(包括 UDS 通信、错误内存和故障处理)
➢ ECU 状态管理、模式管理
➢ 逻辑和时间程序流程监控(WdgManager)

任务: 为应用程序、RTE(实时环境)和基本软件模块提供基础服务。

特性:

实现:主要是微控制器(µC)和电子控制单元(ECU)硬件独立
上层接口:微控制器(µC)和电子控制单元(ECU)硬件独立

RTE Runtime Environment 实时环境

image-20250103220147709

RTE 是为应用软件(AUTOSAR 软件组件和/或 AUTOSAR 传感器/执行器组件)提供通信服务的一层。在 RTE 之上,软件架构风格从“分层式”转变为“组件式”。AUTOSAR 软件组件通过 RTE 与其他组件(ECU 内部和/或外部)和/或服务进行通信。

任务: 使 AUTOSAR 软件组件独立于到特定 ECU 的映射。

特性:

实施:电子控制单元(ECU)和特定应用(针对每个 ECU 单独生成)
上层接口:完全独立于电子控制单元

服务类型介绍

基础软件可细分为以下几类服务:

输入/输出(I/O)
对传感器、执行器和 ECU 板载外设的标准化访问
内存
对内部/外部内存(非易失性内存)的标准化访问
加密
对包括内部/外部硬件加速器在内的加密原语的标准化访问
通信
对以下内容的标准化访问:车辆网络系统、ECU 板载通信系统和 ECU 内部软件
车外通信·
对以下内容的标准化访问:车对 X 通信、车内无线网络系统、ECU 车外通信系统
系统
提供可标准化的(操作系统、定时器、错误存储器)和 ECU 特定的(ECU 状态管理、看门狗管理器)服务和库函数

驱动(内部)

驱动程序包含控制和访问内部或外部设备的功能。

内部设备位于微控制器内部。内部设备的示例有:

➢ 内部 EEPROM

➢ 内部 CAN 控制器

➢ 内部 ADC

内部设备的驱动程序被称为内部驱动程序,并且位于微控制器抽象层中。

驱动(外部)

外部设备位于微控制器之外的 ECU 硬件上。外部设备的示例有:

➢ 外部 EEPROM

➢ 外部看门狗

➢ 外部闪存

外部设备的驱动程序称为外部驱动程序,位于 ECU 抽象层中。它通过微控制器抽象层的驱动程序访问外部设备。通过这种方式,AUTOSAR 也支持集成在系统基础芯片(SBC)中的组件,如收发器和看门狗。

➢ 示例:具有 SPI 接口的外部 EEPROM 的驱动程序通过 SPI 总线的处理程序/驱动程序来访问外部 EEPROM 。

异常: 用于内存映射外部设备(例如外部闪存)的驱动程序可能会直接访问微控制器。这些外部驱动程序位于微控制器抽象层,因为它们依赖于微控制器。

Interface接口

一个接口(接口模块)包含了对在架构上位于其下方的模块进行抽象的功能。例如,一个从特定设备的硬件实现中抽象出来的接口模块。它提供了一个通用的 API,以访问特定类型的设备,而不受该类型现有设备数量的影响,也不受不同设备硬件实现的影响。

该接口不会更改数据的内容。

通常,接口位于 ECU 抽象层。

示例:CAN 通信系统的接口提供了一个通用的 API,可独立于 ECU 内 CAN 控制器的数量以及硬件实现方式(片上、片外)来访问 CAN 通信网络。

Handler处理

处理程序是一种特定的接口,用于控制一个或多个客户端对一个或多个驱动程序的并发、多重和异步访问。即它执行缓冲、排队、仲裁、复用。

处理程序不会更改数据的内容。

处理程序的功能通常被并入驱动程序或接口中(例如 SPI 处理程序驱动程序、ADC 驱动程序)。

Manager管理

在纯处理程序功能不足以从多个客户端进行抽象的所有情况下,都需要一个管理器为多个客户端提供特定服务。

除了处理程序功能外,管理器还可以评估、更改或调整数据的内容。

通常,管理器位于服务层

示例:NVRAM 管理器管理对内部和/或外部存储设备(如闪存和 EEPROM 存储器)的并发访问。它还执行分布式和可靠的数据存储、数据检查、提供默认值等操作。

Introduction to Libraries库函数介绍

image-20250104081110524

库是用于相关目的的函数集合。

库:
➢ 可由 BSW 模块(包括 RTE)、SW-C、库或集成代码调用
➢ 在相同保护环境中于调用者的上下文中运行
➢ 只能调用库
➢ 是可重入的
➢ 没有内部状态
➢ 不需要任何初始化
➢ 是同步的,即它们没有等待点

image-20250104081121298

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/65781.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css面试常考布局(圣杯布局、双飞翼布局、三栏布局、两栏布局、三角形)

两栏布局 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title> </head> &…

模糊查询在sqlserver、dm8、mysql的编写示例

模糊查询要求&#xff1a;字段值以 25D 开头&#xff0c;并以 4 位数字结尾 sqlserver&#xff1a; select * from table_name where column_name like 25D[0-9][0-9][0-9][0-9] 说明&#xff1a; 25D&#xff1a;表示字符串以 25D 开头。 [0-9][0-9][0-9][0-9]&#xf…

SCTNet模型详解及代码复现

模型背景 随着深度学习技术的发展,语义分割领域取得了显著进展。然而,在实际应用中,特别是在实时场景下,现有模型往往面临计算复杂度高、难以平衡精度和速度等问题。为应对这些挑战,研究人员提出了SCTNet模型,旨在解决实时语义分割问题,同时兼顾精度和效率。该模型融合…

Python的循环

Python的循环 Python的循环有两种&#xff0c;分别是for…in循环和while循环。 for…in 循环 假设我们要循环输出一个列表里的元素&#xff1a; names [张三,李四,王五] for name in names:print(name)执行这段代码后&#xff0c;会依次打印names的每一个元素&#xff1a;…

【0387】Postgres内核 streaming replication(流复制)工作原理

1. Postgres 流复制 本文是关于设置 PostgreSQL 版本流复制的简明指南,力求尽可能不受平台限制。故而,其假定您拥有运用操作系统工具编辑文件及安装/配置软件包的扎实知识。并且,还假定您熟悉 PostgreSQL 的配置情况。 PostgreSQL 内置的流复制为您的数据库构建了一个服务…

网络攻击行为可视化分析系统【数据分析 + 可视化】

一、系统背景 随着信息技术的快速发展&#xff0c;网络已成为现代社会不可或缺的一部分。然而&#xff0c;与此同时&#xff0c;网络攻击手段也日益多样化和复杂化&#xff0c;给企业和个人的信息安全带来了极大的威胁。传统的网络攻击分析方法往往依赖于人工分析和处理大量的…

利用obs studio制作(人像+屏幕)录制影像

1.什么是obs? OBS&#xff08;Open Broadcaster Software&#xff09;是一款功能强大的开源软件&#xff0c;它使用户能够直接从电脑录制视频和直播内容到 Twitch&#xff0c;YouTube 和 Facebook Live 等平台。它在需要直播或录制屏幕活动的游戏玩家、YouTube 用户和专业人士…

蠕虫病毒会给服务器造成哪些危害?

蠕虫病毒是一种独立的恶意计算机程序&#xff0c;可以进行自我复制来传播到其他的计算机系统当中&#xff0c;蠕虫病毒和传统病毒之间是有着区别的&#xff0c;蠕虫病毒不需要宿主程序就能够自行传播&#xff0c;主要是利用各种操作系统漏洞进行攻击的。 接下来小编就介绍一下蠕…

C# GDI+的DrawString无法绘制Tab键的现象

【啰嗦2句】 现在用C#的人很少了吧&#xff1f;GDI更少了吧&#xff1f;所以这个问题估计也冷门。没关系&#xff0c;分享给特定需要的人也不错。 【问题现象】 工作中开发了一个报告编辑器&#xff0c;实现图文排版等功能&#xff0c;用着没什么问题&#xff0c;直到有一天…

互斥信号量的等待与通知

目录 等待互斥信号量 信号量未被占用 信号量被自己占用 信号量被高优先级任务占用 信号量被低优先级任务占用 释放互斥信号量 未发生优先级继承 发生优先级继承 等待互斥信号量 信号量未被占用 标记为已经被占用锁定计数1 信号量被自己占用 锁定计数1 信号量被高优先级任务占用…

夯实前端基础之HTML篇

知识点概览 HTML部分 1. DOM和BOM有什么区别&#xff1f; DOM&#xff08;Document Object Model&#xff09; 当网页被加载时&#xff0c;浏览器会创建页面的对象文档模型&#xff0c;HTML DOM 模型被结构化为对象树 用途&#xff1a; 主要用于网页内容的动态修改和交互&…

Qt资源文件以及文件加密

1、Qt资源文件 在Qt中&#xff0c;资源文件&#xff08;.qrc&#xff09;是一种方便的方式来管理应用程序中的多媒体文件&#xff0c;如图像、图标和其他资源。这些文件使用XML格式定义&#xff0c;并在编译时嵌入到应用程序的二进制文件中。 创建资源文件的步骤如下&#xff…

深入详解人工智能自然语言处理(NLP)之文本处理:分词、词性标注、命名实体识别

【自然语言处理】——深入详解人工智能自然语言处理&#xff08;NLP&#xff09;之文本处理&#xff1a;分词、词性标注、命名实体识别 自然语言处理&#xff08;Natural Language Processing&#xff0c;简称NLP&#xff09;是人工智能的一个重要分支&#xff0c;涉及如何使计…

SD ComfyUI工作流 老照片修复上色

文章目录 老照片修复上色SD模型Node节点工作流程开发与应用效果展示老照片修复上色 该工作流专门设计用于老照片的修复和上色,通过一系列高级的图像处理技术,包括深度图预处理、面部修复、上色和图像放大等步骤,来恢复老照片的质量并增加色彩。首先,工作流加载老照片并进行…

后端技术选型 sa-token校验学习 下 结合项目学习 前后端登录

目录 后端设置 Controller 层 Service 层 后端返回 Token 给前端 1. 用户提交登录请求 2. 后端验证用户身份 3. 返回 Token 4. 前端保存 Token 前端存储 1. 前端向后端发起请求 2. 前端存储一下 Token 3.管理用户认证的 token 的 工具 4. 在 Service 层进行设置 H…

dtdug汇编指令练习

r 通用寄存器 m 代表内存 imm 代表立即数 r8 代表8位通用寄存器 m8 代表8位内存 imm8 代表8位立即数 mov指令练习 MOV 的语法: mov 目标操作数&#xff0c;源操作数 作用:拷贝源操作数到目标操作数 1、源操作数可以是立即数、通用寄存器、段寄存器、或者内存单元. 2、目标操作数…

vue3模板引用ref

1.访问模板引用 要在组合式 API 中获取引用&#xff0c;我们可以使用辅助函数 useTemplateRef() 只可以在组件挂载后才能访问模板引用 <script setup> import { useTemplateRef, onMounted } from vue// 第一个参数必须与模板中的 ref 值匹配 const input useTempla…

如何用 SSH 访问 QNX 虚拟机

QNX 虚拟机默认是开启 SSH 服务的&#xff0c;如果要用 SSH 访问 QNX 虚拟机&#xff0c;就需要知道虚拟机的 IP 地址&#xff0c;用户和密码。本文我们来看看如何获取这些参数。 1. 启动虚拟机 启动过程很慢&#xff0c;请耐心等待。 2. 查看 IP 地址 等待 IDE 连接到虚拟机。…

【Java基础】Java异常捕捉,throws/throw、finally、try、catch关键字的含义与运用

1. Java 异常处理&#xff1a; 异常是程序中的一些错误&#xff0c;但并不是所有的错误都是异常&#xff0c;并且错误有时候是可以避免的。 比如说&#xff0c;你的代码少了一个分号&#xff0c;那么运行出来结果是提示是错 java.lang.Error&#xff1b;如果你用System.out.p…

js 中堆、栈、队列+宏任务+微任务+web workers

文章目录 js 中堆、栈、队列介绍js中 堆、栈、队列的区别与应用拓展&#xff08;宏任务与微任务&#xff09;Web Workers js 中堆、栈、队列介绍 栈&#xff08;Stack&#xff09; 概念&#xff1a; 栈是一种遵循后进先出&#xff08;LIFO - Last In First Out&#xff09;原则…