如何高效学习AUTOSAR?

2021年11月29日汽车技术评论1,630阅读模式
今天整理AUTOSAR的学习方法,为大家学习AUTOSAR提供帮助。

1.  学习AUTOSAR准备

学习AUTOSAR之前,需要我们有一定的基础知识储备。

C/C++语言,毋庸置疑了,如果你的C语言基础已经在大学毕业前就还给老师了,你最好能在B站或慕课上充充电,如果真的想踏实学习AUTOSAR的话,这项准备必不可少。

英文阅读,也必不可少。为什么还要英文啊?主要有两方面,一者,AUTOSAR原文规范,都是纯英文描述,每部分内容动辄几十页,一不小心几百页,要快速筛选我们关注的信息,看懂个中奥秘,没有一定的英语阅读功底,相信我们的学习会束手束脚,久而久之,你可能就放弃学习了。当然,学习过程中我们完全可以借助词典,工具的存在意义就是为“懒惰”的我们服务的。二者,开发过程中,我们少不了和芯片打交道,芯片手册,指导手册,甚至代码世界的注释,多数都是英文的,看不懂它们,对于我们理解物理世界也是举步维艰。

嵌入式系统知识,在我们学习过程中也很重要。能看懂C语言,可以阅读英文手册,都是工具或手段上的帮助,而嵌入式系统知识,则是我们的理论知识。要知道单片机,外设芯片,供电芯片,计时芯片,IO驱动,PWM驱动,复杂驱动,CAN通讯芯片,寄存器,MSC通讯,SPI通讯,DMA,看门狗,操作系统。。。当然,嵌入式系统知识并不是对每个学习AUTOSAR的同学都是不可或缺的,也并不是十分紧迫的,可以在工作过程中逐渐积累,逐步提高。

持续学习的习惯,其实这点是我们不断进步的源泉。从我工作至今,我最大的体会和收获,就是要持续学习。现在不仅互联网行业是“小步快跑,快速迭代”,我们汽车电子行业,也是在不断的一代代更新迭代。所以,持续学习的习惯要养成,还要保持。

有了上面提到的几点准备,我们就可以驶入AUTOSAR的世界了。

2.  学习AUTOSAR过程

学习AUTOSAR的过程,可以分为入门——进阶——高阶三个阶段。

2.1  入门阶段

入门过程,需要我们知道AUTOSAR到底是什么东西?为什么要存在这个东西?它的发展是怎样的?AUTOSAR的概况知识。

其实,如果你是以为正在学习AUTOSAR的工程师,多半已经对AUTOSAR有了些许了解。这就像我们当年写毕业论文一样,还是要了解下研究对象的历史和概览知识。有些同学觉得这个过程没有意义。不然!我们研究一个方向的知识,如果连为什么研究和研究现状、背景都不清楚,我们能研究多深奥呢?而且,要知道发动机的构造和原理,你不从化油器开始,怎么能明白它其中组件今天存在的意义呢。相信我,从了解它的背景开始。

当然,还有一个非常重要的步骤——获取AUTOSAR的规范文档

从2003年成立以来,AUTOSAR已经更新到AUTOSAR 4.4.0 release版本,后台回复“AUTOSAR”可以获取。当然,你也可以从官网获取最新的规范文档,网址:autosar.org/standards。

2018年,为了迎合未来汽车智能化、网联化的需求,AUTOSAR联盟推出了一个全新的平台,将AP加入到原有的AUTOSAR平台中,形成自适应AUTOSAR平台(AUTOSAR Adaptive Platform,AP),并于2018年10月迎来了适用于面向量产的首次发布,另外还将原有平台更名为经典AUTOSAR平台(AUTOSAR Classic Platform)和自适应平台AUTOSAR(AUTOSAR Adaptive Platform),行业内大家习惯叫CP(Classic Platform)和AP(Adaptive Platform)。

如何高效学习AUTOSAR?

有了以上了解,拿到规范文档后,你需要明确你的工作内容在整个产品生命周期的位置。简单介绍下几个流程概念。

OEM TIER1 TIER2
整车厂 一级供应商 二级供应商
奔驰、宝马等(做整车的装配工作) 大陆、博世等(给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和基础软件协议栈展开。
4.  除了以上三类产品开发流程上的角色外,其实还有一个重要角色的存在:工具供应商。了解了AUTOSAR架构和实现过程后,大家可能会看到很多arxml格式的配置文件的制作都离不开工具的支持,以及编译环境、建模工具等,都离不开一直走在超前道路上的工具供应商。

AUTOSAR的开发流程:

如何高效学习AUTOSAR?

                           (高清图后台回复“AutoSAR开发流程”获取)

基本概念

Software Component (SW-C):软件组件

Virtual Functional Bus (VFB):虚拟功能总线

Runtime Environment (RTE):运行环境(实时环境)

Basic Software(BSW):基础软件

Methodology principle:方法论原理

Mode Management:模式管理

Memory Abstraction:存储抽象

Runnables:可运行实体

文档命名规则

EXP: 即Explaination"解释",详细介绍论题

MMOD: 即Meta Model"元模型",介绍 AUTOSAR元模型

MOD: 即Model"建模",介绍建模的原理

RS: 即Requirement Specification"需求规范", 详细介绍需求

SRS: 即Softeware Requirement Specification"软件需求规范", 描述所有软件模块的规范

SWS: 即Softeware Specification"软件规范", 介绍软件模块设计和实现的规范

TPS: 即Template Specification"模板规范", 详细介绍元模型

TR: 即Technical Specification"技术规范",详细介绍技术规范

有了以上的入门知识了解后,我们就可以有侧重的学习AUTOSAR知识了。

2.2  进阶阶段

了解了AUTOSAR的概览知识和分层架构等基础知识后,可以根据自己角色的需求,有倾向性地打开自己要攻克的领域了。按照AUTOSAR的框架,主要内容可以分为如下四部分:

2.2.1.  应用层

如何高效学习AUTOSAR? 应用层概览
如何高效学习AUTOSAR? SWC类型
如何高效学习AUTOSAR? Ports类型
如何高效学习AUTOSAR? 可运行实体Runnables

2.2.2.  RTE

如何高效学习AUTOSAR? RTE概述

如何高效学习AUTOSAR? RTE对Runnables的管理

如何高效学习AUTOSAR? RTE对Ports的管理

如何高效学习AUTOSAR? RTE对数据一致性的管理

如何高效学习AUTOSAR? RTE对interface的管理

2.2.3.  BSW

如何高效学习AUTOSAR? BSW的概述

如何高效学习AUTOSAR? BSW的IO实现

如何高效学习AUTOSAR? BSW的通信实现

如何高效学习AUTOSAR? BSW的存储实现

如何高效学习AUTOSAR? BSW的模式管理

如何高效学习AUTOSAR? BSW的看门狗实现

如何高效学习AUTOSAR? BSW的诊断系统实现

如何高效学习AUTOSAR? BSW的操作系统实现

2.2.4. 方法论

如何高效学习AUTOSAR? 方法论概述

如何高效学习AUTOSAR? ECU的描述文档

如何高效学习AUTOSAR? ECU提取的实现

其实上面提及的都是非常笼统地概括了和AUTOSAR工作相关的内容,能针对性地将自己要学习的领域入门,再进一步,那就已经非常好了。

2.3  高阶阶段

所谓高阶,其实是我们在学习过程中的融会贯通。

如何才能成为专家级的AUTOSAR工程师呢?Demu以为,需要有项目实战的支撑。

前面的入门和进阶已经为我们成为高手做好了铺垫,剩下的就需要我们在实际的项目开发过程中成长自我,提升自我。

在高阶阶段,我们可以将AUTOSAR的规范文档作为理论指导,到实际的项目代码世界去徜徉,看看CAN通信从CAN驱动到CanIf,再到CanTp,再到PDUR,再到AUTOSAR COM是如何层层封装,层层调用的。CAN网络管理和模式管理,UDS,DCM和Dem又在其中发挥着怎么样的作用。答案都在代码里。

而且,告诉大家一个小窍门,学习AUTOSAR,尤其是BSW过程,一定要充分利用好Debug工具,它可以让你真正“看到”代码是如何运行的。

另外,AUTOSAR实际配置过程中的精髓是arxml文件的配置和解析

多用配置工具尝试不同配置,真正理清代码的实现逻辑,多去试错,才能更快成长。

3   学习AUTOSAR感悟
AUTOSAR是汽车行业的系统架构规范,它让我真正地明白“一流的企业在做标准”。仔细看看AUTOSAR的规范,振兴我们民族工业还有很远的路要走,现在我们甚至连这个规范文档都看不下去,更别谈将来有朝一日能制定行业的规范、世界标准了。沉下心来,真正地吃透它,消化它,吸收它,改进它,创造新的“它”!
日拱一卒无有尽,功不唐捐终入海。
罗振宇在跨年演讲中提到,我们都是“我辈中人”,在当下要“躬身入局”。是的,我们是汽车行业的“我辈中人”,我们要迎难而上,“躬身入局”,承担起这份担当,擎起名族复兴的大旗。

weinxin
扫码关注公众号
关注公众号领精彩彩蛋!
AUTOSAR通信篇—AUTOSAR COM模块 汽车技术

AUTOSAR通信篇—AUTOSAR COM模块

AUTOSAR COM是AUTOSAR通讯的重要组成部分,它是从OSEK COM标准的基础上发展而来的。它提出了一个不同速率的总线网络之间进行数据交换的方法,为汽车控制单元应用软件提供了统一的通信环境...
AutoSar之方法论Methodology 汽车技术

AutoSar之方法论Methodology

AUTOSAR为汽车电子软件系统开发定义了通用的技术方法,即AUTOSAR方法论。该方法论描述了从系统底层配置到ECU可执行代码产生过程的设计步骤。AUTOSAR开发方法是基于虚拟功能总线的开发方法。...

发表评论