【汽车操作系统】Autosar和商用OS

目录

什么是AUTOSAR?

CP AUTOSAR架构

CAN通信

AP AUTOSAR

背景

CP&AP

开发方面的不同:

WRLinux介绍

QNX介绍


什么是AUTOSAR?

        随着汽车功能越来越多,导致ECU的数量越来越多。1993年的时候,奥迪A8才只有5个ECU现在典型的现代汽车上有超过50个ECU,有的车甚至有150个ECU。但是ECU可能是不同的供应商提供的,各厂家的标准、软件架构可能不同,OEM车厂要让这些ECU之间正常通信,是一件复杂和困难的事。供应商软件开发的工作量也很大,版本众多维护起来非常困难。在ECU中添加新功能,或者把ECU-A的功能移植到ECU-B中也不是一件简单的事。

        AUTOSAR,全称Automotive Open SystemArchitecture,中文是“汽车开放系统架构”但它首先是一个组织,注意AUTOSAR不能写作AutoSAR,否则Open的含义就没有了,标志也用红色圆圈强调了开放的理念。

        2003年,9家公司成立了AUTOSAR。截至2023年11月,已有350多家公司、机构加入,包括汽车制造商、部件供应商、电子和软件公司等。

CP AUTOSAR架构

        传统ECU开发就相当于一个人,既要吃饭(软件)又要做饭(硬件),可能还要洗碗(硬件,释放内存),效率就比较低。而AUTOSAR像是一个食堂,硬件层就是食堂做菜师傅、锅碗瓢盆和食材,应用层相当于要吃饭的学生,中间的RTE层就相当于打菜的阿姨。学生(软件开发者)不需要关注食材(硬件,数据)是怎么洗净切好,怎么放到锅碗瓢盆(硬件,存储)中做熟,只需要和打菜阿姨(RTE上接口)说一下(通信)要什么菜(数据包),阿姨就会打给你(提供数据),如果没有菜了,阿姨就会喊(通过RTE下接口)做菜的师傅(硬件),判断还有没有菜(提供相关数据),如果没有就要赶紧做菜(执行某个操作),或者告诉学生没有菜了(硬件报错,硬件损坏,兼容性问题等)

应用层:AppL或ASWL-ApplicationSoftware Layer,实现具体应用功能一个App包含多个软件组件(SWC,Software Component)。

Service服务层:给应用层提供后台服务,如存储管理、网络管理等。

ECU抽象层:ECUAL-ECUAbstraction Layer,标准化硬件的基础功能和接口,控制网关报文转发、存储器读写等。

硬件抽象层:MCAL-MicrocontrollerAbstraction Layer,硬件相关的驱动软件。

复杂驱动:CDD-ComplexDevice Driver,承接复杂的驱动,接口直接暴露给RTE。

硬件层:也称微控制器层,即控制器的硬件部分

官方CP AUTOSAR架构图

最下层

可以通过配置生成

,无需写代码,减少出现低级错误。

静态配置与代码生成

配置工具与静态代码生成:AUTOSAR工具链允许开发者通过图形化或XML配置文件来定义软件组件、ECU资源、通信接口等,随后自动生成对应的C代码。这确保了软件结构的标准化和代码的一致性,同时使得整个系统的行为在编译前即可被完全预测。

静态内存分配:所有任务、缓冲区、消息队列等所需的内存均在系统启动前静态分配完毕,避免了运行时的动态内存分配,提高了系统的确定性和效率。

任务管理与调度

周期性任务与优先级:每个任务根据其功能重要性和时间约束被赋予固定的执行周期和优先级。RTOS保证高优先级任务能够优先执行,并通过时间触发或事件触发机制确保周期性任务按时执行,如每5ms执行一次的控制循环。

任务栈:为每个任务独立分配栈空间,防止栈溢出导致的系统崩溃,同时确保任务间的数据隔离。

中断管理

CAN硬件中断:通过RTOS,CAN总线的硬件中断被高效地管理,确保数据的实时传输和处理。中断服务例程(ISR)快速响应中断,完成数据读取或发送的初步处理,随后快速返回,减少中断延迟。

CPU管理与抢占:RTOS监控CPU状态,管理任务上下文切换。快速中断(FIQ,Fast Interrupt Request)用于处理需要更快速响应的事件,相比普通中断(IRQ),FIQ享有更高的优先级和更快的处理路径。

核心工作与机制

核心功能:RTOS的核心工作包括但不限于任务调度、中断处理、同步与通信机制(如信号量、互斥锁)、内存管理和错误处理。这些机制共同确保了系统的实时性、稳定性和安全性。

功能隔离与模块化:通过AUTOSAR的分层架构和接口定义,不同的软件组件在逻辑上被隔离,促进模块化开发和测试,同时也便于软件复用和升级。

CAN通信

收集所有的CAN,分析优先级,由PDUR进行筛选,筛选之后发给CAN interface

LIN总线本质是一个串口

AP AUTOSAR

背景

为适应汽车的发展趋势(如辅助驾驶、V2X、OTA、远程诊断、动态部署等),应对汽车E/E系统开发面临的新的挑战(高性能处理器的应用,实现ADAS,高带宽通信,E架构演变等),AUTOSAR组织推出了AUTOSARAdaptive Platform(AP)。简单说,AP就是为高性能计算提出的解决方案

AP AUTOSAR架构

部署于linux系统上,本质还是属于中间件。

在Classic中虚拟功能总线VFB为RTE层,在Adaptive中VFB为ARA层,AUTOSARRuntime for Adaptive applications。 ARA层提供通讯管理、执行管理和日志跟踪等功能组件,并给App层提供API接口。AP构建在POSIXOS上,由不同功能模块组成,这些模块属于服务模块Service和基础模块Foundation。模块的通信是面向服务(SOA)的,并使用以太网与其它ECU通信。

AP:发展阶段,大部分都是C++代码,注重运算结果,高性能平台。

CP:应用层面,信号转服务,注重实时性。

CP&AP

开发方面的不同:

Classic Platform

Adaptive Platform

基于C语言 面向过程开发

基于C++语言 面向对象开发

FOA架构(function-oriented architecture )

SOA架构(service-oriented architecture

基于信号的静态配置通信方式

基于服务的SOA动态通信方式(SOME/IP、DDS)

硬件资源的连接关系局限于线束的连接

硬件资源的连接关系虚拟化,不局限于通信线束的连接关系(互联网)服务可根据应用需求动态加载,可通过配置文件动态加载,并进行单独更新公

静态的服务模块,模块和配置在发布前进行静态编译连接

应用加载到RAM执行

从ROM执行代码

每个应用都有直接的虚拟地址空间(支撑MMU)

基于OSEK操作系统

基于POSIX OS(Linux\QNX...)操作系统

WRLinux介绍

风河系统公司(Wind River Systems)开发和支持的一个商业版本的Linux操作系统

yocto,偏向于编译环境,代码在云端,做板级的适配,不需要安装工具链,一键编译。

不便利:微类核架构

QNX介绍

QNX是一款高性能、高可靠性的实时操作系统(RTOS),专为嵌入式系统设计,由QNX Software Systems(现为黑莓公司的子公司)开发,微内核架构

1)足够小的内核

微内核不是一个完整的OS,他拥有操作系统中最基本的部分,保证操作系统的内核做到足够。

1、实现与硬件紧密相关的处理

2、实现一些较基本的功能

3、负责客服端和服务器之间的通信

(2)基于 C/S 模式

将操作系统中最基本的部分放入内核中,把操作系统的绝大部分功能放在微内核外面的一组服务器(进程)中实现。

这些服务器运行在用户态,客户与服务器之间借助微内核提供的消息传递机制来实现通信。如:

1.用于对进程(线程)进行管理的进程(线程)服务器

2.提供虚拟存储器管理功能的存储器服务器

3.提供I/O设备管理的I/O设备管理服务器"机制与策略分离"原理

3)机制:指实现某一功能的具体执行机构策略:在机制的基础上,借助某些参数和算法来实现该功能的优化,或者达到不同的功能目标。在传统的OS中,机制通常放在OS的内核较低层,策略放在内核的较高层。而在微内核的OS中,通常将机制放在OS的微内核中。这样微内核才能够做的更小。

(4)采用面向对象技术

内核OS实现了更高层次的抽象和模块化,增强了系统的可维护性、可扩展性和适应未来变化的能力。


 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

用数据,简单点!奇点云2024 StartDT Day数智科技大会,直播见

在充满挑战的2024,企业如何以最小化的资源投入和试错成本,挖掘新的增长机会,实现确定性发展? “简单点”是当前商业环境的应对策略,也是奇点云2024 StartDT Day的核心理念。 5月28日,由奇点云主办的2024 S…

分享一个思路,使用插桩技术解决慢查询测试问题

前段时间,我负责测试的系统在生产环境运行出现问题。该系统对于响应时间要求较高,问题发生的时候并发很高,出现大量请求超时,超时请求比例随时间推迟越来越高,最后几乎全部请求都失败。滚动重启了所有进程后&#xff0…

Leetcode刷题2

文章目录 前言寻找两个正序数组的中位数1️⃣ 双指针快速排序2️⃣ 第k小数解法 Z 字形变换1️⃣ 个人解法2️⃣巧妙解法13️⃣巧妙解法2 字符串转换整数 (atoi)1️⃣ 常规方法2️⃣ 作弊方法😫 整数转罗马数字1️⃣ 常规方法:按照给定规则写出判断条件即…

ABB机器人手动模式切换自动模式时,速度自动更改为100%的解决办法

ABB机器人手动模式切换自动模式时,速度自动更改为100%的解决办法 如下图所示,手动切换到自动模式时,示教器上提示:速度将改为100%,但是我们正常使用时的速度可能不是100%,所以还需要手动去更改速度,不太方便。。。 解决办法可参考以下内容: 如下图所示,打开菜单—控制…

防火墙技术基础篇:解析防火墙的网络隔离机制

防火墙技术基础篇:解析防火墙的网络隔离机制 网络安全在现代社会中扮演着重要的角色,保护网络系统、用户和数据免受未经授权的访问、破坏和窃取。个人、企业和国家都需要加强网络安全意识,采取有效措施保护自身的网络安全。随着网络攻击手段…

Golang实现递归复制文件夹

代码 package zdpgo_fileimport ("errors""os""path/filepath""strings" )// CopyDir 复制文件夹 // param srcPath 源文件夹 // param desPath 目标文件夹 // return error 错误信息 func CopyDir(srcPath, desPath string) error {…

张量 t-product 积(matlab代码)

参考文献:Tensor Robust Principal Component Analysis with a New Tensor Nuclear Norm 首先是文章2.3节中 t-product 的定义: 块循环矩阵: 参考知乎博主的例子及代码:(t-product与t-QR分解,另一篇傅里叶对…

200smart【编程入门】

说明 编程时,遇到困难就按【F1】 【I】输入 200smart 上限 i0.0~i31.7 255bit【255个输入点】 i0.0~i31.7 八进制 【布尔 bool 】 ib0~ib127 【单字节】 8bit iw0~iw127 …

六零导航页 file.php 任意文件上传漏洞复现(CVE-2024-34982)

0x01 产品简介 LyLme Spage(六零导航页)是中国六零(LyLme)开源的一个导航页面。致力于简洁高效无广告的上网导航和搜索入口,支持后台添加链接、自定义搜索引擎,沉淀最具价值链接,全站无商业推广,简约而不简单。 0x02 漏洞概述 六零导航页 file.php接口处任意文件上传…

Java面试八股之++操作符是线程安全的吗

操作符是线程安全的吗 操作符本身在Java中并不是线程安全的。这个操作实际上包含三个步骤:读取变量的值、将值加1、然后将新值写回内存。在多线程环境下,如果多个线程同时对同一个变量执行操作,就可能出现竞态条件(race conditio…

TransFormer学习之基础知识:STN、SENet、CBAM、Self-Attention

1.空间注意力机制STN 参考链接:STN(Spatial Transformer Networks) 参考链接:通俗易懂的Spatial Transformer Networks(STN) 核心动机: 在空间中捕获重要区域特征(如图像中的数字),将核心区域进行放大居中,使得结果更…

K8S认证|CKA题库+答案| 7. 调度 pod 到指定节点

7、调度 pod 到指定节点 您必须在以下Clusterd/Node上完成此考题: Cluster Master node Worker node hk8s master …

GS5812G 21V、2A同步降压DC/DC转换器芯片IC

一般描述 该GS5812G是一个同步降压DC/DC转换器与快速恒定的时间(FCOT)模式控制。该器件提供4. 5V至21V的输入电压范围和2A连续负载电流能力。它是恒定时间脉宽调制(PWM)控制器,支持 FCOT模式控制。工作频率取决于输入和输出电压条件。 该GS5812G故障…

桌面藏线大法

1有线改无线: 蓝牙鼠标 蓝牙键盘 蓝牙耳机 2将排插贴到桌子底下 购物软件上搜 3断舍离 不要的电子产品统统扔掉 4 洞洞板和挂钩 这个不用介绍了

uniapp中使用mockjs模拟接口测试总结(swiper轮播图示例)

完整总结下在uni-app中如何使用Mock.js模拟接口测试,这在后台接口未就绪的情况下非常有用。同时也给出个首页swiper轮播图的mock接口使用。网上的文章都不太完整,这里总结下完整的使用示例,同时也支持h5和小程序平台,分享给需要的…

个人感觉对Material设计有用的几个网址

(一) Modular and customizable Material Design UI components for Android GIthub: material-components-android (二) 学习Material设计 Material Design (三) 用于创建Material主题,支持导出多种格式 material-theme-builder

谷歌蜘蛛池是什么?

或称为谷歌爬虫池,是一项专门针对谷歌搜索引擎优化(SEO)的先进技术,这种技术的主要目的是通过建立庞大的网站群体和复杂的链接结构来吸引和维持谷歌的爬虫程序的注意力,其核心是通过这种结构优化,增强特定网…

ESP32 实现获取天气情况

按照小安派AiPi-Eyes天气站思路,在ESP32 S3上实现获取天气情况。 一、在ESP32 S3实现 1、main.c 建立2个TASK void app_main(void) {//lvgl初始化xTaskCreate(guiTask, "guiTask", 1024 * 6, NULL, 5, NULL);//wifi初始化、socket、json处理taskcustom_…

Xcode代码格式化SwiftFormat安装使用,以及不生效问题

官方仓库地址:GitHub - nicklockwood/SwiftFormat: A command-line tool and Xcode Extension for formatting Swift code 安装SwiftFormat 有两种安装方式,两种方式都可以,二选一即可: 第一种使用brew,如果已经使用…

AWPortrait1.4更新,人物的生成更加趋近真实感,将SD1.5人像的真实感提升到了一个新的高度

AWPortrait1.4更新,人物的生成更加趋近真实感,将SD1.5人像的真实感提升到了一个新的高度 经过5个月,AWPortrait终于迎来了1.4。 本次更新基于1.3训练,使得人物的生成更加趋近真实感,将SD1.5人像的真实感提升到了一个新…