1. 车载网络概述
各位同学,咱们今天聊聊车载网络。说实话,这玩意儿是汽车的“神经系统”。没有它,车上的电子系统就是一堆孤岛。我入行那会儿,车上线束多得像蜘蛛网,现在想想都觉得头疼。
车载网络的发展历程
最早的车,电气系统简单得很。一个发电机,一个蓄电池,几个灯泡,完事了。后来有了ECU(电子控制单元),事情就复杂了。
第一阶段:点对点连接
每个ECU之间用独立的线束连接。你想想看,一个车门模块要跟车窗电机、门锁电机、后视镜电机、扬声器……每个都拉一根线。结果呢?一辆豪华车的线束总长能超过2公里,重量几十公斤。我在项目里见过一辆原型车,拆开内饰,里面全是线,维修师傅看了直摇头。
第二阶段:总线时代
工程师们想了个办法:大家共用一根线,谁要发数据谁说话。这就是总线。CAN总线是第一个大规模应用的。我记得2000年左右,大众的帕萨特B5就开始用CAN了。那时候觉得,哇,好先进。现在回头看,CAN的速率才500kbps,传个音乐都卡。
第三阶段:混合网络
不同需求催生了不同协议。控制信号用CAN,开关信号用LIN,多媒体用MOST,安全系统用FlexRay。嗯,这里要注意:不是越高级越好,合适才是王道。我见过有人非要在车窗控制器上用FlexRay,纯粹是浪费钱。
第四阶段:以太网时代
现在嘛,自动驾驶和车联网来了。高清摄像头、激光雷达、V2X通信,这些家伙的数据量太大了。CAN那点带宽根本不够看。所以车载以太网就上位了。100BASE-T1、1000BASE-T1,速率直接上Gbps。我最近在做的项目,全车骨干网就是千兆以太网,爽得很。
主要车载网络协议简介
咱们一个一个过。每个协议都有它的脾气,你得摸透了才能用好。
| 协议 | 速率 | 主要用途 | 我的评价 |
|---|---|---|---|
| CAN | 最高1Mbps | 动力、底盘、车身控制 | 老黄牛,皮实耐用 |
| LIN | 最高20kbps | 车窗、座椅、门锁 | 便宜够用,别指望它干重活 |
| FlexRay | 最高10Mbps | 线控转向、制动 | 确定性好,但贵 |
| MOST | 最高150Mbps | 多媒体、导航 | 快被以太网取代了 |
| 以太网 | 100Mbps~1Gbps | ADAS、OTA、骨干网 | 未来之星,但功耗是个坎 |
CAN(控制器局域网)
CAN是车载网络的基石。1986年由Bosch发明,到现在快40年了,还在用。为什么?因为它可靠。差分信号传输,抗干扰能力强。我曾经在EMC实验室里,用100V/m的场强去照CAN总线,数据愣是一点没丢。换成别的协议,早崩了。
CAN的帧结构很简单:ID、数据、CRC。ID决定了优先级,数字越小优先级越高。这个设计很巧妙——总线仲裁的时候,谁ID小谁赢。说白了就是“谁急谁先走”。
避坑指南:CAN的终端电阻一定要加对。标准是120欧姆,两个终端各一个。我曾经见过一个项目,工程师忘了加终端电阻,结果总线反射严重,通信时好时坏。查了三天才找到原因。
LIN(本地互联网络)
LIN是CAN的小弟。速率低,成本低,结构简单。一个主节点带多个从节点,主节点负责调度。说白了就是“老师说一句,学生答一句”。
LIN适合那些对实时性要求不高的场合。比如车窗升降、座椅调节、雨刮控制。我做过一个项目,用LIN控制后视镜折叠,成本比用CAN省了60%。老板看了报表,笑得合不拢嘴。
FlexRay
FlexRay是给安全系统准备的。线控转向、线控制动,这些玩意儿要是出了错,是要出人命的。FlexRay有确定性通信,时间触发,每个消息什么时候发、什么时候到,都是算好的。
不过FlexRay也有缺点:贵。芯片贵,线束贵,开发工具更贵。我建议,除非你的项目真的需要确定性通信,否则别碰它。用CAN+以太网的组合,性价比高得多。
MOST(面向媒体的系统传输)
MOST是搞多媒体的。音频、视频、导航数据,它都能传。150Mbps的速率,在当年算是很快了。宝马、奥迪的早期娱乐系统都用它。
但现在嘛,MOST有点过时了。以太网一来,MOST就尴尬了。速率不如以太网,生态也不如以太网开放。我最近几年接的项目,新车型基本都抛弃MOST了。嗯,时代在变啊。
车载以太网
以太网是车载网络的未来。100BASE-T1用一对双绞线就能跑100Mbps,1000BASE-T1能跑1Gbps。而且它跟IT以太网兼容,调试工具一大堆,开发效率高。
不过以太网有个问题:功耗。100BASE-T1的PHY芯片,工作电流大概在100mA左右。对于一直上电的模块来说,这个功耗不小。咱们这门课后面会专门讲低功耗设计,到时候再细聊。
车载网络的分层架构
车载网络不是一根线通吃,而是分层设计的。我习惯把它分成三层:
- 骨干层:用高速网络(以太网)连接核心ECU。比如ADAS域控制器、中央网关、座舱域控制器。这一层要求高带宽、低延迟。
- 域控层:用CAN或FlexRay连接域内的ECU。比如动力域、底盘域、车身域。这一层要求实时性好、可靠性高。
- 执行层:用LIN或低速CAN连接传感器和执行器。比如车窗电机、门锁、灯光。这一层要求成本低、功耗低。
为什么要分层?说白了就是“让合适的人干合适的事”。骨干网要快,那就用以太网。执行层要便宜,那就用LIN。你想想看,如果车窗电机也用千兆以太网,那不是杀鸡用牛刀吗?
我的经验:分层架构设计时,要注意网关的转发能力。我曾经遇到一个项目,网关的CAN转以太网速率跟不上,导致数据丢包。后来换了更高性能的MCU才解决。所以,网关的选型一定要留有余量。
好了,第一章就到这里。车载网络是个大话题,咱们后面慢慢展开。下一章我会讲CAN总线的物理层和协议细节,到时候咱们再深入聊。