TI AUTOMOTIVE · interfaces
FPD-Link 摄像头故障诊断:从 LOCK 到单流隔离与恢复
以 DS90UB953-Q1 → DS90UB960-Q1 为例,区分电源、时钟、PoC、线束、串行链路、两端 CSI 与 SoC VC/DMA 故障,建立先快照后清除、分层测试和有限重试的工程流程。
资料核验 2026-11-07 · NuAxi 技术编辑 · 官方依据与工程解释分开标注
先看结论
LOCK 只说明接收器锁住输入,不证明传感器正在输出正确帧,更不证明 SoC 已完成 DMA。先保存带端口、时间戳和读清副作用的现场记录,再沿电源/时钟/PoC → FPD-Link → 传感器 CSI → 解串器转发/CSI → SoC VC/DMA 逐层缩小范围。用解串器图案、串行器图案和传感器图案区分被覆盖与被绕过的路径;恢复时优先隔离故障流,但共享 CSI、同步、供电和驱动资源可能阻止无损单路恢复,必须实测。
1. 固定故障边界、器件版本和证据来源
本文的主例是四路 DS90UB953-Q1 接 DS90UB960-Q1:传感器 CSI 输入、每路串行器、PoC/线束、960 RX、CSI 转发出口和 SoC 采集队列必须有独立身份。记录完整型号、板卡版本、物理连接器到 RX 的对应、传感器原始 VC/数据类型到出口 VC 的映射、I2C 别名、时钟模式及供电/复位分组。‘摄像头 2’若在连接器、寄存器分页和 DMA 队列中含义不同,后续错误统计就无法归因。
来源事实与工程建议分开使用:960 完整数据表 SNLS589D、953 完整数据表 SNLS552E 决定字段含义与访问副作用;SNLA267A 提供 953/954 系统的链路分段、BIST 和图案排查方法;SNLT007 提供 936 黑屏问题的电源、时钟、图案与 SoC 配置检查。后两者用于借鉴排查顺序,不把旧示例脚本、954 的分页或 936 的电气数值复制给 960。本文的 DMA 排查、重试预算与放行门槛是工程测试方案,不是 TI 对某款 SoC 的实现承诺。
相关型号限定为现有目录中的 DS90UB935/962/913A/936/953/954/960。935 与 953 都有 CSI 输入,但这不等于输入限值、诊断寄存器或清除行为相同;913A 是并行输入,要检查 PCLK、位宽和 LV/FV,而非照搬 953 的 CSI 接收诊断。962 的单 CSI 出口、936/954 的复制模式也不能当作 960 的独立双出口。本文不建立 953 → 936 兼容性结论;迁移要重新核对两端当前数据表与指定模式。带宽和行级缓存预算另见带宽指南,这里只用错误证据定位故障。
2. LOCK、PASS、CRC/ECC 与帧交付是不同层级的证据
来源事实:960 的 PORT_PASS 由 PORT_PASS_CTL 决定;PASS_THRESHOLD 为 0 时,PASS 可在接收器锁定后建立,并不要求先收到完整有效帧。非零门槛、行长/行数检查和奇偶错误处理改变 PASS 的资格条件。因此日志必须同时保存 PASS 配置,不能把灯亮直接翻译成‘视频正常’,也不能仅靠提高门槛掩盖真实错误。
CRC 一词必须带上检测器和方向。953 的反向通道 CRC、960 的前向控制通道 BCC_CRC_ERROR,以及 CSI 长包负载 CRC/校验和,不是同一个计数器。CSI ECC 保护包头;953 数据表明确区分可纠正的单 bit 包头错误、不可纠正的双 bit 包头错误和不可纠正的负载校验错误。被纠正仍是事件,不等于通道没有风险;零错误也必须附带检测已启用、流量确实存在、采样区间和未丢失历史的条件。
宽表可横向滚动;表头随表内滚动保留。
| 观测点 | 可支持的结论 | 不能证明 / 下一步 |
|---|---|---|
| 本地/远端 I2C 应答 | 所选控制路径上的一次事务有响应;还要核对读回身份 | 不是传感器正在出流的证明;别名错误或自动应答设置可能误导 |
| 960 每 RX 的 LOCK 与锁定变化 | 当前输入锁定及被记录到的锁定变化 | 不证明 CSI 包、图像内容或 DMA;单次 LOCK=1 会漏掉之前的掉锁 |
| 960 PORT_PASS 与其配置 | 满足该端口当前启用的资格条件 | 默认门槛可只跟随锁定;一致的错误尺寸仍可稳定通过 |
| FPD 奇偶、控制通道 CRC 与编码错误 | 指定检测器发现了被保护路径上的传输错误 | 单个标志不能区分线缆、电源、时钟或配置根因,也不覆盖传感器光学内容 |
| 953 CSI 输入与 960 RX 侧 CSI 状态 | 对应观察点的包头 ECC、负载校验或长度异常 | 960 的 CSI_RX_STS 不是 SoC 接收器遥测;两处事件可能相关,不能相加当独立坏帧 |
| SoC 每 VC 的帧起止、DMA 完成与应用新帧 | 按平台日志证实实际交付、尺寸和时序;再检查已知图像内容 | DMA 完成仍可能是错 VC、旧缓冲或错误格式;显示一张图不等于持续有效采集 |
3. 先保全现场:读寄存器本身也可能改变证据
工程方案:由一个诊断采集者统一管理分页和读清寄存器,应用、GUI 和中断处理不得各自无记录地重复读取。触发时先保存主机单调时间、触发原因、配置版本、RX/TX 端口与 VC、上一次成功帧时间、SoC 错误和队列状态。按数据表制定读取顺序,把首次读到的原始字节与解释一起存档,然后才做显式清除、复位或重试;‘先快照’不意味着读清位能被无副作用地读两遍。
960 的 RX_READ_PORT 与各 RX_WRITE_PORT 使能是不同概念:读取选择一个端口,写使能可同时打开多个端口。诊断驱动应串行化‘选页—访问—恢复’事务,校验读回端口身份,并避免意外广播。连续 I2C 读取并不是跨四个摄像头的原子快照;给每次读取时间戳,记录采集起止与失联空洞,必要时把其他流作为同期对照,而不是假装所有值发生在同一瞬间。
宽表可横向滚动;表头随表内滚动保留。
| 字段与器件 | 已核验访问语义 | 采集后果 |
|---|---|---|
| 960 SNLS589D:LOCK_STS_CHG、BCC_CRC_ERROR | RX_PORT_STS1 内这两个历史标志读清;LOCK_STS 是当前状态 | 保存首次读值;第二次读为零不能否定刚才的瞬态 |
| 960:RX_PAR_ERR_HI / RX_PAR_ERR_LO | 读 LO 清除计数器两字节及相关奇偶标志;默认掉锁也清除奇偶计数/标志 | 按数据表顺序采集并标明清除边界;掉锁后零值不是历史无错 |
| 960:PARITY_ERROR | 按 PAR_ERR_THOLD 门槛判定,不是每个错误直接映射一个标志 | 保存门槛与实际计数;只有标志为零不能排除少量错误 |
| 960:CSI_RX_STS / CSI_ERR_COUNTER | CSI 错误位读清;计数器记录自上次读以来带错误的 CSI 包 | 分开保存错误类别和包数,不把它们当像素误码数或坏帧数 |
| 953 SNLS552E:CSI_ERR_CNT | RC 类型,统计自上次读取以来接收到的带错误 CSI 包 | 累加采集窗口结果,而非对两个已读清数值相减;不外推其他型号 |
| 960:LINE_COUNT、LINE_LEN 的高低字节 | 读高字节时锁存低字节以保证一致;相关变化中断使能时数值可冻结到读取 | 按规定配对读取并记录中断配置;一次尺寸匹配不证明连续流量 |
- 建立字段访问清单:只读、读清、显式清除、复位清除、跨字节锁存;未核验的字段不写清除配方。
- 960 数据表对精确奇偶计数读取提出暂时关闭奇偶检查的条件;这会改变监控覆盖,不是无侵入轮询。仅在批准的测试窗口按原文操作并恢复、记录覆盖空窗。
- 记录窗口长度、实际帧/包数、计数器宽度与清除/复位事件;没有核验溢出语义时,不自行假定回绕或饱和。
- 中断摘要与关联状态按清除依赖排序;远端读失败记为不可观测,不填零,不因总线超时反复全片复位。
4. 无 LOCK 或间歇掉锁:先分电源、时钟、PoC 与线束
来源事实:TI 的 936 排障指南先检查上电/复位时序和参考时钟;953/954 设计指南则单独讨论模式、反向通道、PoC 及线缆损耗。工程上先比较本地解串器可访问性、远端串行器可访问性、传感器身份读回、参考时钟有效状态和锁定变化时间。只有远端掉线优先查该支路;多路同时异常则提高共享供电、参考时钟、复位和主机控制路径的优先级。这是定位优先级,不是仅凭相关性宣布根因。
时钟要按职责分开:960 的 REFCLK、953 在同步/非同步模式下的参考来源、供传感器使用的 CLKOUT,以及传感器实际 CSI 时钟并非同一证据。串行链路可以已经锁定而传感器仍被复位、没有主时钟或等待触发。反向通道模式改变可能同时影响控制访问和恢复时钟,不能在现场盲目试频率。保存实际模式/时钟配置,与相同版本的已知正常样机对照。
PoC 同时是供电网络和高速信号通路的一部分。SNLA267A 要求关注加入 PoC 后的回波损耗,以及电感在实际负载下的电流能力;所以空闲时正常、传感器开始曝光/出流后掉锁,既可能是供电裕量,也可能是 PoC/线束信号完整性或其他同步变化,不能直接归咎于 CSI 配置。使用已有电源故障记录、经批准的监测点和合格实验室测量,把掉锁时间与负载状态、保护动作及温度记录对齐。
安全测试顺序是先读配置和日志,再在断电、储能释放且板卡流程允许后检查连接器、屏蔽与装配,最后做一次只替换一个变量的已知正常线束/摄像头交叉试验。保持相同端口配置和模式,观察故障随模块、线束还是端口移动;换线同时也可能改变 PoC 供电路径,结论须保留该混杂因素。不要带电短接、随意拔插 PoC、关闭保护或把额外电源并到未知节点;需要供电隔离或裕量测试时交由合格人员执行已审核的台架方案。
5. 用分级图案和 BIST 缩小故障区间,不把自测当全链验收
来源方法:SNLA267A §5.3 从解串器内部图案开始,再用串行器图案,最后接入传感器数据,以避免一次引入所有故障区间;SNLT007 同样先用解串器图案核对 SoC。960 数据表 §7.5.12 确认两个 CSI 发送端口各有图案发生器,953 数据表 §6.6 确认内部图案能力。开始前保存原配置并确认受影响的出口/摄像头;图案、BIST 和转发切换会改变流量,不是透明的在线探针。
工程方案:先在隔离台架或维护窗口执行最低风险的单流测试;每一级都让接收端匹配 VC、数据类型、尺寸、lane 和时钟条件,同时记录原始缓冲与帧序号。低速小图通过只说明那个测试点通过,不能外推到真实 RAW 模式或多路并发。先证明基本通路,再恢复目标负载重复同一观察窗口;不要为了‘出图’无记录地同时改时钟、转发模式和传感器参数。
宽表可横向滚动;表头随表内滚动保留。
| 受控测试 | 主要覆盖 | 未覆盖与下一步 |
|---|---|---|
| 960 内部图案 → SoC 原始采集 | 该 CSI 出口、板级连接及当前接收/DMA 配置 | 绕过传感器、953 与 FPD-Link;失败先查出口和 SoC,不先换线缆 |
| 953 内部图案 → 960 → SoC | 在下游基线成立后,增加串行器发送、串行链路及该 RX 转发路径 | 绕过传感器 CSI 输入与真实图像;与上一步流量不同则不能直接归因 |
| 传感器自带图案 → 完整采集链 | 在传感器支持并正确启用时,加入其 CSI 输出和 953 CSI 接收 | 通常不验证光学/像素阵列、真实曝光与 ISP 全流程;之后恢复真实场景 |
| 指定器件/模式的 FPD-Link BIST | 自测激励和检查器覆盖的前向/反向串行传输 | 不验证传感器、SoC CSI 或 DMA;确认已进入测试、持续时间与流量后再解释零错误 |
6. LOCK 稳定仍无帧:分清传感器未发、CSI 接收坏和格式不符
先确认传感器实际状态,而不是只有 I2C ACK:型号读回、复位/PWDN、模式表加载、stream-on 读回、外触发需求和主时钟来源都要对应。工程假设是‘传感器没有发包’时,953 的错误计数为零完全可能成立,因为没有被检查的包。用经核对的传感器帧计数、953 输入包头/字数观测及下游帧事件交叉检查;某个包头寄存器留下的值也不能单独证明它仍在持续更新。
来源事实:953 提供 CSI_ERR_STATUS 的长度、负载校验、单/双 bit ECC 分类,以及数据 lane 的 SoT、SoT Sync、HS 请求控制错误和时钟 lane 状态。若这些输入错误重复出现而同期 FPD 奇偶/BCC 观测安静,优先检查传感器到 953 的 lane 数、速率、极性、时钟模式、布线与时序;这只是优先级,因为供电扰动可同时伤害多个接口,且串行侧的读清或掉锁会隐藏历史。不要用提高 CSI 速率或放宽错误门槛代替输入定位。
检查真实包而不是仅看配置意图:953 可报告 VC/数据标识与包头 Word Count;其包头选择控制可区分指定 VC、收到的包头和纠正后的包头。若传感器交错输出图像与嵌入数据,采样选择不对就可能读到另一类包。把负载字节数、图像行与元数据分开解释,再核对 960 的 VC 映射;不要把 Word Count 当像素数,也不要把合法不同长度的元数据包直接判为损坏。913A 路径没有这些 953 CSI 输入观测,必须回到并行时序与 RAW 模式的独立检查。
7. 960 接到数据后:继续追到出口、VC 过滤与 DMA 所有权
先把 960 RX 侧 CSI_RX_STS、每 RX 的行/帧观测和 BUFFER_ERROR 与 TX 端状态分开。RX 侧 CSI 错误描述从摄像头收到的包,不是 SoC D-PHY 错误回传;BUFFER_ERROR 表示包缓存溢出,并不单独证明线束损坏。若单流稳定而聚合时才溢出,检查实际转发使能、出口映射、同步前提和行服务预算,沿用带宽指南的计算,不再把平均 Gbps 当诊断结论。
来源事实:960 的 CSI_PASS_MODE 可选择任意一路有效即 PASS 或所有启用路均有效;因此一个健康摄像头可能让 TX_PORT_PASS 保持有效。在同步转发下,TX_PORT_PASS 表示有可交付数据,若输入没有同步仍可能不发送;应结合 TX_PORT_SYNC,且同步未启用时该位为 0 是正常的。数据表还说明同步失败时停止转发、等待后续帧起始重试,所以‘一路失效、全部无图’可能来自转发依赖,而不是四条线缆同时坏。
工程方案:在 SoC 端分别统计 D-PHY/CSI 错误、每 VC/数据类型的包和帧起止、接收尺寸、DMA 完成、溢出及应用取帧。若接收器有正确 VC 的帧事件而没有 DMA 完成,优先查队列是否预投缓冲、描述符/中断、stride、格式展开和内存资源;若 DMA 完成但应用仍显示旧图,检查缓冲所有权、缓存一致性、队列选择和消费者处理。平台没有对应计数器就标记观测缺口,不编造通用寄存器或假设驱动会自动恢复。
960 的错误处理可以截断帧且不发 Frame End,恢复时重新发送 Start of Frame。工程上必须验证目标 SoC 对这种输入的处理:受影响队列是否释放残帧、下一帧是否重新对齐、同出口其他 VC 是否受牵连。LINE_COUNT/LINE_LEN 匹配只说明该观察点的格式符合预期,不替代接收端实际帧完成和新鲜度;SNLT007 的尺寸核对方法应作为定位线索,而非无条件端到端正确性证明。
8. 单流恢复算例:先隔离,再有限重试,保留健康路证据
工程算例而非实测保证:四路 953 → 960,RX0/1/2/3 分别映射到 VC0/1/2/3,采用已验证的 best-effort 转发;RX2 的采集超时,其他三路仍有新帧。先捕获 RX2 与一个健康对照的快照和 SoC 队列状态,标记 RX2 的未完成帧不可用。如果 RX2 的 LOCK 连续、CSI 输入错误上升,走传感器/输入分支;若掉锁与支路电源故障一致,走电源/链路分支;若 RX/TX 均有流量但 VC2 无 DMA 完成,则先走主机采集分支。不要把所有超时统一变成解串器复位。
隔离范围应从最小可控单元开始:在数据表和驱动支持的前提下,仅停止故障 RX 的转发、使对应 VC 队列退出残帧,并保留健康 RX 的映射、参考时钟和帧同步。960 支持按输入端口控制转发,这是器件事实;是否能在当前 SoC 上无损停止/重启单个 VC 是平台问题。若共享 CSI 接收器只能整端口复位、同步组依赖缺失流,或摄像头共用电源/复位,必须声明扩大的中断范围,按已验证的降级/维护流程处理,不宣称健康摄像头必然零丢帧。
恢复阶梯由故障证据决定:先修正/重建该流的主机队列或已核实配置,再考虑该传感器的受控停流与重新初始化,最后才考虑受影响模块的局部复位/支路电源循环。每一步都须有确切器件/板卡依据、保存恢复前配置、定义失败条件;重上电须遵守供电时序和保护冷却要求。全片复位、共同参考时钟或公共电源操作是更大故障域的升级动作,不能藏在普通单流重试里。
有限重试策略应先定义 K(最大尝试次数)、W(滚动时间窗)、T(单步超时)和 M(连续有效帧放行门槛),由系统要求与台架测量选取,不提供适用于所有摄像头的魔法延时。达到 K/W 或供电/热保护不允许恢复时,将该流保持为不可用并报告,不无限 reset-loop。每次恢复记录原因分类、尝试序号、动作范围、耗时、清除/复位边界、丢弃帧数、健康路帧间隔和失败终态;锁定反复抖动应形成一个故障事件及累计统计,而不是重启后全部归零。
重新放行需要从‘锁定’升级到‘新帧交付’:在新的观察窗口确认输入错误、转发状态、VC/格式与帧完成,再用单调时间戳、帧序号或受控变化场景验证新鲜度。不要仅比较图像哈希,因为静止场景也可能合法地产生相同图像。恢复的流应标注不连续性并按系统要求重新加入同步组;健康流是否保持帧率、是否错配 VC、是否额外丢帧,都要作为恢复验收结果保存。
9. 验收清单:能定位、能保全证据、能有界恢复
以下是工程验证门槛,不是功能安全认证、故障覆盖率声明或任何 SoC 的恢复保证。为正常、故障注入和恢复各保留独立时间窗;注入只能使用平台批准的软件开关、测试模式或安全台架,不把临时短接/带电拆线当作排障手段。单路通过后再逐路加负载,并在目标并发与环境范围内复测。
- 归档完整型号/版本、物理 RX、VC/数据类型、CSI 出口和 DMA 队列映射,以及共享电源、复位、时钟、帧同步依赖。
- 证明传感器确实出流;保存配置读回和实际包/帧观测,不以 I2C ACK 或 LOCK 灯代替。
- 统一读清采集所有者;保存原始首读、时间戳、分页身份、阈值、检测使能和不可观测空窗。
- 分别记录奇偶、不同方向的 CRC、CSI 单/双 bit ECC、长度和溢出,不重复累加相关观测为坏帧数。
- 给每一级图案/BIST 标明绕过路径、模式和测试时长;恢复真实输入与目标负载后再次验证。
- 核对 960 PASS 门槛、TX 任意/全部端口语义及同步模式;确认其他健康流不会掩盖失效流。
- 覆盖传感器停流但 LOCK 保持、受控单路失联、错误 VC/格式和主机缓冲不足等不同故障,确认分类与动作不同。
- 验收截断帧、缺失 Frame End 和新 Start of Frame 后的队列清理与重同步;确认应用不会将旧缓冲标成新帧。
- 公布 K/W/T/M、不可恢复终态和升级范围;比较故障前后健康摄像头帧数、最大帧间隔及同步偏差。
常见问题
DS90UB960 的 LOCK 和 PASS 都为 1,为什么仍然没有视频?
PORT_PASS 的含义由配置决定;PASS_THRESHOLD=0 可以在锁定后建立 PASS。传感器仍可能未出流,出口转发可能未启用,SoC 也可能过滤了错误 VC/数据类型。先保留读清历史,再证明传感器包、正确出口帧和 DMA 完成分别存在。
为什么第一次读到错误,第二次全零?可以把第二次当正常结果吗?
不可以直接这样解释。960 的锁定变化、部分控制通道/CSI 错误位会读清,读 RX_PAR_ERR_LO 会清除奇偶计数,953 的 CSI_ERR_CNT 也按上次读取划分统计窗口。保存首次读值、检测配置与时间窗;还要考虑 960 默认掉锁清除奇偶历史。零可能代表已经被读取或重置,而不是没有发生过错误。
953 输入报单 bit ECC,但 960 没有串行奇偶错误,应该先换同轴线吗?
优先检查传感器到 953 的 CSI 输入合同与物理连接,特别是 lane、时序、极性、时钟模式及实际包头。单 bit ECC 是包头纠正事件,不是负载 CRC,也不是同轴错误的同义词。这个优先级仍需同一时间窗的电源和串行历史支持,不能由一次清零读数断言同轴绝对无问题。
BIST 零错误,为什么真实摄像头仍黑屏?
BIST 覆盖的是自测源和检查器之间的串行路径,不覆盖传感器 CSI 输入、SoC 的 VC/格式过滤或 DMA。还需证明 BIST 确实启用且运行了足够的已记录区间。随后依次验证解串器图案、串行器图案、传感器图案及真实场景,并明确各测试的数据格式与负载差异。
一路摄像头停流,为什么其他摄像头也停止更新?
960 同步转发要求参与输入有效且同步,失败时可能停止该出口转发;此外,CSI 接收器、DMA 驱动、帧同步和电源也可能共享。先核对转发模式与故障域,再验证是否能仅隔离故障 RX/VC。不能把独立 RX 数量当作独立恢复保证,或未经验证就切到另一种转发模式。
LINE_COUNT/LINE_LEN 正确且 DMA 完成,是否可以直接恢复业务?
还不够。要确认这些值属于目标端口/VC、尺寸按字节和元数据正确解释,并观察连续新帧、有效时间戳、完整帧边界及应用缓冲所有权。恢复过程可能有截断帧或重复 Start of Frame,只有目标 SoC 的队列清理与重同步通过测试后才能按门槛放行。
能否把本文 953/960 的诊断和清除寄存器直接用于 935、936 或 962?
不能。可以复用‘定位观察点—保存首读—受控分段测试—有限恢复’方法,但必须逐器件核对字段、分页、时钟、错误覆盖和清除依赖。913A 还是并行输入。本文不提供 953 → 936 配对批准,不包含通用寄存器地址或跨平台复位脚本。
相关料号与完整 OPN
继续阅读
NuAxi 与 TI 无隶属关系。本文整理官方资料并提供工程核对方法,不构成替换许可、系统认证、采购保证或已完成的设计验证。按完整 OPN、数据表修订版及项目要求完成设计评审。