汽车基础软件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.rhkb.cn/news/505637.html

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

相关文章

消息中间件类型介绍

消息中间件是一种在分布式系统中用于实现消息传递的软件架构模式。它能够在不同的系统或应用之间异步地传输数据,实现系统的解耦、提高系统的可扩展性和可靠性。以下是几种常见的消息中间件类型及其介绍: 1.RabbitMQ 特点: • 基于AMQP&#…

WEB攻防-通用漏洞_文件上传_黑白盒审计流程

目录 前置知识点 Finecms-CMS文件上传 ​编辑 Cuppa-Cms文件上传 Metinfo-CMS 文件上传 前置知识点 思路: 黑盒就是寻找一切存在文件上传的功能应用 1 、个人用户中心是否存在文件上传功能 2 、后台管理系统是否存在文件上传功能 3 、字典目录扫描探针文件上传构…

“深入浅出”系列之FFmpeg:(1)音视频开发基础

我的音视频开发大部分内容是跟着雷霄骅大佬学习的,所以笔记也是跟雷老师的博客写的。 一、音视频相关的基础知识 首先播放一个视频文件的流程如下所示: FFmpeg的作用就是将H.264格式的数据转换成YUV格式的数据,然后SDL将YUV显示到电脑屏幕上…

搭建docker私有化仓库Harbor

Docker私有仓库概述 Docker私有仓库介绍 Docker私有仓库是个人、组织或企业内部用于存储和管理Docker镜像的存储库。Docker默认会有一个公共的仓库Docker Hub,而与Docker Hub不同,私有仓库是受限访问的,只有授权用户才能够上传、下载和管理其中的镜像。这种私有仓库可以部…

fast-crud select下拉框 实现多选功能及下拉框数据动态获取(通过接口获取)

教程 fast-crud select示例配置需求:需求比较复杂 1. 下拉框选项需要通过后端接口获取 2. 实现多选功能 由于这个前端框架使用逻辑比较复杂我也是第一次使用,所以只记录核心问题 环境:vue3,typescript,fast-crud ,elementPlus 效果 代码 // crud.tsx文件(/.ts也行 js应…

在Windows环境下搭建无人机模拟器

最近要开发无人机地面站,但是没有无人机,开发无人机对我来说也是大姑娘坐花轿——头一回。我们要用 MAVLink 和无人机之间通信,看了几天 MAVLink,还是不得劲儿,没有实物实在是不好弄,所以想先装一个无人机模…

HTB:Topology[WriteUP]

目录 连接至HTB服务器并启动靶机 信息收集 使用rustscan对靶机TCP端口进行开放扫描 提取并保存靶机TCP开放端口号 使用nmap对靶机TCP开放端口进行脚本、服务扫描 使用nmap对靶机TCP开放端口进行漏洞、系统扫描 使用nmap对靶机常用UDP端口进行开放扫描 使用浏览器访问靶…

【 Verdi实用技巧-Part-3】

Verdi实用技巧-Part-3 3 Verdi实用技巧-Part-33.1 nWave window(看波形窗口)3.2 收集coverage3.3 nWave window3.4 Verdi-->app3.5 Force信号用Verdi去debug 本篇文章继续介绍Verdi实用技巧–Part-3; 3 Verdi实用技巧-Part-3 3.1 nWave window(看波形窗口) nWave window …

Vue sm3国密 IE模式报错处理

1、sm-crypto 转义错误 查看报错信息包名 在vue.config.js的transpileDependencies中把依赖包添加进去,让babel能够转译sm-crypto包 babel.config.js module.exports {presets: [[vue/app, {useBuiltIns: entry}]] }2、exports.destroy (() > { … }&a…

docker 基本使用

-do1.安装docker: Redirecting… 0. docker内使用gpu, 安装nvidia-docker: https://github.com/NVIDIA/nvidia-docker, 安装后使用:nvidia-container-cli -k -d /dev/tty list, 验证正确,无报错,即为正确 1. docker 启动image,如…

手机的ip地址是根据电话卡归属地定吗

在智能手机普及的今天,IP地址作为我们连接互联网的“门牌号”,其来源和确定方式常常引发用户的好奇。特别是关于手机IP地址是否与电话卡的归属地直接相关,这一话题更是众说纷纭。本文将深入探讨这一问题,为您揭开手机IP地址与电话…

计算机网络 (32)用户数据报协议UDP

前言 用户数据报协议(UDP,User Datagram Protocol)是计算机网络中的一种重要传输层协议,它提供了无连接的、不可靠的、面向报文的通信服务。 一、基本概念 UDP协议位于传输层,介于应用层和网络层之间。它不像TCP那样提…

YOLOv5改进 | CARAFE提高精度的上采样方法

目录 1 CARAFE模块原理 1.1 上采样的表示 1.2 Motivation 2 YOLOv5中加入CARAFE模块 2.1 ultralytics/nn/modules/block.py文件配置 2.2 ultralytics/nn/tasks.py配置 2.3 创建添加优化点模块的yolov5x-CARAFE.yaml 参考文献 1 CARAFE模块原理 上采样操作可以表示为…

高通,联发科(MTK)等手机平台调优汇总

一、常见手机型号介绍: ISP除了用在安防行业,还有手机市场,以及目前新型的A/VR眼睛,机器3D视觉机器人,医疗内窥镜这些行业。 下面是一些最近几年发布的,,,旗舰SOC型号: 1.联发科:天玑92…

windows从0开始配置llamafactory微调chatglm3-6b

后续会更新 从0学习LLaMaFactory参数解释说明 ,请期待~ 文章目录 一、准备工作1、创建python虚拟环境(annoconda)2、配置pytorch傻瓜版3、llamafactory配置4、微调数据准备5、开始微调5.1 webui启动微调5.2 指令启动微调 一、准备工作 1、创建python虚拟环境(annoc…

某漫画网站JS逆向反混淆流程分析

文章目录 1. 写在前面1. 接口分析2. 反混淆分析 【🏠作者主页】:吴秋霖 【💼作者介绍】:擅长爬虫与JS加密逆向分析!Python领域优质创作者、CSDN博客专家、阿里云博客专家、华为云享专家。一路走来长期坚守并致力于Pyth…

netplan apply报错No module named ‘netifaces‘

Ubuntu 20.04.5 LTS \n \l,ctrlaltf2切换字符登录f1切换图形 处理办法: root登录执行 rootnode37:/disk1/Qwen2.5-72B-Instruct-GPTQ-Int4# cat /etc/netplan/01-network-manager-all.yaml # Let NetworkManager manage all devices on this system …

LabVIEW 系统诊断

LabVIEW 系统诊断是指通过各种工具和方法检测、评估、分析和解决 LabVIEW 程序和硬件系统中可能存在的故障和性能问题。系统诊断不仅涵盖软件层面的调试与优化,还包括硬件交互、数据传输、实时性能等方面的检查和分析。一个成功的系统诊断能够显著提升LabVIEW应用程…

【Docker】docker compose 安装 Redis Stack

注:整理不易,请不要吝啬你的赞和收藏。 前文 Redis Stack 什么是? 简单来说,Redis Stack 是增强版的 Redis ,它在传统的 Redis 数据库基础上增加了一些高级功能和模块,以支持更多的使用场景和需求。Redis…

慧集通(DataLinkX)iPaaS集成平台-数据流程之流程透明化调试功能简介

在线运行流程 查看运行状态 流程第一次执行状态显示 流程第二次执行状态显示(由于订单已同步到七星ERP中,由于还是这些订单所以第二次同步时就报错了) 点击查看节点组件的详细入参与出参信息 U8C销售订单读取组件执行时详情 入参-查询条件…