Zynq高速串行CMOS接口的设计与实现.docx

上传人:工**** 文档编号:542445993 上传时间:2023-07-21 格式:DOCX 页数:15 大小:1.06MB
返回 下载 相关 举报
Zynq高速串行CMOS接口的设计与实现.docx_第1页
第1页 / 共15页
Zynq高速串行CMOS接口的设计与实现.docx_第2页
第2页 / 共15页
Zynq高速串行CMOS接口的设计与实现.docx_第3页
第3页 / 共15页
Zynq高速串行CMOS接口的设计与实现.docx_第4页
第4页 / 共15页
Zynq高速串行CMOS接口的设计与实现.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《Zynq高速串行CMOS接口的设计与实现.docx》由会员分享,可在线阅读,更多相关《Zynq高速串行CMOS接口的设计与实现.docx(15页珍藏版)》请在金锄头文库上搜索。

1、_Zynq高速串行CMOS接口的设计与实现现在CMOS传感器的分辨率越来越大,对应的,对数据传输接口的要求也越来越高。根据熊猫君有限的实现和调试经验,基本上遇到了:多通道HiSPi接口:主要是Aptina(现已经被安森美收购),常用的有1080P60的AR0331(3.1M),36642748P15的MT9J003,39842712P80(开窗输出最高可达1200fps)的AR1011等;多通道LVDS接口:主要有索尼系列和德国viimagic系列等,至少熊猫君用过的IMX172/IMX122/IMX185/IMX236和VII9222等都是LVDS输出;MIPI接口:多用于手机,一些监控用的

2、CMOS如Sony IMX185、OV14810等也带;CCIR656:一般低分辨率的会带CCIR656接口,也有一些厂家的高分摄像头也带,比如OV14810;并行接口:较早设计的CMOS许多都是直接并口输出,比如Aptina的MT9M031、MT9J003都带有并口输出;熊猫君在这里想讨论的是前三种接口的实现,它们是业界应用最广泛而且对FPGA资源有着共性要求。无论是HiSPi、LVDS还是MIPI,其核心思想就是要实现将高速串行信号恢复成并行数据。这将会用到Xilinx FPGA IOB上的一个重要的资源ISERDES。实现串行信号的并行化,光有ISERDES还不行,还需要用到IO BAN

3、K上的延时模块IDELAYCTRL和IOB上的IODELAYE以及相关的相位训练算法。1 Xilinx的IO资源本节对用到的IO资源作简要的介绍。1.1 IDELAYCTRL资源在电压、温度等因素变化时,可能会影响到系统的时序,此时IDELAYCTRL模块就可以连续补偿时钟域内所有个体的delay taps (IDELAY/ODELAY)。如果使用了IOB上的IDELAY或ODELAY资源,那么就必须使用IDELAYCTRL资源。请注意,整个IO BANK里面只有一个IDELAYCTRL。IDELAYCTRL很重要的一个输入项就是参考时钟REFCLK,补偿时钟域内所有模块的时序参考,这个时钟必

4、须由BUFG或BUFH驱动。REFCLK必须保证在FIDELAYCTRL_REF+IDELAYCTRL_REF_PRECISION(MHz)ppm才能保证IDELAY/ODELAY的延时分辨率:(TIDELAYRESOLUTION=1/(32 x 2 x FREF)1.2 IDELAYE2逻辑IDELAYE2逻辑是一个31抽头的循环延时补偿模块,对输入的信号进行指定分辨率的延时,FPGA可以直接访问。Tap延时分辨率由IDELAYCTRL的参考时钟提供持续补偿。图(1)是IDELAYE2接口示意图,表(1)是对这些接口的描述,表(2)是对逻辑参数的描述。图(1)IDELAYE2接口示意图。表(

5、1)IDELAYE2接口描述以下以VAR_LOAD模式为例说明延时的时序动作,如图(2)所示。图(2)延时时序动作模型n Clock Event 0:在LD有效前,CNTVALUEOUT输出为未知值;n Clock Event 1:在C的上升沿采样到LD有效,此时DATAOUT延时CNTVALUEIN指定的延时Taps,改变tap Setting到Tap2,CNTVALUEOUT更新到新的Tap值;n Clock Event 2:INC和CE有效,此时指定了增量操作,Tap值加1,DATAOUT输出从Tap2更新到Tap3,CNTVALUEOUT更新到新的Tap值;n Clock Event

6、3LD有效,DATAOUT输出延时更新到Tap10,CNTVALUEOUT更新到新的Tap值。1.3 ISERDESE2逻辑输入串转并逻辑可以看做是OSERDESE2的逆过程,在SDR模式下可支持2-、3-、4-、5-、6-和7-的串并转换,在DDR模式下可支持2-、4-、6-、8-的串并转换,级联DDR模式下还可扩展到10-和14-。每一个ISERDESE2包括:n 专门的串并转换器;n Bitslip子模块用于源同步接口;n 专用的可支持strobe-based的存储接口。图(3)是ISERDESE2的结构示意图。表(3)是ISERDESE2接口描述,表(4)示ISERDESE2的参数描述

7、。图(3)ISERDESE2结构示意图表(3) ISERDESE2表(4)ISERDESE2的参数描述(1) 时钟方案CLK和CLK_DIV必须是严格对齐的时钟,虽然允许使用BUFIO/BUFR,但任然有可能存在相位问题。图(5)时采用BUFIO/BUFR的方案。图(5)采用BUFIO/BUFR的时钟方案一般的,根据接口类型的差异,时钟必须满足以下的约束:a)networking interfacen CLKBUFIO;CLKDIVBUFR;n CLKMMCM/PLL;CLKDIV和CLK相同的MMCM/PLL的CLKOUT0:6的输出,使用MMCM时CLK和CLKDIV必须使用相同的驱动BU

8、F;n CLKBUFG;CLKDIVBUFG。b)MEMORY Interface Typen CLKBUFIO, OCLKBUFIO,或CLKDIVBUFR;n CLKMMCM或PLL, OCLKMMCM,或CLKDIV由同一个MMCM/PLL的CLKOUT0:6驱动;n CLKBUFG,CLKDIV不同的BUFG。OCLK和CLKDIV的输入相位必须是严格对齐的,CLK和OCLK之间不要求相位关系。From CLK to OCLK的时钟域必须进行补偿。其他接口类型的时钟方案参考文档UG471。(2) BitSlip子模块BitSlip用于调整并行寄存器输出串行数据的位置。在SDR模式下,每

9、一个BitSlip脉冲让输出pattern的数据左移1bit;在DDR模式下,第一个BitSlip右移1bit,第二个BitSlip左移3bit,依次进行,移动规律如图(6)所示。BitSlip一定是和CLKDIV同步的一个脉冲。图(6)BitSlip训练移位规律在上面所介绍的资源中,IDELAYE2是动态相位对其训练的神器,ISERDESE2实现串并转换,其Bitslip功能是实现并行化数据对齐的关键。2 LVDS高速接口实现实例因为MIPI接口有其完整的物理层协议,因此不在这里讲具体实现,本文以Sony的IMX122 CMOS为例,聊一聊高速LVDS(HiSPi类似,只是电平标准有一点区别

10、)接口在Xilinx 7系列FPGA和Zynq SoC上的实现。2.1 需求分析以Sony IMX122 CMOS为例,配置在1080P分辨率可输出30fps。CMOS在初始化完成后输出两通道稳定的LVDS数据,LVDS接收模块在收到配置完成信号后开始工作。因此,这个LVDS接收模块需要实现: CMOS工作在Slave模式下,向CMOS发出参考时钟(INCK)、行同步(XHS)、帧同步(XVS)信号; 接收LVDS数据并将它恢复成为指定的图像数据格式; 提供测试信息接口。2.2 IMX122 CMOS输出特性本小节简介IMX122 CMOS的一些特性。2.2.1 同步时序要求在Slave模式下

11、需要向CMOS提供周期稳定的XHS和XVS信号,两者的时序要求如图7所示。在产生同步时序时需要注意以下要点: XVS和XHS必须是稳定的周期性信号; XVS和XHS信号的低电平保持时间为4100个INCK; XHS可以和XVS同时拉低,也可延时一个时钟周期拉低。图7 Slave模式下同步时序2.2.2 输出数据率在串行SDR LVDS模式下以12bit模式输出,数据率为891Mbps,每个通道的数据率为445.5Mbps。2.2.3 Sync Code格式在串行输出模式下,CMOS通过输出固定的Sync Code来指示图像的有效帧、行信息,接收器需通过查找这些Sync Code来恢复图像。IM

12、X122可提供两种模式的Sync Code,这里配置为Sync Code1,其具体定义如图8所示。图8 IMX122 Sync Code定义2.2.4 输出图像组织形式IMX122在1080P读出模式下,输入参考时钟INCK是37.125MHz。一帧图像输出固定为1125行,每行1100 INCK(29.63s),有效输出为19841105。图像输出的时序如图9所示,图10是输出数据编码规则。图9 IMX122 LVDS模式输出时序图10 IMX122 12-bit 2通道输出编码格式2.3 设计思路和模块结构Slave模式下工作的CMOS在XVS和XHS的同步下按照固定时序稳定输出LVDS图

13、像数据。LVDS串行数据按照一定的方式进行编码,接收模块应先将串行数据解码恢复成为并行数据,再根据数据的排列方式格式化输出。因此,整个模块可以划分为时序同步、LVDS接收解码(串转并)和数据格式化输出三个部分。整个LVDS接收模块的结构如图11所示。图11 LVDS接收模块顶层图 CMOS输入参考时钟(INCK)为37.125MHz; CMOS输出LVDS数据为445.5MHz SDR型; 时序发生器由74.25MHz发生30fps的XVS、XHS信号; LVDS数据接收解码模块将数据恢复为8bit55.6875MHz并行格式(DATA7:0); 格式化输出模块通过搜索同步头的状态确定是否发出

14、bit_slip,并根据CMOS的数据格式和同步信号格式化输出12bit74.25MHz像素数据(PIX_DATA11:0); IDELAYCTRL以Ref_clk为基准对整个IO BANK进行输入延时控制。2.3.1 时序同步同步时序由内部74.25MHz计数产生。按照图7所示时序即可。2.3.2 LVDS接收解码LVDS接收的主要工作是将串行的数据转为并行数据并进行自动相位调节,移位寄存器抽头调整(Bitslip)。Xilinx Artix7系列FPGA提供串转并模块ISERDES和IO延时模块IODELAYE2,ISERDES性能可在415Mb/s1200Mb/s之间,IODELAYE2

15、的延时参考时钟可以是200MHz(1tap78ps)或300MHz(1tap52ps)。(1)Artix7 FPGA时钟特性在Artix7系列器件里,MMCM可驱动BUFIO、BUFR、BUFH和BUFG,PLL只能驱动BUFH和BUFG。ZYNQ-7020采用Artix7 Speed-1器件,时钟网络的最高性能如下表5所示。表5 Artix7 Speed-1 器件时钟性能FPGABUFGBUFHBUFRBUFIOArtix7 Speed-1464MHz464MHz315MHz600MHz(2)LVDS接收时钟选择LVDS解码串行参考时钟选择从表1可以知道,采用BUFG最高时钟性能为464MHz。IMX122 1080P串行模式下两通道LVDS每通道的输出数据率为445.5Mbps(SDR),接近BUFG的极限值,因此这里作一个变通处理,使用222.75MHz时钟按照DDR

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号