第一章 车载网络概述

各位同学好,我是老张。在车载网络这个行当摸爬滚打了十几年,今天咱们来聊聊车载网络的基础。说实话,每次带新人,我都是从这一章开始讲起。为什么?因为你不了解网络怎么来的,就搞不懂为什么现在要搞时间同步。

1.1 车载网络的发展历程

最早的车,其实没什么网络可言。我记得我刚入行那会儿,修车还得拿着万用表一根线一根线地查。那时候的车,每个功能都是独立的——大灯开关直接连大灯,喇叭按钮直接连喇叭。

但后来不行了。为什么?因为功能越来越多。你想想看,一个车窗升降就要好几根线,再加上中控锁、后视镜调节...线束比人的胳膊还粗。这哪受得了?

于是就有了车载网络。说白了,就是让各个电子模块通过一根总线来通信。就像我们办公室的局域网,大家共用一根网线,谁要发消息就发,谁要收消息就收。

我经历过几个阶段:

  • 1980年代:开始出现简单的串行通信,比如J1708
  • 1990年代:CAN总线横空出世,彻底改变了车载通信格局
  • 2000年代:LIN、FlexRay、MOST陆续登场,各司其职
  • 2010年代至今:以太网大举入侵,带宽需求爆炸式增长

嗯,这里要注意。很多人以为新协议会完全取代旧协议。其实不是。我现在的项目里,CAN、LIN、以太网还在共存。就像你家里既有WiFi也有网线,各有各的用处。

1.2 主要车载网络类型

咱们一个一个来看。每种网络都有它的脾气,选错了可是要出大问题的。

CAN(控制器局域网)

CAN总线,绝对是车载网络的老大哥。从1991年奔驰S级首次搭载到现在,三十多年了还在用。为什么这么长寿?

  • 可靠性高:差分信号传输,抗干扰能力强。我在EMC实验室做过测试,CAN在100V/m的场强下照样正常工作
  • 实时性好:优先级仲裁机制,高优先级消息最多等一个帧的时间
  • 成本低:一对双绞线就能带几十个节点

但CAN也有短板。带宽最高只有1Mbps(CAN FD可以到8Mbps)。这在当年够用,现在嘛...你想想,一个高清摄像头的数据流就要几百Mbps,CAN根本扛不住。

我的经验:CAN总线设计时,一定要算总线负载率。我见过一个项目,负载率干到80%以上,结果丢帧丢得一塌糊涂。一般建议控制在30%以下,最多不超过50%。

LIN(本地互联网络)

LIN是CAN的小老弟。速度慢(最高20kbps),但便宜啊!一根线就够了,连收发器都集成在单片机里。

它主要用在那些对实时性要求不高的地方:

  • 车窗控制
  • 座椅调节
  • 天窗控制
  • 雨量传感器

说白了,就是那些「慢一点也无所谓」的功能。

FlexRay

FlexRay,这个名字你可能不太熟。它当年可是被寄予厚望的——宝马、戴姆勒、飞思卡尔联合推的。为什么?因为CAN的实时性不够用了。

FlexRay有两个特点:

  • 时间触发:消息在固定的时间槽发送,确定性极高
  • 双通道:可以冗余,也可以加倍带宽(最高20Mbps)

但它有个致命问题——贵。芯片贵、开发工具贵、测试设备贵。所以现在基本只有宝马还在用,而且也在慢慢往以太网迁移。

避坑指南:我曾经在一个项目里选了FlexRay做线控转向。结果开发周期比预期多了半年,光调试同步就花了三个月。如果你不是宝马这种体量的主机厂,建议慎重考虑FlexRay。

MOST(面向媒体的系统传输)

MOST,听名字就知道是搞媒体的。它用光纤传输,带宽最高150Mbps。当年宝马的iDrive系统、奥迪的MMI系统都用它。

但现在基本被以太网取代了。为什么?

  • 封闭生态:只有少数几家供应商能做
  • 升级困难:从MOST25到MOST150,物理层全换
  • 成本高:光纤连接器比RJ45贵好几倍

车载以太网

这才是现在的当红炸子鸡。100BASE-T1(100Mbps)、1000BASE-T1(1Gbps),甚至还有2.5G、5G、10G的方案。

为什么以太网能杀进来?

  • 带宽大:轻松应对摄像头、雷达、激光雷达的数据
  • 生态成熟:IT领域的工具、芯片、人才都可以用
  • 扩展性好:从100M到10G,物理层升级就行,上层协议不用动

但以太网也有坑。它不像CAN那样天生就有实时性。所以后来搞了TSN(时间敏感网络),专门解决这个问题。这个咱们后面会详细讲。

1.3 车载网络的分层架构

说到分层,很多人第一反应就是OSI七层模型。但车载网络实际用起来,没这么复杂。我一般把它分成三层:

层级 功能 典型协议
应用层 定义消息的含义和交互逻辑 CANopen、J1939、SOME/IP
传输层 负责数据的可靠传输、分段重组 TCP/UDP(以太网)、CAN TP
物理层 定义电气特性、连接器、线束 CAN PHY、100BASE-T1 PHY

你可能会问:那网络层呢?数据链路层呢?

嗯,在CAN和LIN这种简单网络里,这些层是合并的。比如CAN控制器芯片,它自己就处理了帧的封装、错误检测、仲裁这些事。你只需要关心应用层就行。

但在以太网里,分层就清晰多了。MAC层处理帧的收发,PHY层处理信号的调制解调,IP层处理路由,TCP/UDP层处理可靠传输。每一层各司其职,互不干扰。

核心观点:理解分层架构,对做时间同步特别重要。因为时间同步的精度,很大程度上取决于你在哪一层打时间戳。物理层打时间戳最准,应用层打时间戳最不准。这个咱们后面会详细展开。

好了,第一章就讲这么多。下一章咱们聊聊时间同步的基本概念。说实话,很多人搞了几年车载网络,对时间同步还是一知半解。但相信我,搞懂了这个,你的技术水平会上一个台阶。

有什么问题,欢迎课后交流。我的联系方式在课程资料里。