4、传感器接口与数据处理:摄像头接口(MIPI CSI、GMSL)、激光雷达接口(以太网、CAN)、毫米波雷达与超声波接口

传感器接口这块,说实话是嵌入式平台选型里最容易踩坑的地方。我见过不少团队,算力选得挺高,结果接口带宽不够,数据根本传不进来——那叫一个尴尬。

今天咱们就把摄像头、激光雷达、毫米波雷达、超声波这四类传感器的接口,掰开揉碎了讲清楚。

4.1 摄像头接口:MIPI CSI 与 GMSL

摄像头是自动驾驶的「眼睛」,数据量最大,实时性要求也最高。目前主流接口就两个:MIPI CSI 和 GMSL。

4.1.1 MIPI CSI(Camera Serial Interface)

MIPI CSI 是手机和嵌入式设备上最常见的摄像头接口。它走的是差分信号,用 D-PHY 或 C-PHY 物理层。

关键参数:

  • 带宽:D-PHY v2.0 单 lane 最高 4.5 Gbps,4 lane 就是 18 Gbps。够跑 4K@60fps 没问题。
  • 距离:一般不超过 30cm。超过这个距离信号就衰减得厉害。
  • 适用场景:舱内摄像头、环视摄像头(如果布置得近)。
注意:MIPI CSI 是短距离接口。如果你想把摄像头放在车顶或保险杠上,线缆一拉长,信号就完蛋。我早期一个项目就吃过这个亏——摄像头装在车顶,线缆走了 1.5 米,画面全是雪花。

4.1.2 GMSL(Gigabit Multimedia Serial Link)

GMSL 是 Maxim(现 ADI)搞出来的串行器/解串器方案。说白了,就是把 MIPI 信号转成同轴电缆传输,距离能拉到 15 米以上。

为什么自动驾驶离不开 GMSL?

  • 远距离传输:车规级线缆,15 米稳稳的。
  • 抗干扰:同轴电缆屏蔽好,EMC 表现优秀。
  • 双向通信:GMSL 支持反向通道,可以用来传控制信号、I2C、GPIO。

我个人习惯,前视、侧视、后视摄像头一律用 GMSL。环视如果离得近,可以用 MIPI CSI 省点成本。

选型建议:
  • 平台必须支持 GMSL 解串器(比如 MAX9296A 或 MAX96712)。
  • 确认解串器输出的 MIPI CSI 格式与 SoC 的 CSI 控制器匹配。
  • 注意 GMSL 的线束成本——同轴电缆比 FPC 贵不少。

4.2 激光雷达接口:以太网与 CAN

激光雷达的数据量比摄像头小得多,但点云数据的处理方式完全不同。

4.2.1 以太网接口(主流)

现在 90% 的激光雷达都用以太网输出。为什么?因为点云数据本质上是 UDP 包流,以太网天然适合。

常见配置:

激光雷达型号 接口 带宽需求 数据格式
Velodyne VLP-16 100Base-TX ~10 Mbps UDP 包
Hesai Pandar64 1000Base-T ~80 Mbps UDP 包
RoboSense RS-LiDAR-128 1000Base-T ~150 Mbps UDP 包

嗯,这里要注意:激光雷达的 UDP 包是「发完就不管」的。如果网络拥堵,丢包了怎么办?我建议在接收端做丢包检测和重传机制,或者干脆用双网口冗余。

小技巧:很多激光雷达支持 PTP(精确时间协议)。如果你做多传感器融合,一定要把 PTP 打开,不然时间戳对不齐,融合效果一塌糊涂。

4.2.2 CAN 接口(辅助)

CAN 接口在激光雷达上一般只用来传控制命令和状态信息。比如:

  • 设置旋转速度
  • 读取温度、电压
  • 触发同步信号

数据量很小,CAN 2.0 就够了,CAN FD 更宽裕。但千万别指望用 CAN 传点云数据——带宽完全不够。

我曾经在一个项目里看到有人试图用 CAN 传激光雷达数据,结果一帧点云要传好几秒,那还做什么实时感知?

4.3 毫米波雷达接口

毫米波雷达的数据量介于激光雷达和超声波之间。主流接口是 CAN 或 CAN FD。

典型数据内容:

  • 目标列表(每个目标有距离、速度、角度、RCS)
  • 点云数据(部分高端雷达支持)
  • 雷达状态(温度、故障码)

CAN FD 的带宽是 8 Mbps,传目标列表绰绰有余。但如果雷达输出点云(比如 4D 成像雷达),那 CAN FD 就有点吃力了,这时候可以考虑以太网。

接口选型要点:
  • 确认雷达输出的数据量——目标列表还是点云?
  • CAN FD 控制器要支持 ISO 11898-1:2015 标准。
  • 如果走以太网,注意雷达的 UDP 包频率和大小。

4.4 超声波接口

超声波雷达最简单,也最容易被忽视。但它负责的是「最后一米」的感知,停车、泊车全靠它。

接口类型:

  • UART:最常见。一根 TX、一根 RX,波特率 115200 或 460800。
  • I2C:部分超声波传感器用,适合短距离多设备通信。
  • LIN:车规级,适合车身网络。

数据格式也很简单:每个传感器返回一个距离值(毫米或厘米),外加一个回波强度。处理起来几乎不占 CPU。

但有个坑:超声波传感器容易受温度、湿度、风噪影响。我建议在驱动层做滤波,比如中值滤波或卡尔曼滤波,不然停车时距离值跳来跳去,用户体验很差。

4.5 接口选型总结

传感器类型 推荐接口 带宽需求 传输距离 关键注意点
摄像头(近距) MIPI CSI ~18 Gbps <30 cm 信号完整性、线缆长度
摄像头(远距) GMSL ~12 Gbps ~15 m 解串器兼容性、线束成本
激光雷达 以太网 10~150 Mbps ~100 m UDP 丢包、PTP 同步
毫米波雷达 CAN FD / 以太网 ~8 Mbps ~40 m 数据量评估、协议兼容性
超声波 UART / I2C / LIN <1 Mbps ~5 m 滤波算法、环境干扰

最后说一句:接口选型不是单纯看带宽,还要考虑线束成本、EMC 要求、平台支持情况。我建议在项目初期就做一个接口矩阵表,把每个传感器的接口需求、带宽、延迟要求列清楚,不然到后期改接口,那成本可就大了。