2. 系统架构设计:分布式显示架构、主从架构与对等架构对比、通信总线选型

好,咱们直接进入正题。系统架构设计,说白了就是决定「屏幕之间怎么说话、谁听谁的」。我做了这么多年车机,见过太多因为架构没选好,后期改得想哭的项目。今天我把三种主流架构掰开揉碎了讲,顺便聊聊总线选型那些坑。

2.1 分布式显示架构

先说说分布式。这种架构下,每个屏幕都有自己的「大脑」——独立的 SoC 或 MCU。仪表盘管仪表,中控管中控,后排娱乐管后排。它们之间通过总线交换数据,但各自为政。

核心特点: 每个节点独立运行,故障隔离性好。一个屏挂了,不影响其他屏。

我在项目中遇到过一台车,仪表盘用的老牌供应商方案,中控是我们自研的。分布式架构下,两边各跑各的系统,联调时只需要约定好 CAN 信号格式就行。嗯,这里要注意:分布式架构虽然解耦,但数据一致性是个大问题。比如导航信息,仪表和中控各存一份,一旦不同步,驾驶员就懵了。

适用场景:

  • 硬件平台差异大(比如仪表用 RTOS,中控用 Android)
  • 功能安全要求高(仪表需要 ASIL-B,中控只要 QM)
  • 供应商体系复杂,各模块独立开发

避坑指南: 我曾经见过一个项目,分布式架构下仪表和中控的时钟不同步,导致车速显示延迟了 200ms。后来不得不在总线上加时间戳同步机制。所以,分布式不是「各玩各的」,时钟同步协议(如 gPTP)必须提前规划。

2.2 主从架构

主从架构,顾名思义,一个「大哥」带着几个「小弟」。通常中控 SoC 当主机,仪表、HUD、后排屏都当从机。主机负责所有计算和渲染,从机只负责显示。

说白了,这就是「瘦客户端」模式。从机不需要很强的算力,甚至可以用一颗便宜的 MCU 加显示驱动芯片搞定。我建议在成本敏感的项目里优先考虑这种架构。

优缺点对比:

维度 优势 劣势
成本 从机硬件便宜,整体 BOM 低 主机需要高性能 SoC,散热压力大
开发复杂度 软件集中在主机,从机逻辑简单 主机一旦崩溃,全车屏幕黑掉
扩展性 增加屏幕只需改显示配置 主机算力瓶颈,屏幕多了带不动
实时性 主机统一调度,画面同步好 视频流传输延迟,高刷场景吃力

为什么会这样?因为主机要把渲染好的画面通过视频传输协议(比如 FPD-Link、GMSL)发给从机。从机就是个「显示器」,不参与任何逻辑。我做过一个三屏项目,主机用高通 8155,带仪表+中控+副驾屏,帧率稳定在 60fps。但一旦导航渲染复杂起来,仪表指针偶尔会卡一下。嗯,后来我们给仪表单独开了个硬件图层,才解决。

个人经验: 主从架构下,从机的显示延迟必须控制在 16ms 以内(一帧)。我习惯在从机端加一个帧缓冲,用双缓冲机制避免撕裂。另外,主机和从机之间的心跳检测一定要做,否则从机死机了主机还不知道。

2.3 对等架构

对等架构,每个节点地位平等。没有大哥小弟之分,大家都是「同事」。数据通过分布式共享内存或消息总线传递,每个节点都可以发起请求,也可以提供服务。

你想想看,这种架构是不是很像微服务?每个屏幕都是一个「服务节点」。仪表提供车速服务,中控提供导航服务,后排娱乐提供媒体服务。节点之间通过服务发现机制互相调用。

对等架构的典型实现:

  • SOME/IP: 面向服务的通信,适合动态发现
  • DDS: 数据分发服务,实时性极好
  • 共享内存: 物理上共享一段内存,适合紧耦合场景

我记得在某个高端车型项目中,用了对等架构加 DDS。五个屏幕(仪表、中控、副驾、后排双屏)全部对等通信。好处是灵活,任何一个节点升级都不影响其他节点。但坏处也明显——调试起来想哭。有一次媒体播放卡顿,查了三天才发现是 DDS 的 QoS 策略配错了,导致数据包优先级混乱。

核心建议: 对等架构适合屏幕数量多(4个以上)、功能解耦要求高的场景。但如果团队没有中间件开发经验,我劝你慎重。我曾经吃过这个亏,后来老老实实用了主从架构。

2.4 通信总线选型

架构定好了,接下来就是「路」怎么修。总线选型直接决定了数据传输的带宽、延迟和可靠性。目前车机多屏联动常用的总线有三种:Ethernet、PCIe、CAN。我一个个说。

2.4.1 Ethernet(车载以太网)

车载以太网现在是大势所趋。100BASE-T1 和 1000BASE-T1 是主流,带宽从 100Mbps 到 1Gbps。我建议新项目直接上 1000BASE-T1,别省那点成本。为什么?因为未来要传高清地图、视频流、OTA 升级,100M 根本不够用。

Ethernet 的优势:

  • 带宽高,支持视频流传输
  • 基于 IP 协议,生态成熟
  • 支持 SOME/IP、DDS 等中间件
  • 可扩展性强,加节点容易

需要注意:

  • 延迟不稳定,受网络负载影响
  • 需要交换机,增加成本和功耗
  • 电磁兼容性(EMC)要求高

避坑指南: 我曾经在一个项目中,用 Ethernet 传仪表视频流。结果发现,一旦中控开始下载地图,仪表画面就出现马赛克。后来加了 VLAN 和流量整形,把仪表数据优先级提到最高,才解决。所以,Ethernet 一定要做 QoS 规划。

2.4.2 PCIe

PCIe 是内部总线,带宽极高(PCIe 3.0 x4 约 4GB/s)。适合芯片之间的高速通信,比如 SoC 和 GPU、SoC 和 FPGA 之间。在多屏联动中,PCIe 常用于主机内部的多屏输出,或者通过 PCIe Switch 连接多个显示控制器。

PCIe 的特点:

  • 延迟极低(微秒级)
  • 带宽巨大,适合 4K/8K 视频
  • 硬件成本高,布线复杂
  • 不适合长距离传输(通常 < 30cm)

我建议,PCIe 只用在同一个域控制器内部。比如一个 SoC 带三块屏幕,通过 PCIe 连接三个显示输出芯片。跨域通信就别用 PCIe 了,成本扛不住。

2.4.3 CAN / CAN FD

CAN 总线是老朋友了。虽然带宽低(CAN FD 最高 8Mbps),但胜在可靠、实时、成本低。在多屏联动中,CAN 适合传控制信号,比如「仪表切换到运动模式」、「中控调节音量」这类短数据。

CAN 的定位:

  • 传控制指令,不传视频数据
  • 做心跳检测和故障诊断
  • 作为 Ethernet 的备份通道

嗯,这里要注意:千万别用 CAN 传视频流。我见过有人想用 CAN FD 传缩略图,结果延迟大到无法接受。CAN 就老老实实做它该做的事——控制。

2.4.4 总线选型对比表

维度 Ethernet PCIe CAN FD
带宽 100Mbps - 1Gbps 数 GB/s 最高 8Mbps
延迟 毫秒级 微秒级 毫秒级
传输距离 15m(100BASE-T1) < 30cm 40m
成本 中等
适用场景 跨域通信、视频流 芯片间高速互联 控制信号、诊断

我的选型建议: 多屏联动项目,我习惯用「Ethernet 为主 + CAN 为辅」的组合。Ethernet 传视频和控制,CAN 传关键安全信号和心跳。如果同一个域控制器内有多颗芯片,再加 PCIe 做内部互联。这个组合我用了三年,没出过大问题。

2.5 架构与总线的匹配策略

最后,我总结一下架构和总线的匹配关系。你想想看,选错了总线,架构再好也白搭。

  • 分布式架构 + Ethernet: 标准搭配。每个节点独立,通过 Ethernet 交换数据。适合屏幕多、功能复杂的场景。
  • 主从架构 + Ethernet + PCIe: 主机内部用 PCIe 连接显示芯片,主机到从机用 Ethernet 传视频流。性价比高,我推荐。
  • 对等架构 + Ethernet + DDS: 高端玩法。Ethernet 做物理层,DDS 做数据分发。适合需要动态服务发现的场景。
  • 任何架构 + CAN: 必须保留。CAN 作为控制通道和故障备份,永远不要省。

嗯,今天就先聊到这儿。下一章咱们讲具体的 UI 适配策略——不同分辨率、不同刷新率的屏幕怎么统一设计。到时候我会拿几个真实项目的踩坑案例出来,保证让你少走弯路。