汽车EEA架构:架构的简介

news2024/12/27 8:09:05

1.架构的定义  

        汽车领域谈论的架构一词,来源于英文单词Architecture。在《系统架构:复杂系统的产品设计与开发》一书中对架构的定义如下:系统架构是一种概念的具象化,是物理或信息功能到形式元素的分配,是系统之内的元素之间的关系与周边环境关系的一定定义。而IEEE(Institute of Electrical and Electronics Engineers,电器电子工程师学会)对于架构的定义如下:架构是一个系统在其组件层面的基本组织结构表现,包括系统内部组件之间的关系,组件与外部的关系以及决定其设计和演进的原则。

        电子电气架构这个词包含二个部分:电子电气和架构。电子电气指车上所有电子电气部件构成的电子电气系统,它限定了架构一词的范围。结合架构一词的含义,电子电气架构指的是车上电子电气系统中各种组件之间的结构(关系),以及系统之内的组件与周边环境所构成的结构,还包含了设计这些组件乃至整个系统的原则和系统的演进原则。电子电子架构的最终输出物如下图1。

图 1

2.电子电气架构的4个子架构

        从技术层面分解电子电气架构可以有多种方式,不同的分层方式反映了不同的关注点。在如下图2所示的架构分层中,将电子电气架构分为4个子架构:功能架构,电气架构,网络架构和软件架构。

图 2

2.1网络架构

        网络架构是汽车上网络系统的架构,是最宏观且最直观的电子电气架构表现形式。网络系统是电子电气系统的子系统,它描述了网络组件及其总体结构,并定义了各种网络设备的连接原则。网络拓扑图是对网络架构中网络组件及其结构关系的一种静态,简单的呈现方式,网络拓扑不等于网络架构。以下是从静态(物理)和动态(逻辑)两个视图进行描述,每个视图又可以分别从宏观和微观的维度进行剖析,如下表1:

表 1

2.1.1网络拓扑

        网络拓扑可以表示网络中各个节点的连接形式。网络拓扑中的每个ECU(Electronic Control Unit,电子控制器单元)节点都是这个电子电气系统的重要组件。正是这些连接在网络中的组件连接起了所有的功能组件--传感器和执行器。并且所有的逻辑功能控制都是由这些ECU节点来承载并实现的。

        网络拓扑是网络架构的一个静态视图。它描述了电子电气系统中各个ECU之间的网络通信关系,即网络结构。在网络通信技术应用到汽车中后,已经极少有功能是单一的控制器独立实现的,每个控制器都要从其他的控制器中获取某些信息,从而使整车的各个控制器通过网络连接到一起,并让各个功能之间有了逻辑关系,让智能化在一定程度上得以实现。网络拓扑的基本结构如下6种,如图3:

图 3

2.1.2网络协议与规范

        网络协议是一组确定数据如何在同一网络中的不同设备之间传输的规则。它允许连接设备之间相互通信,而不管它们的内部流程,结构或设计有什么不同。网络协议通常由各种网络或信息技术组织根据行业标准制定。OSI(Open System Interconnection,开放式系统互联)模型是最常见的用来定义协议层级的模型,汽车通信中的CAN,LIN,以太网等通信总线的协议基本上按照这个模型进行逐层定义的,如下图4所示OSI 7层模型定义:

图 4

(1)物理层 物理层(Physical Layer)是OSI模型的第一层。该层是整个网络通信的基础,定义了通信信号传输的物理介质类型和相关参数,包括电平、速率、频率等。介质类型包括双绞线、光纤、屏蔽电缆和无线信号等。物理层的主要功能是为数据端设备提供传送数据的通路。

(2)数据链路层 数据链路层(Data Link Layer)控制网络层与物理层之间的通信,主要功能是保证在不可靠的物理线路上进行可靠的数据传输。为了保证传输可靠性,从网络层接收到的数据被分割成待定的可物理层传输的帧(Frame)。帧是用来移动数据的结构包,不仅包括原始数据,还包括发送方和接受方的网络地址以及纠错和控制信息。

(3)网络层 网络层(Network Layer)为传输层提供服务,将传送的数据进行打包或分组。该层的主要作用是使数据包通过节点传送,即通过路径选择算法,将数据包送到目的地。另外,为避免通信子网中出现过多的数据包而造成网络阻塞,需要控制流入的数据包数量,即流控(Flow Control)。(4)传输层 传输层(Transport Layer)负责节点之间的数据传输和控制,建立端到端的连接,其作用是为上层协议提供可靠和透明的数据传输服务,包括处理差错控

制和流量控制等问题。传输层向高层屏蔽了低层数据通信的细节,高层用户看到的只是在两个传输实体之间的一条端到端的、可由用户控制和设定的、可靠的数据通路。传输协议同时进行流量控制或基于接收方可接收数据的快慢程度规定发送速率。传输层是OSI中承上启下的一层,下面三层面向网络,确保信息准确传输;上面三层面向用户主机,为用户提供各种服务。传输层与使用的网络类型无关。

(5)会话层 会话层(Session Layer)的任务是组织和同步在两个通信节点之间的会话,包括建立管理和终止表示层实体之间的通信会话。

(6)表示层 表示层(Presentation Layer)主要用于处理在两个通信系统中交互信息的表示方式,确保一个系统的应用层发送的数据能被另一个系统的应用层识别。表示层包括数据的编码、格式变换、数据加密与解密、数据压缩与恢复等功能。

(7)应用层 应用层(Application Layer)是OSI的顶层,为OSI模型以外的应用程序提供服务。应用层中包含大量的、人们普遍需要的协议。该层提供的服务包括文件传输、文件管理以及电子邮件的信息处理。

        在汽车的通信网络中,每一种总线都有相应的协议和规范,这些规范大多参考OSI模型,对从物理层到应用层的每一层都进行详细的规定。然而,并不是每一种总线都需要完整定义7层协议,如CAN总线标准仅采用OSI模型最下面的两层,即物理层和数据链路层,应用层的功能完全由使用者自行确定。

2.2电气架构

        电气架构是汽车上电气系统的架构。电气系统物理视图中的组件包括车上的所有用电设备,以及存储,传输电能和电气信号的所有部件,如各种ECU,传感器,执行器,线束,保险丝和电池等。

        电气系统的组件包括电能管理,能量分配等。电能管理负责管理车辆的电能使用状态,包括电源挡位的切换,蓄电池充放电管理和状态监控,混动与纯电车直流电压转换的控制等。混动与纯电车的动力电池管理在理论上应该也归到电能管理中,但是目前车企还是将其视为动力系统的一部分,从而划分到单独的部门进行管理。

2.2.1电气架构的物理视图

(1)电气拓扑图 电气拓扑图概要描述了整车电子部件的位置,线束走向(线束拓扑)和线束的连接关系。在某些车企的设计中,电气拓扑图是整车线束原理图的一部分。

(2)线束原理图 线束原理图详细描述了整车所有电子部件的连接关系,以及相应线缆的参数,是整车电气设计中最重要的输出物,是线束设计的重要依据。如下图5是线束原理图示例:

图 5

注意:网络拓扑与电气架构设计息息相关,从某种程度上说,网络拓扑是电气架构物理视图的一部分。

(3)电源分配图 电源分配图描述了整车用电设备的电源供给关系,主要体现了从发电或电能储备设备(蓄电池)经过保险丝盒到各个用电器的电源线,地线(GND)的连接关系,如下图6:

图 6

2.3功能架构

        功能指实现特定的目标或得到特定的输出结果而需要完成的活动或动作。在汽车中,有些功能是通过物理硬件直接实现的,如悬架系统实现了对车身的支撑。在EEA中,大多数功能是依靠软件实现的,属于逻辑层面,因而被称为逻辑功能(Logical Function,LF)。由众多逻辑功能组成的系统被称为逻辑子系统,逻辑子系统是电子电气系统的子系统,是有逻辑视图的组件-逻辑功能所组成的系统。功能架构是逻辑子系统的架构,也叫逻辑架构。

        逻辑子系统的组件是逻辑功能,功能架构体现的是逻辑子系统内的基本结构和逻辑功能之间的关系,以及逻辑功能与周边环境的关系,包括逻辑子系统设计和演进的原则,如下图7所示。

图 7

        功能架构设计要完成整个电子电气系统的逻辑子系统的架构设计,其主要内容是定义每个电子电气架构中的逻辑控制功能,包括传感器,控制(处理)功能和执行器之间的依赖关系。功能架构中的逻辑功能组成的网络在不同的设计工具中呈现的形式不同,但是基本类似如下图8的功能架构,每一个块(Block)代表一个逻辑功能,每一个逻辑功能都是一个独立的功能,逻辑功能的端口之间通过信号连接起来,形成一个功能网络,这个“网络”可以实现比任何单一逻辑功能都复杂的功能。

图 8

2.4软件架构

2.4.1软件架构的定义

        软件架构一词先于电子电气架构产生,对于任何一个软件系统来说,在编码之前,首先要完成的是内部结构和组件之间的关系,设计准则的规划。卡耐基梅隆大学软件工程学院对软件架构的定义是,一个系统的软件架构代表了与整个系统结构和行为相关的设计决策。

        在软件架构的设计中,首先要进行软件架构风格的选择。不同的架构风格需要匹配不同的软件架构,如果架构中的通信总线形式是以太网且中心节点的主要芯片均为SoC,那么面向服务的架构(SOA)就是一个不错的选择。如果还是以MCU作为主控芯片或者采用以CAN总线为主的通信形式,SOA就无法成为备选项。软件架构的主要工作是将功能架构中定义的逻辑功能转换为对应用软件更细化的需求和相应的规范,并将这些需求和设计以某种形式分发给ECU供应商。在与供应商的数据进行交换的过程中,最为普遍的形式有两种:文档和AUTOSAR规定的ARXML格式。

2.4.2软件架构的风格

 2.4.2.1分层架构

        分层架构(Layered Architecture)也称为N层架构,通常分层架构分为4层:表示层(Presentation Layer),业务层(Business Layer),持久层(Persitence Layer)和数据库层(Database Layer)。每一层都是具体工作的高度抽象,有特定的角色和职能,用于实现某种特定的业务请求。分层架构的一个重要特性就是关注分离,每层组件只负责本层的逻辑,这样的划分让组件的功能更容易开发,测试,管理和维护。如下图9所示。

图 9

分层架构使用于以下场景或团队:

  • 需要快速开发应用程序
  • 应用程序需要具有严格的可维护性和可测试性的标准
  • 企业有传统的组织架构基础和流程
  • 缺乏经验和对架构模式了解有限的团队
2.4.2.2事件驱动架构

        事件驱动架构是目前流行的分布式异步架构,用于创建可伸缩的应用程序,该模式适用于从小型到复杂的应用程序。它由高度解耦的,单一目的的事件处理组件组成,其主要思想是异步交付和处理事件。这是一种敏捷且高性能的软件架构模式,围绕所有事件的产生,检测和消费以及他们引发的响应来协调行为,安卓系统就采用了此种架构模式。其如下图10所示:

图 10

2.4.2.3微内核架构

        微内核架构包含一个核心系统和多个插件模块。核心系统用最少的功能来保证系统的正常运作,插件模块作为独立的组件负责特别任务的处理。如下图11所示:

图 11

        核心系统可以定义为通用业务逻辑,而不需要针对特殊情况,特殊规则或复杂条件流程进行代码的定制化。插件模块负责提升核心系统的功能,从而支持额外的业务能力。以任务调度应用为例,微内核包含了所有的任务调度和触发逻辑,而插件模块则包含了各种特殊的任务。

2.4.2.4面向服务架构

        面向服务是一种范式,面向服务架构是一种通过应用面向服务而产生的架构类型。在SOA中,应用程序组件通过网络通信协议为其他组件提供基于标准化接口的服务。服务是一个独立的功能单元,可以被远程访问,独立操作和更新,具有高内聚低耦合的特点,有助于软件复用。由于服务的接口标准化,SOA中的业务层应用程序可以使用多个不同的服务构建。

        SOA有8条基本设计原则:

  • 标准化服务契约
  • 服务松耦合
  • 服务抽象
  • 服务可重用性
  • 服务自治
  • 服务无状态
  • 服务可发现性
  • 服务可组合性

SOA在汽车电子电气架构中的实现框架如下图12所示:

图 12

        在SOA架构中,整车层级的应用功能实现可以使用不同的服务组合,每个服务又可以被多个应用功能所使用,在增加新功能时,甚至不需要增加新的服务或者仅增加少量服务就可以快速部署。而且,当不同的服务可以互操作时,车企可以避免被单一供应商绑定,可以自己实现服务的增加,更新和修改,且无须修改底层软件组件和服务。

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

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

相关文章

Nginx下载、安装、启动及常用命令

天行健,君子以自强不息;地势坤,君子以厚德载物。 每个人都有惰性,但不断学习是好好生活的根本,共勉! 文章均为学习整理笔记,分享记录为主,如有错误请指正,共同学习进步。…

Mac快速安装 chromedriver驱动

全篇大概1200字(含代码),建议阅读时间5分钟。 什么是chromedriver? ChromeDriver 充当了 Selenium WebDriver 和 Chrome 浏览器之间的桥梁,允许开发者通过编程控制浏览器进行自动化测试或操作。 一、下载chromedriver…

大数据项目-Django基于聚类算法实现的房屋售房数据分析及可视化系统

《[含文档PPT源码等]精品Django基于聚类算法实现的房屋售房数据分析及可视化系统》该项目含有源码、文档、PPT、配套开发软件、软件安装教程课程答疑等! 数据库管理工具:phpstudy/Navicat或者phpstudy/sqlyog 后台管理系统涉及技术: 后台使…

2024前端框架年度总结报告(二):新生qwik+solid和次新生svelte+Astro对比 -各自盯着前端的哪些个痛点 - 前端的区域发展差异

引言 2024年,前端开发依然是技术领域的热点之一。随着 Web 应用的日益复杂,前端框架的更新换代也加速了。尽管 React、Vue 和 Angular 老牌框架年度总结 等“老牌”框架仍然占据着主流市场,但一些新兴的框架在不断挑战这些“巨头”的地位&am…

MBox20边缘计算网关:氢能车间数据采集的智慧引擎

氢能作为未来能源体系的重要组成部分,其安全、高效、环保的特性备受瞩目。在氢能车间的日常运营中,数据采集是确保生产流程优化、设备稳定运行及能效提升的关键环节。然而,面对氢能车间复杂多变的生产环境和海量数据,如何实现高效…

【Linux篇】权限管理 - 用户与组权限详解

一. 什么是权限? 首先权限是限制人的。人 真实的人 身份角色 权限 角色 事物属性 二. 认识人–用户 Linux下的用户分为超级用户和普通用户 root :超级管理员,几乎不受权限的约束普通用户 :受权限的约束超级用户的命令提示符是#,普通用…

GPS模块/SATES-ST91Z8LR:电路搭建;直接用电脑的USB转串口进行通讯;模组上报定位数据转换地图识别的坐标手动查询地图位置

从事嵌入式单片机的工作算是符合我个人兴趣爱好的,当面对一个新的芯片我即想把芯片尽快搞懂完成项目赚钱,也想着能够把自己遇到的坑和注意事项记录下来,即方便自己后面查阅也可以分享给大家,这是一种冲动,但是这个或许并不是原厂希望的,尽管这样有可能会牺牲一些时间也有哪天原…

EasyNVR中HTTP-FLV协议无法播放怎么解决?

在科技日新月异的今天,摄像头作为公共安全领域的重要一环,其技术的不断提升正显著地改变着社会的安全格局。从最初的简单监控到如今的高清智能分析,我们可以对特定区域进行实时监控和记录,为社会的安全稳定提供了强有力的保障。 问…

linux环境GitLab服务部署安装及使用

一、GitLab介绍 GitLab是利用Ruby onRails一个开源的版本管理系统,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。 二、GitLab安装 1、先安装相关依赖 yum -y install policycoreutils openssh-server openssh-clients postf…

视频码率到底是什么?详细说明

视频码率(Video Bitrate)是指在单位时间内(通常是每秒)传输或处理的视频数据量,用比特(bit)表示。它通常用来衡量视频文件的压缩程度和质量,码率越高,视频质量越好&#…

DICOM MPPS详细介绍

文章目录 前言一、常规检查业务流程二、MPPS的作用三、MPPS的原理1、MPPS与MWL2、MPPS服务过程 四、MPPS的实现步骤1、创建实例2、传递状态 五、总结 前言 医院中现有的DICOM MWL(Modality Worklist)已开始逐渐得到应用,借助它可以实现病人信息的自动录入&#xff0…

如何手搓一个智能激光逗猫棒

背景 最近家里的猫胖了,所以我就想做个逗猫棒。找了一圈市场上的智能逗猫棒,运行轨迹比较单一,互动性不足。 轨迹单一,活动范围有限 而我希望后续可以结合人工智能物联网,通过摄像头来捕捉猫的位置,让小…

「Mac畅玩鸿蒙与硬件42」UI互动应用篇19 - 数字键盘应用

本篇将带你实现一个数字键盘应用,支持用户通过点击数字键输入数字并实时更新显示内容。我们将展示如何使用按钮组件和状态管理来实现一个简洁且实用的数字键盘。 关键词 UI互动应用数字键盘按钮组件状态管理用户交互 一、功能说明 数字键盘应用将实现以下功能&…

泷羽sec-shell脚本(全) 学习笔记

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…

Unity 利用Button 组件辅助Scroll View 滚动

实现 创建枚举类ScrollDir 以区分滚动方向。每组两个按钮负责同方向上左右/上下滚动。 Update 中实时获取Scroll View 滚动条当前位置。 if (dir.Equals(ScrollDir.vertical)) {posCurrent scroll.verticalNormalizedPosition; } else if (dir.Equals(ScrollDir.horizontal)…

微服务搭建----springboot接入Nacos2.x

springboot接入Nacos2.x nacos之前用的版本是1.0的,现在重新搭建一个2.0版本的,学如逆水行舟,不进则退,废话不多说,开搞 1、 nacos2.x搭建 1,首先第一步查询下项目之间的版本对照,不然后期会…

小程序 - 计算器

小程序交互练习 - 计算器小程序 目录 计算器 功能描述 准备工作 创建项目 配置导航栏 创建utils目录 math.js文件内容 calc.js文件内容 页面内容 页面样式内容 页面脚本事件 功能截图 总结 计算器 在日常生活中,计算器是人们广泛使用的工具&#xff0…

在wsl2中安装archlinux

在之前的博客中,我介绍了如何在虚拟机或者真实机上安装archlinux并且进行一定的配置,但是实际上Linux不管怎么配置在日常使用中都没有Windows简单便利,在开发有关Linux的程序时过去用虚拟机或者直接在Windows上使用ssh在远程服务器上进行开发…

Python毕业设计选题:基于大数据的淘宝电子产品数据分析的设计与实现-django+spark+spider

开发语言:Python框架:djangoPython版本:python3.7.7数据库:mysql 5.7数据库工具:Navicat11开发软件:PyCharm 系统展示 管理员登录 管理员功能界面 电子产品管理 系统管理 数据可视化分析看板展示 摘要 本…

点动和自锁混合控制

中继:KA 线圈有电,常开吸合,常闭断开 SB1——>电机转(自锁)——>KA1(自锁标志位) SB2——>电机停 SB3——>电机点动——>KA2(点动标志位) 严禁出现双…