AutoSar 学习路线

news2025/1/16 5:53:07

1 获取Spec

如何获取Autosar SPEC文档?

从官网获取最新的规范文档,网址:https://www.autosar.org/standards。

如果浏览器拦截, 点开高级, 点击继续访问即可。

Autosar 分Classific 和 Adaptive Platform. AUTOSAR分为Classic Platform AUTOSAR(CP)和Adaptive Platform AUTOSAR(AP)两个平台。 最早的Classic AUTOSAR目前已广泛应用于传统嵌入式ECU中,如发动机控制器、电机控制器、整车控制器、BMS控制器等等,而Adaptive AUTOSAR未来会更多的应用于如ADAS、自动驾驶等需求高计算能力、高带宽通信、分布式部署的下一代汽车应用领域中。学习入门可以从Classic Platform AUTOSAR 开始。

2 AutoSar 架构

以下转载自: 汽车工程师谈技术 AUTOSAR架构 - 知乎

2.1 整体架构

从图中可以看出autosar作为汽车ECU软件架构,是通过分层来实现软硬件隔离。就像大多数操作系统一样,通过分层实现软件架构的最通用化。

上图是一张整体的架构图。后续会仔细讲解每一个小的组件模块。AUTOSAR经典平台架构在微控制器上运行的三个软件层之间的最高抽象级别进行区分:应用程序实时运行环境(RTE)和基本软件(BSW)。

  • 应用软件层:逻辑代码,基本上是与硬件无关的。
  • 实时运行环境: RTE表示应用程序的完整接口,软件组件之间的通信和通过RTE访问BSW。
  • 基础软件层:分为三个主要层次和复杂的驱动因素: 服务、ECU(电子控制单元)抽象和微控制器抽象。服务进一步划分为代表系统、内存和通信服务的基础设施的功能组。

2.2 App应用层

ApplicationLayer实现具体的应用功能,由软件组件(SWC)组成,基于AutoSAR设计的SWC组件能够提高上层应用软件的复用性和灵活性。

每一个SWC相当于一个.c文件,SWC和SWC之间的通信又会通过Port(端口)实现,SWC内部又有多个runable(运行实体)组成。

2.3 RTE运行时环境

目的:使SWC与ECU的映射无关,隔离APP和BSW

功能:提供跨ECU /ECU内部的通信管理

实现:

1. RTE对Runnables的运行支撑(Runanable的触发条件)

2. RTE对Ports支撑(S/RC/S port的通信方式)

3. 实现SWC之间的通信

4. RTE对数据一致性管理

2.4 BSW基础软件

BSW被抽象划分为如下层面:

ServiceLayer:服务层

1. 提供给应用程序的服务

2. 诊断,非易失性内存管理,操作系统(OS),通讯

3. 内存和ECU管理

特别注意:CDD不属于BSW,它是独立Autosar架构的一些复杂驱动,直接通过CDD_SWC来操作硬件驱动。

ECUAbstraction Layer:ECU抽象层

1. 使上层软件与ECU硬件设计无关

2. 包含ECU板上外部设备的驱动

3. 内部设备与外部设备的接口(I/O)

MCAL:Microcontroller Abstraction Layer 微控制器抽象层

1. 使上层软件与微控制器硬件无关,实现软硬件隔离。

2. 实现MCU中外设的驱动

2.5 MCAL微控制器抽象层

MCAL就是硬件驱动的封装,比如CAN、ETH、SPI等外设驱动封装,和芯片息息相关。一般都是购买芯片原厂MCAL的软件包。

主要分为4大模块:

微控制器驱动:

1. GPT:General Purpose Timer Driver,通用定时器,为操作系统或者其他基础软件模块提供计时功能

2. Watchdog:看门狗驱动,除防止程序跑飞基本功能外,功能安全还使用看门狗进行程序流监控,比如监控程序执行时间、执行顺序等。

3.MCU:Microcontroller Unit Driver,基本的MCU设置:时钟、休眠、复位设置等。

4. Core Test:芯片内核测试,提供上电或者周期检测两种方式,检测结果能触发中断。

存储器驱动

1. Flash Test & Ram Test:存储器测试驱动。

2. Flash/Eep Driver:提供基本的存储器操作,如初始化,擦除,写入,读取等。

通信驱动

CAN、ETH、LIN、SPI等通讯外设的通信功能实现

I/O驱动

1. Port:所有端口的统称,包含了(DIO和配置成特有功能的io口)

2. ADC:模拟/数字转换器,采样模拟信号,转成数字信号。

3. DIO:Digital Input/Output Driver,数字输入输出驱动,也就是配置成GPIO功能,实现通用的输入输出功能。

4. PWM:生成周期和频率可变的PWM方波

5. ICU:Input Caputre Unit,输入捕获单元,捕获方波周期或者捕获方波电平持续时间。

6. OCU:Output Compare Unit,输出比较单元,基于定时器单元的比较模块。

角色定位

你需要明确你的工作内容在整个产品生命周期的位置。简单介绍下几个流程概念。

OEMTIER1TIER2
整车厂一级供应商二级供应商
奔驰、宝马等做整车装配大陆、博世等(给OEM供应 ECU)英飞凌、NXP等(为Tier1供应零件, 如ECU 上的芯片电路板等)

圈内的同学比较了解上面提到的几个名词,研究AUTOSAR的工程师在OEM、TIER1和TIER2都会有分布,各自角色不同,研究重点也不同。我们按产品开发流程的顺序大致梳理:

1. 整车厂以EE架构设计和应用层功能设计为主,所以如果你身在OEM中,你只需要着重了解AUTOSAR的方法论和基于方法论的SWC设计即可。这两点说着简单,其实并非我们想象中那么简单。方法论本身就是非常宏观的概念,想要把控产品流程,能为TIER1提供打开需求文档,这本身就要对功能和下游工作十分了解,才能有高质量的输出;

2. TIER1涉及AUTOSAR的工作分工就比较多了。如果你是系统工程师,着重研究功能算法的实现,那么你需要对SWC的升级了如指掌,深入理解;如果你是软件架构工程师,对于上游OEM提供的需求文档要有宏观概念,所以也要对方法论和SWC审计十分了解;如果你是基础软件工程师,需要整个团队协同实现:底层驱动工程师要深入学习芯片的抽象层MCAL应用;BSW协议栈工程师要熟悉OS,ComStack,DiagStack,Memory Stack,WgdStack等协议栈应用细节;复杂驱动工程师,要对AUTOSAR针对CDRV的接口定义方式等深入研究;如果集成工程师,要十分清楚RTE的运行集成和相关应用配置;

3. TIER2要深入研究的内容和TIER1的BSW工程师侧重内容相似,主要围绕芯片MCAL和基础软件协议栈展开。

3. Spec 研读路线

AUTOSAR规范是一个巨大的标准规范,其包含200个Specification,超过20000条需求,所以,让一个专家去理解所有的需求基本不可能。

建议所有的AUTOSAR初始学习者从阅读Layered Software Architecture文档开始,其定义了AUTOSAR High-level层面的特性.

以下转载自 Classic_AUTOSAR规范研读方法 - 知乎

AUTOSAR Methodology规范可作为接下来学习的内容,其包含大部分重要的Artifact,这些Artifact是由AUTOSAR开发过程中不同的角色定义的,然而Methodology规范也包含了很多此时不能理解的内容,所以这个时候应该暂忽略他们,只关注自己熟悉的话题。

接下来就可以阅读自己关注的规范了。关注架构设计的读者应该阅读AUTOSAR Template Specification(TPSs).比如说,如果读者关注逻辑系统/ECU设计,他们应该关注Software Component template,以理解怎么去定义应用软件组件(Application Software components)以及数据交互点。

建议初学者要集中关注TPS和SWS Specification,至少在一开始,TPS和SWS包含很多解释和图形以助于更好的理解AUTOSAR Features。

对于想更深入了解AUTOSAR读者来说,还有两个额外的建议:第一,AUTOSAR规范不建议从头读到尾,建议针对一个特定的话题,去不同的规范里去找其解释;第二,读者应该要始终读最新的AUTOSAR规范,因为只有最新的规范会包含最近更新的内容。

参考

Demu如何高效学习AUTOSAR? - 知乎
汽车工程师谈技术AUTOSAR架构 - 知乎
CharlesClassic_AUTOSAR规范研读方法

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

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

相关文章

荧光EEM平滑教程(去除散射)

说明:本文为drEEM工具箱官网教程《Smoothing EEMs》的笔记。 瑞利散射是一种弹性散射。来自激发源的光子遇到溶液中的分子之后,反弹到各个方向。 最重要的是,瑞利散射(的发射波长)总是与激发波长完全相等。 因此&…

ios safari 正则兼容问题

背景: 系统是自己开发的采购管理系统; 最近升级系统之后客户反馈部分苹果手机现在在进入单据界面的时候报错, 内容显示不全; 安卓手机正常; 苹果首页是之前有使用过系统的才不行, 如果是之前没有使用过系统, 现在也是可以; 也尝试清理过缓存,更换浏览器都也是不行; 也更…

CleanMyMac苹果电脑清理软件是智商税吗?最全评测价格、清理效果一次说清

这是一篇CleanMyMac最全评测!价格、清理效果一次说清,告诉你它真不是智商税! 升级Ventura系统之前,我用的是CleanMyMac X绿色版(绝不提倡这个行为)。更新到Ventura之后,之前很多绿色软件失效,浪…

Python|Pyppeteer获取去哪儿酒店数据(20)

前言 本文是该专栏的第20篇,结合优质项目案例持续分享Pyppeteer的干货知识,记得关注。 本文以去哪儿为例,笔者将详细介绍使用pyppeteer获取去哪儿的酒店数据。如果对pyppeteer的使用以及知识点不太熟悉的同学,可往前查看本专栏前面介绍的pyppeteer知识点。 接下来,我们言…

uniapp(uncloud) 使用生态开发接口详情1(创建项目)

开发接口对比时间: 用java开发接口周期太长, 大概5-6个月左右 用php 开发接口周期同样太长, 大概3-4个月左右 用node.js 开发接口周期相对短一点, 大概1-2个月左右 用uniapp 开发接口, 可以不到 1-2周的时间 这里我使用 uniapp 开发接口, 废话不多说了,直接开干 HBuilder官网(…

[资源推荐] 飞书画板模板

今天做PPT,尝试了一些AI工具之后,感觉反而降低了做PPT的效率,因为和想实现的效果还是差很多…然后我本人不到万不得已不做PPT,都是用notion这类在线文档来作展示,今天必须得做ppt,但是不想在ppt里面画图&am…

想找就能找!如何找回iPhone中被隐藏或主屏幕上被删除的应用程序

本文介绍了如何取消隐藏你在iPhone上隐藏的应用程序,以及如何检索你从iPhone中删除的应用程序。 如何取消隐藏隐藏的应用程序 你过去可能在iPhone上隐藏了应用程序,因为你不经常使用它们,或者你只是喜欢几个整洁的主屏幕。如果你决定将隐藏…

kali linux将默认的非root提升为root权限

1、点击左上角的电源按钮; 2、点击重启; 3、到了这个界面后,在5秒的时间内按下“E”键(键盘上的E,不区分大小写); 4、 按下”E“键后,会跳到这个界面,然后按下键(↓)光…

【进程管理】进程状态

一.什么是进程状态 进程状态是PCB中定义的一个字段,具体到LInux操作系统,就是task_struct结构体中的一个变量,所谓的状态变化,本质就是修改整型变量。例如: #define NEW 1 #define RUNNING 2 #define BLOCK 3 …… in…

【javascript】内部引入与外部引入javascript

创建a.html 内部引入&#xff1a; 外部引入&#xff1a; 创建a.js 注意&#xff1a; 我这里的a.js和a.html是放在同一个目录下&#xff0c;如果a.js放在js的目录下&#xff0c;a.html 调用a.js的时候 <script src"/js/a.js"></script>

【C++中cin、cin.get()、cin.getline()、getline() 的区别】

文章目录 引入cin基本用法输入多个变量换行符存放在缓冲区中 cin.get()基本用法重载函数换行符残留在缓冲区中 cin.getline()基本使用重载函数换行符不会残留在缓冲区中 string 流中的 getline()总结用法总结几个输入实例输入格式输入格式输入格式输入格式 输出格式 写在最后 引…

【毕业设计】基于SSM的商城系统

前言 &#x1f525;本系统可以选作为毕业设计&#xff0c;运用了现在主流的SSM框架&#xff0c;采用Maven来帮助我们管理依赖&#xff0c;所选结构非常合适大学生所学的技术&#xff0c;本系统结构简单&#xff0c;容易理解&#xff01;本系统功能结构完整&#xff0c;非常高适…

发展新能源汽车加快充换电基础设施建设实施方案-安科瑞黄安南

摘要&#xff1a;为深入贯彻落实《国务院办公厅关于印发新能源汽车产业发展规划&#xff08;2021—2035年&#xff09;的通知》&#xff08;国办发 ﹝2020﹞39号&#xff09;、《国家发展改革委等部门关于进一步提升电动汽车充电基础设施服务保障能力的实施意见》&#xff08;发…

【疯狂Java讲义】Java学习记录(使用jar命令打包)

jar命令 把多个文件打包成一个压缩包——这个压缩包和WinZip的压缩格式是一样的。 区别在于jar压缩的文件默认多一个META-INF的文件夹&#xff0c;该文件夹里包含一个MANIFEST.MF的文件&#xff08;清单&#xff09;。 通常来说&#xff0c;得到的压缩包有3种&#xff08;压缩格…

机器学习tip:sklearn中的pipeline

文章目录 1 加载数据集2 构思算法的流程3 Pipeline执行流程的分析ReferenceStatement 一个典型的机器学习构建包含若干个过程 源数据ETL数据预处理特征选取模型训练与验证 一个典型的机器学习构建包含若干个过程 以上四个步骤可以抽象为一个包括多个步骤的流水线式工作&…

Ubuntu安装和配置ssh

一般Ubuntu都会默认安装openssh-client,但是没有安装openssh-server。 一、安装ssh服务器 sudo apt install openssh-server 二、安装ssh客户端 sudo apt install openssh-client 三、 配置ssh客户端,去掉PasswordAuthentication yes前面的#号,保存退出 sudo vi /etc/ssh…

mysql按照日期分组统计数据(date_formatstr_to_date)

学习链接 mysql按照日期分组统计数据 博主-山茶花开时的 【Mysql专栏学习】 mysql按照日期分组统计数据 Mysql的date_format函数想必大家都使用过吧&#xff0c;一般用于日期时间转化&#xff0c;如下所示 # 可以得出 2023-01-01 08:30:50 select DATE_FORMAT(2023-01-01…

NodeMCU ESP8266 的PWM波形输出教程(图文并茂)

NodeMCU ESP8266 基于 Arduino 的 PWM波形输出 文章目录 NodeMCU ESP8266 基于 Arduino 的 PWM波形输出什么是PWM?常用接口pinModeanalogWrite 示例总结 什么是PWM? PWM是脉冲宽度调制&#xff08;Pulse Width Modulation&#xff09;的缩写&#xff0c;是一种用于控制电子设…

百度的新想象力在哪?

理解中国大模型&#xff0c;百度是一个窗口。这个窗口的特殊性不仅在于变化本身&#xff0c;而是在于百度本身就是那个窗口。 作者|皮爷 出品|产业家 沿着首钢园北区向西北步行10分钟&#xff0c;就能看到一个高约90米的大跳台&#xff0c;在工业园钢铁痕迹的印衬下&#…

9.构造器与垃圾收集器 对象的前世今生

9.1 对象与变量的生存空间 栈与堆&#xff1a;生存空间 在Java中&#xff0c;程序员会在乎内存中的两种区域&#xff1a;对象的生存空间堆&#xff08;heap&#xff09;和方法调用及变量的生存空间&#xff08;stack&#xff09;。当Java虚拟机启动时&#xff0c;它会从底层的…