总线和网络系统非常复杂,其中包含了用于开发、测试和验证总线和网络通信的各种协议、架构和算法。探讨从总线和网络技术的基础概念到最新进展的所有内容——涵盖 CAN 和 LIN 总线,直至采用 SOME/IP 和 DDS 协议的汽车以太网技术。
车载通信为何如此重要
如今的车辆是由相互连接的ECU组成的复杂系统,这些ECU负责管理从基本功能到高级驾驶辅助以及自动驾驶等一切功能。这些系统依靠强大的车载通信网络进行可靠、安全的实时数据交换。多年来,总线协议已从 LIN 或 CAN 等简单的低带宽解决方案,发展成为汽车以太网等高性能技术。这种转变受到对带宽、安全性和效率日益增长的需求推动——尤其是在车辆变得更加软件定义化且功能更加丰富的情况下更是如此。
架构也发生了改变:传统的基于域的架构设计正逐渐被分区架构所取代,降低了布线的复杂性并支持模块化的车辆平台。这些分区架构象征着车辆设计和制造方式的重大转变。分区设计将车辆划分为多个物理区域,而非将 ECU 散布置于车身各处或按功能分组。每个区域均由一个分区控制器进行管理,该控制器与中央高性能计算单元 (HPC) 进行通信,而这些计算单元则负责处理车辆的大部分软件逻辑。虽然在分区架构中进行了整合,但不同车辆类型(电动汽车、商用车队和非公路车辆)的通信需求各不相同,每种类型都有其独特的要求。了解这些协议和架构对于构建可靠且可扩展的汽车系统至关重要。
CAN — 嵌入式汽车通信的骨干
控制器局域网 (CAN) 是汽车行业中最成熟且应用最广泛的通信协议之一。CAN 最初由 Bosch 于 20 世纪 80 年代开发,旨在实现电子控制单元 (ECU) 之间稳定可靠的实时通信,且无需中央主计算机控制。自此以后,该协议不仅成为乘用车领域的全球标准,还广泛应用于非道路工程机械、农业设备、航空航天系统以及工业自动化领域。它不仅支持测量与控制信号的交换,还通过内置的错误检测与处理机制提供高容错性保障。
CAN 的物理实现需要 FlexRay 控制器、收发器和微处理器。CAN 是一种面向报文的通信协议,采用广播传输机制,其中报文通过所谓的“报文标识符”进行识别。接收方可根据标识符决定是否接受报文。这些标识符还会在总线仲裁过程中,通过载波监听多路访问/冲突解决(CSMA/CR)方法来确定报文的优先级。当总线在 3 个位时间的间歇期后处于空闲状态时,任何 ECU 均可启动传输。如果发生冲突,则优先级更高的报文将“胜出”,获得传输权。优先级由报文标识符决定(标识符数值越小,代表优先级越高)。优先级最高的报文然后会无延迟地继续传输,而其余报文则会退让,待总线再次空闲后重新尝试传输。
协议层及变体
传统 CAN 由 ISO 11898 标准定义。有三个定义 CAN 总线的重要标准:
- ISO 11898-1 根据原始的 CAN 2.0A 和 CAN 2.0B 规范定义了数据链路层。为满足新的带宽需求,诸如 CAN FD(灵活数据传输速率)或 CAN XL(扩展层)等变体通过增加有效载荷大小和显著提升数据传输速率来扩展该标准。
- ISO 11898-2(高速)和 ISO 11898-3(低速/容错)则涵盖了 OSI 模型的物理层。它们支持高达 1 Mbit/s(高速)和 125 kbit/s(低速)的数据传输速率。
- ISO 11898-4 是对数据链路层协议的扩展,用于实现安全关键型报文的确定性通信,被称为“时间触发型 CAN”。
与其他总线不同,其原始规范仅涵盖 ISO/OSI 模型的底下两层。因此,尽管 CAN 本身未定义应用层,但业界已推出多种高层协议来填补这一空白,其中包括适用于商用车辆领域的 SAE J1939、适用于工业自动化领域的 CANopen 以及适用于农业应用领域的 ISOBUS。ISO 11898 标准没有规定任何安全机制。在更高协议层中实现了诸如身份验证、完整性和保密性等保护措施。
CAN 帧格式
CAN 报文以结构化帧的形式传输,包含帧头、有效载荷与帧尾三个元素。有两种主要类型:
- 基本帧格式:11 位标识符
- 扩展帧格式:29 位标识符
标准帧(11 位标识符)和扩展帧(29 位标识符)可在同一 CAN 网络中共存。除了数据帧之外,CAN 还支持错误帧和过载帧,这些帧有助于管理通信完整性和时序。
每条报文均以起始位开头,随后是标识符。对于传统 CAN 而言,由于报文的有效载荷长度可变(最长达 8 字节),其具体长度在“控制位”中指定。有效载荷之后是用于错误识别的“循环冗余校验”,以及数量可变、用于同步目的的填充位。最后,所有连接到总线的 ECU 要么在应答 (ACK) 和帧结束 (EOF) 字段中给出肯定应答,要么出现错误帧 (EF),导致所有接收方忽略接收到的数据。这就确保了网络内的数据一致性。
LIN — 适用于成本敏感应用的轻量级网络
本地互连网络 (LIN) 是作为一种经济高效的 CAN 替代方案推出的,专为无需高带宽或实时性能的应用场景设计。它在汽车行业广泛应用于控制简单执行器和传感器,例如车窗升降器、座椅调节器、空调控制系统以及车内照明设备等。其结构简单且成本低廉,成为了此类非关键应用的理想选择。
其物理实现采用单线串行总线,在广播网络中遵循主从通信模型,其中一个主节点可控制多达 15 个从节点。主节点根据静态定义的 LIN 调度表,定期发送报文帧头来发起所有通信,而从 ECU 仅在被寻址时才会做出响应。这种确定性的调度消除了对复杂仲裁机制的需求。就像 CAN 一样,LIN 标识符标记每条报文的内容,接收方会根据标识符决定是否接收报文。主 ECU 通常充当通向更高级网络(如 CAN 或汽车以太网)的网关。
协议层及特性
LIN 在 ISO/OSI 模型的物理层、数据链路层和应用层上运行。与需要更复杂硬件的 CAN 不同,LIN 使用带有 8N1 帧格式和最高 19.2 kbit/s 固定波特率的标准 UART/SCI 硬件。典型总线长度最长可达 40 米。LIN 最初由 LIN 联盟开发,现已根据 ISO 17987 标准进行规范化。其错误处理机制仅限于简单方式,例如标识符中的奇偶校验位和数据字段中的校验和。由于没有内置的重传或纠错程序,因此,错误恢复必须在应用层处理。
帧结构
LIN 帧由两部分组成:
- 由主节点发送的帧头:在总线处于空闲状态后,主 ECU 会发送一个同步间隔信号(包含至少 13 个显性位,后跟 1 个隐性位)。该比特序列是唯一不符合标准 UART 的字符,因此任何接收器都能清晰识别出这是报文的起始标识。随后发送的是一个用于接收器时钟周期同步的同步字节,以及 LIN 标识符——该标识符决定了从节点应响应的数据报文。
- 由从节点发送的响应:仅有一个从 ECU 响应,返回 2 至 8 个数据字节以及一个校验和字节。LIN 支持两种校验和类型:传统模式(仅数据)和增强模式(数据 + 标识符)。
LIN 支持多种帧类型,包括:
- 无条件帧: 用于如上所述的标准数据交换。
- 事件触发帧 :用于异步更新,允许多个从 ECU 响应同一报文。在实际应用中,只有请求值发生变化的 ECU 会响应。如果多个从设备同时响应,可能会发生冲突,而 LIN 无法解决此类冲突。因此,每个 ECU 针对同一报文也必须有一个唯一标识符。
- 零散帧 :允许多个报文共享同一时隙,由静态优先级决定具体发送的报文。
- 诊断帧和用户自定义帧 :用于配置和特殊功能。
- 这种灵活性使 LIN 能够高效处理周期性通信和事件驱动通信。
汽车以太网 — 适用于软件定义车辆的可扩展高带宽网络
随着车辆演变为复杂的软件定义系统,传统的总线技术(如CAN和LIN)在带宽、可扩展性和灵活性方面正逐渐达到极限。汽车以太网已经成为车载通信的下一代骨干网络——它提供高速数据传输、基于 IP 的通信,并与现代软件架构实现无缝集成。它支持诸如 OTA 更新、用于高级驾驶辅助系统 (ADAS) 的高分辨率传感器融合,以及自动驾驶所需的实时数据交换等先进功能。
物理实现采用交换式以太网网络,其拓扑结构为点对点或多点连接模式,具体取决于物理层标准。与 CAN 或 LIN 不同,以太网通信采用全双工模式,依赖以太网交换机来管理流量并防止冲突。每个 ECU 均配备以太网控制器 (MAC)、PHY 收发器和微处理器。通信基于标准以太网帧,并采用 MAC 地址和 IP 地址进行寻址,而非使用报文标识符。交换机可实现网络分段、基于 VLAN 的隔离,并为不同关键等级的数据流提供服务质量 (QoS) 保障。在分区架构中,以太网通常充当骨干网络,将分区网关连接至高性能计算单元。这些网关还为 CAN 或 LIN 等传统网络提供协议转换功能。为了确保安全关键型应用的确定性通信,以太网支持时间敏感网络 (TSN) 扩展,该功能可提供时间同步、流量整形和有界延迟。
协议层与物理标准
以太网最初是为标准 IT 网络而开发的,现已针对汽车环境的严苛要求——例如电磁兼容性、可靠性和成本效益——进行了适应性改进。这些改进推动了多项汽车专用标准的制定,这些标准规定了 ISO/OSI 模型中不同层级的规范:
物理层 |
汽车以太网有一系列不同标准,分别对物理编码子层 (PCS)、物理介质连接 (PMA)、物理介质相关层 (PMA) 以及介质相关接口 (MDI) 作出相应规范要求。这些标准涵盖了从相对较低到较高的带宽范围,且各具不同的技术特性。物理层采用脉冲幅度调制、前向纠错与回声消除技术相结合的方式,以通过车规级线缆实现所需的数据传输速率。不同的 PHY 会采用复杂度逐级提升的技术。这些技术规定了数据在物理介质上的传输方式,其中最为重要的技术包括:
|
数据链路层 |
所有不同 PHY 与汽车以太网结合使用时,通常都倾向于采用介质访问控制 (MAC) 层来管理设备如何共享物理传输介质的访问权限,并确保在局域网段内可靠地传输数据。其主要功能包括:用源和目标 MAC 地址封装数据帧、控制介质访问权限、通过帧校验序列 (FCS) 检测传输错误,以及支持流量控制以避免网络拥塞。MAC 层分为两个子层:逻辑链路控制 (LLC) 子层,用于与网络层对接,处理协议识别、错误校验和流量控制;MAC 子层,用于封装帧、管理地址及执行介质访问规则。 |
网络层 |
它将以太网与网际协议 (IP) 相结合,以此实现跨局域网的通信。标准化传输通过 IP 数据包完成,支持对网络节点进行全局寻址。IP 有两种版本:一是 IPv4,它采用点分十进制表示的 32 位地址,并允许使用私有地址范围;二是 IPv6,它是专为突破 IPv4 的局限性而开发的,其地址以十六进制格式表示,并用冒号分隔。DHCP 等附加协议通过自动分配地址并将新设备集成到现有网络中,为 IP 提供支持。 |
传输层 |
OSI 模型的第 4 层包括两种传输协议:TCP 和 UDP。TCP 提供面向连接的传输,而 UDP 则采用无连接的方式。这两种协议都将数据分割为更小的单元(在 TCP 中称为分段,在 UDP 中称为数据报)以实现高效传输。TCP 作为一种面向连接的协议,通过三次握手在两个节点间建立可靠链接,并借助重传机制和完整性校验确保数据无误送达。相比之下,UDP采用无连接方式,提供简单、快速的数据报传输,但不保证送达或纠错。UDP 的优势包括:由于无需确认应答而实现低延迟,同时支持多播和广播,使其能够高效地向多个接收方发送数据。然而,TCP 不支持多播或广播,适用于对传输可靠性与数据有序传输至关重要的场景。 |
会话层、表示层和应用层 |
底层协议使 ECU 与外部系统之间能够实现可寻址、可路由的通信。然而,若要使以太网适用于实时、安全关键型的汽车应用场景,则需要借助专用中间件。这些中间件层提供服务抽象、报文序列化和通信管理功能。常见示例包括:
这些技术可实现面向服务的通信、发布 - 订阅通信模式以及高效的数据分发,是支持自动驾驶、远程在线升级与集中式计算的核心关键技术。 汽车以太网引入了基于 IP 的攻击面。安全措施包括用于数据链路层加密的 MACsec、用于网络层保护的 IPsec,以及用于确保传输层安全的 TLS。 |
帧结构
通信的基本单元是以太网帧,它封装有效负载数据和控制信息,以便通过物理介质进行传输。数据包以前导码和帧起始定界符 (SFD) 开头。这种结构最初在以太网采用 CSMA/CD 运行机制时引入,用于帮助同步接收数据。现代标准采用更复杂的信号编码技术,可部署特殊符号来检测数据包的起始与结束。为保持向后兼容性,前导码和 SFD 字段仍保留在帧结构中。每个以太网节点都被分配一个唯一的 48 位序列号,通常称为 MAC 地址。在前导码之后,每个数据包均包含使用这些 MAC 地址指示的数据包发送目标位置和数据包来源位置的信息。最初,仅评估目标地址以确定是否将数据包发送到该节点。如果数据包的目标地址匹配,则会完整读取数据包;如果不匹配,则忽略该数据包。下一个字段指示数据包的长度或以太网类型。以太网类型指明上层协议对应的数据类型。由于以太网的设计目的是作为承载各类数据的容器,因此多种以太网变体拥有各自的以太网类型(例如 Profinet、EtherCat)。有效载荷的最小长度为 46 字节。如果数据长度少于最小有效载荷,则剩余字节将用填充字符填充。最大长度为 1500 字节。数据包以循环冗余校验 (CRC) 结束,用于检查数据包中各比特位的完整性。
FlexRay — 适用于安全关键系统的确定性通信
随着汽车系统对更高可靠性、容错能力及实时性能需求的提升,FlexRay 应运而生,成为一项强大的解决方案,尤其在诸如线控应用(如制动、转向……)等安全关键领域,其优势更为显著。FlexRay 由多家领先汽车制造商和供应商组成的联盟共同开发,旨在通过提供具有内置冗余功能的确定性高速通信,突破 CAN 和 LIN 的局限性。
其物理实现由 FlexRay 控制器、收发器和微处理器构成。可选的总线守护程序能强制执行通信调度,防止故障节点干扰网络运行。FlexRay 支持单通道或双通道配置。第二通道在安全关键型系统中用于实现冗余备份,或用于带宽聚合。双通道运行与总线守护功能共同提升了系统可靠性。与事件驱动型协议不同,FlexRay 采用确定性的时分多址 (TDMA) 方案。在通信周期内,传输权限和报文被分配至固定时隙。静态段会使用固定长度时隙传输时间关键型报文,而动态段则采用微时隙和基于位置的仲裁机制传输事件驱动型报文。这种混合架构既确保了可预测的时序性,又为非关键数据提供了灵活处理空间。
协议层及特性
FlexRay 在 ISO/OSI 模型的物理层和数据链路层上运行。该协议在 ISO 17458 标准中有所规定,其中第 2 部分和第 3 部分涵盖数据链路层,第 4 部分和第 5 部分涵盖物理层。通过 AUTOSAR 标准中的 FlexRay 传输协议 (FrTp),它还覆盖了传输层FlexRay 支持每个通道高达 10 Mbit/s 的数据传输速率。使用双通道进行带宽聚合时,数据传输速率将翻倍。该协议为所有节点提供全局时间同步,将通信过程划分为通信周期与宏周期,从而确保各 ECU 间的确定性运行。FlexRay 并不提供原生加密或身份验证功能。需要采取诸如 AUTOSAR SecOC 或基于网关的过滤等安全措施。
帧结构
FlexRay 协议支持静态段(用于传输时间触发型报文)与动态段(用于传输事件驱动型通信),提供了一种兼顾确定性和灵活性的混合方案。静态段与动态段的时隙总数上限为 2047 个。
- 静态段 :使用预定义数量的时隙,每个时隙的长度足以承载一条完整的 FlexRay 报文。静态段内的报文在双通道上实现同步传输。为避免冲突,广播权每次只授予一个 ECU。每个 ECU 都会对每个通信周期内的时隙进行计数。时隙计数器指示哪个 ECU 当前拥有总线访问权。
- 动态时隙 :同样采用预定义的时隙,但会被划分为多个微时隙,其时长短于动态段中的时隙。在这些时隙内,每个通道仅允许一个 ECU 独立广播。报文长度可变(最大可达 254 字节),但动态段总时长固定不变。此时,时隙计数器指示报文的优先级。如果一条时隙计数器数值较高的报文未能在一个通信周期内完成传输,则会顺延至下一个通信周期。
FlexRay 报文以帧头起始。该帧头由五个控制位初始化,并包含帧 ID、有效载荷长度、指定的帧头 CRC 以及周期计数。帧 ID 为当前时隙的编号。有效载荷长度以 16 位数据字的数量为单位进行传输。帧头 CRC 用于防止传输错误,而最后的周期计数值则会传输网络自初始化以来累积的通信周期数。帧头之后依次是实际的有效载荷数据,以及用于有效载荷错误检测的帧尾 CRC。
对照表
标准 |
CAN |
LIN |
FlexRay |
汽车以太网 |
主要目的 |
为 ECU 提供可靠、实时的通信 | 为简单执行器/传感器提供低成本通信 | 为安全关键型系统提供确定性通信 | 为软件定义的车辆提供高带宽、可扩展通信 |
典型应用 |
动力传动系统、底盘、车身控制、诊断 | 舒适性功能(车窗、空调、座位) | 线控系统(制动、转向)、安全领域 | ADAS、信息娱乐系统、传感器融合、OTA 更新、通信骨干 |
拓扑结构 |
总线(双线差分) | 总线/菊花链(单线) | 星型或线型(可使用单线或双线) | 点对点(交换星型)、多点连接 (10BASE-T1S) |
决定性 |
事件驱动(基于优先级) | 具有静态调度的主从模式 | 时隙触发(TDMA,静态+动态段) | 基于 TSN(时间敏感网络)的确定性 |
带宽: |
最高 1 Mbit/s(传统模式),最高 8 Mbit/s (CAN FD),>10 Mbit/s (CAN XL) | 最高 19.2 kbit/s | 每通道 10 Mbit/s(总计 20 Mbit/s) | 10 Mbit/s – 10 Gbit/s(10BASE-T1S 至 MultiGBASE-T1) |
有效载荷 |
8 字节(传统模式),64 字节 (CAN FD),>64 字节 (CAN XL) | 2 -8 字节 | 最多 254 字节 | 最多 1500 字节(标准帧) |
错误处理 |
CRC、位监控、故障隔离 | 奇偶校验位、校验和、无纠错 | CRC、总线守护程序、双通道冗余 |
CRC、FEC(用于高速传输)、VLAN/QoS(流量隔离) |
安全性 |
更高层保护(例如 SecOC) | 无原生安全性 | 更高层保护(例如 SecOC) | 需要 MACsec、IPsec、TLS 或 SecOC |
标准化 |
ISO 11898 | ISO 17987 | ISO 17458 | IEEE 802.3 + TSN (IEEE 802.1) |
成本和复杂性 |
低 | 很低 | 高 | 中到高 |
前瞻性 |
对本地 ECU 仍适用 | 对舒适性功能仍适用 | 下降;以太网正在取代 | 在分区架构中的核心作用 |
Overview Automotive Ethernet SOME/IP
This poster gives an introduction into Automotive Ethernet SOME/IP which is the foundation for service-oriented communication in modern E/E architectures. (download below)
PDF, 82.2 KB