logo资料库

赛普拉斯EZ-USB CX3连接MIPI CSI-2图像传感器官方中文规格书.pdf

第1页 / 共35页
第2页 / 共35页
第3页 / 共35页
第4页 / 共35页
第5页 / 共35页
第6页 / 共35页
第7页 / 共35页
第8页 / 共35页
资料共35页,剩余部分请下载后查看
请注意赛普拉斯已正式并入英飞凌科技公司。 此封面页之后的文件标注有“赛普拉斯”的文件即该产品为此公司最初开发的。请注 意作为英飞凌产品组合的部分,英飞凌将继续为新的及现有客户提供该产品。 文件内容的连续性 事实是英飞凌提供如下产品作为英飞凌产品组合的部分不会带来对于此文件的任何 变更。未来的变更将在恰当的时候发生,且任何变更将在历史页面记录。 订购零件编号的连续性 英飞凌继续支持现有零件编号的使用。下单时请继续使用数据表中的订购零件编号。 www.infineon.com
AN90369 如何将 MIPI® CSI-2 图像传感器连接至 EZ-USB® CX3™ 作者:Manu Kumar、Nikhil Naik 软件版本:EZ-USB FX3 SDK1.3.3 相关应用笔记:AN75705、AN75779、AN70707 USB 3.1 Gen 1(以前称为 USB 3.0)提供的高带宽对用于将外设连接至 USB 的 IC 提出很高的要求。本应用笔记重点介绍了 一种 USB 3.1 Gen 1 的流行应用:摄像机(即连接到 EZ-USB CX3 的 MIPI CSI-2 图像传感器)将非压缩数据输送给 PC。本 应用笔记也提供了有关 USB 视频类别(UVC)的实施细节。符合该类别的摄像设备能够使用内置的 PC 驱动程序和主机应用 程序(如 e-CAMView、经典媒体播放器和 VLC 媒体播放器)进行工作。 3.1 2.1 2.2 目录 1 简介 .......................................................................... 1 2 将图像传感器连接至 CX3 ......................................... 3 MIPI CSI-2 接口 ............................................... 3 GPIF II 模块 ..................................................... 4 3 设置 DMA 系统 ......................................................... 6 DMA 缓冲区 ................................................... 12 USB 视频类型(UVC) .......................................... 13 4.1 枚举数据 ........................................................ 13 4.2 操作码 ............................................................ 14 USB 视频类别要求 ......................................... 14 4.3 CX3 固件................................................................. 22 5.1 应用线程 ........................................................ 24 5.2 处理 UVC 请求 ............................................... 24 5.3 初始化 ............................................................ 25 5.4 枚举 ............................................................... 25 4 5 5.5 配置 MIPI CSI-2 控制器 ................................. 25 5.6 配置图像传感器 ............................................. 28 5.7 启动视频流 ..................................................... 28 5.8 选择并切换帧设置 .......................................... 29 5.9 设置 DMA 缓冲区 ........................................... 29 5.10 在视频流期间中处理 DMA 缓冲区 .................. 29 5.11 在帧结束时恢复串流 ...................................... 29 5.12 终止视频流 ..................................................... 30 6 硬件设置 ................................................................. 30 6.1 使用 CX3 RDK 进行测试 ................................ 30 6.2 设计自己的电路板 .......................................... 30 7 基于 UVC 的主机应用 ............................................. 31 8 故障排除 ................................................................. 31 9 总结 ........................................................................ 32 全球销售和设计支持 ........................................................ 34 1 简介 USB 3.1 Gen 1 提供的高带宽对用于将外设连接至 USB 的各个 IC 提出很高的要求。一个流行的示例就是摄像机将非压 缩数据输送到 PC 中。由于在 3.1 Gen 1 版本中,已经增大了 USB 带宽,因此连接在电脑上的摄像机的分辨率也会增 加。为了满足高带宽摄像机接口的要求,一个被称为移动工业处理器接口(MIPI)的联盟制定了摄像机串行接口 2 (CSI-2)规范。 本应用笔记根据赛普拉斯 EZ-USB CX3 为 MIPI CSI-2 到 USB 3.1 转换器提供了实现细节(EZ-USB FX3™是 EZ-USB FX3 的一种变形,专用于该目的)。 如果您对赛普拉斯的 EZ-USB 产品系列不太了解,请参考应用笔记“AN75705 — EZ-USB® FX3™入门”,从而能够 轻松了解本应用笔记。 CX3 将来自图像传感器的数据转换为符合 USB 视频类别(UVC)的格式。符合此类别的摄像设备能够使用 OS 内置的 驱动程序进行操作,使摄像机与主机应用(如 e-CAMView、经典媒体播放器和 VLC 媒体播放器)相互兼容。 作为 FX3 的一个派生产品,CX3 与 FX3 不一样,具体情况如下: www.cypress.com 文档编号:001-92469 版本*C 1
如何将 MIPI® CSI-2 图像传感器连接至 EZ-USB® CX3™  它添加了一个具有 MIPI CSI-2 接收器接口的 MIPI CSI-2 控制器。  清除了 USB 2.0 OTG 和充电器检测功能。  需要两个参考时钟:内核的 CLKIN 和 MIPI CSI-2 控制器的 REFCLK。  但只有频率为 19.2 MHz 的振荡器受 CLKIN 的支持。 图 1. 摄像机应用 由于 CX3 是 FX3 的专用版本,因此所有 FX3 开发工具和大部分 FX3 文档都适用于 CX3。AN75779 的实例体现了这种 兼容性,它说明的是另外一个基于 FX3 的摄像机设计的实例(拥有一个并行接口)。由于两个芯片中的数据传输结构 是相同的,因此很多 CX3 内部工作原理材料都来自该笔记。 通过本应用笔记所提供的详细信息可帮助您理解可用的赛普拉斯固件项目。如果您的设计使用的图像传感器与本笔记中 所述的相同,那么几乎不需要修改任何代码。如果使用了其他传感器,则可以根据该笔记进行稍微修改代码模块。 图 1 描述的是摄像机应用。右侧是一个装备超速 USB 3.1 端口的 PC。左侧显示的是一个包含了 MIPI CSI-2 接口的图 像传感器,它支持下列各项内容:  1 到 4 个 MIPI CSI-2 数据通道  RAW8/10/12/14、YUV422(CCIR/ITU 8/10 位)、RGB888/666/565、压缩格式如 M-JPEG 和用户定义的 8 位图 像格式 例如,OV5640 传感器支持 VGA 60 fps、HD — 高清(720p)60 fps、Full HD — 全高清(1080p)30 fps 以及 5 M- Pixel 15 fps。 图 2 显示的是带有编号的框图子模块。另外还说明了每个子模块所执行的任务。 图 2. 系统框图 1. 基于 MIPI CSI-2 的图像传感器与 CX3 相连接,并且通过使用摄像机控制接口(CCI)总线配置该传感器。 2. 配置 CX3 上的 MIPI CSI-2 控制器,以读取该传感器中的图像数据,分解该数据并将它发送到 GPIF II 模块。请参 考第 2.1 节。 3. 根据图像数据格式配置 GPIF II 模块。请参考第 2.2 节。 www.cypress.com 文档编号:001-92469 版本*C 2 MIPI CSI-2控制器图像传感器或图像信号处理器(ISP)USB主机主机应用(AMCap)UVC 驱动程序USB主机控制器GPIOGPIF III2C主设备UIBCX3DMAChannelUSB Bulk IN EPUSB EP0UVC类描述符3247固件56数据通道时钟通道1传感器指定 I/O其他I/OCCI/I2C数据视频数据视频数据视频控制
如何将 MIPI® CSI-2 图像传感器连接至 EZ-USB® CX3™ 4. 构建一个 DMA,它会将图像数据从 GPIF II 模块转移到 USB 接口模块(UIB)。在本应用中,必须将头数据添加 到图像传感器内的视频数据中,以符合 UVC 规格的要求。因此应配置 DMA,以允许 CPU 将所需的头数据添加到 DMA 缓冲区内。必须设计该通道以让最大带宽满足将视频从图像传感器输送到 PC 的要求。请参考第 3 章。 5. CX3 固件初始化 CX3 的硬件模块(第 5.3 节),配置图像传感器和 MIPI CSI-2 控制器(第 5.5 节),枚举器件成 为一个 UVC 摄像机(第 4.3.1 节),处理 UVC 特定请求(第 4.3.2 节),通过 CCI(I2C)接口将视频控制设置 (如亮度)传输给图像传感器(第 5.5 节),将 UVC 头数据添加到视频数据流(第 4.3.4 节),以及将带有头数 据的视频数据提交给 USB(第 5.10 节)。 6. 提供正确的 USB 描述符,保证主机能够识别符合 UVC 的外围设备。请参考第 4 章。 7. 主机应用(如 e-CAMView、经典媒体播放器或 VLC 媒体播放器)将存取 UVC 驱动程序,以通过 UVC 控制接口 配置图像传感器,并通过 UVC 流接口接收视频数据。请参考第 7 章。 如果将摄像机插入 USB 2.0 端口,CX3 固件会使用 CCI 总线降低帧频和帧大小,以匹配较低的 USB 带宽。PC 主机可 以选用视频控制接口以将亮度、对比度、色调、饱和度、曝光、自动对焦和 PTZ(平移、倾斜和缩放)等调整内容传 输给摄像机。 2 将图像传感器连接至 CX3 要想将 MIPI CSI-2 图像传感器连接至 CX3,并从该器件读取数据,您必须了解 CSI-2 接口和 CX3 的 DMA 功能。 2.1 MIPI CSI-2 接口 由于摄像机的应用比较复杂,因此更加需要具有更高分辨率的图像传感器。该要求会加大并行图像传感器接口的极限 值,而这些接口可能难以扩展,并需要多个互联。因此,移动工业处理器接口(MIPI)联盟制订了摄像机串行接口 2 (CSI-2)标准,以提供功能强大、低功耗且高速的标准串行接口,用于支持各种图像解决方案。 MIPI CSI-2 接口是一个带有数据及时钟信号的单向差分串行接口。每次可以传输四个数据通道,数据速率可达 1 Gbps。 用于配置图像传感器的控制接口与 I2C 标准相兼容,并将该接口称为摄像机控制接口(CCI)。 在 CX3 中的 MIPI CSI-2 控制器提供了这两种接口以及图像传感器通常需要的各附加信号。 图 3. 带有图像传感器的 CX3 接口 该接口中所显示的的三个附加信号包括: XRST:配置前,图像传感器通常需要 CX3 中的复位信号。通过使用 CX3 的 XRST 引脚可以实现此复位。 XSHUTDOWN:当主机不需要图像传感器中的视频流时,可关闭传感器或使其进入待机模式以降低功耗。通过使用传 感器中的关闭引脚完成此操作,使用 CX3 XSHUTDOWN 引脚可以控制该关闭引脚。 MCLK:通过使用外部时钟振荡器提供图像传感器所需要的主(或参考)时钟。 www.cypress.com 文档编号:001-92469 版本*C 3 图像传感器MIPI CSI-2数据通道MIPI CSI-2时钟CX3I2C SCLI2C SDAXRSTXSHUTDOWN
如何将 MIPI® CSI-2 图像传感器连接至 EZ-USB® CX3™ 有关 CSI-2、CCI 和三个额外信号的引脚映射的详细信息,请参考数据手册“EZ-USB® CX3TM MIPI CSI-2 至超速 USB 的桥接器控制器”。此外,请参见 CX3 RDK 原理图了解一个完整的示例。 可配置该 MIPI CSI-2 控制器以支持一至四个数据通道,不同的数据格式(如 RAW、YUV 或 MJPEG)以及不同的摄像 机分辨率。有关详细信息,请参考第 5.5 节中的内容。此应用通过使用一个配置传感器为四个数据通道提供 YUV 图像 数据。 配置后,MIPI CSI-2 控制器接受来自图像传感器的串行图像数据,分解该数据,然后将其转换成并行数据以通过并行 接口发送。此接口使用以下各信号:  FV:帧有效(表示帧的开始和结束)  LV:行有效(表示行的开始和结束)  PCLK:像素时钟  数据:图像数据的 8 位、16 位和 24 位数据总线 这些信号的时序同 AN75779 的第 3.1 节中所描述的并行接口相类似。 由于可在 CX3 中使用的 GPIF II 最大数据总线宽度为 24 位,另外受支持的最大 PCLK 为 100 MHz,CX3 支持的最大 吞吐量为 2.4 Gbps。 2.2 GPIF II 模块 将 MIPI CSI-2 控制器中的并行输出接口连接到 GPIF II 模块,该模块是处理器接口模块(PIB)的一部分。 图 4. GPIF II 模块 GPIF II 模块使用了一个状态机将该接口中的数据连接到两个 DMA 套接字。要想知道数据传输如何发生,需要了解 CX3 的 DMA 功能。 2 . 2 . 1 D M A 概 述 通过 CX3 的 DMA(直接存储器访问)可以在两个模块之间快速进行不间断的数据传输。想要了解数据传输如何发生, 需要明白下面的术语:  套接字(Socket)  DMA 描述符  DMA 缓冲区 套接字是外设硬件模块和 CX3 RAM 之间的连接点。CX3 上的每个外设硬件模块(如 USB、GPIF、UART 和 SPI)具 有与本身相关的固定套接字数量。输出给外设的独立数据数量等于该外设上的套接字的数量。套接字的实现包括一组寄 存器,用于指向有效的 DMA 描述符,并使能或置位与该套接字相关的中断。 DMA 描述符是一组位于 FX3 RAM 中的寄存器。它保存了 DMA 缓冲区的地址和大小,以及指向下一个 DMA 描述符的 指针。这些指针构建成了 DMA 描述符链。 DMA 缓冲区是 RAM 的一部分,用于存储通过 CX3 器件传输的中间数据。通过 CX3 固件,可将部分 RAM 空间作为 DMA 缓冲区使用。这些缓冲区的地址被存储为 DMA 描述符的一部分。 www.cypress.com 文档编号:001-92469 版本*C 4
2 . 2 . 2 为 何 使 用 两 个 套 接 字 在了解为何使用两个套接字前,必需更加详细地了解套接字。 如何将 MIPI® CSI-2 图像传感器连接至 EZ-USB® CX3™ 套接字可通过各个事件来互相发出信号,或者它们可通过中断向 CX3 CPU 发出信号。这些操作是由固件配置的。例 如,考虑将数据流从 GPIF II 模块传输给 USB 模块。GPIF 套接字可以通知 USB 套接字它已经向 DMA 缓冲区填充了数 据,或者 USB 套接字可以通知 GPIF 套接字它已经清空了该 DMA 缓冲区。该操作被称为自动 DMA 通道。当 CX3 CPU 无需修改数据流中的任何数据时,通常会使用自动 DMA 通道实现。 或者,GPIF 套接字可以向 CX3 CPU 发送一个中断,以通知 GPIF 套接字已经填充了 DMA 缓冲区。CX3 CPU 可将该 信息反馈给 USB 套接字。USB 套接字会向 CX3 CPU 发送一个中断,通知 USB 套接字已经读空了 DMA 缓冲区。此 时,CX3 CPU 可以将此信息反馈给 GPIF 套接字。该操作被称为手动DMA 通道。 如果 CX3 CPU 需要添加、删除或修改数据流中的数据,通常需要执行该手动 DMA 通道操作。在本应用笔记中描述的 固件示例使用了手动 DMA 通道操作,因为该固件需要添加 UVC 视频数据标头。 将数据写入 DMA 缓冲区内的套接字被称作发送套接字。从 DMA 缓冲区内读取数据的套接字被称作接收套接字。套接 字使用存储在 DMA 描述符上的 DMA 缓冲区地址、DMA 缓冲区大小和 DMA 描述符链的值来管理数据。 套接字写满或读空 DMA 缓冲区后,需要经过一段时间(几微秒)从一个 DMA 描述符转移到另一个描述符。转换过程 中,套接字不能传输数据。通过使用两个 GPIF 线程,可以消除 GPIF II 模块内存在的延迟。 GPIF 线程是 GPIF II 模块内的专用数据路径,用来将数据引脚同套接字连接起来。 但每次只有一个 GPIF 线程能够传 输数据。 GPIF 线程选择机制同 MUX 一样。切换有效的 GPIF 线程时会切换用于数据传输的有效套接字,从而改变用于数据传 输的 DMA 缓冲区。该切换的延迟等于一个时钟周期,使其基本上是瞬间发生的。在 DMA 缓冲区边界上实现对 GPIF II 状态机的切换,这样可以屏蔽在切换到新的 DMA 描述符时 GPIF 套接字所产生的延迟。这样,当 DMA 缓冲区为满 时,GPIF II 模块可以使用传感器中的数据。 图 5 显示的是本应用程序中使用的各个套接字、DMA 描述符和 DMA 缓冲区连接以及数据流。使用两个 GPIF 线程填充 备用的 DMA 缓冲区。这些 GPIF 线程使用了单独的 GPIF 套接字(作为生产套接字使用)和 DMA 描述符链(描述符链 1 和描述符链 2)。USB 套接字(作为消耗套接字使用)使用了第 3 个 DMA 描述符链(描述符链 3)按正确顺序读取 数据。有关套接字、套接字切换和相关延迟的详细信息,请参考第 3 章。 图 5. CX3 数据传输架构 2 . 2 . 3 G P I F I I 状 态 机 GPIF II 模块内部使用了一个状态机从 MIPI CSI-2 控制器的并行输出接口读取视频数据。 正如上一节(第 2.2.2 节)所描述的情况,该状态机将视频数据加载到两个套接字上,以便在各个 DMA 描述符间切换 时防止丢失数据。 这样就可以使用计数器来跟踪读入套接字的数据量,然后当该计数器达到其极限值时,它将切换到其它套接字。使用计 算机的限定值来设置 DMA 缓冲区的大小。 www.cypress.com 文档编号:001-92469 版本*C 5 MIPI CSI-2 控制器GPIF II模块GPIF线程0GPIF线程1DMA描述符1描述符3描述符5描述符7描述符链路1描述符链路2缓冲区1缓冲区3缓冲区5缓冲区7缓冲区2缓冲区4缓冲区6缓冲区8描述符链路3GPIF套接字0生产端GPIF套接字1生产端消费端USB套接字3USB 接口模块 (UIB)USB端点0x83BULK-INGPIF II状态机控制切换描述符2描述符4描述符6描述符8描述符1描述符2描述符3描述符4描述符5描述符6描述符7描述符8
如何将 MIPI® CSI-2 图像传感器连接至 EZ-USB® CX3™ 图 6. 将数据分配给两个套接字进行传输 每经过一个时钟周期,计数器的值都会加 1。因此,根据接口的数据总线宽度,计数器的限定值会不一样。例如,如果 数据总线的宽度为 16 位、DMA 缓冲区大小为 16 KB(即 16,384),那么每个周期会读取两个字节的数据,因此编程 限定值应该为(16384/2) – 1 = 8191。 一般情况下,DMA 缓冲区的计数限制值为: 总线宽度的注释: 必须根据图像传感器中的数据格式选择 GPIF II 数据总线宽度。在本应用笔记中,传感器被配置为输出 16 位 YUV422 数据,因此,数据总线宽度被配置为 16 位。有关每个图像格式的总线宽度的详细信息,请参考 FX3 SDK API 指南中 CyU3PMipicsiDataFormat_t 节的内容。 发送一帧数据后,状态机将中断 CPU 以指出已成功完成发送该帧,从而允许它添加标题并执行发送其它帧。 下一节将介绍用于数据流和支持 UVC 的固件的 DMA 通道。 3 设置 DMA 系统 GPIF II 模块的工作频率可达 100 MHz,并且数据总线宽度为 24 位(300 MBps)。为了将数据传输到内部 DMA 缓冲 区内,GPIF II 使用两个 GPIF 线程连接到 DMA 生产套接字(如第 2.2.2 节中所述)。该应用使用了套接字和 GPIF 线 程的默认映射(图 7) — 套接字 0 与 GPIF 线程 0 相连,套接字 1 与 GPIF 线程 1 相连。请注意,四个可用线程中只 有两个可用于这种情况。在上一章中介绍的 GPIF II 状态机内实现了 GPIF 线程切换。 www.cypress.com 文档编号:001-92469 版本*C 6 将数据加载到套接字0递增计数器内将数据加载到套接字1递增计数器内计数器达到极限计数器达到极限1)(__)(__bytesinwidthbusdataLsizebufferproducercount
如何将 MIPI® CSI-2 图像传感器连接至 EZ-USB® CX3™ 图 7. GPIF II 套接字/线程的默认映像 为了理解 DMA 传输,下面四个图中继续使用了在第 2.2.1 节中初次介绍的套接字概念。图 8 显示的是两个主套接字属 性、一个链接列表及一个数据路由器。 图 8. 套接字根据 DMA 描述符列表路由数据 套接字链接列表是主存储器中的一组数据结构,这组数据结构又被称为 DMA 描述符。每个描述符指定了 DMA 缓冲区 的地址(An)和长度(L),以及指向下个 DMA 描述符的指针。套接字运行时,每次仅检索各 DMA 描述符中的一个 描述符,这样可以将数据路由到描述符地址和长度所指定的 DMA 缓冲区。传输 L 个字节后,该套接字会检索下一个描 述符,并继续将各字节传输到另一个 DMA 缓冲区内。 该结构使套接字变得非常灵活,因为可以在存储器中的任何位置上创建任何 DMA 缓冲区数量,而且这些缓冲区可以自 动被链接在一起。例如,图 9 中的套接字以重复循环检索 DMA 描述符。 www.cypress.com 文档编号:001-92469 版本*C 7 处理器接口模块(PIB)GPIF II套接字0线程0线程1线程2线程3套接字1套接字2套接字3外部数据总线切换DMA描述符1地址A1,长度L,下一个描述符2套接字链接列表CX3 RAM套接字数据DMA缓冲区0DMA缓冲区1DMA缓冲区2DMA描述符2地址A2,长度L,下一个描述符3DMA描述符1地址A3,长度L,下一个描述符1
分享到:
收藏