《从零掌握MIPI CSI-2: 协议精解与FPGA摄像头开发实战》-- CSI-2 协议详细解析(四)DPHY ECC

D-PHY物理层的包头纠错码(Packet Header ECC)

1. 核心功能

  • 作用对象 :仅保护 长包/短包的包头(PH) (32位),包括:
    数据标识(DI, 1字节)
    字计数(WC, 2字节)
  • 核心能力
    单比特错误纠正
    双比特错误检测
  • 不覆盖范围
    包负载数据(由CRC校验)
    C-PHY物理层(仅D-PHY适用)

2. ECC实现机制

(1) 输入数据映射

将24位包头按以下顺序映射为ECC输入:

text

复制代码
D[23:16] = WC[15:8] (MSB)  
D[15:8]  = WC[7:0]  
D[7:0]   = DI[7:0]  
(2) 校验码生成
  • 表格

  • 算法 :改进型汉明码(Hamming-Modified Code)

  • 校验位 :6位

  • 生成逻辑
    python

    复制代码
    # 示例:P0计算(基于表5橙色区域)
    P0 = D0^D1^D2^D4^D5^D7^D10^D11^D13^D16^D20^D21^D22^D23
  • 输出 :8位ECC(高2位=0,低6位=校验值)


3. 接收端处理流程

  1. 重新计算ECC :对接收到的DI+WC生成新ECC'

  2. 计算症候(Syndrome)
    S = Received_ECC ⊕ ECC'

  3. 错误处理

    症候值 操作 说明
    S=0 无错误 -
    S∈表4 纠正单比特错误 查表4定位错误位并取反
    S∉表4 标记不可纠正错误(>2比特) 丢弃包或上报应用层

4. 关键设计约束

  • 位宽限制

    仅支持24位包头(64位模式禁用,ECC高位固定为0)。

  • 硬件实现

    发送端 :并行计算, 输入为3 个字节数据

  • 接收端 :syndrome查表解码

  • 错误范围

    ECC不保护负载数据(负载由CRC校验)。


5. 示例说明(图46)

  • 输入
    DI=0x37, WC_LSB=0xF0, WC_MSB=0x01
    → 映射为24位数据:0x01_F0_37
  • ECC计算
    输出 ECC=0x3F(二进制 0011_1111
  • 传输包头
    [DI=0x37] [WC_LSB=0xF0] [WC_MSB=0x01] [ECC=0x3F]

总结 :此ECC机制是D-PHY链路可靠性的核心保障,通过汉明码变种实现包头关键字段的实时纠错,但需严格限定24位输入范围。工程实现需重点优化症候查表逻辑以降低延迟。

相关推荐
博览鸿蒙37 分钟前
FPGA 工程中常见的基础硬件问题
fpga开发
GateWorld5 小时前
FPGA 实现无毛刺时钟切换
fpga开发·实战·无毛刺时钟
Seraphina_Lily6 小时前
从接口选型到体系结构认知——谈 CPU–FPGA–DSP 异构处理系统与同构冗余设计
fpga开发
Seraphina_Lily8 小时前
CPU–FPGA–DSP 异构系统中的总线接口选型——为什么 CPU 用 eLBC,而 DSP 用 XINTF?
fpga开发
GateWorld8 小时前
FPGA开发十年心路
fpga开发
Industio_触觉智能10 小时前
瑞芯微RK3576的MIPI CSI-2接口,4K视频输入与兼容实现技巧
开发板·核心板·瑞芯微·rk3576·触觉智能·mipi csi2·视频输入
ALINX技术博客1 天前
【ALINX 教程】FPGA Multiboot 功能实现——基于 ALINX Artix US+ AXAU25 开发板
fpga开发·fpga
Genevieve_xiao1 天前
【verilog】如何一小时成为verilog高手(并非
fpga开发
从此不归路1 天前
FPGA 结构与 CAD 设计(第3章)上
ide·fpga开发
Aaron15881 天前
基于VU13P在人工智能高速接口传输上的应用浅析
人工智能·算法·fpga开发·硬件架构·信息与通信·信号处理·基带工程