ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

L3/L4自动驾驶的EE架构冗余设计:从失效安全到失效可运行

L3/L4自动驾驶的EE架构冗余设计:从失效安全到失效可运行 简介这是一份围绕高阶智能驾驶L3/L4对汽车电子电气EE架构新要求的技术详解文档面向具备一定汽车电子基础、从事智能驾驶系统开发的工程师和技术人员。内容从行业背景切入厘清L2、L3、L4的功能定义与ODD差异并结合国内外法规如R157、GTR ADS和Robotaxi商用化案例落到主辅路架构、智驾域控制器热备切换、多传感器融合、仓内外提醒、通信/制动转向/电源/时钟等关键冗余设计以及中央计算、软件平台与OTA等未来演进方向。文档以体系化方式梳理了从架构需求到设计落地的完整逻辑既有功能场景和安全目标分析也包含架构设计案例适合用于技术摸底、方案选型和项目预研参考。资源包为一个docx文档大小约6.3MB。目前已有130人学习下载对想快速建立高阶智驾EE架构知识框架的工程师而言是一份实用的综合资料。1. 当 L3 接管方向盘EE 架构就不再只是“线束怎么连”的事高阶智能驾驶L3/L4和 L2 辅助驾驶之间并不是差了几颗摄像头或一个大算力 SoC而是责任主体发生了转移。L2 的事故责任还在驾驶员身上系统只是“建议”而 L3 在 ODD设计运行域内激活后系统开始承担驾驶责任L4 更是把安全接管当成系统自己的分内事。这个转折直接给汽车电子电气架构提出了新的硬性要求一旦某个 ECU、某路电源、某条通信链路失效整车不能直接“摆烂”必须依靠冗余设计完成降级、安全停车或继续行驶。EE 架构远不止是多挂几个域控制器它要变成一套能承受单点失效、能监控自身健康、能做失效可运行fail-operational的分布式系统。所以这篇文章聊的是把“L3/L4 需要什么样的 EE 架构”落到具体需求再从感知、计算、执行、通信、电源五个维度拆解冗余设计怎么做最后聊聊未来中央计算加区域控制器架构下冗余设计会往哪个方向走。适合正在做智驾平台选型、EE 架构规划、功能安全或系统集成的工程师读也适合想搞明白“为什么 L3 域控要双份”的产品和技术管理者。2. L3/L4 对 EE 架构的基础失效安全已经不够用了L2 时代EE 架构设计的目标是“失效安全”fail-safe。系统出了故障发出警告驾驶员接管一切结束。但 L3 系统激活后驾驶员可能在看视频、在处理邮件根本没有在监视路面。系统必须保证从故障发生到完成安全停车之间整车仍然具备基本的驾驶能力这就是“失效可运行”fail-operational的核心含义。EE 架构设计的目标函数从此变了不是“出故障时系统别乱动”而是“出故障时系统还能把车安稳停下来”。2.1 失效响应时间从“秒级”压缩到“毫秒级”L3 场景里故障被检测出来之后系统要经历「确认故障→判定影响→决策降级策略→执行最小风险操作」这一串动作。这一串动作的时长直接由 EE 架构的监测能力、通信时延和冗余切换机制决定。自动化等级失效后责任主体EE 架构目标典型冗余需求L2驾驶员fail-safe提示即可单计算平台传感器方案冗余L3系统ODD 内fail-operational受限时间内可运行双计算平台或安全 MCU、双电源、双通信L4系统全场景fail-operational完整 MRM全链路冗余可能要求双套独立系统“受限时间”具体是多少行业里没有一个统一数字但常见的做法是把故障检测时间压缩到 100ms 以内完成降级决策到 MRM 触发不超过 500ms。这个指标直接决定了 L3 域控的监控回路必须在一个 ECU 内部闭环不能依赖云端决策。我一般设计监控流时会让安全 MCU 直接读取 SoC 的心跳、温度、电压、执行器反馈保证在 SoC 完全死机的情况下安全 MCU 依然能独立完成“减速停车”或“靠边停车”的最小风险操作。2.2 ASIL 等级决定了冗余要做到什么程度ISO 26262 对 L3/L4 这类高风险功能要求安全目标通常达到 ASIL B 到 ASIL D。ASIL D 意味着单点故障指标SPFM要大于 99%潜在故障指标LFM要大于 90%。一套电子电气架构想达到这个指标光靠用一个“高可靠”的芯片是不够的必须靠架构层面的冗余。常见的做法是做 ASIL 分解例如把 ASIL D 的安全目标分解成 ASIL B(D) ASIL B(D) 两条相互独立的路径两条路径各自满足 ASIL B合成后满足 ASIL D。落到 EE 架构上就是主计算路径和冗余计算路径必须在电源、时钟、通信、软件栈上相互独立否则一条共因失效就能把两条路径同时带走。2.3 算力平台从单 SoC 走向“SoC 安全 MCU”的异构架构L3/L4 的感知融合需要大算力目前行业里主流的平台是英伟达 Orin/Thor、地平线征程 6、高通 Ride 这一级别。这些高算力 SoC 性能强但有一个共性问题它们的锁步能力和故障覆盖率往往不足以单独满足 ASIL D 要求。于是 EE 架构里出现了一个固定组合——大算力 SoC 负责智能驾驶功能域控制器里的安全 MCU 负责监控和降级执行。安全 MCU 的选择通常是 TC397、S32K3 这类自带锁步核、支持 ASIL D 的芯片。它的任务不是去做端到端的感知而是定时向 SoC 发送“喂狗”请求检查 SoC 输出的轨迹规划结果是否在合理边界内。如果发现 SoC 失效安全 MCU 直接接管执行器的控制通道车辆进入安全停车程序。// 安全 MCU 侧心跳监控逻辑伪代码/C 语言风格 void Safety_MCU_Task(void) { if (GetSocHeartbeat() HEARTBEAT_EXPECTED) { // 连续 10ms 未收到有效心跳判定 SoC 异常 Safety_State SAFE_STATE_DEGRADED; TriggerMRM(MRM_SLOW_STOP); // 触发最小风险操作 } else { // 校验轨迹合理性 CheckTrajectoryBoundary(); Safety_State SAFE_STATE_NORMAL; } }这段逻辑说明了一个关键点冗余切换不依赖 SoC 自己诊断出故障而是由独立的安全 MCU 从外部判断。这样即使 SoC 内部软件跑飞、逻辑混乱安全 MCU 也能依靠独立的传感信号比如车速、转向角做出判断。参数上心跳超时阈值一般设为 10ms 到 50ms 之间太短容易误触发太长则无法满足故障响应时间需求。3. 冗余设计的分层拆解从感知到执行各做各的“双份”冗余设计不是简单粗暴地“什么都要两份”而是要根据失效模式分析决定每个环节需要什么程度的冗余。传感器坏了可以降级到低等级功能计算单元坏了必须无缝接管执行器坏了可能需要物理层的额外硬件。下面按感知、计算、执行、通信、电源五个维度拆开讲。3.1 感知冗余异构传感器比同构双份更有效感知冗余的第一原则是“异构冗余最好”。两路摄像头同时被强光干扰跟一路摄像头加一路毫米波雷达相比后者的鲁棒性高得多。L3 方案里常见的传感器配置是前向视觉 前向毫米波 角雷达 激光雷达 超声波。传感器失效模式冗余对策降级行为前向摄像头强光/污损激光雷达/Radar 融合仅靠 RadarLiDAR 做目标检测毫米波雷达雨衰/遮挡摄像头视觉兜底视觉为主限制速度激光雷达脏污遮挡视觉Radar退回 L2 级功能最近行业里非常多量产车型在做的一个方向是“视觉为主、雷达兜底”的配置摄像头做主感知雷达做识别验证和目标测距激光雷达在 L3 高快场景兜底。做传感器选型时建议把重点放在“失效模式互补”上而不是简单堆数量。举个例子摄像头在逆光下会失效毫米波雷达在逆光下完全不受影响这就是互补性。感知融合还有一个容易忽略的点传感器的安装位置和视角重复度决定了冗余有效性。如果前视摄像头和激光雷达装在同一位置、朝同一方向那么一块遮盖物能同时让它们失效这就是典型的共因失效。软件层面感知冗余也需要“降级优先级”。我一般在交互设计里把场景分成三层全功能场景摄像头 雷达 激光雷达全可用系统支持高速 NOA 和城市领航受限功能场景激光雷达不可用系统降级为 NOA 但不支持 L3 脱眼最小风险场景全部主力传感器失效系统立即降级到备用传感器的能力边界并触发 MRM。冗余切换不能等到故障发生后再人工标定需要在架构阶段就把降级策略写进状态机里。3.2 算力冗余“AB”还是“双锁步”取决于代价算力冗余目前行业里有两条主流路线。第一条是主从双 SoC 方案。一个高算力 SoC 跑全功能另一个低算力 SoC或同一个 SoC 的降频模式作为热备份。热备份不是不干活它可以同时跑轻量的目标感知和轨迹跟踪这样一旦主 SoC 失效备份 SoC 能直接接管控制权不用经历重新初始化。第二条是单 SoC 锁步 MCU 方案。这套方案里SoC 负责高算力任务锁步 MCU 负责安全校验和失效后的降级控制。算力上几乎没有浪费但代价是降级后的能力大幅缩水只能支持“靠边停车”这一类最小风险操作不能继续完成任务。从 L4 的角度看双 SoC 是更稳妥的架构因为 L4 车辆在大部分场景下都要自主完成 MRM而不仅仅是停车。目前一些 L4 平台采用“双计算单元 冗余通信骨干”的设计两个计算单元互为热备同时运行同样的感知模型输出在仲裁单元里比较。仲裁单元可以是第三个低算力 MCU也可以由两个 SoC 交叉互检。3.3 执行冗余制动和转向是安全的关键执行器冗余是整个链路里最“吃硬件”的环节。制动系统需要冗余这是明文规定的但冗余到什么程度取决于整车平台。常见方案是“ESP电子稳定程序 iBooster电子助力器”双通道制动。正常情况下iBooster 负责制动助力ESP 只做稳定控制。如果 iBooster 失效ESP 可以直接推动主缸制动不需要额外增加一套液压系统。转向方面L3 通常要求 EPS 双绕组电机或双 EPS 控制器其中 EPS 电机内部的冗余设计是“一套电机、两套三相绕组”一个绕组失效后另一个继续工作。执行冗余的设计原则是不共享单一失效点。像转向角度传感器、制动踏板位移传感器这类部件如果两组传感器在同一个封装里、共用同一路电源那它们算一个失效点。在做 FMEA 分析时必须按“物理独立”来检查不能只看功能数量。3.4 通信冗余域间通信要过“双物理通道”这一关传统分布式 ECU 架构下CAN 总线的物理层断开只是报警功能不受影响因为一个信号可以从别的节点绕过但在域集中式架构里L3 系统的感知、决策、执行分属不同的域控制器通信链路的可靠性直接决定了功能能否继续。推荐的做法是走以太网双通道冗余或者在关键链路上保留一路 CAN FD 作为紧急备用。# 通信双通道冗余逻辑Python 风格伪代码 backup_channel_ok True ethernet_lost False while True: # 主链路发送者周期性发送 health_check if not receive_health_check(A_ENet, timeout10ms): ethernet_lost True # 检测到主链路失效切到备用 CAN/CAN FD 通道 switch_to_backup(CAN_FD_1) send_mrm_command(MCU_SAFETY, degrade) # 备用通道恢复正常之前禁止 L3 功能退出 ODD if ethernet_lost and not backup_channel_ok: trigger_mrm()通信冗余有一个常见误区和大家说一说切到备用通道之后并不是重新发一遍之前的报文就行。切换瞬间的时延、报文顺序、时钟不同步都会导致执行器收到错乱的控制指令。所以在设计通信冗余时需要在链路层加上「序列号校验」和「时间戳同步」机制确保切换前后指令的连贯性。实际上做时间同步我一般会这样操作在 Linux 域控上启用 linuxptp 服务用 phc2sys 锁定 PTP 域主时钟对支持 TSN 的交换芯片开启 802.1AS 的 gPTP 支持。这样整个冗余通信链路的时间偏差可以控制在 1 微秒以内对感知融合和执行同步来说完全够用。phc2sys -s eth0 -m -O 0 -I eth0这条命令把物理网卡 eth0 的 PTP 硬件时钟设为系统时钟的参考源-I 指定 monitor 接口输出校正偏移-O 0 表示 PPS 偏移为 0。如果是多网卡冗余需要注意备用网卡的 PTP 优先级配置否则备用链路切换后会重新进行 Best Master Clock 选举引入不必要的时延。3.5 电源冗余ADAS 域控要有自己的一条“生命线”电源冗余是整个 EE 架构里最容易被低估的部分。L3 系统激活时如果主蓄电池断电或电压跌落系统必须在毫秒级内切换到备用电源。目前常见的架构是独立的 ADAS 冗余电源域 超级电容或小容量锂电池作为后备。电源分配方式优点缺点适用场景双蓄电池 双路 DCDC冗余度高容量大成本高布线重L4 Robotaxi单蓄电池 超级电容响应快成本低维持时间短几秒L3 高速领航单蓄电池 ADAS 独立 DCDC隔离故障区域蓄电池本身是单点乘用车 L2/L3 起步电源冗余的关键是“故障隔离”而不是“堆重量”。DCDC 输出端需要做 AND 二极管和电流检测一旦检测到短路立刻切断该路防止故障蔓延到其他 ECU。后备电源的容量设计基准是至少保证 MRM 全过程刹车 转向避让 靠边停车的供电通常默认 60 秒到 120 秒。4. 冗余管理的工程核心健康监控、状态机与降级策略硬件冗余到位后真正的难点在于管理这套冗余系统。故障可能瞬时也可能永久可能被自检捕获也可能藏在数据路径里不报错。为了在正确时间做正确决策会让系统状态机覆盖 5 个核心状态并配上明确的状态转移条件。4.1 安全状态机的设计范式系统初始处于 STANDSTILL静止状态ODD 监控通过后进入 ACTIVE运行状态。ACTIVE 期间任何一个关键域的健康度触限系统并不会立刻做“全线崩溃”的处理而是先降级到 DEGRADED受限状态。# 系统健康状态机Python 风格伪代码 status STANDSTILL def on_vehicle_start(): if self_check() PASS: status ACTIVE else: status FAULT trigger_mrm() def monitor_loop(): global status if status ACTIVE: score compute_health_score( # 加权计算健康度 soc_temp85, # SoC 温度单位℃ redundant_channel1, heartbeats_lost2 ) if score DEGRADE_THRESHOLD: status DEGRADED elif score MRM_THRESHOLD: status MRM trigger_mrm(MRM_PULLOVER)参数含义解释soc_temp 为 85℃ 是一个示例阈值值实际设计要根据 SoC 的散热设计和结温上限调整超过这个值会触发 SoC 降频而不是立即整体失效heartbeats_lost 是连续丢失的心跳数超过 3 次即 30ms就要切换通道MRM_PULLOVER 表示靠边停车动作IES 是标准的最小风险操作之一。“降级”和“MRM”之间有明确的边界降级后系统仍然可以继续行驶到安全区域而 MRM 是“立刻找最近安全区域停车”的最后手段。这个边界的定义必须写在需求文档里并且通过仿真把所有可能的分支状态组合跑一遍。4.2 故障分类与 SOTIF 的补充不是所有异常都能靠冗余解决ISO 26262 管的是“系统部件失效”这一类随机硬故障。但 L3/L4 还有一个更大的威胁——传感器性能不足导致的功能局限比如传感器被非标准车辆遮挡、极端天气导致感知置信度下降、目标物不在训练集中。这类问题属于 ISO 21448SOTIF预期功能安全的范畴。解决这类问题的常规做法是引入“性能冗余”和“性能监控”双管齐下。架构层面预留充足的感知冗余软件层面则需要对每个感知结果的置信度打分。比如目标跟踪置信度低于阈值时系统自动降低车速缩短制动距离车道线消失但导航地图存在时系统切换到“地图引导模式”但不允许变道超车。设计冗余系统时建议把“置信度”当成一个类似电压、温度的实时监测量来对待。它在 EE 架构的数据流里要有自己的传输通道和监控节点。4.3 故障注入测试冗余设计到底灵不灵要靠“人为破坏”验证冗余设计最怕的是“一直没坏一坏全崩”。所以 L3/L4 开发流程里故障注入测试是标配。而不是只做静态 FMEA 分析需要把故障“打进去”看系统反应。故障注入的常规手段有两种软件故障注入使用 CANoe、PeakCAN 或 Pytest 框架模拟信号丢失、报文延迟、CRC 错误。硬件故障注入用电控开关物理断开供电或通信链路验证能否无缝切换。软件注入可以做细粒度的验证硬件注入则验证整个物理链路的独立性。一个建议是把故障注入用例做成自动化回归套件每次软件版本迭代后全量跑一遍而不是只在功能安全评估前做一次。故障注入本身也要有“注入后验证”环节重点确认三个事故障在预期时间内被检测到通常不大于 100ms系统的状态转移路径符合状态机定义触发 MRM 时执行器应答时间满足整车制动距离设计指标。5. 面向中央计算区域控制器冗余设计的工程重构路径L3/L4 的目标架构正在从“多个域控”走向“中央计算 zonal”。这个变化让冗余设计的思考方式也会随之改变不再是把每个功能模块各做一份备份而是在中央算力平台上做资源池化、在区域控制器上做执行口冗余。5.1 中央计算架构下冗余从“盒子备份”转为“软件调度”原有“双 SoC 双域控”是物理层面的 A/B 备份而中央计算平台通常是一台机箱里插多块计算板卡算力可以动态分配。冗余设计在这个架构下变成一块板卡失效后任务迁移到其他板卡上继续跑。这种软件级冗余的核心是虚拟化调度。主控板上的“安全虚拟机”和“应用虚拟机”要被调度到不同物理核上避免超线程或共享缓存的共因失效。CPU 亲和性设置、内存归属和中断隔离这三项都需要做配置。# 中央计算平台的 CPU 隔离配置参考 QEMU / KVM 虚拟化 vm_safety: cpu_affinity: [0, 1] # 安全域绑定物理核 0/1 memory: 512M # 独占内存拒绝动态分配 watchdog: edgewatch-1 # 独立看门狗硬件 vm_perception: cpu_affinity: [2, 3, 4, 5] # 感知任务可用 4 个核 allow_offload: true这条配置的含义是安全虚拟机和感知虚拟机分配了不同的物理核即使感知任务满负载或崩溃也不影响安全域的运行。在虚拟化层还要开启 CPU 硬件隔离和中断隔离防止“邻居”虚拟机通过共享缓存、共享中断发起侧信道攻击或引发连锁故障。5.2 软件定义冗余算法层冗余比硬件层冗余更敏捷硬件冗余设计一旦定型很难修改但软件定义冗余可以持续迭代。现在业界的趋势是把「感知→决策→控制」闭环拆分成可替换的算法模块并在运行框架中增加“双算法表决”机制。双算法表决的做法是两个独立的感知算法同时运行输出目标列表后在“融合表决层”进行比较差异大于阈值时系统自动下调置信度并启用保守控制策略。这样的软冗余对单颗传感器失效、模型泛化不足这类“软故障”非常有效因为两个算法不会同时犯同一个错误。还有一个方向是“模型量化冗余”。在低算力 MCU 上部署一个理解能力有限的“安全模式模型”上电初始化时与主模型对齐权重和校准参数在高算力 SoC 失效后立刻接管基础功能。这些模型不需要比主模型表现好只需要让车“活着”开到安全区就行。5.3 未来 EE 架构的电源与通信架构演化未来中央计算架构下电源分配会变得更细粒度。区域控制器zonal controller负责给连接的 ECU 做电源管理而中央计算平台的每块板卡都有独立供电。电源架构设计上建议做“三级隔离”区域控制器内部隔离、板卡间隔离、关键传感器单独隔离。这样设计的原因是区域控制器的某一轴回路短路不能导致中央计算平台和其他区域的传感器断电。每一路供电都要能独立上下电、独立诊断故障并上报给整车健康管理器。通信层面的趋势是“TSN 时间关键网络”融合成统一骨干。冗余链路不再依赖物理备用而是在 TSN 流表里同时配置主路径和备路径交换机故障时通过帧复制和消除机制FRER实现无缝切换。这块对 EE 架构师提出了新的要求要从“管点对点链路”升级为“管全网拓扑和流预留”。一个实用技巧是在设计 TSN 流表时把关键的 MRM 指令流设置成最高优先级并预留 30% 以上的带宽余量避免在极端工况下高优先级队列排队超时。同时在交换机侧开启抢占机制让 MRM 控制帧可以打断低优先级感知数据的传输确保控制指令延迟时间内送达。# TSN 流表配置示例参考 openLB 或类似 TSN 配置工具 tsn_tool add_stream inject_mrm_steering \ --dest-mac 00:1e:c4:01:02:03 \ --vlan-id 100 \ --priority 7 \ --max-latency 100us \ --path primary,backup这里参数的关键点是priority 7和path指定主备双路径这样核心执行器同时收到两份控制帧并自动做去重和选择保证在一条路径瞬间中断的情况下执行器侧无感切换。L4 的真正实现不是靠堆传感器和算力而是从 EE 架构的第一行设计就开始做失效模式推演把每一处单点失效都变成可观测、可隔离、可降级的设计点然后通过全量故障注入测试把系统推向真正的“失效可运行”。本文还有配套的精品资源点击获取
返回列表