基于Verilog HDL的CMOS图像敏感器驱动电路设计
可恢复,读取过程也相当于RESET像素,所以CMOS敏感器行RESET的速度与读取速度一样。
STAR250通过三个指针标定整个图像地址:Yrd当前扫描行,Yrst当前RESET行,Yrd当前读出像素。这三个指针都有相应的移位寄存器,通过设置这三个寄存器的初始值可以调整采集窗口的大小和位置。图像采集的流程图如图2。每秒钟的图像帧数通过设置Yrd和Yrst进行控制,曝光周期也由这两个量控制。这个时间量可以用空间距离(行距)表示,定义DelayLines=︱Yrst-Yrd+︱。由于每一行的RESET和读取时间是固定的,所以DelayLines如果固定那么帧率也就固定了。将DelayLines转换成像素的有效积分时间(曝光时间),是将Delay-Lines乘以读取一行像素所用的时间。读取一行像素所用的时间由四部分组成:(1)行中有效像素的个数(由行的长度定义);(2)读取一个像素所用的时间;(3)像素累积电荷转换为数字量的时间;(4)选择新一行所用的时间。例如在主时钟频率为12MHz时,像素的输出频率为主时钟的二分频6MHz,因此一行像素所需要的时间为512×1/6M
Hz=85.3μs。再加上换行所需时间,一行像素的读取时间大约90μs左右。因此可以根据这个时间设置DelayLines来控制曝光时间。
3VerilogHDL驱动时序设计
经过以上分析可知,CMOS图像敏感器采集时可以分为RESET过程和采集过程。时间上两个过程是独立的,如图3。但在FPGA内部处理这两部分的电路物理上是同时存在,因此必须将相应的信号通过置标志位的方法置为有效或无效。
STAR250所需数字驱动信号共28个,其中SELECT信号在正常使用时,直接接PCB板的Vcc。因此需FPGA控制的驱动信号有27个。根据采集过程可以把信号划分为列放大器信号,包括CAL、Reset、Lr、S、R、LdY。这6个信号在每一行的初始化部分都要用到,因此可以编写到一个模块(ColControl)中;模式信号(PaternCtrl)模块用来设置CMOS敏感器的工作模式及初始地址,包括G0、G1、Bitlnvert和Addr[8:0]共12个信号。其中G0、G1用来设计输出的放大倍数,BitInvert用于将输出取反,Addr[8:0]则设置采集的起始地址;行读出信号控制模块(YlCtrl)产生行读出地址的同步信号SyncYl及时钟驱动信号ClkYl;行RESET信号控制模块(YrCtrl)产生行RE-SET地址的同步信号SyncYr及时钟驱动信号ClkYr;像素控制模块(RowCtrl)产生行内像素初始地址的装载信号LdX及同步信号SyncX;行内时钟信号模块(RowClk)产生列内像素的时钟驱动CLKX、ADC驱动时钟信号CLkAdc及输出三态控制信号TriAdc。系统的输入信号为主时钟CLK、EosX行内像素结尾信号、EosYl帧内行结尾信号、EosYr帧内RESET行结尾信号、芯片的RESET信号。经过这样划分后的模块化Verilog程序就比较易写了。经过顶层模块综合生成的网表如图4。布线仿真时序图如图5,其中时钟信号过于密集变成黑色带状,同样输出时钟CIkX及ClkAdc也是黑色带状。在时序上ClkX与ClkAdc是反相关系,在TriAdc保持低电平时输出有效。所设计的驱动信号仿真波形与理论波形十分符合。这样就完成了STAR250的时序驱动电路设计。
《基于Verilog HDL的CMOS图像敏感器驱动电路设计(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/177090.html
STAR250通过三个指针标定整个图像地址:Yrd当前扫描行,Yrst当前RESET行,Yrd当前读出像素。这三个指针都有相应的移位寄存器,通过设置这三个寄存器的初始值可以调整采集窗口的大小和位置。图像采集的流程图如图2。每秒钟的图像帧数通过设置Yrd和Yrst进行控制,曝光周期也由这两个量控制。这个时间量可以用空间距离(行距)表示,定义DelayLines=︱Yrst-Yrd+︱。由于每一行的RESET和读取时间是固定的,所以DelayLines如果固定那么帧率也就固定了。将DelayLines转换成像素的有效积分时间(曝光时间),是将Delay-Lines乘以读取一行像素所用的时间。读取一行像素所用的时间由四部分组成:(1)行中有效像素的个数(由行的长度定义);(2)读取一个像素所用的时间;(3)像素累积电荷转换为数字量的时间;(4)选择新一行所用的时间。例如在主时钟频率为12MHz时,像素的输出频率为主时钟的二分频6MHz,因此一行像素所需要的时间为512×1/6M
Hz=85.3μs。再加上换行所需时间,一行像素的读取时间大约90μs左右。因此可以根据这个时间设置DelayLines来控制曝光时间。
3VerilogHDL驱动时序设计
经过以上分析可知,CMOS图像敏感器采集时可以分为RESET过程和采集过程。时间上两个过程是独立的,如图3。但在FPGA内部处理这两部分的电路物理上是同时存在,因此必须将相应的信号通过置标志位的方法置为有效或无效。
STAR250所需数字驱动信号共28个,其中SELECT信号在正常使用时,直接接PCB板的Vcc。因此需FPGA控制的驱动信号有27个。根据采集过程可以把信号划分为列放大器信号,包括CAL、Reset、Lr、S、R、LdY。这6个信号在每一行的初始化部分都要用到,因此可以编写到一个模块(ColControl)中;模式信号(PaternCtrl)模块用来设置CMOS敏感器的工作模式及初始地址,包括G0、G1、Bitlnvert和Addr[8:0]共12个信号。其中G0、G1用来设计输出的放大倍数,BitInvert用于将输出取反,Addr[8:0]则设置采集的起始地址;行读出信号控制模块(YlCtrl)产生行读出地址的同步信号SyncYl及时钟驱动信号ClkYl;行RESET信号控制模块(YrCtrl)产生行RE-SET地址的同步信号SyncYr及时钟驱动信号ClkYr;像素控制模块(RowCtrl)产生行内像素初始地址的装载信号LdX及同步信号SyncX;行内时钟信号模块(RowClk)产生列内像素的时钟驱动CLKX、ADC驱动时钟信号CLkAdc及输出三态控制信号TriAdc。系统的输入信号为主时钟CLK、EosX行内像素结尾信号、EosYl帧内行结尾信号、EosYr帧内RESET行结尾信号、芯片的RESET信号。经过这样划分后的模块化Verilog程序就比较易写了。经过顶层模块综合生成的网表如图4。布线仿真时序图如图5,其中时钟信号过于密集变成黑色带状,同样输出时钟CIkX及ClkAdc也是黑色带状。在时序上ClkX与ClkAdc是反相关系,在TriAdc保持低电平时输出有效。所设计的驱动信号仿真波形与理论波形十分符合。这样就完成了STAR250的时序驱动电路设计。
《基于Verilog HDL的CMOS图像敏感器驱动电路设计(第2页)》