车载电子电器架构 —— 汽车电子电气系统分解

车载电子电器架构 —— 汽车电子电气系统分解

我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师:

屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。
无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、焦虑、毁掉你本就不多的热情和定力。

文章大体有如下内容:

1、汽车电子电气系统分解

一、 汽车电子电气系统分解

在1.4节中我们分析了汽车电子电气系统的构成。可以看出,无论从哪个视角来看,汽车电子电气系统都具有高度复杂性,属于典型的复杂系统。

电子电气架构出现的目的之一就是解决汽车电子电气系统的复杂性。车辆作为一个系统,与外部环境(人、自然环境、其他车辆等)之间有着千丝万缕的联系。在车的内部,各种部件和部件之间又有着剪不断理还乱的关系,正是这种复杂性使汽车工业区别于其他的行业,成为民用工业皇冠上的明珠。

系统分解的目的和意义

在开发复杂度较高的系统时,最困难的往往是对其进行管理。系统分解是一种应对系统复杂性的方法。由系统的定义可知,系统的复杂性由系统的三要素决定:组件、外部环境、结构关系。组件数量越多,外部环境越复杂,内部的结构关系越复杂,那么系统的复杂度也越高。对于复杂系统的设计和管理,最好的方式就是将其分解为复杂度较低的子系统,再将子系统不断分解,直到分解为可以被设计、被验证和被管理的较小的、基本独立的系统,系统分解是整个开发活动中难度最大,也是最重要的环节。

系统分解的目的是便于管理和实现功能,而从哪个视图对系统进行分解则体现了组织对各个视图内容的重视程度。

系统的分解过程也是组织内部人员分工的过程:在将大系统分解为可以被掌握和管理的小系统的同时完成组织内部的分工。从这个角度来讲,系统分解过程中既完成了系统边界的划定,也完成了个人或团队之间工作边界与职责的划定。

对于电子电气架构设计而言,系统分解是设计工作的重要前提。而系统分解中最复杂的事情可能就是划分系统边界了。曾获得麦克阿瑟天才奖的多纳拉·H.梅多斯在《系统思维》一书中说:“不存在单独的系统,世界是一个整体。如何划分系统边界取决于讨论的目的。”可以毫不夸张地说:系统分解是一门艺术,完全取决于进行分解的目的。

良好的系统分解将大大提升组织的运行效率和系统的开发效率。尽可能提高子系统的内聚程度并减少子系统之间的耦合,可以减少系统开发过程中人力资源的消耗,并能通过有效降低系统复杂度来保证系统的质量并控制开发成本。正如亚当·斯密在《国富论》中所论述的,“有了分工,同等数量的劳动者就能完成比过去多得多的工作量,其原因有三:第一,劳动者的技巧因业专而日进;第二,由一种工作转到另一种工作,通常须损失不少时间,有了分工,就可以免除这种损失;第三,许多简化劳动和缩减机械性劳动的发明,使一个人能够做许多人的工作。”

随着时代的变迁与技术的更新,各个组织对系统的分解方式也在不断进行着相应的变革。

系统分解的4个步骤与3个原则

系统包含3个主要的组成部分:组件、环境和结构关系。系统分解的本质是在不改变原始系统的现有组件、环境和结构关系的前提下将组件进行分组,形成若干较小的子系统。在系统被分解后,各个组件在形式上已经归属于新的子系统,这些子系统则归属于原来的系统。在一个组件归属于新的子系统之后,这个组件与归属于其他子系统的组件的关系将被子系统继承,原本属于组件之间的关系就变成了子系统之间的关系。各个子系统以组件的形式存在于系统中。这个过程可以理解为从天上由近及远地看一个城市:虽然城市没有变,但看到的事物已经从一个个具体的建筑物变为一个个街区了。

系统分解分为纵向分解和横向分解。纵向分解指将复杂而庞大的系统进行分层,从而使每一层可以尽量独立地开展工作,这有助于效率和质量的提升。比如将电子电气系统按照开发阶段分为需求层、系统层和部件层等,将控制器的软件分为应用层、中间件层、驱动层等。横向分解是指将同一层的组件进行拆分和分组,如将需求分解为功能性需求和性能需求,将电子电气系统层分解为车身系统、动力系统、娱乐系统等。

在这里插入图片描述

本节将详细描述系统分解的步骤和原则。

系统分解的4个步骤

将系统进行分解是一个高度复杂的工作,可以按照以下4个基本步骤依次进行。

明确对象 因为系统的分解主要是针对组件进行的,那么首先要明确的就是组件是什么。我们已经知道了,任何一个复杂系统都可以有多个视图,从每个视图看到的组件可能完全不同。对于电子电气系统来说,从逻辑视图看到的是逻辑功能,从物理视图看到的是各种部件,从过程视图看到的是开发过程中的各种阶段性工作和输出物。而且,所谓组件也完全取决于观察者的位置和角度:一个控制器既可以被继续分解为外壳、PCBA(Printed Circuit Board Assembly,印刷电路板总成)和插件等更小的部件,也可以与周边的传感器和执行器等组成一个较大的组件。

既然系统分解的目的是便于管理和开发,而且系统分解又有多个可以入手的角度,那么究竟应该从哪个视图入手对电子电气系统进行分解就取决于管理的方式和目的了。

对于以硬件系统集成为主要开发方式的车企,既然管理的主要标的物是硬件,那么从物理视图入手进行分解就是一种适合的方式,也就是将电子电气系统的所有零部件按照类别进行划分,从而得到多个子系统,比如可以分为底盘控制系统、动力控制系统等。每个子系统中的组件就是一个个控制器和相关的执行器与传感器。

如果整车厂有能力自己进行完整的上层功能逻辑设计,甚至可以深度参与到供应商的软件开发工作中,那么仅从物理层面划分系统就不够严谨了。因为在这种情况下,车企需要管理的不只是零部件,对逻辑层面也要进行深度管理。这个时候,从逻辑视图入手进行系统划分就变得很有必要了。因为逻辑子系统的组件是逻辑功能(Logical Function,LF,或称为逻辑部件,Logical Component,LC),所以从逻辑视图进行的系统划分就是将整个电子电气系统中的逻辑组件进行分类。虽然划分的结果可能还会有底盘控制系统、动力控制系统,但是它们内部的组件已经完全不同了。

电子电气系统还有一个过程视图,理论上也可以通过过程视图进行系统分解。事实上,所有整车厂早已按照开发过程将系统进行了分解,只是大家已经对这种划分习以为常,所以才察觉不到。如图1-10所示,每个按照功能属性划分的系统(动力、信息娱乐等)又被按照开发过程分为需求开发、架构设计和测试验证等更小的系统。

没有哪个车企只从单一的视图进行电子电气系统的分解,大多数都是从3个视图同时开展系统分解的。

确定层级 明确了系统分解的对象之后,要做的是确定系统分解工作的层级,也就是将一个系统分解多少次。因为系统本身没有界定层级的作用,所以界定层级就只能依靠分解者自己了。

系统之间可以是并列关系,也可以是包含关系。例如,底盘系统与车身控制系统就是并列的关系,它们之间没有重叠的部分。像车身控制系统与外灯控制系统和锁系统之间的关系就变成了包含与被包含的关系。也就是说,一个系统既可以是其他系统的组件,也可以包含多个子系统。

另外,系统之间不可以有相互重叠的部分。例如,虽然从物理视图看到的灯光控制系统和雨刮系统共用了相同的部件(组合开关),但该部件在物理系统划分中应该唯一属于某一个系统,而不能被两个系统共同包含。

一个系统的大小取决于不同的视角和目的,也取决于组织对于系统的掌控程度,以及组织内部分工的细化程度。一般来说,掌控得越详细,系统中组件的颗粒度就越小,系统内部的组件就越多。

在整车的开发管理中,大多会采用如图的整车电子电气系统分层方式,将电子电气系统分解为可以被管控的子系统,甚至物理或逻辑零部件。

在这里插入图片描述

随着智能驾驶辅助的兴起,电子电气系统需要被进一步拓展。有的车企把智能驾驶辅助相关的部件设置为一个与其他传统系统并列的系统;有的车企把智能驾驶辅助和被动安全整合到一起,统称为主被动安全;有的车企把智能驾驶辅助划归到电子电器系统中统筹管理;有的车企则将智能驾驶辅助的相关部件划分到了底盘系统中。

在逻辑视图层面,车企对智能驾驶辅助功能相关逻辑系统的划分方法同样是五花八门,有的将智能驾驶辅助功能以部件的功能划分为图像处理、雷达数据处理等逻辑子系统,有的车企按照功能类别划分为泊车辅助、行车辅助等逻辑子系统,有的则将其按照数据流向划分为感知、决策和执行等逻辑子系统。

各种划分方式无所谓好与坏,只是反映了划分时的态度与认知,并且与当时组织的机构设置、人员构成直接相关。说到底,系统是一个集合的概念,如何设置系统的边界,完全是人决定的,而不同人的认知和关注点总是差异巨大。

无论技术的发展、需求的变更,还是人员的调整,都可能导致原来的分解结果需要调整。因为系统分解的结果会反过来影响组织机构和相关人员的职责,继而对技术和需求产生影响,所以系统分解之后的持续维护和更新就变成了一项重要且持续的工作。

2.系统分解的3个原则

无论从哪个视图进行系统分解,下面列举的系统分解基本原则都是普遍适用的。

-> (1)完备性 对系统分解工作的基本要求是完备性,即不遗漏、不重叠。此原则也被称为MECE(Mutually Exclusive, Collectively Exhaustive,相互独立,完全穷尽)法则。无论哪一个视图,都需要充分识别系统中的所有组件,并让每一个组件都归属于某一个子系统,且唯一归属于这个子系统。

-> (2)可管理 分解后产生的子系统的颗粒度既不能太小也不能太大,要维持在一个可被管理的程度。如果太小,则管理成本会很高,需要大量的人力来对应。如果太大,则分解的作用就不明显了。是否可以被管理是一个相对的判断,取决于组织的人员数量和能力,没有一个绝对的标准。

-> (3)高内聚低耦合 由于被分解的系统中各个组件之间存在着各种连接关系,因此当被分解为多个子系统之后,这些子系统之间就会继承内部组件之间的连接关系,从而形成子系统之间的连接关系。这种子系统之间的连接关系导致了子系统之间的相关性。

搁笔分享完毕!

愿你我相信时间的力量

做一个长期主义者!

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

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

相关文章

【操作系统概念】第14章:系统保护

文章目录 0. 前言14.1 保护目标14.2 保护原则14.3 保护域14.3.1 域结构14.3.2 实例:UNIX14.3.3 实例:MUTICS 14.4 访问矩阵14.5 访问矩阵的实现14.5.1 全局表14.5.2 对象的访问列表14.5.3 域的能力(权限)列表14.5.4 锁-钥匙机制*14.5.5 比较* 14.6 访问控…

Github 2024-03-10php开源项目日报Top10

根据Github Trendings的统计,今日(2024-03-10统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量PHP项目10Blade项目1Laravel:表达力和优雅的 Web 应用程序框架 创建周期:4631 天开发语言:PHP, BladeStar数量:75969 个Fork数量:24281 次…

Vue脚手架

Vue脚手架 学习目标: 理解Node.js基本使用方法理解包资源管理器NPM的使用理解webpack的作用理解 vue-cli 脚手架 (重点)Element-UI 组件库 1.vue的格式:new Vue({//作用的视图el:"id选择器",//vue中的数据/*data:{key:value,key:value,...}…

Java 基于微信小程序的快递柜小程序

博主介绍:✌程序员徐师兄、7年大厂程序员经历。全网粉丝12w、csdn博客专家、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取源码联系🍅 👇🏻 精彩专栏推荐订阅👇…

devops-Jenkins【内网环境部署及插件安装】

1、准备工作 外网Linux机器一台,内网Linux机器一台。硬件环境要求:至少1GB的可用内存空间,至少50GB的可用硬盘空间。软件环境需求:需要安装好Java8,Java的运行环境JRE1.8或者Java的开发工具包JDK1.8都可以。 2、外网安…

结构指针的使用

结构指针的使用 指针类型变量: 指针类型,是变量类型的一种,它是专门用来存储变量的地址的。 例如 int *p; 表示p是一个指针变量,它用来存储某个整型变量的地址。 int a5; int *p&a; 这样,就将整型变量a的地…

体系班第十三节

1判断完全二叉树递归做法 有四种情况&#xff1a;1 左树完全&#xff0c;右数满&#xff0c;且左高为右高加一 2左满 &#xff0c;右满&#xff0c;左高为右高加一 3左满&#xff0c;右完全&#xff0c;左右高相等 4左右均满且高相等 #include<iostream> #include&l…

转移表回调函数实现

回调函数实现 计算器的模拟&#xff08;函数指针数组的使用&#xff09;&#xff08;回调函数&#xff09; 简化 冗余 老的代码的问题就是 冗余 写死 不能完成不同的任务 函数调用的时候只需要知道地址就可以 calc计算器 这里也称之为转移表 #define _CRT_SECURE_NO_WAR…

出现“error: failed to push some refs to ‘https://github.com/****.git‘”,如何解决问题

一、出错情况&#xff1a; 今天继续推送整理的知识点的时候&#xff0c;出现了一个报错。“error: failed to push some refs to https://github.com/.git”&#xff0c;百思不得其解&#xff0c;之前推送的时候都可以轻松推送成功&#xff0c;如今却说本地库与远程库不一致。…

腾讯云轻量应用服务器“月流量”什么意思?用完了怎么办?

腾讯云轻量应用服务器“月流量”什么意思&#xff1f;就是限制月流量的意思。腾讯云轻量服务器流量用完了怎么办&#xff1f;超额部分的流量另外支付流量费&#xff0c;流量价格为0.8元/GB&#xff0c;会自动扣你的腾讯云余额&#xff0c;如果你的腾讯云账号余额不足&#xff0…

Git win与linux换行符转换的问题

转载&#xff1a;warning: in the working copy of ‘package-lock.json‘, LF will be replaced by CRLF the next time Git_warning: in the working copy of package.json, lf-CSDN博客 warning: in the working copy of ‘package-lock.json‘, LF will be replaced by CRL…

ModStartBlog 稳定版 v9.0.0

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用&#xff0c;支持后台一键快速安装&#xff0c;让开发者能快的实现业务功能开发。系统完全开源&#xff0c;基于 Apache 2.0 开源协议。 功能特性 丰富的模块市场&#xff0c;后台一键快速安装 会…

C++ Function Templates (函数模板)

C Function Templates [函数模板] 1. Templates and Generic Programming (模板与泛型编程)2. Defining a Function Templates (定义函数模板)2.1. Instantiating a Function Template (实例化函数模板)2.2. Template Type Parameters (模板类型参数)2.3. Nontype Template Par…

【实战项目】Boost搜索引擎项目

目录 1. 项目的相关背景 2. 搜索引擎的相关宏观原理 3. 搜索引擎技术栈和项目环境 4. 正排索引 vs 倒排索引 - 搜索引擎具体原理 4.1 正排索引 4.2 目标文档进行分词 4.3 倒排索引 4.4 模拟一次查找的过程&#xff1a; 5. 编写数据去标签与数据清洗的模块 Parser 5.1…

《操作系统真相还原》读书笔记八:获取物理内存容量以及本书源代码

编写mbr.S汇编代码 ;LOADER_BASE_ADDR equ 0x900 ;LOADER_START_SECTOR equ 0x2 %include "boot.inc"SECTION MBR vstart0x7c00mov ax,csmov ds,axmov es,axmov ss,axmov fs,axmov sp,0x7c00mov ax,0xb800mov gs,axmov ax,0x0600mov bx,0x0700mov cx,0mov dx, 184fh…

力扣图论篇

以下思路来自代码随想录以及官方题解。 文章目录 797.所有可能的路径200.岛屿数量130.被围绕的区域1020.飞地的数量 797.所有可能的路径 给你一个有 n 个节点的 有向无环图&#xff08;DAG&#xff09;&#xff0c;请你找出所有从节点 0 到节点 n-1 的路径并输出&#xff08;不…

USB协议学习(三)大容量存储设备SCSI协议分析

笔者来简单介绍一下SCSI得协议命令 1、SCSI协议认识 SCSI&#xff1a;Small Computer System Interface&#xff0c;用于计算机外部设备得接口标准&#xff0c;定义了与外部设备得一套协议。SCSI标准协议族支持很多钟SCSI设备&#xff0c;像盘&#xff0c;打印机&#xff0c;扫…

Ubuntu23.10安装FFmpeg及编译FFmpeg源码

安装FFmpeg: 打开终端: 输入 sudo apt install ffmpeg 安装成功: 验证FFmpeg 默认安装位置与库与头文件位置 使用FFmpeg源码编译: 1.安装YASM sudo apt-get install yasm

[mmucache]-ARMV8-aarch64的虚拟内存(mmutlbcache)介绍-概念扫盲

&#x1f525;博客主页&#xff1a; 小羊失眠啦. &#x1f3a5;系列专栏&#xff1a;《C语言》 《数据结构》 《C》 《Linux》 《Cpolar》 ❤️感谢大家点赞&#x1f44d;收藏⭐评论✍️ 思考: 1、cache的entry里都是有什么&#xff1f; 2、TLB的entry里都是有什么? 3、MMU操作…

10-ARM gicv3/gicv4的总结-基础篇

目录 1、gic的版本2、GICv3/gicv4的模型图3、gic中断号的划分4、GIC连接方式5、gic的状态6、gic框架7、gic Configuring推荐 本文转自 周贺贺&#xff0c;baron&#xff0c;代码改变世界ctw&#xff0c;Arm精选&#xff0c; armv8/armv9&#xff0c;trustzone/tee&#xff0c;s…