1. ADAS系统概述:功能定义、系统架构与性能指标

大家好,我是你们这堂课的主讲。今天咱们聊聊ADAS系统的底子——功能、架构和性能指标。这些东西听起来有点枯燥,但说实话,它们是整个性能优化的地基。地基没打好,后面盖再高的楼也白搭。

1.1 ADAS功能定义:到底在做什么?

ADAS,全称是Advanced Driver Assistance Systems,高级驾驶辅助系统。说白了,就是帮驾驶员看路、判断、甚至动手动脚的一套电子系统。我习惯把它分成三个层级:

  • 感知层:用摄像头、雷达、激光雷达去“看”周围环境。比如车道线、行人、前车。
  • 决策层:根据感知到的信息,判断要不要报警、要不要刹车、要不要变道。
  • 执行层:把决策变成动作,比如踩刹车、打方向盘、亮警示灯。

举个例子,自动紧急制动(AEB)。摄像头检测到前方有障碍物,决策模块算一下碰撞时间(TTC),如果太危险,就通知刹车系统一脚踩死。整个过程,从感知到执行,必须在几百毫秒内完成。

核心要点:ADAS功能不是孤立的。每个功能都依赖多个模块协同。性能瓶颈往往出现在模块之间的“衔接处”,而不是单个模块内部。

1.2 系统架构:软硬件怎么搭?

ADAS系统架构,我习惯从两个维度看:硬件拓扑和软件分层。

1.2.1 硬件拓扑

典型的ADAS硬件架构,大概长这样:

传感器(摄像头/雷达/激光雷达)
    ↓
数据采集与预处理(FPGA/ISP)
    ↓
主控芯片(SoC,比如NVIDIA Orin、TI TDA4、高通Snapdragon Ride)
    ↓
执行器(刹车/转向/显示)

嗯,这里要注意。主控芯片是性能瓶颈的重灾区。为什么?因为所有传感器数据都要汇聚到这里处理。我在项目中遇到过,某个客户用了四路800万像素摄像头,结果SoC的ISP带宽直接被打满,帧率掉了一半。

1.2.2 软件分层

软件架构,我一般这么分:

  • 操作系统层:通常是实时操作系统(RTOS)或者Linux with PREEMPT_RT。负责任务调度、内存管理。
  • 中间件层:比如ROS 2、AUTOSAR Adaptive。负责模块间通信、数据分发。
  • 算法层:感知、融合、规划、控制。这是最吃算力的地方。
  • 应用层:HMI、诊断、日志。

个人经验:我建议你在设计初期就明确每个模块的“实时性等级”。比如,AEB必须硬实时,而HMI显示可以软实时。这样调度器才能合理分配CPU时间片。

1.3 性能指标:延迟、吞吐量、实时性

性能好不好,不能光靠感觉。得有量化指标。ADAS系统里,我重点关注三个:延迟吞吐量实时性

1.3.1 延迟(Latency)

延迟,就是从“事件发生”到“系统响应”的时间差。比如,前车急刹车,到你的AEB开始制动,这中间的时间。

延迟分两种:

  • 端到端延迟:传感器→处理→执行。AEB要求通常<200ms。
  • 模块内延迟:比如目标检测算法从输入图像到输出结果的时间。

我曾经优化过一个项目,端到端延迟从350ms降到了180ms。怎么做到的?其实就是把图像预处理从CPU挪到了GPU上,减少了数据拷贝次数。

避坑指南:我曾经以为延迟只跟算法复杂度有关,后来发现数据搬运才是大头。DDR带宽不够,CPU和GPU之间来回拷贝数据,延迟直接翻倍。所以,内存布局和DMA传输一定要提前规划好。

1.3.2 吞吐量(Throughput)

吞吐量,就是单位时间内系统能处理多少数据。比如,每秒能处理多少帧图像、多少条目标轨迹。

常见的吞吐量指标:

场景 典型吞吐量要求
摄像头帧率 30 fps(前视)/ 60 fps(环视)
雷达点云处理 20 Hz
目标跟踪更新 100 Hz

吞吐量不够,系统就会丢帧。你想想看,如果摄像头是30fps,但算法只能处理15fps,那有一半的帧就丢了。万一丢的那一帧正好是行人突然横穿马路呢?

1.3.3 实时性(Real-time)

实时性,说白了就是“在规定时间内必须完成”。ADAS是安全关键系统,错过截止时间(Deadline)就是事故。

实时性分两种:

  • 硬实时:错过截止时间 = 系统失效。比如AEB的制动指令。
  • 软实时:偶尔错过可以接受,但性能下降。比如车道保持的辅助转向。

我习惯用最差情况执行时间(WCET)来衡量实时性。不是平均时间,是最差情况。因为系统必须保证在最坏情况下也能按时完成。

核心观点:延迟、吞吐量、实时性三者相互制约。你追求低延迟,可能牺牲吞吐量;你追求高吞吐量,可能增加延迟。性能优化的本质,就是在这三者之间找到平衡点。

1.4 小结

这一章我们聊了ADAS的功能定义、系统架构和三个核心性能指标。记住一句话:没有指标,就没有优化。下一章,我会带大家深入剖析性能瓶颈的定位方法,包括怎么用perf、ftrace这些工具去抓“罪魁祸首”。

嗯,今天就到这里。有什么问题,欢迎课后交流。