2024年一文看懂第三代E E架构,2024年最新Golang系列学习进阶视频

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

在2007年由德尔福(DELPHI)首先提出E/E架构的概念,具体就是在功能需求、法规和设计要求等特定约束下,把汽车里的传感器、中央处理器、电子电气分配系统、软件硬件通过技术手段整合在一起;通过这种结构,将动力总成、传动系统、信息娱乐系统等信息转化为实际的电源分配的物理布局、信号网络、数据网络、诊断、电源管理等电子电气解决方案。

汽车电子电气架构(EEA,Electrical/Electronic Architecture ),指对汽车的传感器、执行器、ECU、线束、操作系统等整车软硬件进行设计,进而实现车内高效的信号传输、线束布臵等效果。EEA 设计需要综合考虑客户功能需求,安装、配臵、维护等方面的易程度和成本,并且需要具备适度的超前性。

通俗来说,汽车是一个软硬件结合的产物,如果把它比作是一个人,**「四个轮子+一个沙发」**是身体,电子电气架构就相当于神经系统,负责完成各个部位的连接,统领整个身体的运作,实现特定功能。

功能车时代,汽车一旦出厂,用户体验就基本固化;智能车时代,汽车常用常新,千人千面, 电子电气架构向集中化演进是这一转变的前提。从分布式到域控制再到集中式,随着芯片和通信技术的发展,电子电气架构正在发生巨大的变化。

图片

图片

电子电气架构从分布式迈向集中式,时代的召唤,也是软件定义汽车的前提

2.1 分布式架构为什么注定会成为历史?

**
**

电动化智能化浪潮来袭,汽车分布式电子电气架构不堪重负已不能适应汽车智能化的进一步进化。智能驾驶、智能座舱是消费者能感知到的体验,背后需要强大的传感器、芯片,更需要先进的电子电气架构的支持,电子电气架构决定了智能化功能发挥的上限。如果没有先进的电子电气架构做支撑,再多表面智能功能的搭载也无法支持车辆的持续更新和持续领先,更无法带来车辆成本降低和生产研发的高效。

最初,燃油车电子元器件数量有限,电子电气架构并不复杂, OEM 根据不同 Tier1 的技术和价格优势分别采购 ECM,只需要进行集成、测试和验证,并不需要掌握技术细节和代码。很长一段时间内, OEM 的工作只是根据市场需求不断增加 ECM 和调整线束布臵,整车 EEA都是由 Tier1 配合 OEM 进行开发,强势的 OEM 可以向 Tier1 提出功能导向的要求,其他 OEM在 ECU 设计制造上不具备话语权。

虽然 ECU 的数量和汽车配件的复杂程度只增不减,电动化引入三电系统更是加剧了这种态势,但整个行业的惯性始终在强化。一方面, Tier1 缺乏进行自我革命的动力,更高性能的总线技术和 ECU 是主要战场, 另一方面, OEM 考虑到对整车电子电气架构进行重塑式改造的庞大投入也会有所犹豫。

**打破行业僵局,特斯拉提供“拉力”,智能化浪潮提供“推力”。**2017 年特斯拉用 Model 3 吹响改革的号角,新一代集中式电子电气架构被推上舞台,智能化的浪潮来临。在Model 3 席卷全球的倒逼下,OEM 和 Tier1 都是必须有所行动。

**分布式架构的极限是 L2 级别的自动驾驶,L3 级别已经超出承受范围。**以大众分布式 MQB平台为例,CAN 总线上已经挂了很多 ECU,如果再挂雷达,通信协议总量将不支持,把全部的 CAN 换成 2M 相当于做了半个架构的改造。

智能座舱和自动驾驶需要更多的 ECU 和传感器,但分布式 EEA 已经到达瓶颈,算力和总线信号传输速度还远远不能满足,因此必须引入搭载更高性能车规级芯片的域控制器、车辆以太网和集中式 EEA。根据 NXP 官网预测,2015-2025 年汽车中代码量有望呈指数级增长,其年均复合增速约为 21%。

**实现 OTA 和“软件定义汽车”,智能车必须解耦软硬件。**分布式架构的 ECU 来自不同供应商,有着不同的嵌入式软件和底层代码,软件生态复杂,OEM 无法自主进行整车维护,更无法实现 OTA。而 Tier1 更新 ECM 的周期和新车型的研发周期相匹配,一般为 2-3 年,率先实现 OTA 的特斯拉更新频率则为几个月一次,用户体验差异明显。在特斯拉已经掌握 OTA 技术的情况下,如果不尽早开始布局,传统车企或将重蹈诺基亚和摩托罗拉的覆辙。

2.2 汽车电子电气架构的演进趋势

**
**

由分布式 ECU 向域控制/中央集中架构方向发展。从博世对 E/E 架构定义来看, 汽车 E/E 架构的升级路径表现为分布式(模块化→集成化)、 域集中(域控制集中→跨域融合)、 中央集中式(车载电脑→车-云计算)。

即为分布式 ECU(每个功能对应一个 ECU)逐渐模块化、集成向域控制器(一般按照动力域、底盘域、车身域、信息娱乐域和 ADAS 域等),然后部分域开始跨域融合发展(如底盘和动力域功能安全、信息安全相似),并发展整合为中央计算平台(即一个电脑),最后向云计算和车端计算(中央计算平台)发展。其中车端计算主要用于车内部的实时处理,而云计算作为车端计算的补充,为智能汽车提供非实时性(如座舱部分场景可允许微秒级别的延迟)的数据交互和运算处理。

目前我们正处于从过去的分布式EE架构迈向域集中式EE架构的转变过程中,预计到2025年左右就会完成这一转变。从2025年以后,将开启跨域的融合时代,也就是转变为“中央+区域”(Central & Zonal)计算的EE架构时代。

图片

博世对未来汽车电子电气架构发展趋势的观点

2.2.1 模块化阶段

一个 ECU 负责特定的功能,比如车上的灯光对应有一个控制器,门对应有一个控制器,无钥匙系统 对应有一个控制器。随着汽车功能增多这种架构日益复杂无法持续。

2.2.2 集成化阶段

单个 ECU 负责多个功能,ECU 数量较上一阶段减少。在这两个阶段,汽车电子电气架构仍处于分布式阶段,ECU 功能集成度较低。

2.2.3 功能域控阶段

功能域即根据功能划分的域控制器,最常见的是如博世划分的五个功能域(动力域、底盘域、车身域、座舱域、自动驾驶域)。域控制器间通过以太网和 CANFD(CAN with Flexible Data-Rate)相连,其中座舱域和自动驾 驶域由于要处理大量数据,算力需求逐步增长。动力总成域、底盘域、车身域主要涉及控制指令计算及通讯资源,算力要求较低。

2.2.4 跨域融合阶段

在功能域基础上,为进一步降低成本和增强协同,出现了跨域融合,即将多个域融合到一起,由跨域控制单元进行控制。比如将动力域、底盘域、车身域合并为整车控制域,从而将五个功能域(自动驾驶域、动力域、底盘域、座舱域、车身域)过渡到三个功能域(自动驾驶域、智能座舱域、车控域)。

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

8658159)**

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 24
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很高兴回答你关于Golang语法进阶的问题!Golang是一门简洁高效的编程语言,下面我将分享一些Golang语法的进阶知识。 1. 嵌套结构体:在Golang中,你可以在一个结构体中嵌套另一个结构体。这样可以更好地组织和管理代码。例如: ```go type Person struct { Name string Age int } type Employee struct { Person Salary int } ``` 这里的Employee结构体嵌套了Person结构体,可以通过Employee结构体访问Person结构体的字段。 2. 接口和类型断言:Golang中的接口是一种约定,定义了一组方法。通过接口,你可以实现多态性。类型断言则用于检查接口变量是否实现了某个接口。例如: ```go type Shape interface { Area() float64 } type Circle struct { Radius float64 } func (c Circle) Area() float64 { return math.Pi * c.Radius * c.Radius } func main() { var shape Shape = Circle{Radius: 5} if circle, ok := shape.(Circle); ok { fmt.Println("Area of circle:", circle.Area()) } } ``` 3. 并发编程:Golang内置了并发编程的支持,通过goroutine和通道(channel)可以实现轻量级线程间通信。例如: ```go func worker(id int, jobs <-chan int, results chan<- int) { for j := range jobs { fmt.Println("Worker", id, "processing job", j) time.Sleep(time.Second) // 模拟耗时操作 results <- j * 2 } } func main() { jobs := make(chan int, 5) results := make(chan int, 5) // 启动三个goroutine for w := 1; w <= 3; w++ { go worker(w, jobs, results) } // 发送5个任务 for j := 1; j <= 5; j++ { jobs <- j } close(jobs) // 输出结果 for r := 1; r <= 5; r++ { fmt.Println(<-results) } } ``` 以上是Golang语法进阶的一些例子,希望对你有帮助!如果你有更多问题,欢迎继续提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值