基于VerilogHDL的CMOS图像敏感器驱动电路设计

发布者:fnfeecjknquc最新更新时间:2011-08-15 关键字:CMOS  ADC  PCB 手机看文章 扫描二维码
随时随地手机看文章

       CMOS图像敏感器是近年来兴起的一类固态图像传感器。CMOS图像敏感器具有低成本、低功耗(是CCD耗的1/1000~1/100)、简单的数字接口、随机访问、运行简易(单一的CMOS兼容电池供给)、高速率(可大于1000帧/秒)、体积小以及通过片上信号处理电路可以实现智能处理功能等特点而得到广泛应用。有些CMOS图像敏感器具有标准的I2C总线接口,可方便应用到系统中。有些没有这类总线接口电路的专用CMOS图像敏感器需要增加外部驱动电路。由于CMOS敏感器的驱动信号绝大部分是数字信号,因此可采用FPCA通过Verilog HDL语言编程产生驱动时序信号。Verilog HDL语言是IEEE标准的用于逻辑设计的硬件描述语言,具有广泛的逻辑综合工具支持,简洁易于理解。本文就STAR250这款CMOS图像敏感器,给出使用Verilog HDL语言设计的逻辑驱动电路和仿真结果。
  1 CMOS图像敏感器STAR250
  STAR250是一款专为卫星天文导航的星跟踪器(tracker)设计的CMOS图像敏感器。由于太空中含有大量辐射,芯片中加入了抗辐射电路以提高空间应用的可靠性。STAR250的技术指标如下:
  (1)0.5μm CMOS工艺;
  (2)512x512分辨率,像素大小25μmx25μm;
  (3)每个像素4个光敏二极管,提高MTF(幅值转换功能)和减少PRNU(非均一化光响应);
  (4)抗辐射设计;
  (5)片上双采样电路抵消FPN(固定模式噪声);
  (6)电子快门:
  (7)最大30帧/秒;
  (8)可以取子窗口;
  (9)片上10位ADC;
  (10)陶瓷JLCC-84针封装。
  STAR250是有源像素的线扫描CMOS图像敏感器。所有像素的输出都连接到列总线,并且在列总线上每例都有一个列放大器。使用二次采样技术,控制列放大器可以从读出信号中减去光敏单元上一次采集残留的电荷。片上ADC独立于敏感器,可以使用也可以通过软件关闭,而用外部的ADC。STAR250为了应用方便有多种读出数据的方法(窗口方式、电子快门等),不同的读出方式有不同的时序要求。
  传统的计算机或打印机的图像座标系定义左上角为原点(0,0),在STAR250中定义右上角为原点(0,0),如图1。这样敏感器输出数字信号后能够方便地转换为计算机格式的图像,方便后续的处理。窗口扫描方式是从上向下、从左向右一个像素一个像素地扫描。

  2 STAR250时序信号
  STAR250通过两个步骤完成图像的采集。第一步是逐行扫描RESET像素。行内像素RESET后,本行自上一次RESET或读出后积累的所有光敏电荷被排空。从RESET行像素开始新的曝光周期。第二步是本次曝光周期数据读出。以电压的形式读出,然后经过ADC转换为数字量。由于电荷采用排出式读取,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/6MHz=85.3μs。再加上换行所需时间,一行像素的读取时间大约90μs左右。因此可以根据这个时间设置DelayLines来控制曝光时间。
[page]

3 Verilog HDL驱动时序设计
  经过以上分析可知,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语言设计时序逻辑具有很高的效率。结合CMOS敏感器特性可以方便地开发出驱动时序电路。但必须对CMOS图像敏感器的信号分析准确,正确分离那些独立的信号和共用的信号,用时序逻辑设计驱动信号,用组合逻辑实现不同采集过程时间上的分离。布线延迟是必须考虑的,采用流水线技术可以预测延迟,保证信号的正确性。虽然文中并未给出像素ADC输出的存储电路,但实际上直接使用TriAdc信号作为SRAM的片选,ClaAdc的低电平作为写信号,SRAM的地址在ClkAdc的上升沿增加、下降沿写入。这样就可以完成图像数据的存储。以上Verilog程序在FLEXl0kl0上布线实现。经示波器观察逻辑正确,CMOS敏感器正常工作。

 

关键字:CMOS  ADC  PCB 引用地址: 基于VerilogHDL的CMOS图像敏感器驱动电路设计

上一篇:基于 XC866 的步进电机阀门控制系统
下一篇:一款多点测温及温度控制系统的设计应用

推荐阅读最新更新时间:2024-05-02 21:32

你需要了解使用PCB的分层和堆叠的正确方法
    1.概述   多层印制板为了有更好的电磁兼容性设计。使得印制板在正常工作时能满足电磁兼容和敏感度标准。正确的堆叠有助于屏蔽和抑制EMI。   2.多层印制板设计基础。   多层印制板的电磁兼容分析可以基于克希霍夫定律和法拉第电磁感应定律。   根据克希霍夫定律,任何时域信号由源到负载的传输都必须有一个最低阻抗的路径。见图一。图中I=I′,大小相等,方向相反。图中I我们称为信号电流,I′称为映象电流,而I′所在的层我们称为映象平面层。如果信号电流下方是电源层(POWER),此时的映象电流回路是通过电容耦合所达到的。   根据以上两个定律,我们得出在多层印制板分层及堆叠中应遵循以下基本原则:   ① 电源平面应尽量靠近接地平
[电源管理]
逐次比较式ADC 采样频率的选取及应用
      摘要 : 在设计数据采集系统时, 一项重要的任务是选择模数转换器(ADC) 的采样频率L 根据采样理论, 采样频率至少应为输入信号带宽的两倍, 实际往往采用更高的采样频率来保证数据采集系统的精度L 但当逐次比较式ADC 的采样频率过高时, 会使其内部采样保持的开关电容充电不充分, 从而导致ADC 转换误差过大L选择一个合适的采样频率是保证数据采集系统可靠工作的关键L通过建立ADC 及前向通道的等效模型及推导, 在保证ADC 的转换精度下, 推出ADC 的采样时间与信号放大电路输出阻抗的匹配关系, 得到ADC 最合适的采样频率。   关键词:逐次比较式;模数转换器;开关电容;采样时间;转换精度    引 言  
[模拟电子]
逐次比较式<font color='red'>ADC</font> 采样频率的选取及应用
使用STM32ADC看门狗测量出待测信号
我们在做ADC应用时,有些场合需要精确测量出待测信号的数据,有时可能并不关心ADC结果多准确,只要满足某个范围即可,这时我们就可以考虑使用STM32ADC看门狗功能了。 STM32 ADC基本上都支持模拟看门狗功能,即ADC模块对被检测的模拟通道的转换结果基于硬件对其合法性、安全性进行监测。我们可以设置被监测通道的转换结果合法性检查的上下阈值,若结果处于阈值之外则视为异常,并可以触发中断。 尤其有些场合,我们可能使用到数个ADC通道,8个、10个甚至更多,同时程序还需要基于各通道的转换结果进行合法性或安全性监测,此时使用ADC模拟看门狗功能就很方便。我们可以先让模拟看门狗做第一步把关,只有出现异常数据时才去进一步检查确认。
[单片机]
使用STM32<font color='red'>ADC</font>看门狗测量出待测信号
STM32的ADC多通道DMA使用方法
类似的问题 为什么我采集5条通道的电压,而采集到的值却都是第一条的呢? 我什么时候需要使用DMA功能? Ⅰ 关于ADC的一些知识 STM32的ADC是一种12位逐次逼近型的模拟数字转换器。它有多达18条通道,可测量16个外部和2个内部信号源。 各通道的A/D转换可以单次、连续、扫描或间断模式执行。 ADC的结果可以左对齐或右对齐方式存储在16位数据寄存器ADC_DR中。 其实就是说,一个ADC,可检测18条通道,我们外接的只有16条。而结果只保存在一个寄存器ADC_DR中。 要使用ADC1采集多条通道,那么就需要对采集的通道进行分组排序。STM32的ADC可以把转换组织成两组:规则组和注
[单片机]
STM32的<font color='red'>ADC</font>多通道DMA使用方法
高性能模拟前端中的运算放大器设计
高速转换系统,尤其是电信领域的转换系统,允许模数转换器(ADC)输入信号为AC耦合信号(通过利用变压器、电容器或两者的组合)。但对于测试和测量行业而言,前端设计并非如此简单,这是因为除提供AC耦合能力之外,该应用领域通常要求输入信号与DC耦合。设计可提供良好脉冲响应和低失真性能(≥500MHz的DC频率)的有源前端充满挑战。本文就适用于高速数据采集的高性能ADC使用的模拟前端提供几种设计思想和建议。 图1:LMH6703频响。 使用差分放大器是将高频模拟信号与ADC的输入相连的首选方法。因此,需要选择的第一个器件就是差分输出运算放大器。选择这类器件时,主要有两个考虑因素:增益带宽积和从外部电压设置运算放大器
[模拟电子]
ATmega16读取RTC和ADC显示在LCD1602,同时串口输出
介绍mikroPascal for AVR 写的ATmega16读取RTC和ADC显示在LCD1602,同时串口输出,并写入EEPROM的程序。附带仿真文件。mikro编译器分为c,basic,pascal三种,除了语法有所区别外,使用和功能基本一样。有8051,AVR,PIC,ARM等版本,界面和语法都一样。学会一种芯片花很少时间就可以转到另一种芯片。自带常用库,帮助文件中例子很多,基本不需要其他文档就可以开始学习了。 仿真原理图如下 单片机源程序如下: program RTC_Read; var seconds, minutes, hours, day, month, year : byte; // Global
[单片机]
ATmega16读取RTC和<font color='red'>ADC</font>显示在LCD1602,同时串口输出
如何使用MSP430的ADC测量模拟电压?
在所有的嵌入式应用中几乎都会用到的一个功能就是ADC模块(模数转换器)。这些模数转换器可以读取来自模拟传感器的电压,如温度传感器、倾斜传感器、电流传感器、柔性传感器等等。因此,在本教程中,我们将学习如何通过Energia IDE开发环境使用MSP430G2中的ADC来读取模拟电压。我们将一个小型电位器连接到MSP开发板,并在模拟引脚上施加一个变化的电压,然后读取电压并将其显示在串行监视器上。 ADC模块简介 连接以及编程MSP430G2以读取模拟电压的过程几乎不需要10分钟。但是,让我们先花点时间了解一下MSP开发板上的ADC模块,以便能够在其他的文章中高效使用它。 微控制器是一种数字式设备,也就意味着它只能识别1和0。但
[单片机]
如何使用MSP430的<font color='red'>ADC</font>测量模拟电压?
STM32CubeMX-多通道ADC-DMA-circular 传输
一,CubeMX生成工程 1,配置ADC引脚 2,时钟配置 3,ADC配置 4,打开 中断 5, DMA 配置 (这里选择 halfword 应该也可以,程序里面对应存储adc数据的变量也为halfword u16即可) 6,中断配置 红色标注为注意点,不清楚原理,ADC中断和DMZ的关系有待探明。 7,生成代码二,添加代码 数字标注处为添加部分 /** ****************************************************************************** * File Name : main.c * Date
[单片机]
STM32CubeMX-多通道<font color='red'>ADC</font>-DMA-circular 传输
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved