汽车EEA架构:架构的简介
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架构中,整车层级的应用功能实现可以使用不同的服务组合,每个服务又可以被多个应用功能所使用,在增加新功能时,甚至不需要增加新的服务或者仅增加少量服务就可以快速部署。而且,当不同的服务可以互操作时,车企可以避免被单一供应商绑定,可以自己实现服务的增加,更新和修改,且无须修改底层软件组件和服务。
相关文章:
汽车EEA架构:架构的简介
1.架构的定义 汽车领域谈论的架构一词,来源于英文单词Architecture。在《系统架构:复杂系统的产品设计与开发》一书中对架构的定义如下:系统架构是一种概念的具象化,是物理或信息功能到形式元素的分配,是系统之内的元素之间的关系与周边环境…...
渗透测试--数据库攻击
这篇文章瘾小生其实想了很久,到底是放在何处,最终还是想着单拎出来总结,因为数据库攻击对我们而言非常重要,而且内容众多。本篇文章将讲述在各位获取数据库权限的情况下,各个数据库会被如何滥用,以及能够滥…...
反向路径转发(RPF)
本文介绍了反向路径转发(RPF)是如何在FortiGate上实现的。 它还解释了特定于VDOM的CLI设置“config system settings -> set strict-src-check”如何修改RPF行为。 测试场景中使用了以下设置 反向路径过滤器(又名RPF)是一种安…...
Python 正则表达式常用特殊字符及其含义
以下是 Python 正则表达式常用特殊字符及其含义 的全面整理,涵盖了常见和重要的正则符号,以及它们的示例,适合用来写博客或学习使用: Python 正则表达式常用特殊字符及其含义 1. . (点号) 含义:匹配除换行符 \n 以外…...
Uniapp Android SpringBoot3 对接支付宝支付(最新教程附源码)
Uniapp Android SpringBoot3 对接支付宝支付(最新教程附源码) 1、效果展示2、后端实现2.1 引入支付宝SDK依赖 pom.xml2.2 配置 application.yml2.3 支付宝相关代码2.3.1 AlipayConfig.java2.3.2 ZfbPayConfig.java2.3.3 支付接口2.3.4 支付回调处理接口&…...
SQL DML 语句
CREATE TABLE classes (ClassID varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 班级ID,ClassName varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT 班级名称,TeacherID varchar(20) CHARACTER SET utf8mb4…...
饲料颗粒机全套设备有哪些机器组成
颗粒饲料机主要用于将各种饲料原料(如玉米、豆粕、麦麸、鱼粉等)进行混合、压制,制成颗粒状的饲料。这种饲料不仅方便储存和运输,还能提高动物的采食效率和饲料利用率。同时,颗粒饲料在加工过程中能灭部分微生物和寄生…...
MySQL事务与锁
定义一个事务向d_eams数据库的student表中插入3条记录,并检验若插入相同的学号,则回滚事务,既插入无效,否则成功提交 delimiter $$ create procedure tr_proc() begindeclare continue handler for sqlstate 23000beginrollback;…...
汽车免拆案例 | 2007款宝马650i车发动机偶尔无法起动
故障现象 一辆2007款宝马650i车,搭载N62B48B发动机,累计行驶里程约为26万km。车主反映,发动机偶尔无法起动,故障频率较低,十几天出现1 次,且故障出现时起动机不工作。 故障诊断 接车后试车,…...
PostgreSQL和Oracle的sql差异
PostgreSQL和Oracle的sql差异 1.rownum (1)Oracle分页查询使用rownum,PostgreSQL使用limit offset ORACLEPOSTGRESQLselect * from (select rownum r,e.* from emp e where rownum <5) t where r>0;select * from emp limit 5 offset…...
SpringMvc完整知识点二(完结)
SpringMVC获取请求参数 环境准备工作等均省略,可详见快速入门,此处只写非共有部分代码 该部分示例项目SpringMvcThree已上传至Gitee,可自行下载 客户端请求参数的格式为:namevalue&passwordvalue... ... 服务端想要获取请求…...
29 - Java Serializable 序列化
Java的Serializable接口是Java序列化机制的核心,它允许一个对象的状态被转换为字节流,从而可以方便地进行存储或传输。 序列化后的对象可以被写到数据库、存储到文件系统,或者通过网络传输。 要在 Java 中使一个类可序列化,你需要…...
59 基于STM32的烟雾、红外、温湿度检测
所有仿真详情导航: PROTEUS专栏说明-CSDN博客 目录 一、主要功能 二、硬件资源 三、主程序编程 四、资源下载 一、主要功能 基于SMT32F103C8T6单片机,采用DHT11检测温湿度,采用光敏电阻检测光照,采用滑动变阻器分别模拟红外、烟雾,通过OLED显示屏显示,如果湿度过低…...
使用Excel 对S型曲线加减速算法进行仿真
项目场景: 项目场景:代码中写了S型加减速算法,相查看生成的加减速数组,直观的展示出来,USB通信一次64字节,对于我几个个32位的频率值不太方便,于是采用Excel进行仿真。 代码中如何生成S加减速曲…...
flink-connector-mysql-cdc:01 mysql-cdc础配置代码演示
flink-connector-mysql-cdc: 01 mysql-cdc基础配置代码演示02 mysql-cdc高级扩展03 mysql-cdc常见问题汇总04 mysql-cdc-kafka生产级代码分享05 flink-kafka-doris生产级代码分享06 flink-kafka-hudi生产级代码分享 flink-cdc版本:3.2.0 flink版本&…...
java计算机毕设课设—进销存管理系统(附源码、文章、相关截图、部署视频)
这是什么系统? 资源获取方式再最下方 java计算机毕设课设—进销存管理系统(附源码、文章、相关截图、部署视频) 一、项目简介 项目名称: 基于Java的进销存管理系统 开发背景: 在现代企业管理中,库存管理是核心环节之一&#…...
鸿蒙UI开发——渐变色效果
1、概 述 ArkTs可以通过颜色渐变接口,设置组件的背景颜色渐变效果,实现在两个或多个指定的颜色之间进行平稳的过渡。 目前提供三种渐变类型:线性渐变、角度渐变、径向渐变。 我们在鸿蒙UI布局实战 —— 个人中心页面开发中,默认…...
嵌入式硬件设计 — 智能设备背后的隐形架构大师
目录 引言 一、嵌入式硬件设计概述 (一)需求分析 (二)硬件选型 (三)电路设计 (四)PCB 制作与焊接 (五)硬件调试与测试 (六)软…...
QNX的系统资源访问机制
资料参考: QNX官网文档 在QNX中,一些系统的资源默认是无法访问的,或者可访问的范围过大,导致产生不可控的危险,此时便需要对系统资源进行访问限制 接口如下 #include <sys/rsrcdbmgr.h> #include <sys/rsrcdbmsg.h>int rsrcdbmgr_create(...
高校数字化运营平台解决方案:构建统一的服务大厅、业务平台、办公平台,助力打造智慧校园
教育数字化是建设教育强国的重要基础,利用技术和数据助推高校管理转型,从而更好地支撑教学业务开展。 近年来,国家多次发布政策,驱动教育行业的数字化转型。《“十四五”国家信息化规划》,推进信息技术、智能技术与教育…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
线程与协程
1. 线程与协程 1.1. “函数调用级别”的切换、上下文切换 1. 函数调用级别的切换 “函数调用级别的切换”是指:像函数调用/返回一样轻量地完成任务切换。 举例说明: 当你在程序中写一个函数调用: funcA() 然后 funcA 执行完后返回&…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
pam_env.so模块配置解析
在PAM(Pluggable Authentication Modules)配置中, /etc/pam.d/su 文件相关配置含义如下: 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块,负责验证用户身份&am…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
土地利用/土地覆盖遥感解译与基于CLUE模型未来变化情景预测;从基础到高级,涵盖ArcGIS数据处理、ENVI遥感解译与CLUE模型情景模拟等
🔍 土地利用/土地覆盖数据是生态、环境和气象等诸多领域模型的关键输入参数。通过遥感影像解译技术,可以精准获取历史或当前任何一个区域的土地利用/土地覆盖情况。这些数据不仅能够用于评估区域生态环境的变化趋势,还能有效评价重大生态工程…...
vue3+vite项目中使用.env文件环境变量方法
vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...
R语言速释制剂QBD解决方案之三
本文是《Quality by Design for ANDAs: An Example for Immediate-Release Dosage Forms》第一个处方的R语言解决方案。 第一个处方研究评估原料药粒径分布、MCC/Lactose比例、崩解剂用量对制剂CQAs的影响。 第二处方研究用于理解颗粒外加硬脂酸镁和滑石粉对片剂质量和可生产…...
人机融合智能 | “人智交互”跨学科新领域
本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...
