于CMOS图像传感器的USB接口图像采集系统设计_第1页
于CMOS图像传感器的USB接口图像采集系统设计_第2页
于CMOS图像传感器的USB接口图像采集系统设计_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、于CMOS图像传感器的USB接口图像采集系统设计介绍以CPLD控制为核心的CMOS图像采集系统,系统选用彩色图像传感器OV7620,并通过USB接口以类似DMA方式进行快速的图像传输。最后给出了单片机固件程序和设备驱动程序的实现方法。关键词:CMOS图像传感器;图像采集;CPLD;USB Design of USB Image Collecting System Based on CMOS Image Sensor JIANG Chuangui, LIAO Qizhen, WEI Shimin (Automation School of Beijing University of Post a

2、nd Telecommunication, Beijing 100876, China)Key words: CMOS image sensor; image collection; CPLD; USB1系统设计图1为图像采集系统的原理框图。系统选用OminiVision公司生产的CMOS芯片OV7620,它是一款集成了一个640480(30万像素)图像矩阵的彩色摄像芯片,在隔行扫描模式下工作频率可达60Hz,逐行扫描时为30帧/s。其像面大小为1/3英寸,支持8位或16位数字信号从单通道或双通道输出,输出信号的类型可在YCrCb和RGB之间选择,图像矩阵支持VGA或CIF规定,数字输出格式遵

3、循CCIR601,ZV Ports,CCIR656等标准。OV7620有很强的摄像和控制功能,如暴光控制,校正,增益,色彩矩阵,窗口选择等,所有这些功能都可以通过I2C接口进行编程控制。2.1OV7620的输出特性OV7620工作方式和输出格式非常多,可以适应不同的应用场合,针对我们的较小系统,采用了单通道Y输出,以及逐行扫描的工作方式。这些工作方式的实现是通过MCU的I2C编程控制的。当OV7620设置工作方式稳定后,它就会输出视频数据,同时还有3个重要的参考信号输出:帧同步信号SYNC,水平同步信号HREF,和像素时钟信号PCLK。参见图2,每一个帧同步信号SYNC周期包含480个水平同步

4、信号HREF脉冲,而每一个HREF周期包含640个PCLK时钟脉冲。每一个PCLK时钟输出一个像素的视频数据(8位标准的Bayerpattern彩色RGB数据)。2.2图像存储方式根据640480的像素输出特点,将512KB的RAM分成512行,每行1KB空间,由A0A9共10条地址线选通行内地址记为低位地址:ADDRL;高位A18A10共9条地址线选通各行记为高位地址:ADDRH。为保证OV7620采集的数据同步写入SRAM中,用CPLD宏单元设计了2个地址计数器:低位计数器ADDRL和高位记数器ADDRH。当图像数据采集开始时(SYNC信号低有效),记数器由0开始记数,每来一个像素时钟PC

5、LK使低位计数器顺序加1,完成1行像素的写入,OV7620产生的行同步信号HREF使低位计数器清0,并使高位记数器顺序加1,改变行地址直到完成480行写入后产生帧同步信号,并使高位计数器清0,这样完成1帧图像数据的缓存,详细的图像采集信号时序如图2。512KB的SRAM芯片实际上只用了640480约300多KB的存储空间。芯片工作方式设定在PCLK信号的下降沿更新数据;在上升沿,数据是稳定时期,所以如图2,在PCLK信号的下降沿更新SRAM的地址信号ADDR;在PCLK信号上升沿使/WR信号有效,然后写数据到SRAM中。其中CPLD控制SRAM的写数据逻辑用VHDL语言编写,用MAX+PLUS

6、II工具进行仿真设计,最后实现了图像数据的连续采集。 3.1类似DMA方式数据传输视频数据按行列关系有序存入SRAM芯片后,就可以顺序读取数据并进行传输。传统的USB传输方式是MCU先从SRAM中取得数据再送到PDIUSBD12;通过PDIUSBD12发送到主机。不管是MCU从SRAM取数据还是向作为外设的PDIUSBD12写数据,速度都较慢。因此我们考虑用系统中的CPLD控制来实现类似DMA方式的数据传输。在系统工作过程中,单片机负责解释USB的控制传输。当要进行从外存取数送到PDIUSBD12时,单片机让出总线,由CPLD完成该工作。CPLD产生外存的读信号和地址,同时产生PDIUSBD1

7、2的写信号和地址,自动实现外存数据到PDIUSBD12接口芯片的传送。这种类似DMA方式的数据传输解决了由单片机控制引起的速度瓶颈,极大提高了传输速度,最大限度发挥了USB的优点。3.2数据传输的具体实现当主机需要传输数据时,通过控制管道发送请求,MCU接到命令后立即让OV7620让出SRAM的数据总线,并通知PDIUSBD12准备好用于批量数据传输的主端点,然后发送TXCOM命令信号给CPLD(见图1),通知CPLD开始传送数据;当完成64B的数据传送后,CPLD向单片机发送TXEND信号,以示64B传送完毕,并等待下一个TXCOM信号,进行下一个64B的传送。单片机和CPLD通过这两个信号

8、完成握手。CPLD在接收到TXCOM命令后,地址总线正确恢复上次传输到的SRAM地址(第一次传输时地址为0),并且控制MCU让出PDIUSBD12的数据总线,然后产生SRAM读信号/RD,此时数据总线上就有了要传送的数据;同时产生PDIUSBD12的写数据标志信号A0和写信号/D12WR,将数据总线上的数据写入PDIUSBD12,完成数据从SRAM到PDIUSBD12的传送。其传送数据的时序如图3。注意,PDIUSBD12的写数据信号/D12WR,SRAM的读数据信号/RD和SRAM的地址信号ADDR时序要严格配合。当每一次完成64B的数据传输后,CPLD要发送TXEND信号给MCU。整个传输

9、过程控制严密紧凑,所有CPLD逻辑控制程序均采用VHDL语言编写,经过测试,系统传输速度摆脱了单片机的影响,几乎接近PDIUSBD12的极限速度。 系统的软件包括USB设备固件、设备驱动程序和应用程序。4.1设备固件程序设备固件是设备运行的核心,其主要的功能是控制接口芯片PDIUSBD12并完成USB1.1协议(包括标准的设备请求、厂商请求处理、设置设备接口等)。值得一提的是,此系统的单片机程序除了USB设备固件程序外,还有单片机对OV7620的I2C控制软件,与CPLD的握手程序等,所有程序都用Keil C进行编制,最后链接后下载到MCU中。4.2设备驱动程序在Windows操作系统中通过运

10、行内核层的驱动程序才能控制硬件,USB设备驱动程序采用标准WDM设备驱动。WDM采用IRP驱动机制。当应用程序提出I/O请求时,它调用WIN32API函数向设备发出命令,然后由I/O管理器构成一个IRP,USB设备驱动程序收到该IRP后,取出其中的控制码来找到对应的例程入口。在本系统开发中,驱动程序采用了DRIVER STUDIO提供的DRIVERWORKS工具包,工具包提供了完善的源代码生成工具(DRIVER WIZARD)及相应的类库。开发驱动项目时,应用WIZARD工具开发,自动生成驱动程序的.INF安装信息文件。对USB设备驱动DRIVER WIZARD生成的代码只需做少量的修改便可,最后对项目编译链接后生成.SYS驱动程序。4.3应用程序在Win2系统中,把每个设备抽象为文件,应用程序就通过几条简单的文件操作API函数实现与驱动程序中某个设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论