第328章 天程车规晶片样车集成
秦崢站在天行者整车集成中心的测试车间里,面前是一台被拆空了中控台和座椅的工程样车。线束从仪表台的骨架里伸出来,像一团被剖开的血管,每一根都贴著黄色的標籤纸,上面標註著信號名称和测试点。样车的后排被改造成了数据採集站,三台工业电脑叠在一起,风扇的嗡鸣声盖过了车间里空调的低频震动。
天程车规晶片的第一次样车集成,原定於今天上午九点开始。
现在是上午十点四十分,晶片还没有装上去。
不是因为晶片没准备好,而是因为整车的电子电气架构在最后一刻暴露了一个秦崢没有预料到的问题——天程晶片的物理尺寸和散热方案,与天行者原有设计的安装位置发生了干涉。不是差很多,是差了不到四毫米。但在这类集成中,四毫米和四米没有区別,装不进去就是装不进去。
“散热鰭片和空调管路的接口支架打架。”整车集成负责人老周蹲在发动机舱旁边,手里拿著一把卡尺,量了一遍又一遍。“天程晶片的fcbga封装比我们之前用的样品厚了零点三毫米,加上底部的散热垫和顶部的散热鰭片,总高度比设计值多了三点七毫米。这三点七毫米刚好顶到空调管路的最低点。”
章宸站在旁边,脸色不太好看。天程晶片的封装厚度增加是因为在最后阶段增加了一层电源完整性优化的金属层,这个改动通过了所有电气性能测试,但没有人想到会和天行者的空调管路干涉。
“不是你的问题。”秦崢对章宸说,声音很平静。“天行者的电子电气架构是一年前冻结的,那时候天程晶片的封装还没定。这种整车集成层面的干涉,是系统集成团队的责任,不是晶片团队的责任。”
老周站起来,把卡尺收进口袋,调出一张整车的3d数模,投在旁边的屏幕上。“三个解决方案。第一,改空调管路的走向,绕开散热鰭片。代价是重新开模做管路,至少两周,而且可能会影响空调系统的製冷效率。”
“第二,换薄一点的散热垫。现有的散热垫厚度是一点五毫米,可以换成一毫米的,导热係数不变,代价是热阻增加,晶片结温可能会升高两到三度。天程晶片的工作结温上限是一百二十五度,升高两三度还在范围內,但余量会被吃掉。”
“第三,不改硬体,改安装方式。把天程晶片的主板旋转一百八十度安装,散热鰭片的位置会从空调管路的正下方偏移到侧方,干涉消失。代价是线束要重新走,有几根线束的长度不够,需要换更长或者加延长线。”
秦崢听完,几乎没有犹豫。
“方案三。不改硬体,不牺牲性能,不降低热余量。线束延长线,库存有没有?”
“有。天行者的线束是模块化设计的,延长线是標准件,仓库里有现货。”老周已经在数模上把旋转后的线束走向標了出来,“但要重新做电磁兼容测试,线束变长了,辐射发射和抗干扰特性会变。”
“做。今天下午之前把延长线换上,晚上跑电磁兼容预扫。如果预扫不过,再考虑方案二。”
章宸看了秦崢一眼,没有说话。他知道秦崢为什么选方案三——不是因为方案三最快,而是因为方案三不改变任何性能参数。在样车集成这个阶段,每一点性能余量都是宝贵的,不能为了省事就把它吃掉。
集成团队开始动手。老周带著三个工程师拆主板、旋转方向、重新布线。秦崢站在旁边看著,没有插手,也没有催促。他的终端一直在震动,是天行者量產团队的进度报告和供应链的物料到货確认,但他没有看,因为现在最重要的事情是让天程晶片在今晚之前跑起来。
下午三点,主板重新安装完成。线束延长线接好后,整个发动机舱看起来比之前乱了一些,但所有接口都卡到位了,散热鰭片和空调管路之间留出了將近八毫米的间隙,干涉问题解决。
老周把万用表接上电源线,测了一遍供电电压。十二伏稳定,五伏稳定,三点三伏稳定。
“上电。”秦崢说。
老周按下了电源开关。
主板上的指示灯亮了。先是红色的待机灯,然后是绿色的核心电源灯,最后是蓝色的系统心跳灯——一闪一闪,频率稳定,说明天程晶片已经成功上电,內部的电源管理单元和时钟电路工作正常。
数据採集站的屏幕上开始滚动串口日誌。秦崢走过去,一行一行地看。
“bootrom启动……pll锁定……ddr初始化……pcie链路训练……gpu核心唤醒……npu引擎加载……全部通过。”
老周长出了一口气,靠在样车的车门上。
“晶片活了。”
秦崢没有笑。晶片活了只是第一步,真正的考验在后面——作业系统能不能跑起来?功能安全框架能不能初始化?和整车的通信总线能不能握手?自动驾驶模型的推理延迟能不能满足要求?
“刷系统。”他说。
老周把一块装著天枢os车机版的固態硬碟插到主板上,按下復位键。屏幕上开始滚动更密集的日誌——內核加载、驱动初始化、服务启动、安全模块自检。
三分钟后,天行者的中控屏幕亮了。
不是完整的界面,只是最底层的启动画面——天枢os的logo下面有一行小字:“功能安全模式·验证中”。画面不是很流畅,帧率明显偏低,但能亮,能响应触摸,能和仪錶盘通信。
秦崢伸手在中控屏幕上划了一下,调出天程晶片的运行状態页。cpu温度五十二度,gpu温度四十八度,npu温度四十五度,核心电压正常,功耗二十三瓦。所有数字都在预期范围內。
“第一步完成。”他说,语气里没有喜悦,只有一种冷静的確认。“接下来跑功能安全诊断。”
功能安全诊断是天程车规晶片样车集成的核心关卡。天权5车规版在设计时就按照iso 26262 asil-d的最高功能安全等级要求来做的,但实验室里的仿真验证和真实整车环境中的诊断覆盖度是两回事。
老周调出功能安全诊断套件,开始跑第一组用例——电源管理单元的故障注入测试。套件会模擬各种电源异常,看晶片的安全机制能不能在规定时间內检测到並进入安全状態。
第一组:核心电压过压。模擬电压从一点二伏缓慢升高到一点五伏。天程晶片的电压监控电路在一点三二伏时触发了预警,在一点三八伏时触发了故障响应,系统在零点八毫秒內完成了上下文保存並进入安全状態。通过。
第二组:核心电压欠压。模擬电压从一点二伏缓慢降到零点九伏。监控电路在一点零八伏时触发预警,在零点九八伏时触发故障响应,系统在一点二毫秒內完成安全关断。通过。
第三组:时钟丟失。模擬外部晶振信號中断。天程晶片的內部时钟监控电路在二百微秒內检测到异常,自动切换到备用rc振盪器,系统继续运行,性能下降但功能完整。通过。
前三组都通过了,但秦崢的表情没有放鬆。他知道真正难的不是这些常规故障,而是那些在实验室里很难模擬、但在真实车辆上可能会出现的复合故障。
果然,跑到第四组的时候,问题出现了。
第四组是通信总线的故障注入——模擬can总线的消息丟失和校验错误。天程晶片通过can总线与整车的车身控制器、剎车系统、转向系统通信。测试套件会在总线上隨机注入错误帧,看晶片的错误处理机制能不能正確识別並隔离故障。
前五分钟,一切正常。晶片的错误检测逻辑捕获了每一个注入的错误帧,记录到日誌中,但没有触发安全响应——因为这些错误不影响核心功能。
第六分钟,老周注入了一个更复杂的故障模式——连续五个有效帧中插入一个错误帧,重复一百次。这种模式模擬的是某个传感器间歇性故障导致的通信质量下降。
天程晶片的处理逻辑在第三十七次重复时出现了一个小问题——错误帧处理模块的缓存满了,导致后续几个错误帧被丟弃,没有记录到日誌中。但核心功能没有受影响,安全状態也没有被触发。
“这不是功能安全问题,是诊断完整性问题。”章宸看了日誌后说,“错误帧太多,处理模块的缓存溢出,丟了一些日誌。但错误帧本身已经被总线控制器识別並丟弃了,没有进入上层应用。所以对功能安全没有影响,只是我们丟了几条诊断记录。”
秦崢把这个问题记在了测试报告的“待改进”栏里,但没有把它列为阻塞问题。诊断记录丟失不会影响行车安全,只是会给售后故障分析带来一些不便。
真正的阻塞问题出现在第七组测试——自动驾驶模型推理的实时性验证。
天程晶片的npu引擎需要在规定时间內完成自动驾驶模型的推理,输出控制指令。天行者的要求是:从传感器数据输入到控制指令输出,端到端延迟不超过五十毫秒。
在实验室的仿真环境中,天程晶片的npu引擎跑这个模型的平均延迟是三十八毫秒,最差延迟四十四毫秒,满足要求。
但在样车集成的真实环境中,老周跑完第一轮实测后,屏幕上显示的数字让所有人都沉默了。
平均延迟四十七毫秒,最差延迟六十三毫秒。
六十三毫秒,超过了五十毫秒的要求。
“哪里来的延迟?”秦崢的声音不大,但每个字都带著重量。
老周调出了延迟分解图。数据从摄像头和雷达进入天程晶片,经过预处理、npu推理、后处理、控制指令生成,每一个环节的延迟都被精確测量。
预处理:六毫秒。和实验室一致。
npu推理:二十八毫秒。和实验室一致。
后处理:十一毫秒。实验室是九毫秒,多了两毫秒。
控制指令生成:十八毫秒。实验室是十毫秒,多了八毫秒。
问题出在后处理和指令生成环节。这两个环节在实验室里跑得很好,但在样车上变慢了。
章宸蹲下来,盯著数据採集站的屏幕,手指在触摸板上快速移动,调出了后处理和指令生成环节的详细日誌。
“后处理多了两毫秒,是因为数据量变大了。实验室里我们用的是固定的合成数据,格式规整,处理起来很快。但真实摄像头的数据有噪声、有畸变、有丟帧,后处理算法需要做更多的校验和修正,所以慢了。”
“指令生成多了八毫秒,是因为和整车通信的协议栈延迟。实验室里我们用的是模擬的通信环境,延迟固定且很低。但真实车辆的总线负载很高,车身控制器、剎车系统、转向系统、电池管理系统都在上面发消息,天程晶片的指令生成模块需要等待总线空閒才能发送控制指令,等待的时间就是延迟的主要来源。”
秦崢听完,沉默了几秒。
“指令生成模块的延迟,能不能通过调整任务优先级来减少?比如把控制指令的发送优先级提到最高,其他消息让路?”
本章未完,点击下一页继续阅读。