ARTICLE · INTELLIGENCE

战地情报 · 详情页

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

智能驾驶域控开发:参考设计拆解、量产改造与踩坑实录

智能驾驶域控开发:参考设计拆解、量产改造与踩坑实录 去年团队接到一块智驾域控的开发任务主芯片选的是某家车规SoC我第一反应不是立刻写需求文档也不是让硬件工程师马上建原理图而是先把原厂那份参考设计从头翻到尾。搞智驾域控的人都知道车规芯片的参考设计能不能吃透基本决定了你后面是睡好觉还是连续加班。说得直接一点搞定参考设计项目就成功了一半。今天这篇笔记就把我怎么拆、怎么改、怎么避坑的过程完整写出来给同样在做智驾域控硬件的朋友一个参考。这块板子看起来只是个“芯片电源接口”的组合实际上它承载的东西比想象中多得多。参考设计不光是给你画板子省时间的它背后是一整套被验证过的系统方案供电、时序、信号完整性、热设计、启动流程、甚至功能安全机制。你省掉的那部分理解功夫迟早会在某个EMC测试或者上电时序翻车的现场还回来。所以下面从架构拆解、量产改造、软件资产、踩坑实录一步步聊。1. 先把参考设计吃透比什么都实在1.1 一块域控板远不止“SoC电源”这么简单很多人一看参考设计觉得就是照着原理图抄、照着PCB摆件。真正干过域控开发的人都知道Smart Fusion 的 SoC 只是最显眼的一颗芯片它周围那一圈电源管理芯片、存储颗粒、PHY、SerDes、安全MCU、看门狗、时钟树、连接器每一环都是生死攸关的。智驾域控通常要接摄像头、激光雷达、毫米波雷达、惯导、车身 CAN、车载以太网还要跑神经网络、传感器融合、路径规划。算力高功耗就高一个典型中算力域控整板功耗随便就是几十瓦高算力平台上百瓦也很正常。这么高的功耗电源树的设计就不是“连通即可”而是要管理电压、电流、纹波、瞬态响应、上电时序、下电时序。参考设计最大的价值就是帮你在第一版规避掉很多只有在测试台上才会暴露的电源问题。我拿到参考设计之后从来不会只看原理图页数。我会先建一个“信号-功能-风险”列表哪几个电源域是核心逻辑用的哪几个是外设IO用的哪个PMIC支持ASIL-D等级哪个电源必须在多少毫秒内完成软启动哪些信号要控制阻抗哪些接口要做交流耦合。这张表做完后面所有改版决策都有了依据。1.2 参考设计的潜台词验证过的完整系统原厂参考设计通常分几个层级不是只有一张板子。常见的包括评估板EVK、设计文件包原理图、PCB layout、Gerber、BOM、软件开发包BSP、启动代码、驱动、工具链、硬件手册HW Design Guide、Datasheet、Errata、以及一些应用笔记。很多工程师只下载了原理图这远远不够。芯片原厂在发布参考设计前至少会做一轮硬件验证电源纹波、信号质量、高速接口眼图、DDR读写测试、启动稳定性、基本EMC预扫描。也就是说参考设计不是“纸上方案”而是一个已经跑通的系统。你基于它做修改继承的是这些验证结果。而如果你从零自己画板你在做的是重新发明轮子而且还没有出厂验证。现实中大多数智驾域控项目的周期根本不允许你这么折腾。我对团队的硬件设计负责人常说的原话是参考设计是“地基”你可以拆掉上面的墙去改户型但不要随随便便把承重墙敲了。这个类比做硬件的都懂DDR参考走线、电源去耦、时钟树布局都不是你可以自由发挥的地方。2. 参考设计拆解架构、电源树、接口与安全2.1 从系统架构下手别再照着demo板盲抄参考设计的硬件架构一般分为几个域主计算域、安全处理域、感知接口域、通信接口域、控制接口域、以及电源管理域。我建议先看“主计算域安全处理域”的组合关系。智驾域控常见架构有两种一种是主SoC 独立安全MCUMCU直接用硬线监控SoC另一条链路做ASIL-D安全决策和降级控制另一种是单芯片锁步核做安全岛功能安全和高算力集成在同一颗芯片里。参考设计会明确告诉你它推荐哪种架构以及为什么。比如很多新一代车规SoC内部有锁步的MCU核同时还外挂一颗功能安全PMIC和监控芯片。参考设计里那颗PMIC的SPI配置、故障上报引脚、安全关断逻辑都是文档里写得很细但容易被忽略的东西。我习惯先把参考设计的系统框图自己重新画一遍不是照抄原厂图而是按我自己的理解整理芯片型号、接口类型、电源轨、信号方向、安全等级。画完你会发现原厂框图上很多“多余”的器件是有原因的比如某些串联电阻是为了限制故障电流某些电容是为了满足FMEDA故障覆盖率某些GPIO上拉是为了确保默认安全状态。2.2 电源树与上电时序最容易翻车也最考验功底电源树是我看参考设计时最先逐行研究的部分。智驾域控里的电源轨数量很吓人一个SoC动辄十几路电源包括核心供电、GPU、NPU、DDR PHY、IO、PLL、模拟、RTC等等。每一路都有自己的电压域、上下电顺序要求、毛刺容忍度、负载瞬态要求。原厂参考设计通常会给出一个很清晰的电源树图从输入电压12V或24V车载电池到一级DCDC再到二级PMIC再到各个负载。你要关注的不是电压值本身而是上下电顺序。举个我踩过的例子某颗芯片要求VDD_CORE先上电然后才是VDD_IO最后是PHY供电。结果我们第二版自己做电源管理时因为PMIC配置问题导致IO先于CORE上电芯片虽然没烧但启动后PCIe链路无论怎么初始化都识别不到端点设备。查了两天才发现是时序问题。参考设计自带的上电时序配置和默认寄存器值就是原厂验证过的一套安全参数你改之前必须评估影响。电源部分还有一点容易忽略就是输入级的防反保护、浪涌抑制、地偏移和抛负载。车载电子环境不是实验室的稳压电源ISO 16750-2里对直流供电电压、过压、瞬态、抛负载都有严格定义。参考设计往往会在输入级做TVS、防反MOSFET、共模电感等保护这部分不能因为“看着不复杂”就简化否则整板EMC和耐压测试会非常痛苦。另外建议用表格把关键电源轨列出来方便团队评审电源轨电压主要负载上电顺序纹波要求异常处理VDD_CORE0.8VSoC核心逻辑第1位小于30mVPMIC故障中断VDD_DDR1.1VLPDDR颗粒Core之后小于50mVECC告警VDD_IO1.8VIO/PHY第3位小于50mV过流保护VDD_MCU3.3V安全MCU独立域小于50mV硬件看门狗2.3 高速接口与感知链路PCIe、以太网、MIPI、GMSL一锅端现在的智驾域控高速接口多得让人头皮发麻。长距摄像头一般通过GMSL/FPD-Link这类SerDes芯片转成MIPI CSI-2接SoC激光雷达可能是以太网或者PCIe接口毫米波雷达通常是CAN-FD或以太网车内通信主干网又是车载千兆以太网。参考设计在高速接口上的投入非常典型每一对差分信号都有明确的阻抗要求、参考平面、等长规则、回流路径甚至连接器选型都是指定或者建议的。你如果只抄原理图不抄layout规则很快就会发现MIPI信号抖动超标、PCIe链路训练失败。我见过不少人把参考设计的高速接口部分当成“不可动区”其实连位置都最好不要挪因为原厂的叠层设计、过孔规格、端接方案都经过仿真和实测验证。你为了布通板子强行绕线眼图测试就能给你颜色看。一般我的处理方法是先锁定参考设计中关键高速接口的走线拓扑和端接方式然后通过PCB设计规则进行约束任何改动必须留出仿真验证时间。2.4 功能安全与监控电路参考设计里最值钱的隐藏资产很多人觉得功能安全就是写文档跑流程跟硬件没太大关系。但在参考设计里功能安全早就体现在电路上了。比如双路冗余供电、电压监测、电流监测、温度监测、外部看门狗、安全MCU的独立供电域、SoC和MCU之间的硬件握手信号、故障信号上报引脚这些都是硬件层面为ASIL分解和故障覆盖率做的具体设计。如果你打算过ISO 26262认证参考设计里的安全监控电路是极好的起点。原厂已经帮你定义了哪些风险需要被监控、监控粒度是多少、反应时间是多少。你基于这套东西写FMEDA和安全概念远比自己凭空推一遍来得扎实。我特别建议把参考设计里所有与安全监控相关的引脚整理成一张清单信号名、方向、来源芯片、去往哪里、触发条件、默认安全状态。这张清单之后会变成你功能安全文档的有效输入也是软件配置安全机制的锚点。3. 怎么把参考设计改成能量产的设计3.1 换料之前把生命周期查清楚参考板芯片不代表你买得到参考设计的BOM里用的料号很多是原厂自己的评估型号或者刚发布的新料虽然性能好但不一定是你能用十年生命周期供货的料。车规级项目对元器件生命周期要求极其严格动辄要支持Tier1向主机厂承诺的7到10年供货。拿到参考设计BOM之后我第一件事就是给所有主动器件做LTP分析长时间供货分析。MCU、PMIC、SerDes、以太网PHY、DDR颗粒、Flash、晶振、连接器、TVS、电感、电容全部过一遍。凡是生命周期处于EOL、NRND不推荐用于新设计或者只有一个客户的定制料要么找兼容料要么直接找原厂确认长期供货承诺。换料不是简单看引脚兼容。比如换PMIC时要核对上下电时序、默认寄存器、电源监控阈值、故障行为。换SerDes芯片时要核对视频格式、I2C配置、锁定时间、链路诊断功能。每换一个关键料都要重新跑一轮功能验证别想着“datasheet兼容就能直接上”。3.2 PCB布局不能无限复制叠层、阻抗、回流路径都要重新算参考设计的PCB layout可以直接下载很多团队直接拿过来当底稿。这里有个大坑原厂参考设计通常是8层板或者10层板层叠结构和你的实际产品可能完全不同。你的机箱尺寸、连接器位置、散热片固定方式、生产加工能力都会强迫你重新调整布局。一旦层叠变了所有差分线的阻抗都会变因为参考平面距离变了过孔的反焊盘尺寸、stub长度也要重新算电源平面的分割方式不一样回流路径也要重新审视。你确实可以“基于参考设计”来改板但绝不是“复制粘贴”四个字能概括的。我现在的做法是把参考设计的layout分析报告保留下来包括阻抗叠层定义、关键网络约束、差分对约束、电源平面分割图。然后在新产品里重新定义叠层、规则和约束所有改动点都记录下来后面做仿真和测试时有据可查。每一条关键高速线都要在仿真和实测两头得到确认。3.3 加测点、加调试接口别等出问题才后悔量产板和开发板最大的区别之一就是可调试性。参考设计板上通常有一堆连接器JTAG、串口、USB、SD卡槽这些是给开发人员用的。你做量产设计时可以砍掉一些但至少要在PCB上保留关键的测试点和调试引脚。最尴尬的情况是板子贴完发现启动不了手边连个日志打印口都没有只能拿示波器打电平效率极低。我有个经验在域控板上保留一个0.1英寸间距的2x10调试排针位置宁可量产时不焊电阻也不取消pad。把UART、JTAG、I2C、SPI、几个关键GPIO、电源测试点全部引出来。虽然会占一点面积但你的软件同事和硬件同事会感谢你无数次。再加一组多色LED做启动状态显示这几毛钱的成本换成的是售后排查时不用拆壳插线。3.4 散热设计参考板用风扇你也要用风扇吗智驾域控整板功耗高散热是逃不开的话题。参考设计上常见一个大散热片甚至主动风扇那是因为它的使用场景是实验室。你的实际产品装在前舱或者乘客舱下方可能没有风道环境温度常年在65℃甚至85℃。SoC一旦温度超过结温上限会降频甚至关机这在自动驾驶中完全不能接受。基于参考设计做散热改造时要先算系统热预算。找出整板最大的热源SoC、PMIC、SerDes芯片、DDR。以SoC为例如果参考设计用的是15W热设计功耗你要确认你的实际NPU利用率是否真的会到15W。如果只跑NOP的泊车方案可能只有8W如果跑城市NOA可能峰值20W。热仿真和实测必须跟上要么改进散热片表面积要么引入热管要么调整芯片摆放位置靠近结构散热路径。我强烈建议第一版机箱出来之后立刻做热循环测试不要等项目快SOP才做。热设计一旦出问题改模具的周期是按月算的不是按天。4. 软件侧的红利参考设计帮你省掉的三个月4.1 BSP与启动链路拿到手先跑起来智驾域控软件侧最痛苦的部分往往是Bring-up板子上电、DDR初始化、存储初始化、引导加载程序、内核启动、外设驱动加载。参考设计配套的BSP在这里价值极高。你拿到参考板之后第一件事就是把原厂SDK烧进去先确认板子能启动、串口能打印、以太网能Ping通。然后在这一基础上再改你自己的硬件和软件。很多团队对参考板的态度是“硬件给我原理图就够”这很可惜。软件包里的DDR初始化脚本、PMIC配置脚本、各外设DTS文件都是原厂根据参考板配置调出来的这些脚本是你在自研板上节省调试时间的最大法宝。我自己的流程是先用原厂SDK跑通参考板再用同一套SDK跑通自研板。如果自研板起不来先查硬件差异而不是改软件。这样就把问题域隔离开CPU、DDR、时钟、电源的确认顺序就非常清晰。4.2 AUTOSAR、中间件和诊断能复用就别重写智驾域控要跑AUTOSAR CP做实时控制跑AP做高性能计算还要支持UDS诊断、FOTA升级、网络管理、安全启动。参考设计里的底层软件往往已经适配好了芯片的MCAL、Bootloader、Secure Boot和OTA分区方案这些东西比你自己从零开始写要可靠得多。AUTOSAR MCAL驱动一般是芯片厂或第三方提供的参考设计会把驱动配置环境的示例工程给你。这个工程就和硬件参考设计一样是一个“已验证的最小系统”。你的软件架构师完全可以基于它做扩展避免在驱动适配阶段浪费几周。诊断这一块参考设计里通常有UDS的DID、DTC例子。不要小看这堆诊断代码生成器里的Seed/Key和安全算法智驾域控对诊断和刷写安全性要求极高基于原厂的方案再去适配你自己的网络拓扑能少踩不少雷。4.3 HIL仿真与SIL把验证往前移拿到参考设计不只是为了做硬件原型也可以更早地搭出HIL硬件在环测试环境。我们之前有一个项目在主芯片还没到货的时候就用原厂参考板车辆网络仿真设备先把整车的CAN、以太网、诊断脚本都跑通了。等自研板回来之后直接把验证脚本切到自研板上再跑一遍两边结果做对照。这比等自研板回来才开始写测试用例的方案整整省出一个月。参考板在HIL领域还有个独特好处它的引脚行为、时序、寄存器模型和最终芯片完全一致你可以把参考板当作一个“标准答案”。自研板上出了问题拿参考板跑同一个case快速定位是硬件改动引入的还是软件bug。这个方法在调试PCIE链路和MIPI配置时尤其好用。5. 参考设计不等于量产设计踩坑记录5.1 照抄连接器和接插件结果没过盐雾参考设计里的连接器经常是评测级或者开发级的比如普通的USB Type-C、TF卡座、标准JTAG端子。这些在实验室好用但在车规环境里完全不合格——插拔力、锁扣结构、防水防尘等级、盐雾试验、振动试验每一关都可能挂。我见过一个团队直接把参考板上的车规以太网连接器换成了非车规的RJ45结果样品在振动台架上掉了链子。正确做法是把参考设计中所有连接器列出来逐个确认是否满足车规等级和IPC/JEDEC相关标准。如果原厂没有给车规料推荐就自己找连接器大厂的替代型号注意封装、Pin脚定义、高度、锁扣结构都要匹配。这一类替换务必在结构设计阶段完成否则后期改机构件又是大工程。5.2 晶振与时钟芯片还在用demo板的工业级版本参考板上那颗24MHz晶振看起来不起眼但它可能是工业级或者商用级工作温度范围只有-40到85℃而很多智驾域控要求-40到105℃甚至更高的环境温度。换车规晶振时要特别注意起振特性、等效串联电阻、负性阻抗和相噪不是只看温度等级那么简单。我记得有一次在高温测试中发现SoC偶发启动失败日志里全是DDR初始化超时怎么查都像是DDR信号问题。后来用示波器抓参考时钟发现高温下时钟幅度下降明显。把晶振换成车规低ESR版本并把负载电容重新调了一遍之后问题再没复现过。这种坑只能靠实际测试暴露但提前用参考设计BOM做替换评估可以降低概率。5.3 EMC测试失败问题出在悬空的参考地参考设计的layout从信号完整性角度可能无可挑剔但你要把它放进一个全金属外壳里再走线情况就不同了。EMC测试会逼你把所有地、屏蔽、滤波都要重新审视。我们曾经遇到CE传导发射超标排查好久发现是板内一个连接器外壳地没有连接到机箱地形成一个大的辐射环路。所以参考设计的“GND”在开发板上是连成一大片但到了实际产品里数字地、模拟地、机壳地、信号地之间怎么处理需要根据系统来做决定。盲目抄参考设计把所有地都在一点汇合反而会让EMC变得复杂。多预留磁珠、电容、0欧电阻的地分割点是域控设计的常规操作。5.4 参考板上的软件版本和SDK版本要锁定参考板出厂自带的SDK版本和原厂官网最新版经常不一样。有时候原厂更新了BSP但参考板的bootloader、ATF、DDR固件并没有同步更新。你拿着最新SDK刷到老版本参考板上可能会起不来或者起来后有诡异的外设行为。我的经验是拿到板子和软件包之后先把版本号、commit号、固件日期全部记录在项目管理库里。之后如果原厂发布新SDK先看Release Notes再决定是否升级而不是见新就升。版本漂移问题在软件工程中很常见但在域控这种长期维护项目里会被放大十倍。6. 参考设计阶段的项目清单6.1 拿到参考设计之后的48小时清单我建议团队在拿到参考设计包之后头两天固定做下面几件事不要急着做自己产品的原理图。把系统框图、电源树、安全监控列表过一遍。记录BOM中所有关键料的供货状态和替代方案。将参考设计的layout约束导入PCB工具并核对叠层。烧入原厂SDK确认参考板能正常启动、串口能交互。把原厂软件版本和板卡版本贴上标签存档。建一张“参考设计风险跟踪表”所有后续改动必须登记。这个清单能让你在早期就摸到项目的底牌哪里可以放心继承哪里必须重新设计哪里需要额外做验证。6.2 从参考设计到样品SOP的里程碑要完成从“抄参考设计”到“量产设计”的转身我习惯把项目切成这几个阶段参考设计评审、自研原理图基线、PCB约束导入与仿真、板厂加工试产、样品基本BSP启动、功能安全机制验证、EMC与热测试、小批量生产验证。每个阶段都要有关卡评审不能跳级。特别是从参考设计到自研原理图之间一定要设计“原理图评审会”硬件、软件、测试、结构、采购一起参加。参考设计并不等于每一个器件都会被保留但它的每一处设计意图都要被确认保留或替换。这个评审过程越严格后期在测试台架上遇到的神秘问题就越少。6.3 最后的个人建议从我做了这么多域控项目的经验来看参考设计最大的价值是“用原厂的验证换你的时间”。它不是束缚反而是你的出发点。你可以基于参考设计做性能增强、成本优化、外形定制但请在改每一个关键电路之前都问自己一句我是否完全理解原厂为什么这样设计我个人的一个小习惯是每次改完参考设计都会做一个“差分对比”。把原厂原理图和自己原理图放到一起逐页逐网络地标出差异并给每个差异写一句理由。这个习惯让我避免了至少十次“改完就废”的低级错误而且所有变更都能追溯到当时的技术分析体系化处理问题非常省心。如果你现在正握着某家的智驾域控参考设计别急着画板也别急着换国产替代料。先拿出一天时间把架构和电源树吃透再把关键接口的layout约束复制到你的设计里最后把软件环境跑通。这波操作下来你就能实实在在体会到搞定参考设计项目确实已经成功了一半。
RELATED READING

延伸阅读

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