ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

LVDS、CAN、以太网、RTP:智能座舱总线协议如何分工协作?

LVDS、CAN、以太网、RTP:智能座舱总线协议如何分工协作?

做智能座舱开发这些年,我经常被刚入行的工程师问到同一个问题:“LVDS、CAN、以太网、RTP这几个东西到底有什么区别?能不能用一条总线全解决?”这个问题的背后,其实藏着一个行业共识:座舱里没有哪一种总线是万能的,所有看似重复的互联方案,都是数据特性和成本权衡逼出来的。

这篇文章不打算念PPT,我想基于实际开发视角,把这四种方案掰开揉碎讲清楚——它们分别解决什么问题、底层原理是什么、在真实车上的部署逻辑是什么,以及你在实车调试中容易踩的坑。如果你正在做座舱域控制器选型、网络拓扑设计或者对着一堆线束头疼,这篇文章应该能帮你建立一张清晰的地图。

1. 先搞清楚座舱这张网,到底要传什么数据

在谈“区别”之前,必须先搞明白一个前提:一台智能座舱里,数据流根本不是同一类东西。你以为都是“信号”,实际上它们的实时性要求、带宽需求、可靠性标准、传输距离,差异大到值得用完全不同的物理层和协议栈。

1.1 座舱数据流的四种典型画像

智能座舱的数据大致能分成四类。

第一类是采集类视频流。比如DMS(驾驶员监控)摄像头、AVM(环视)摄像头、车内摄像头,分辨率普遍是1080P、2K甚至4K,帧率30fps或60fps。一条裸视频流,1080P@30fps,以RGB888格式算,带宽轻松超过2.5Gbps;就算压缩后,也动辄几十兆bps以上。这类数据的特点是带宽极高、单向传输、允许容忍少量丢帧但不能明显卡顿。在物理层上,它几乎必须走LVDS之类的高速串行链路。

第二类是控制指令类信号。比如座椅调节、车窗升降、空调风门、氛围灯颜色、方向盘加热,还有门锁状态、安全带提醒。这类信号的特点是报文极小、帧频不高、但可靠性要求极高,因为它是实打实地控制执行器。一条控制报错可能就会导致车窗反方向动作或者灯光乱闪。这类数据对带宽要求极低,通常几十kbps就能跑完整个车身所有开关信号,但它需要极强的抗干扰和多节点广播能力。CAN在这个场景下是绝对主力。

第三类是音频流和少量数据流。比如车载麦克风阵列采集、蓝牙电话音频、导航提示音、仪表报警音、后排娱乐的音频分发。音频CD级别的无损流大概需要1.4Mbps,对广播和同步要求很高,必须保证左右声道、前后排扬声器之间时序一致。这类数据通常走I2S总线先到音频DSP,再通过某种网络化音频协议分发,现在越来越多直接打包成RTP流跑以太网。

第四类是高带宽交互类数据和OTA下载数据。比如中控和仪表之间的大屏投射、整包OTA刷写、行车日志回传、远程诊断数据。这类数据特点是传输量大、实时性较宽容忍、但要求链路稳定。传统CAN根本扛不动,所以主干网络都换成以太网了。

1.2 为什么不能“一根线”解决所有问题

经常有人问:既然以太网速率那么高,干脆全部跑以太网不行吗?

这个问题的核心在于成本、实时性和可靠性。以太网最低配也要PHY芯片加变压器加连接器,一个端口的物料成本比CAN收发器贵一个数量级。那种一条CAN报文只要几十微秒就能确定到达的场景,跑以太网光协议握手开销就不划算。反过来说,你让一条LVDS链路去传座椅控制信号,不仅浪费带宽,而且LVDS的拓扑主要是点对点,根本没有多节点仲裁机制。

所以结论是:智能座舱的网络天然就是多种总线并存的混合架构,LVDS负责“视”,CAN负责“控”,以太网负责“联”,RTP负责“流”。正因为各管一摊,它们反而在同一个座舱里相安无事。

2. 四种技术的本质拆解——它们根本不是同一层的东西

很多人混淆这四者,是因为没意识到它们处在OSI模型的不同层。LVDS是物理层差分信号标准,CAN是完整的数据链路层加物理层协议,以太网是一整族网络协议簇,RTP则干脆是传输层之上的应用层打包格式。把它们放在一起比较,本身就像比较“公路材质”和“快递面单规则”一样,分开讲才能说清。

2.1 LVDS:给高速像素数据铺的专用通道

LVDS全称Low-Voltage Differential Signaling,低压差分信号。它解决的痛点非常单一:让显示控制器到屏幕之间的数据传输不产生明显EMI,同时保证极高码率。

它的核心原理是使用差分对传输信号。两根线互为镜像,信号是“+0.35V对-0.35V”的极小摆幅电压差,接收端通过比较两端电位差还原数据。因为信号幅度小、上升斜率受控,所以电磁辐射很低;因为两根线受到的共模干扰相同,接收端能通过差分相减把干扰抵消掉。

在座舱里,LVDS最常出现在两类场景:一类是SoC的显示输出通过LVDS直连显示屏,另一类是通过SerDes(串行器/解串器)把SoC的视频信号转成高速串行流,走一根同轴或屏蔽双绞线,传到仪表或副驾屏。注意,纯低压LVDS一般工作在几百Mbps到个位数Gbps,但SerDes封装的“LVDS-like”方案,比如常用的FPD-Link、GMSL这类私有封装,速率可以到数Gbps甚至更高。这也就是为什么市面上常说的“用LVDS传屏”,其实很多时候指的是这一类私有高速串行互连方案。

在座舱开发中,LVDS最需要留意的是它的单向性。它天生是做点对点传输的,没有MAC层协议,没有寻址,没有广播。所以你不能指望LVDS能让两块屏互相传数据,或者让一颗MCU通过它去控制摄像头。它唯一的使命就是把像素送到屏幕。

2.2 CAN:短小精悍的控制信号快递员

CAN总线是真正意义上的“车规级网络协议”。它诞生于上世纪80年代末,但直到今天依然不可替代。关键在于它那套基于优先级仲裁的广播机制。

CAN用两根差分线(CAN_H和CAN_L)传输,显性电平代表0,隐性电平代表1。多个节点共享同一对线,当两个节点同时发送报文时,哪条报文的仲裁ID数值最小,谁就获得总线访问权。仲裁机制是逐位进行的,而CAN收发器有回读功能,节点在发每一位时都会同时监听总线电平。一旦发现自己写的隐性位被别的节点拉成显性位,马上停止发送、转为接收。这个机制让CAN的报文仲裁几乎是零延迟完成,而且没有额外的握手开销。

座舱里用CAN的典型场景,除了前面说的座椅车窗控制,还有一个大头是智能座舱控制器和车身域控制器、网关之间的互联。比如中控收到一个“用户按下座椅加热按钮”的触摸事件,SoC不能直接去驱动电机,而是把这个意图转成CAN报文,发给车身域控制器去执行。为什么安全?因为CAN总线有完善的CSMA/CR机制,还有CRC校验、位错误检测、应答确认。一条报文只要发出去了,发送方就知道发送成功;如果别的主机发现帧格式不对,还能主动拉错一帧导致重传。这种响应能力和容错性是UDP那种“发了不管”的模式不具备的。

CAN的短板也很明显:带宽低,经典CAN最高1Mbps,CAN FD才到5Mbps左右;报文短,单帧数据最长才8字节(CAN FD是64字节)。对于座舱里动辄几Gbps的视频流,CAN连提鞋都不配。但换个角度想,控制信号的报文量本身就不大,1Mbps完全够用。这就是“合适才是最好”的典型范例。

2.3 车载以太网:座舱的中枢神经系统

车载以太网和普通办公以太网本质同源,但在物理层、实时性、可靠性上做了非常多的车规强化。它在座舱里出现,根本原因是现代座舱的“集成度”和“开放性”突然提升了:域控制器之间需要传输高精度地图、诊断数据、整车日志、音视频流,甚至多个显示屏之间要做扩展镜像,老一套的总线协议扛不动。

车载以太网最主流的是100BASE-T1和1000BASE-T1,注意它和传统以太网“百兆用四对、千兆用四对”的RJ45线完全不一样。T1采用单对非屏蔽双绞线(或屏蔽双绞线),全双工传输,使用PAM3三电平编码来压制EMI。正因为只用一对线,成本和重量大幅降低,也更适应车内线束走线的苛刻体积标准。速率方面,100Mbps只能算入门,但因为它可以同时收发,实际吞吐比传统半双工的100Mbps高出不少;1000BASE-T1才是座舱域控制器之间互联的主力。

车载以太网的另一个特色“加成”是AVB/TSN。传统以太网是尽力而为转发,突发流量撞车时会出现延迟抖动。而座舱里的音视频流根本不能容忍这种抖动,比如仪表报警声晚到20毫秒,或者副驾屏画面卡顿半秒,用户体验直接崩塌。TSN协议族通过时间同步(IEEE 802.1AS)、流量整形(IEEE 802.1Qbv)、帧抢占(IEEE 802.1Qbu)等手段,给关键流预留了带宽和发送时隙,让以太网也具有了确定性传输能力。这部分内容很深,实际开发中大部分人的工作还是在普通以太网层面,但理解TSN的存在,会让你明白为什么车规以太网有底气跑到座舱核心骨干网这个位置。

2.4 RTP:把音视频流装上“时间戳”信封

RTP全称Real-time Transport Protocol,实时传输协议。它和前面的物理层/链路层协议不一样,它就是一个应用层打包协议,通常跑在UDP之上。它的存在是为了解决一个关键问题:流媒体数据是连续的、有时序性的,但是底层IP网络是个“尽力而为”的网络,数据包到达顺序可能乱,丢包随时发生。RTP在UDP裸载荷前面加了一个报文头,里面放着序列号、时间戳、载荷类型标识和SSRC同步源标识。

序列号让接收端能发现丢包、恢复乱序;时间戳用来还原媒体播放的时序节奏——播放器拿到RTP流之后,会根据时间戳按固定节奏把解码好的音频视频送给扬声器和屏幕,而不是“来一个就播一个”。SSRC则用来区分同一路会话里不同的媒体源,比如一路音频、两路视频,它们各有一个独立的SSRC,接收端能分别跟踪。

座舱里RTP最典型的应用是数字座舱了。手机投屏(如无线CarPlay、Android Auto)、后排娱乐系统接收来自头枕屏的IP摄像头流、座舱域和智能驾驶域的行驶记录视频回传,几乎都是把视频H.264/H.265或音频AAC封装进RTP,再通过以太网进行网络分发。RTP本身不负责保证质量,所以实际工程中常配合RTCP(RTP Control Protocol)做丢包统计和QoS反馈,再配合RTSP/SIP做会话控制。这些协议配合起来,才让座舱内的视频投屏既有“流”的属性,又有“可管可控”的属性。

3. 四种技术在一个真实座舱里的分工协作

理解了原理,我们再回到整车上,看一条实实在在的数据流是怎么“走完全程”的。我这几年评估过不少座舱平台,也亲自参与过某款量产车型的座舱域控制器网络调试,下面这套拓扑是比较典型的做法。

3.1 一条视频流的完整旅程

拿“中控把正在播放的B站视频投屏到副驾娱乐屏”这个场景举例。中控SoC把解码后的视频帧从GPU输出,经过显示控制器,变成MIPI DSI信号。到了副驾屏这块,通常做法是座舱域的显示桥接芯片把MIPI DSI转成LVDS到SerDes,或者直接用HDMI转LVDS,再通过线束送过去。这里LVDS承担的是“物理层点到点搬运”。

如果副驾屏不在同一个物理节点,或者在另一个域控制器背后,那就得走以太网。这时视频帧从SoC的H.264编码器出来,按RTP协议分片打包,塞进UDP,跑到车载以太网交换机,经过路由器再转发到副驾屏的以太网端口。这一路走的是“网络分发”,而不是专用物理线。副驾屏端收到RTP包,按序列号重组、按时间戳缓冲播放,最后再把解出来的MIPI信号送给面板。

你看,同一个“投屏”业务,从GPU到面板,前面一小段用LVDS,中间一大段用“以太网+RTP”,末尾又回到LVDS。它们是接力关系,不是替代关系。

3.2 控制链路和数据链路的“断点”

再看座椅调节。驾驶座按压调节按钮,硬线信号先进门控模块,门控模块走一条本地CAN报文到车身域控制器,车身域再走CAN FD把“座椅位置目标指令”发给座椅执行器,座椅执行器驱动电机转动。此时座舱域的中控屏需要显示“座椅加热已开启”,这个状态是座舱域通过以太网DoIP或SOME/IP从车身域订阅过来的——车身域把状态转成以太网报文,通过中央网关桥接到座舱域控制器,座舱控制器更新UI界面。整条链路里,CAN负责实时控制闭环,以太网只是旁路同步状态。如果企图让CAN把UI渲染数据也打包过去,你连一张仪表盘图片都传不完;反过来让以太网直接操作电机驱动,那个报文延迟够用户抱怨好几轮了。

3.3 一个典型的座舱域网络拓扑

某款量产车型的座舱舱内网络大致这样:座舱域控制器有两路LVDS出到仪表屏和抬头显示,一路SerDes到副驾屏,一路LVDS到后排娱乐屏;域控制器内置一颗以太网交换机芯片,向下接麦克风阵列、显示屏、后排娱乐屏,向上通到预控制器和智驾域。座舱内所有开关、座椅、氛围灯走车身CAN网段,座舱域通过整车网关去路由到CAN。RTP视频流、A2B音频流(或以太网AVB音频流)、SOME/IP服务发现、OTA数据全部走以太网。

这套结构在实车上已经跑得非常成熟,新的架构里LVDS的份额在下降(因为很多高端屏开始用MIPI DSI直连甚至用DP直连),但CAN不会消亡,以太网+RTP的组合会成为绝对主角。

4. 一张表看懂核心差异参数

这里我整理了一个比较完整的对照表,方便你跳到具体开发需求时快速查阅:

维度LVDS (含高速SerDes)CAN/CAN FD车载以太网 (100/1000BASE-T1)RTP (运行在UDP/IP上)
所在层级物理层 (私有链路可含协议)数据链路层+物理层物理层+数据链路层+网络层应用层/传输层之上
典型最高速率几Mbps到数GbpsCAN 1Mbps, FD 5Mbps100Mbps/1000Mbps取决于承载网络
传输介质差分双绞/同轴双绞线单对非屏蔽双绞线无专属介质,跑以太网
拓扑形式点对点为主多节点共享总线星型交换网络任意IP网络
寻址/仲裁无,单向ID优先级仲裁MAC/IP寻址SSRC/Session标识
实时性固定码率,物理层无延迟可预期毫秒级延迟TSN加持微秒级确定性有缓冲,允许丢包+重传
抗干扰设计差分天然抗干扰差分+错误恢复PAM3编码+屏蔽依赖底层网络
典型带宽/载荷原始视频码流单帧≤64字节帧可达1500字节+IP包通常<1500字节
成本较高低高软件协议无需硬件
适合场景显示屏接屏、摄像头控制指令、传感器状态域间互联、大数据、OTA、音视频分发音视频实时流

这张表看完,你应该能发现一个规律:LVDS胜在物理带宽和确定性,CAN胜在极简低成本和高可靠性,以太网胜在灵活组网和高带宽互联,RTP胜在给流媒体数据赋予了“时间语义”。它们互相之间并不是进化淘汰的关系,而是各守各的地盘。

5. 座舱架构选型时怎么组合,我的实战建议

看完区别,下一个问题自然是:“我设计一个新座舱项目,到底该在哪一环选谁?”这题没有唯一答案,但有几个非常实用的判断逻辑。

5.1 先看数据是什么,再决定协议

做架构预研时,我会按数据特征给一条条数据流打标签:带宽需求多大?允许的最大端到端延迟是多少?是单向还是双向?需要几个接收端?是否需要跨域组播?

视频像素流这种“带宽吃满、单向、点对点”的,一句话——绝对优先走LVDS/SerDes,因为它不需要路由,不需要打包开销,物理成本比以太网+解析+缓冲低得多,延迟几乎为零。哪怕现在很多方案拥护“全以太网座舱”,但显示屏最后一段物理链路还得回到LVDS或MIPI。不要强迫视频流去挤IP网络,除非你是多屏互动要做分发,那才需要把视频压缩成RTP流走以太网。

控制指令类的,比如车窗、门锁、灯光、空调、座椅微调,这是CAN的地盘,完全没有必要为了“统一协议”去把这些东西改成走以太网。CAN节点的成本低、线束简单、抗干扰强、开发工具链成熟,如果你想为了“总线统一”把座椅控制改成跑以太网,线束成本和EMC整改成本会教你做人。

需要跨域/跨节点做业务请求的,比如座舱域去调用智驾域的一个功能接口、中控去请求车身域的电源管理策略,这种“服务导向”的通信,必须走以太网上的SOME/IP或者DoIP。CAN是广播消息,不是面向服务的,你硬用CAN去模拟RPC,那代码复杂度会直线上升。

音视频实时分发类的,比如把DMS摄像头流发给座舱域做情绪识别,把后排娱乐系统的音频和视频流分发给多个面板,把导航声音混音后送去给所有扬声器——这一类首选以太网+RTP。AVB/TSN如果不做,你的流可能会在拥堵时抖动;做了TSN再加上RTP,你才能既保证带宽又保留流式播放的时序控制。

5.2 成本测算和线束考虑

我见过不少“技术完美主义”的架构方案,上来把所有节点全部以太网化,结果整包BOM成本直接失控。一枚车规级以太网PHY芯片的成本大约是CAN收发器的5倍以上,而且以太网线束对绞距、屏蔽层的工艺要求更高,单位长度成本也高出不少。所以最终的方案几乎都是混合形态:让低成本信号走CAN,让高价值媒体流走LVDS/以太网。座舱域控制器的网络设计,本质是在“成本”和“体验”间做动态平衡,而不是在“协议”上搞洁癖。

5.3 别忽略功能性安全约束

还有一个坑,很多人容易忽略——安全完整性等级(ASIL)。车辆里控制方向盘、制动的CAN信号,可能带有ASIL-D等级约束,而娱乐流媒体通常只是QM(质量管理)等级,ASIL-B都给不到。一旦你试图把控制信号和娱乐流混在一个以太网网段上,安全分区就非常麻烦。这也是为什么很多座舱域控制器要把以太网交换机切成虚拟局域网(VLAN),分成“安全区”“娱乐区”“诊断区”,并把CAN通过网关物理隔离。选型和设计时必须考虑安全等级边界,不要让音频RTP流和控制报文在同一优先级队列里裸奔。

6. 实车调试中踩过的坑,整理成经验清单

讲完理论,聊点真正的实战。做座舱网络联调,最让人掉头发的往往不是选型期的问题,而是上车后“玄学问题”。下面几条是我个人踩过的坑以及总结出的排查思路。

6.1 LVDS屏花屏:先看线束,再看软件

某项目出现副驾屏偶发花屏,软件查了几轮都没问题。最后定位在LVDS线束上——因为它和CAN线束在同一个扎带里绑了一段,高速翻转的LVDS差分信号把串扰耦合到了CAN线上,CAN总线报错率飙升,间接导致屏端同步信号抖动。解决方式很土:把LVDS线单独走扎带,避开车身线束主干,并在靠近接插件的连接器处增加磁环。记住一条原则:LVDS布线永远不要和低压大电流或高频开关信号并行走线,尽量远离背光逆变器、DC-DC开关电源。抖动定位时,用示波器抓LVDS差分对上的波形张开度,比看软件log快得多。

6.2 CAN报文丢失:总是“最后一条”出问题

调试座椅控制时发现,电机动作完成后最后那条状态回复偶尔丢失。摄像头抓CAN总线波形后确认,是电机在堵转瞬间产生大量电流突变,通过电源导致CAN收发器瞬时工作点偏移,正好把这个“停转确认帧”冲掉了。解决不是加软件重传(重传也会被冲掉),而是在电机母线端增加LC滤波,同时把CAN收发器供电从车辆的蓄电池线单独引。CAN对电源纹波非常敏感,这是排查CAN数据异常时最容易被忽略的方向。

6.3 RTP视频流卡顿:问题常出在“播放缓冲”

做后排娱乐的多屏分发时,中控投副驾屏偶尔卡半秒。一开始怀疑是网络丢包,ping自己车内的IP接口全程0丢包。后来用抓包工具看RTP流的到达时间戳才明白:以太网交换机在同时有大量广播包和视频流时,RTP包的间隔抖动(jitter)非常大,播放端如果没有做足够深的抖动缓冲,就会出现“聪明地丢帧”——来迟的帧被丢弃,画面自然卡顿。最后调大播放器基于RTP时间戳的抖动缓冲到120ms左右问题消失。这事说明,RTP真正要优化的不是带宽,而是端到端时延抖动。排查RTP类问题,必须先把时间戳抖动拉出来看,而不是单纯看丢包率。

6.4 以太网交换机配置:组播风暴比丢包更致命

座舱以太网做AVB音视频流时,调试初期交换机没有配置好组播过滤,导致启动瞬间所有RTP组播包在整个内部网络扩散,交换机CPU占用率飙升,连诊断通信都卡住。当时排查了很久,最后用tcpdump在几个口同时抓包才发现是组播泛洪。正确的做法是为每路音视频流规划独立的VLAN和组播地址,并在交换芯片里配置静态组播表过滤,不要让RTP组播报文出域。这也是为什么很多车规交换芯片的驱动代码里都有专门针对IGMP snooping 和静态组播的配置项:这玩意儿不是可选项,是必选项。

6.5 时间同步,是智能座舱很多“怪问题”的根

做多屏时间戳对齐时,各个屏的画面和声音差出几十毫秒都可能被用户感知。RTP流本身带时间戳,但如果发送端时钟和接收端时钟没同步,时间戳就是失效的。解决金标准是IEEE 802.1AS(gPTP)在以太网交换机上做时间同步。架好gPTP后,各端节点时间偏差能控制在微秒级,这时候RTP时间戳才真正有意义。另一个很容易被忽略的点是,SoC上的软件中断和调度抖动也会给RTP包打时间戳带来漂移,所以时间戳最好交给硬件(比如以太网mac的硬件时间戳)来做,而不是定时器中断里打。

7. 架构演进趋势:这条分界线正在移动

最后聊一聊这里面最让我兴奋的部分——传统的“LVDS传屏、CAN传控、以太网传数据”的分工,正在被新的域控制架构打破。现在很多新车型开始做全以太网骨干网 + 区域控制器:所有车身控制的功能都下沉到底层区域控制器,区域控制器之间的控制节点走CAN FD或LIN,但区域控制器和中央计算平台之间的“服务调用”全部走SOME/IP或DDS。LVDS仍在屏端存在,但高端车型开始用DP/eDP或MIPI DSI直接驱动面板,因为它们允许更高的分辨率和刷新率,还可以通过多路流同时传输多个窗口。

另一个明显趋势是软件定义座舱。因为以太网天然支持灵活路由和动态服务发现,座舱域里面现在越来越流行跑DDS、SOME/IP这些中间件,每一个显示屏幕、每一个音区、每一个状态源都被抽象成了“服务”。RTP在这里的角色会更强,因为不管是车内后座头枕屏还是副驾屏,背后本质都是N个“媒体服务”。RTP作为实时媒体承载协议,地位不会因为LVDS减少而降低,反而会因为“每路屏幕都可能是网络端点”而变得更加重要。

你让我预测未来,我认为短期不会出现“一个协议统一全部”的结局。LVDS的物理带宽优势和低成本高可靠控制所需的CAN总线都有各自的不可替代区域;以太网和RTP会吃掉更多原来由LVDS和私有总线占据的场景;而CAN在车身基础控制这个层面,还能安全地存在很多年。

做座舱网络设计,与其纠结“哪种协议最高级”,不如时刻盯着数据本身。数据要什么,就选什么。在真实车规项目里,能用最少的成本满足体验指标才是王道。所谓架构,不是拿着高级协议硬套,而是给每一条数据流找到一条合乎成本与物理法则的路。

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进