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

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

现在CMOS传感器的分辨率越来越大,对应的,对数据传输接口的要求也越来越高。根据熊猫君有限的实现和调试经验,基本上遇到了:

①多通道HiSPi接口:主要是Aptina(现已经被安森美收购),常用的有1080P60的AR0331(3.1M),3664×2748P15的MT9J003,3984×2712P80(开窗输出最高可达1200fps)的AR1011等; ②多通道LVDS接口:主要有索尼系列和德国viimagic系列等,至少熊猫君用过的IMX172/IMX122/IMX185/IMX236和VII9222等都是LVDS输出;

③MIPI接口:多用于手机,一些监控用的CMOS如Sony IMX185、OV14810等也带;

④CCIR656:一般低分辨率的会带CCIR656接口,也有一些厂家的高分摄像头也带,比如OV14810; ⑤并行接口:较早设计的CMOS许多都是直接并口输出,比如Aptina的MT9M031、MT9J003都带有并口输出;

熊猫君在这里想讨论的是前三种接口的实现,它们是业界应用最广泛而且对FPGA资源有着共性要求。 无论是HiSPi、LVDS还是MIPI,其核心思想就是要实现将高速串行信号恢复成并行数据。这将会用到Xilinx FPGA IOB上的一个重要的资源——ISERDES。

实现串行信号的并行化,光有ISERDES还不行,还需要用到IO BANK上的延时模块IDELAYCTRL和IOB上的IODELAYE以及相关的相位训练算法。 1 Xilinx的IO资源

本节对用到的IO资源作简要的介绍。 1.1 IDELAYCTRL资源

在电压、温度等因素变化时,可能会影响到系统的时序,此时IDELAYCTRL模块就可以连续补偿时钟域内所有个体的delay taps (IDELAY/ODELAY)。如果使用了IOB上的IDELAY或ODELAY资源,那么就必须使用IDELAYCTRL资源。请注意,整个IO BANK里面只有一个IDELAYCTRL。

IDELAYCTRL很重要的一个输入项就是参考时钟REFCLK,补偿时钟域内所有模块的时序参考,这个时钟必须由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接口示意图。

表(1)IDELAYE2接口描述

以下以VAR_LOAD模式为例说明延时的时序动作,如图(2)所示。

图(2)延时时序动作模型 ? Clock Event 0:

在LD有效前,CNTVALUEOUT输出为未知值; ? Clock Event 1:

在C的上升沿采样到LD有效,此时DATAOUT延时CNTVALUEIN指定的延时Taps,改变tap Setting到Tap2,CNTVALUEOUT更新到新的Tap值; ? Clock Event 2:

INC和CE有效,此时指定了增量操作,Tap值加1,DATAOUT输出从Tap2更新到Tap3,CNTVALUEOUT更新到新的Tap值; ? Clock Event 3

LD有效,DATAOUT输出延时更新到Tap10,CNTVALUEOUT更新到新的Tap值。 1.3 ISERDESE2逻辑

输入串转并逻辑可以看做是OSERDESE2的逆过程,在SDR模式下可支持2-、3-、4-、5-、6-和7-的串并转换,在DDR模式下可支持2-、4-、6-、8-的串并转换,级联DDR模式下还可扩展到10-和14-。每一个ISERDESE2包括: ? 专门的串并转换器;

? Bitslip子模块用于源同步接口;

? 专用的可支持strobe-based的存储接口。

图(3)是ISERDESE2的结构示意图。表(3)是ISERDESE2接口描述,表(4)示ISERDESE2的参数描述。

图(3)ISERDESE2结构示意图

表(3) ISERDESE2

联系客服:779662525#qq.com(#替换为@)