《从零掌握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位输入范围。工程实现需重点优化症候查表逻辑以降低延迟。

相关推荐
hexiaoyan8275 小时前
高速图像采集卡处理板卡设计原理图:10-基于TMS320C6678+XC7K325T的6U CPCI Full Camera Link图像处理平台
fpga开发·高速图像采集·图像采集卡·c6678板卡
szxinmai主板定制专家6 小时前
储能EMS + 协调控制器实战:RK3568/3576/3588+FPGA+AI 故障录波与诊断
人工智能·深度学习·机器学习·fpga开发·rk3588·rk3576·协调控制器
星夜离尘569 小时前
FPGA 定点数缩位:截断、舍入与饱和,避免溢出回绕
fpga开发·定点数
星夜离尘5610 小时前
I²C总线卡死:先分清SCL拉低、SDA拉低,再谈9个时钟恢复
fpga开发·verilog·i2c
鸥梨菌Honevid14 小时前
STA 与 CDC
fpga开发
科恒盛远14 小时前
ZU902 与 FMC200 高速采集示波器实测
fpga开发
NamoAmitabha12814 小时前
日常问答1---deepseek
fpga开发
鸥梨菌Honevid16 小时前
异步FIFO为什么用打两拍的格雷码?
fpga开发
努力搬砖的小H16 小时前
FPGA应用技巧之AXI4-FULL-MASTER IP FDMA(Fast Direct Memory)详细介绍
经验分享·fpga开发·fdma·axi总线·米联客