第1章:车载网络基础

大家好,我是你们这堂课的主讲人。做车载安全这么多年,我最大的感触就是:不懂网络协议,就别谈入侵检测。这就像你要修车,却连发动机长什么样都不知道——说不过去。

今天咱们先打好地基。把CAN总线、CAN FD、车载以太网、LIN总线这四兄弟搞清楚。我个人习惯,讲技术之前先问个问题:为什么车上需要这么多总线?

说白了,一辆现代汽车里的电子控制单元(ECU)少则几十,多则上百。如果每个ECU都拉一根独立的线,那整车线束能绕地球好几圈。所以,总线技术应运而生——用一根共享的线,让所有ECU互相通信。

1.1 CAN总线协议详解

CAN总线,全称Controller Area Network。1986年由德国博世公司发明。嗯,你没看错,比我入行还早。但直到今天,它依然是车载网络的中流砥柱。

CAN总线的核心特点:

  • 差分信号传输:CAN_H和CAN_L两根线,抗干扰能力强。我在项目现场见过,哪怕线束被发动机的高压点火干扰得乱七八糟,CAN信号依然稳如老狗。
  • 多主站架构:任何节点都可以主动发消息,不需要主节点轮询。这跟I2C、SPI那种主从模式完全不同。
  • 基于优先级的仲裁:如果两个节点同时发消息,ID小的获胜。这个机制很巧妙——紧急消息(比如刹车信号)的ID通常设得很小。

CAN报文结构:

标准CAN帧长这样:

SOF | 11位ID | RTR | IDE | r0 | DLC | 0-8字节数据 | CRC | ACK | EOF

我刚开始学CAN的时候,总觉得这结构太啰嗦。后来做入侵检测才发现,每一个字段都有它的意义。比如ID字段,就是攻击者最喜欢篡改的地方。

实际项目中的坑:

避坑指南:我曾经在一个项目中,发现CAN总线偶尔丢帧。查了三天,最后发现是终端电阻没焊好。CAN总线两端必须各有一个120欧姆的终端电阻,少了它,信号反射会让你怀疑人生。

1.2 CAN FD与CAN XL对比

传统CAN总线有个硬伤:最大数据场只有8字节,波特率最高1Mbps。这在当年够用,但现在车上动辄就是高清地图、OTA升级包,8字节?塞牙缝都不够。

于是CAN FD(Flexible Data-rate)应运而生。后来觉得还不够,又搞出了CAN XL。

特性 CAN 2.0 CAN FD CAN XL
最大数据场 8字节 64字节 2048字节
最大波特率 1 Mbps 8 Mbps(数据段) 10+ Mbps
兼容性 - 向后兼容CAN 2.0 不兼容CAN FD
典型应用 传统控制信号 固件升级、诊断 视频流、大数据块

你想想看,CAN FD在仲裁段还是用原来的速率,但到了数据段就切换到高速模式。这个设计很聪明——既保证了兼容性,又提升了吞吐量。

我个人建议,如果你现在做新项目,直接上CAN FD。CAN XL虽然更猛,但生态还不成熟,芯片也贵。别为了追新把自己坑了。

1.3 车载以太网入门

说到以太网,大家可能觉得不新鲜。但车载以太网跟咱们办公室用的以太网,还真不太一样。

车载以太网的特点:

  • 单对非屏蔽双绞线:传统以太网至少两对线,车载以太网只用一对。为什么?省重量、省空间、省成本。汽车行业对成本的敏感度,超乎你的想象。
  • 100BASE-T1 / 1000BASE-T1:这是IEEE专门为汽车制定的标准。100BASE-T1跑100Mbps,1000BASE-T1跑1Gbps。
  • 支持AVB/TSN:音视频桥接和时间敏感网络。说白了,就是保证数据按时到达。这对自动驾驶来说至关重要——摄像头的数据晚到1毫秒,可能就撞上了。

我在做ADAS项目时,遇到过一个问题:摄像头通过以太网传数据,偶尔会出现画面撕裂。查到最后,发现是交换机没有配置好QoS优先级。嗯,车载以太网不是插上就能用的,你得懂协议栈。

小提示:车载以太网常用的协议栈是Some/IP和DDS。Some/IP适合传统的请求-响应模式,DDS更适合发布-订阅模式。我个人更倾向于DDS,因为它天生支持QoS,对实时性要求高的场景很友好。

1.4 LIN总线简介

LIN总线,全称Local Interconnect Network。说白了,就是CAN总线的廉价替代品。

为什么需要LIN?因为车上有些部件实在没必要用CAN。比如车窗升降、座椅调节、后视镜折叠——这些信号变化慢,数据量小,用CAN太浪费了。

LIN总线的特点:

  • 单线传输:一根线,12V电平。成本低到令人发指。
  • 主从架构:一个主节点,多个从节点。主节点负责调度,从节点只能被动响应。
  • 最大速率20kbps:别笑,真的只有20kbps。但控制个车窗,够了。
  • 报文长度固定:每个报文最多8字节数据场。

LIN的报文结构很简单:

同步间隔 | 同步字段 | 标识符 | 数据 | 校验和

你可能会问:这么慢的协议,还有安全风险吗?

有,而且不小。我见过一个案例,攻击者通过OBD接口往LIN总线上注入伪造的报文,把车窗和天窗都打开了。虽然LIN本身没有安全机制,但你可以通过网关做访问控制——只允许特定的CAN报文转换成LIN指令。

核心要点:车载网络不是孤立的。CAN、CAN FD、以太网、LIN,它们通过网关连接在一起。入侵检测系统必须覆盖所有总线,因为攻击者往往从最薄弱的环节入手——比如LIN总线。

好了,这一章的内容就到这里。下一章咱们开始讲入侵检测系统的整体架构。记住一句话:不懂网络,就别谈安全。先把这四种总线吃透,后面的事情就好办了。