当前位置: 首页 > web >正文

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

CSI-2 协议详细解析 (一)

1. CSI-2层定义(CSI-2 Layer Definitions)

在这里插入图片描述

分层结构 :CSI-2协议分为6层:

  1. 物理层(PHY Layer)
    定义电气特性、时钟机制和传输介质(导线)。负责比特/字节同步、SoT/EoT信号及“带外”信息传递。
    底层规范由MIPI D-PHY/C-PHY标准定义(本文仅关注D-PHY)。
  2. 协议层(Protocol Layer)
    支持多数据流标记和交织传输,确保接收端能正确重建各数据流。
  3. 像素/字节打包层(Pixel/Byte Packing/Unpacking Layer)
    发送端将应用层像素打包为字节;接收端将字节解包为像素。支持6–24位/像素格式,8位/像素数据直通。
  4. 底层协议(Low Level Protocol, LLP)
    基于字节的包协议(短包/长包格式),支持:
    • 任意数据传输
    • 4个虚拟通道(Virtual Channel)
    • 帧/行同步包(Frame/Line Start/End)
    • 数据类型(Data Type)描述负载格式
    • 16位CRC校验和(D-PHY/C-PHY均适用)
    • 8位包头纠错码(ECC,仅D-PHY)
  5. 通道管理层(Lane Management)
    实现通道扩展:
    • 发送端 :分发器(LDF)将字节流轮询分发到N个通道。
    • 接收端 :合并器(LMF)从N个通道收集并重组字节流。
    • D-PHY以单字节为单位分发(C-PHY以双字节为单位)。
  6. 应用层(Application Layer)
    高层数据编码(如像素映射)
  • 规范范围 :仅约束链路上的外部数据/比特模式,内部接口为建议性设计。

2. DPHY物理层(Physical Layer)
  • 组成 :1个时钟通道 + 1个或多个数据通道(均为单向差分接口)。
  • 时钟模式
    连续时钟(默认) :数据包间时钟保持高速模式。
    非连续时钟(可选) :数据包间时钟进入LP-11状态。
  • 最低要求
模块发送器(TX)接收器(RX)
数据通道HS-TX + LP-TX + CIL-MFEN功能HS-RX + LP-RX + CIL-SFEN功能
时钟通道HS-TX + LP-TX + CIL-MCNN功能HS-RX + LP-RX + CIL-SCNN功能
  • 关键特性
    ULPS支持 :所有数据通道必须支持前向超低功耗状态(Escape ULPS)。
  • 去偏斜校准
    • 发送器提供 去偏斜序列模式 ,接收器据此校准通道间偏斜。
    • 校准仅在固定频率有效,频率变化时需重新校准。
    • 低频率或旧版发送器可绕过校准。

3. 多通道分布与合并(Multi-Lane Distribution/Merging)——仅D-PHY

在这里插入图片描述

  • 通道扩展原理

  • 发送端 :分发器(LDF)按轮询方式分配字节:

    • N通道示例 :字节0→Lane 1,字节1→Lane 2,…,字节N→Lane 1(循环)。
  • 接收端 :合并器(LMF)按通道顺序重组字节流。

  • 非整数倍字节处理

    • 末尾字节不足时,无数据的通道进入LPS状态。
    • 各通道独立结束传输,EoT信号可能错开1字节周期。
      在这里插入图片描述
  • 通道数互操作性
    M发送器 vs N接收器

    场景性能影响连接规则
    M ≤ N(例:1→4)无损失TX Lane 1→RX Lane 1,依次对应
    M > N(例:4→1)带宽下降(接收通道不足)TX Lane 1–N→RX Lane 1–N
  • 配置 :通过CCI接口动态重配置分发/合并逻辑。

  • 短包传输
    短包(4字节)仅需4条通道,多余通道保持LPS状态(图28)。

总结重点 :CSI-2通过分层协议和通道扩展实现高带宽传输,D-PHY物理层提供稳定电气接口,多通道管理确保字节级精确分发/合并,且支持发送端与接收端通道数灵活适配。

http://www.xdnf.cn/news/12495.html

相关文章:

  • Python爬虫实战:研究mechanize库相关技术
  • 深入解析JVM工作原理:从字节码到机器指令的全过程
  • 四叉树在空间结构建模中的应用
  • 车载以太网数据流量抓取手段全解析
  • 深度学习环境配置指南:基于Anaconda与PyCharm的全流程操作
  • C++11完美转发
  • Fullstack 面试复习笔记:Spring / Spring Boot / Spring Data / Security 整理
  • intelrealsense深度相机产品介绍
  • 从零开始的python学习(七)P95+P96+P97+P98+P99+P100+P101
  • MySQL安装与配置
  • (nice!!!)(LeetCode每日一题)2434. 使用机器人打印字典序最小的字符串(贪心+栈)
  • 口罩佩戴检测算法AI智能分析网关V4工厂/工业等多场景守护公共卫生安全
  • Linux 服务管理与自启动配置全解析:rc.d、systemctl与service对比
  • MySQL 性能调优入门 - 慢查询分析与索引优化基础
  • 智能终端与边缘计算按章复习
  • Skia如何绘制几何图形
  • 解决基于LangGraph框架的DeerFlow使用Qwen3不能正常被解析的问题
  • Edge(Bing)自动领积分脚本部署——基于python和Selenium(附源码)
  • 开源投屏工具Escrcpy的使用教程
  • MySQL基础2
  • F5 GSLB 最佳实践:如何手动将Wide IP 故障转移到另一个数据中心
  • Qt/C++开发监控GB28181系统/取流协议/同时支持udp/tcp被动/tcp主动
  • 链游技术破壁:NFT资产确权与Play-to-Earn经济模型实战
  • 从零开始基于Ubuntu18搭建Gazebo地图仿真环境
  • 【AI】智驾地图在不同自动驾驶等级中的作用演变
  • [opt 31-67] vivado编译出错 Implementation error 问题定位与解决
  • 【Linux】Linux 进程间通讯-管道
  • yolo 训练 中间可视化
  • 物联网嵌入式开发实训室建设方案探讨(高职物联网应用技术专业实训室建设)
  • TP6 实现一个字段对数组中的多个值进行LIKE模糊查询(OR逻辑)