ARTICLE DETAIL

资讯详情

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

GMSL硬件设计从CFG0/CFG1到POC:Strapping引脚与同轴供电详解

GMSL硬件设计从CFG0/CFG1到POC:Strapping引脚与同轴供电详解 1. 从GMSL的硬件链路说起做车载摄像头方案或者工业机器视觉的朋友对GMSL这个词肯定不陌生。GMSLGigabit Multimedia Serial Link是目前汽车ADAS、环视、舱内监控里最主流的高速视频传输技术核心思路就是把摄像头端的MIPI CSI-2或者LVDS并行信号通过一颗Serializer串行器转成高速差分串行信号用一根同轴线传到主控端的Deserializer解串器再还原成CSI-2给SoC处理。链路速率动辄3Gbps、6Gbps距离可以拉到十几米而且天生支持反向控制通道I2C、UART、GPIO都能在这根线上跑。但真正上手做GMSL硬件设计之后你会发现协议本身反而不是最大的坎最坑的是“硬件上电那一刻”的事情。芯片上电时还没有任何软件介入它怎么知道自己该以什么地址被I2C访问视频通道怎么分配链路速率跑多少答案就藏在Strapping Pins里。CFG0、CFG1就是这一类“上电即生效”的硬件配置引脚很多项目死锁、不起流、I2C扫描不到设备查到最后都是strap电阻贴错或者上下拉选反了。这篇文章我打算把GMSL Strapping Pins的来龙去脉、CFG0/CFG1在常见串行器/解串器里的具体作用、硬件电路怎么设计、上电时序怎么配合再加上配套的POCPower over Coax同轴供电功能实现方法一次性讲清楚。适合正在做摄像头模组、域控制器接口板、或者刚开始接触GMSL方案的硬件工程师和嵌入式软件工程师。2. Strapping Pin到底是什么为什么GMSL方案绕不开它2.1 上电即生效的“硬件拨码开关”Strapping Pin的中文叫法有很多复位拉脚、配置引脚、拨码引脚都有但本质上就是一个“上电时刻被采样”的引脚。芯片内部会有上电复位电路在电源稳定之后、内部逻辑开始跑之前会有一段窗口时间去读这几个引脚的电平高低然后把读到的0/1组合锁存到寄存器里之后这些寄存器就决定了芯片的工作模式。你可以把它理解成一个古老的“跳线帽”思想——最早电脑主板上的CPU倍频、电压就是靠板上跳线来设定的后来才改成BIOS里软件配置。GMSL芯片也一样很多功能虽然可以在运行期间通过I2C寄存器重新配置但上电那一刻的“初始状态”总得有个来源。如果完全依赖软件万一I2C地址本身就是错的主控根本扫描不到设备就陷入“先有鸡还是先有蛋”的死循环。所以GMSL串行器/解串器在设计上都会预留几个strapping pin保证上电后I2C一定能通、基础链路一定能建立剩下的再靠软件去细化。2.2 CFG0/CFG1在链路中的典型职责在不同厂商、不同型号的GMSL芯片里CFG0/CFG1的具体含义会有差异但职责范围基本就在下面这几类里面职责类别典型配置内容影响范围I2C从机地址地址位的高位/低位配合寄存器里的其他地址位组合出完整7位地址主控能否扫描/访问到设备直接影响I2C枚举视频通道/Pipe分配在多路解串器里指定当前串行器连接到哪一路Pipe或Camera端口多路视频流是否按预期路由到不同CSI-2端口链路速率/模式选择GMSL1还是GMSL2模式、前向通道速率档位影响传输带宽、线束长度、EMI特性GPIO复用方向配置某些引脚上电后作为GPIO输入/输出、中断脚、错误指示脚影响状态监测和诊断功能我手头项目里最常用到的是I2C地址配置。比如一颗串行器正常访问地址是0x807位地址0x40但因为同一条I2C总线上可能要挂多颗一模一样的串行器比如环视的四路摄像头每颗的地址必须错开这时候CFG0/CFG1上下拉组合就能给出一组不同的默认地址硬件上保证了“不打架”。2.3 为什么不能全靠寄存器去配有人可能会问既然寄存器可以改地址那我等I2C通了之后再改不就行了问题是如果四颗串行器默认地址完全一样主控扫描I2C总线时就会撞地址根本没法单独区分每一颗自然也没法“先连上再改配置”。这种“全局地址相同”的场景在GMSL多路环视方案里几乎必定发生。所以Strapping Pins承担的是一个“初始化引导”的作用在上电的最初几百毫秒告诉芯片你该以什么身份、什么速率、什么拓扑出现在总线上。等到主控通过这个初始地址建立通信再往寄存器里写更精细的配置。这就是GMSL方案里标准的“硬件定基架软件做微调”的工作模式。理解了这一点你就能明白为什么硬件设计阶段就得把strap规划好而不是等软件工程师来填坑。3. CFG0/CFG1硬件设计实操电阻、时序与原理图检查3.1 电阻选型4.7k到10k之间的讲究CFG0/CFG1的硬件电路非常简单就是两个引脚各自接一个下拉电阻到地或者接一个上拉电阻到电源轨板上留0欧电阻位用来做模式切换。但电阻值不能随便选。GMSL芯片的strapping输入脚内部通常有弱上拉或者弱下拉电流源如果外部电阻太大比如100k以上内部电流源就可能主导引脚电平外部配置被“覆盖”掉如果外部电阻太小比如100Ω上电瞬间的浪涌电流偏大对电源轨造成干扰。我实测下来4.7k和10k是安全性最高的区间绝大多数datasheet推荐值也在这附近。对于需要批量生产、一个板型兼容多种摄像头模组的项目强烈建议每个strap引脚预留两个0欧电阻位一个连到VIO电源一个连到GND。生产时根据模组型号贴着其中一个另一个空置。这样同一个PCBA就能通过物料BOM差异兼容不同型号的摄像头不用改layout。3.2 上电时序strap必须在复位释放前稳定这里有一个特别容易被忽视的细节strapping引脚的电平采样发生在芯片内部复位释放的时刻而不是电源刚上电的时刻。如果你的VIO电源和芯片主电源不是同一路而strap电阻的上拉端接在VIO上那么必须保证VIO先稳定、strap电平先落定然后复位脚再拉高、芯片开始采样。实际项目遇到过一种情况摄像头模组端的串行器由同轴线远端供电POC电源经过稳压之后给VIO而这路电压上升比较慢主控端的解串器复位释放比较早导致串行器在strap还没稳定时就被“唤醒”读出来的地址是随机电平组合出来的错误值。排查了半天最后把解串器的复位时序调整等远端供电稳定再释放复位就正常了。所以Layout和原理图上要注意strap电阻的上拉电源域应该和芯片VIO引脚用同一路电源并确保电源上电时序满足“电源稳定→strap稳定→复位释放”的先后关系。3.3 原理图检查的五个关键点结合我这几年做GMSL板卡的经验Review原理图时我会固定检查这几个地方strap电阻网络每个CFG脚是否有明确的上拉/下拉路径不能悬浮。上拉电源域上拉电阻接的是不是VIO不是主电源VDD否则IO电平不匹配。复位脚状态复位脚是否有RC延时或者由主控GPIO控制保证strap采样窗口内电平已稳定。测试点预留每个strap引脚加一个测试点方便调试时飞线改电平、或者用示波器抓上电波形。0欧电阻兼容位生产备选方案是否预留后面切型号不用改板。第4条我吃了不少亏。早期做的板子没留测试点遇到I2C扫描不到设备的时候只能拿万用表去扎芯片引脚一不小心就短路到旁边脚。后来所有带strapping配置的引脚都强制加测试点调试效率提升非常明显。4. GMSL POC同轴供电功能实现方法4.1 POC的本质同一根线既传高速信号又传直流电源热词里提到的“gmsl poc功能实现方法”其实就是Power over Coax。GMSL的一大优势就是摄像头端只需要一根同轴线连到主控端这条线同时承载三样东西前向高速视频、反向控制通道、以及摄像头端的直流供电。它的工作原理可以概括成一句话“频率隔离”。GMSL高速信号是MHz甚至GHz级别的高频分量而供电是0Hz的直流。利用电容通高频、阻直流电感通直流、阻高频的特性在同轴线两端分别构造Bias-T结构——数据通路串电容电源通路串电感两者在同轴连接点汇合就能让高频信号和直流电源互不干扰地走同一根线。生活化一点理解就像一条双向两车道的路数据信号是高速跑车只能走电容这座高架桥直流电源是慢悠悠的货车只能走电感这条地面辅道。高架桥和辅道在两头汇入同一条主干道但跑车不会被货车堵住货车也不会被跑车带飞。4.2 端到端POC电路设计要点一套完整的GMSL POC方案需要关注三个位置主控端解串器侧的供电注入、线缆本身、摄像头端串行器侧的电源提取。位置核心器件关键参数设计要点解串器侧POC电感、电源去耦电容、隔直电容电感感值、饱和电流、SRF自谐振频率电感必须工作在GMSL频段之外避免谐振吸收信号线缆连接器同轴连接器、ESD保护特性阻抗50Ω连接器处阻抗连续性ESD器件寄生电容要小串行器侧POC电感、LDO/DC-DC、隔直电容电感直流电阻DCR要低饱和电流大于摄像头总电流输出端稳压电容要足防止视频帧率切换时瞬态跌落POC电感是这里最核心的选型点。GMSL2的信号速率在3Gbps以上基频分量在1.5GHz附近如果电感的自谐振频率SRF落在信号频带内电感就会变成容性甚至吸收能量直接导致眼图恶化、链路误码。我一般选择SRF在2.5GHz以上的绕线电感感值控制在1uH到4.7uH之间同时直流电阻DCR越小越好因为摄像头端电流可能有好几百毫安DCR过大压降太多远端电压就不够用了。4.3 从Strapping到POC的联动配置POC功能并不只是硬件电路的事它跟CFG0/CFG1的strap配置经常是一起考量的。比如某些GMSL串行器支持POC输出电流检测、线缆断开检测Cable Fault Detect这些检测功能的默认开关状态就是由某个strap引脚在复位时决定的。如果硬件设计一开始没把对应的strap拉对上电之后POC输出就是关的摄像头端根本供不上电后面的I2C链路建立更是无从谈起。我建议在硬件设计阶段就把“POC供电链路”和“strap配置表”放在一起评审做一个简单的矩阵摄像头模组功耗是多少串行器侧需要多大的POC电流能力使能POC的strap是默认开启还是需要软件写寄存器如果默认关闭软件上电流程里第几步开启POC能否接受这个延迟这个矩阵看起来简单但能挡住绝大多数“摄像头不亮、I2C不通”的先天性问题。4.4 POC电路的实测验证方法板子回来之后的验证步骤我一般按下面的顺序来先不通POC用外部电源单独给摄像头模组供电确认串行器I2C链路能通、视频能出流排除POC电路的干扰变量。再打开POC用示波器在摄像头端电源引脚抓上电波形确认无过冲、无跌落、无振荡。重点看模组内LDO的输入电压是否在规格范围内。测量POC电感两端的电压差反推线缆压降确认符合预期。长时间跑机确认模组温升后POC电流增大电源依然稳定没有热漂移导致重启。第1步尤其重要。很多工程师一上来就开POC结果摄像头不工作根本分不清是链路没建立还是电源问题。先把两个子系统拆开验证再合起来联调定位问题会快非常多。5. 调试实录Strapping配置引发的典型问题5.1 问题现象与排查对照表我把自己和周围同事踩过的坑整理了一张速查表基本覆盖了CFG0/CFG1相关的大部分常见故障问题现象可能原因排查方法解决方案I2C扫描不到设备strap电阻贴错/虚焊地址不对查BOM万用表量引脚电平修正电阻或用I2C广播地址回读校验多路设备地址冲突多颗串行器strap配置完全相同枚举I2C总线看是否有应答冲突按通道拆分strap地址组合上电偶发不识别设备VIO电源上升慢strap采样窗口漂移示波器同时抓VIO、复位、strap引脚调整复位时序或加RC延时视频通道错乱解串器侧Pipe分配strap配置和软件预取不符回读Pipe寄存器对比期望值统一硬件strap和软件配置表POC供电后模组重启POC电感饱和电流不够供电跌落测模组端电压跌落波形换饱和电流更大的电感高速链路丢包、码流花屏POC电感SRF落在信号频带内看眼图测电感S参数换更高SRF电感或用磁珠替代5.2 一个真实的“地址漂移”案例去年做一个四路环视项目三块板子正常一块板子I2C扫描偶尔能扫到、偶尔扫不到而且扫到的时候地址还是错的。一开始怀疑是串行器芯片虚焊补焊了一版还是不行。后来用示波器同时抓CFG0引脚电平、VIO电源和复位脚发现VIO上电有个很奇怪的台阶电源先冲到1.2V左右停一下再爬到1.8V。而CFG0正好在这个平台期发生翻转导致芯片采样时读到了一个不确定电平。查到最后是远端POC供电的DC-DC启动模式问题带载和空载时启动曲线不一样导致摄像头模组端电源上升出现平台。把DC-DC的软启动电容调大一点让电源一次性爬升到稳定值问题就消失了。这个案例给我的教训是strap问题不一定出在strap本身电源轨的“脏”上电波形一样能导致strap采样错误。所以排查时一定要把电源、复位、strap三者放在同一个时间基准上抓波形而不是单独量某个引脚的静态电平。5.3 软件侧怎么配合strap验证硬件工程师和软件工程师配合时我建议软件在上电初始化流程里加一个“strap状态回读”步骤。GMSL芯片通常会把strap采样的结果映射到某个状态寄存器里软件启动后先读这个寄存器打印出来或者和期望值比对。如果发现strap读值和设计不一致立刻报警而不是继续往下配置。这个做法能省很多沟通时间。硬件觉得我贴的电阻没问题软件觉得我写的驱动没问题两边僵持的时候一份“上电strap状态日志”就能直接定位是哪一边的锅。我在多个项目里推行这个做法之后联调时间平均缩短了至少三分之一。6. 写在最后的几个心得做了这么多年GMSL方案我最大的感受就是GMSL这个技术本身并不神秘它就是一套完整的高速串行传输生态真正考验工程师的是那些“上电之前”的事情。CFG0/CFG1这些strapping pin看起来只是几颗电阻但它们决定了整个系统能不能被软件“看见”。硬件定基架软件做微调这句话在GMSL方案里体现得淋漓尽致。分享一个小技巧在设计阶段建议把所有strap配置整理成一张Excel表每一行是一颗芯片每一列是每个strap引脚的电平状态、对应电阻位、最终形成的寄存器值。这块表在原理图评审、软件联调、产线备料三个环节都要用千万不要只在硬件工程师脑子里存着。等项目量产之后再回来看你会发现这张表比很多设计文档都值钱。另外POC功能虽然听着高大上本质上就是Bias-T结构的工程化应用。硬件设计时多花点心思在电感选型和电源完整性上后面调试会少走很多弯路。如果你正在做GMSL相关的项目希望这篇文章能帮你少踩几个坑。
返回列表