4. 座舱硬件系统设计:系统框图、电源树、时钟树、复位树与接口定义
系统框图设计,说白了就是给整个座舱硬件画一张“全家福”。你得把主芯片、内存、存储、电源管理、各种接口,还有那些外设,都清清楚楚地摆出来。我见过不少新手,上来就画连线,结果连电源域都没分清楚,后面改起来那叫一个痛苦。
我个人习惯,先定大框架。座舱系统一般分这么几块:
- 计算核心:SoC + LPDDR + eMMC/UFS,这是大脑。
- 显示与交互:显示屏、触摸屏、HUD、DMS/OMS摄像头。
- 网络连接:以太网交换机、Wi-Fi/BT模块、4G/5G模块。
- 车身通信:CAN、LIN、FlexRay,跟车身域控制器聊天。
- 音频与感知:麦克风阵列、功放、雷达接口。
把这些模块画成一个个方框,然后用箭头标出数据流和电源流。嗯,这里要注意,数据流和电源流一定要分开画,混在一起后面查问题会疯掉。
核心原则:系统框图是给整个团队看的,包括硬件、软件、结构、测试。所以,每个模块的命名要规范,接口类型要标清楚,比如“CSI-2 x4 Lane”、“RGMII”、“CAN-FD”。别用“接摄像头”、“连网口”这种模糊说法。
4.1 电源树设计:PMIC选型与上电时序
电源树设计,是座舱硬件里最容易出坑的地方。为什么?因为现在的SoC功耗大、电压轨多、上电时序要求严苛。我做过一个项目,就因为某个LDO的启动时间慢了那么几毫秒,导致SoC死活起不来,查了整整两天。
PMIC选型,我一般看这几点:
- 电压轨数量与类型:SoC需要多少路核心供电、IO供电、PLL供电?每路电流多大?要不要支持动态调压(DVFS)?
- 上电时序控制:PMIC是否内置可编程的时序控制器?还是需要外部GPIO加RC延时?
- 效率与散热:座舱空间密闭,散热条件差。DC-DC的效率最好在90%以上,LDO尽量少用。
- 功能安全:如果座舱涉及仪表显示,PMIC最好带ASIL-B等级,支持故障输出和看门狗。
- 主时钟:25MHz或27MHz晶振,给SoC、以太网PHY、USB PHY用。
- RTC时钟:32.768kHz,给实时时钟模块用。
- 音频时钟:12.288MHz或24.576MHz,给音频编解码器和功放用。
- 显示时钟:由SoC内部PLL产生,驱动MIPI DSI或LVDS接口。
- 走线阻抗控制:单端时钟走50Ω,差分时钟走100Ω。
- 串接电阻:靠近源端加22Ω或33Ω电阻,抑制过冲和振铃。
- 包地处理:时钟线两侧加地孔,减少对其他信号的干扰。
- POR(Power-On Reset):上电复位,由PMIC或专用复位芯片产生。
- WDT(Watchdog Timer):看门狗复位,SoC死机时由外部看门狗触发。
- Debug Reset:调试复位,只复位调试接口,不复位核心。
- Peripheral Reset:外设复位,比如以太网PHY、Wi-Fi模块的独立复位。
- 所有电源稳定后,再释放复位。一般要求电源稳定后至少等待10ms。
- 复位脉宽要足够。SoC的复位脉宽通常要求1ms以上,有些甚至要10ms。
- 复位信号要干净。加一个施密特触发器,防止毛刺误触发。
- CAN:差分信号,速率最高1Mbps(CAN-FD可达8Mbps)。需要CAN收发器,比如TJA1043或TCAN4550。
- LIN:单线信号,速率最高20kbps。需要LIN收发器,比如TJA1021。
- 注意:CAN总线两端要加120Ω终端电阻,LIN总线要加1kΩ上拉电阻到12V。
- 座舱里常用100BASE-T1或1000BASE-T1,一对差分线就能传数据,省线束。
- 如果接外部诊断口,用标准100BASE-TX,需要RJ45加网络变压器。
- MAC到PHY的接口,常用RGMII或SGMII。RGMII需要4位数据线加时钟,SGMII用SerDes。
- 用于连接高速外设,比如Wi-Fi模块、SSD、5G模块。
- 座舱里常用PCIe 3.0 x1或x2,速率8GT/s per lane。
- 注意:PCIe需要参考时钟(100MHz),而且AC耦合电容要靠近发送端。
- USB 2.0用于低速设备(触摸屏、4G模块),USB 3.0用于高速设备(U盘、手机互联)。
- USB 3.0的差分对要严格等长,误差控制在5mil以内。
- VBUS的过流保护,我建议用电子开关加电流检测,别用自恢复保险丝,反应太慢。
举个例子,某款主流座舱SoC的电源需求是这样的:
| 电压轨 | 电压值 | 最大电流 | 用途 | 上电顺序 |
|---|---|---|---|---|
| VDD_CORE | 0.8V | 15A | CPU/GPU核心 | 1 |
| VDD_IO | 1.8V | 3A | IO接口 | 2 |
| VDD_DDR | 1.1V | 5A | LPDDR4/5 | 3 |
| VDD_PLL | 1.8V | 0.5A | PLL模拟供电 | 4 |
| VDD_USB | 3.3V | 1A | USB PHY | 5 |
上电时序,我建议用PMIC的GPIO或SEQ引脚来控制。 每个电压轨的上升时间、延迟时间,都要在datasheet的范围内。我曾经遇到一个坑:某PMIC的默认时序跟SoC要求刚好相反,结果一上电SoC就进入保护状态。后来加了外部电平转换才搞定。
避坑指南:上电时序的验证,不要只靠看示波器。一定要用逻辑分析仪抓所有电压轨的上升沿,算清楚每个轨的延迟和斜率。有些PMIC的软启动时间很长,会导致后级电路误动作。
4.2 时钟树设计
时钟是座舱系统的心跳。时钟抖一点,屏幕可能闪;时钟偏一点,以太网可能丢包。所以时钟树设计,讲究的是“干净”和“同步”。
座舱系统里,常见的时钟源有:
我个人习惯,时钟源尽量用晶振,不要用有源振荡器。晶振的相位噪声更低,而且成本也便宜。如果必须用有源振荡器,一定要加π型滤波,防止电源噪声耦合到时钟上。
时钟分配时,要注意:
注意:不要把时钟线和电源线、数据线平行走长距离。我见过一个案例,时钟线跟USB 3.0数据线走了5cm平行线,结果USB眼图直接闭合。后来把时钟线改到内层,问题才解决。
4.3 复位树设计
复位树,很多人觉得简单,不就是拉低再拉高吗?其实不然。座舱系统里,不同模块的复位时序、复位电平、复位脉宽都不一样。
常见的复位信号有:
我建议,所有复位信号都要用开漏输出加外部上拉。为什么?因为开漏输出可以多个源“线与”,任何一个源拉低都能触发复位。而且,开漏输出电平灵活,可以匹配不同电压域。
复位时序上,要保证:
经验之谈:我曾经在一个项目里,用了RC延时做复位,结果因为电容漏电,导致复位信号一直处于中间电平,SoC半死不活。从那以后,我再也不用RC做复位延时了,全部换成专用复位IC。
4.4 硬件接口定义:CAN/LIN/以太网/PCIe/USB
接口定义,是系统框图的细化。每个接口用什么协议、多少引脚、电平标准、速率要求,都要写清楚。这部分是硬件工程师和Layout工程师沟通的桥梁。
CAN/LIN接口:
以太网接口:
PCIe接口:
USB接口:
下面这张图,是我做的一个座舱系统接口概览,你可以参考一下:
接口定义时,还要考虑引脚复用。现在的SoC引脚功能都很丰富,一个引脚可能同时支持UART、I2C、GPIO。我建议,在原理图里把每个引脚的复用功能都列出来,方便软件同事配置。我曾经因为没标清楚,导致软件把一个UART引脚配成了GPIO,调试了三天才发现。
小技巧:接口定义表里,加一列“电气特性”,写上电压域、驱动能力、上下拉要求。这样Layout工程师布线时,就知道哪些信号需要包地,哪些需要等长。
好了,以上就是座舱硬件系统设计的核心内容。从系统框图到电源树、时钟树、复位树,再到接口定义,每一步都环环相扣。你想想看,如果电源树没设计好,后面的时钟和复位再完美,系统也跑不起来。所以,设计时一定要全局考虑,别只盯着自己那一亩三分地。