datasheet

基于USB2.0的高分辨率数字摄像头设计

2016-07-15来源: 21ic关键字:USB2.0  高分辨率  数字摄像头
1 概述

目前,能够传输高品质视频信号的两种总线接口(USB和IEEE 1394接口)都支持即插即用,且具有易扩展、使用方便等特点。但是IEEE 1394接口的价格相对较高,因此,当前采用更多的是USB接口。

USB的数据传输有4种模式:块传输(Bulk Transfers)、中断传输(Interrupt Transfers)、同步传输(Isochronous Transfers)、控制传输(Control Transfers)。当需要快速传输大批量的准确数据时,一般采用块传输模式;而当传输实时性较强的数据时,则应采用中断传输模式。现在的USB2.0规范在原有的低速模式(low speed) 1.5Mb/s、全速模式(full speed) 12Mb/s的基础上又支持高达480Mb/s的高速模式(high speed),从而使USB总线真正成为能满足高速应用场合的标准连接总线。在USB2.0中,每毫秒可发送8~10微帧,这比USB1.1的传输速率有了极大的提高,同时对缓存的要求也大大降低了。USB2.0向下完全兼容,协议规定,在全速模式和低速模式下,主机控制器和hub之间也可以进行高速传输,但是hub和外设之间仍然保持原有传输模式,这样可以使设备在分享带宽时冲突最小。

2 硬件电路

本系统选用OmniVision Technologies Inc.公司的OV9620作为视频信号的采集芯片,用EZ-USB FX2作为USB控制芯片并为OV9620提供工作时钟,E2PROM使用24LC65,通过I2C总线连接所有芯片。硬件连接框图见图1所示。

2.1 OV9620的主要特性

OV9620是美国OmniVision公司为数字照相机和摄像机产品开发的高性能130万像素彩色CMOS数字图像传感器芯片。与传统的CCD传感器相比,CMOS最明显的优势是集成度高、功耗小、生产成本低,容易与其他芯片整合。该款芯片的图像总区域为6.82×5.39mm2,成像区域为6.66×5.32mm2,非常有利于产品的小型化。

该芯片支持SXGA(1280×1024分辨率)和VGA(640×480分辨率)两种模式和SCCB(Serial Camera Control Bus)接口,使用24MHz晶振,内置10位A/D转换器,能提供10位数字视频信号。另外该芯片还可输出像素时钟以及行、场同步信号,并可以直接与专用集成电路系统连接,其后端系统可以通过SCCB接口来控制。可利用USB2.0控制器,在P4 1.5G以上系统中提供15fps的SXGA或30fps的VGA动态影像。该芯片采用Bayer滤光阵列把输入光信号分解成RGB三原色,像素阵列有1312×1036=1359232个,成像像素有1280×1024=1310720个。不成像像素可作为光学黑体像素用作黑值校准以补偿由光线引起的温度变化和暴光变化。

芯片中使用的SCCB接口是OmniVision公司制定的一种用于控制图像传感器的三线连续总线(SCS、SIO1、SIO0),其中SCS用于实现片选(低电平有效),当芯片被选中后,SIO1、SIO0在功能及使用上和I2C总线兼容。

另外,OV9620还提供了一个控制信号输入端(PWDN),可用于实现掉电模式的开关。在本设计中,因为OV9620与其他芯片同时工作,因此,没有采用片选而是由PWDN 来实现控制。

2.2 EZ-USB FX2的主要特点

EZ-USB FX2(即CY7C68013)是Cypress公司为高速传输外设设计的USB2.0控制芯片。该芯片内含1个增强型8051处理器、1个串行接口引擎(SIE)、1个USB收发器、8.5kB片上RAM、4kB FIFO存储器以及1个通用可编程接口(GPIF)。

FX2采用量子FIFO处理构架,其USB接口和应用环境可以直接共享FIFO,而微控制器则可不参与数据传输但允许以FIFO或RAM方式访问这些共享FIFO,这样,就较好地解决了USB高速模式的带宽问题。

FX2有一个I2C兼容端口,当FX2作为主控制器,SCL时钟频率为100/400kbps时,该端口兼容I2C总线。一般情况下,该端口由两个内部控制器驱动:一个在程序加载时自动读取VID/PID/DID和配置信息;另一个是芯片中的8051,一旦开始运行,8051利用芯片中的I2CTL和I2DAT寄存器控制挂接在I2C总线上的外围设备。具体来说,系统上电时,FX2会通过内部逻辑监测I2C端口,如果发现有地址为0xC0 或者是0xC2的E2PROM,便在E2PROM内部存储空间0xC0使用VID/PID/DID值或者把E2PROM的内容加载到内部RAM中。

2.3 电路原理及设计

设计中可使用I2C总线实现USB控制器与图像传感器的连接,并选用E2PROM(24LC65)作为代码存储器,然后通过FX2的C2方式加载固件程序。系统上电复位后,处于主模式的USB控制器将通过PA1输出启动信号,并经反向后传到图像传感器的PWDN,以使处于从模式的图象传感器开始工作。PCLK提供像素时钟,HREF提供水平同步信号,VSYNC提供垂直同步信号。这两个同步信号与图像数据的时序关系如图2所示。

VSYNC会在一帧图像传输到控制器后触发INT0中断。因为数据量太大,本设计没有在INT0中断服务子程序中进行全部的数据处理,而是设置了一个标志位,并通过标志位的状态来在主程序中进行处理,这样就避免由于数据处理时间太长而使控制器无法响应其它中断。

USB控制器的FIFO处于从模式。控制器的端点设置为EP2—512 四重缓存;EP6-512四重缓存,块传输模式。这样的设置可以满足系统要求。

3 接口程序设计

EZ-USB FX2提供了丰富的中断资源,除内置8051中断资源外,FX2还为INT2和INT4提供了一个中断向量表,表中有27个 INT2(USB)中断向量和14个INT4中断向量。因此,在设计中,大部分工作都可通过中断服务子程序来完成。图3、图4分别是主程序流程和I2C INT中断服务子程序的流程图。

同EZ-USB系列的其它控制器一样,Cypress公司也为FX2提供了比较完备的开发套件CY3681。这个套件包括带128脚CY7C68013的硬件开发板和相应的控制面板以及GPIF代码自动生成软件。因此可以非常方便地实现固件的开发。

USB设备驱动程序的设计是基于WDM(驱动程序模型)并采用分层模型来进行。应用程序通过调用Windows API函数来进行的对WIN32子系统进行WIN32调用,并通过I/O管理器产生IRP(I/O请求包),然后传递给USB驱动程序,接着再由驱动程序执行相应的操作,并将结果返还给I/O管理器。用DriverEntry可设置整个系统的回调例程,当添加一个新设备和IRP需要发送到驱动程序时,通过内核可调用这些例程。下面是DriverEntry例程的简要内容:

DriverObject->DriverExtension->AddDevice=VcameraAddDevice;

DriverObject->DriverUnload=VcameraUnload;

DriverObject->MajorFunction[IRP_MJ_CREATE]= VcameraCreat;

DriverObject->MajorFunction[IRP_MJ_CLOSE]= VcameraClose

DriverObject->MajorFunction[IRP_MJ_READ]=VcameraRead

DriverObject->MajorFunction[IRP_MJ_WRITE]=VcameraWrite

……

实际上,USB客户驱动程序中包含大量的例程,也对Windows DDK工具下开发USB客户驱动程序的方法和过程作了详细的介绍。

4 小结

目前,笔者已经开发出样品,并且在一些应用程序上进行过测试,获得了很好的效果,其分辨率高达1280×1024。

关键字:USB2.0  高分辨率  数字摄像头

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/qrs/article_2016071529179.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:10G以太网的UTOPIA接口设计与实现
下一篇:RS新增Molex连接器和线缆,延伸USB-C 产品组合

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

新版USB Type-C新规范出炉,可直接支持HDMI输出

位置上。 USB Type-C还可以通过D+/D-和VBUS/GND引脚与传统的USB 2.0系统进行交互。其引脚布局还包括其他两个规范中定义的新功能引脚(包括备用模式)。图1显示的是Type-C接口标准和备用模式引脚映射。  图1:显示备用模式映射的USB Type-C引脚布局(来源:Texas Instruments) USB Type 3.1规范 USB Type 3.1规范更新了USB的电气性能,规定数据传输速率可达到10Gbps(规范中称为SuperSpeed+)。此类接口需要两个专用的高速数据差分引脚对TX和RX,而且供电标准提升至5V/150mA。 USB
发表于 2019-07-19
新版USB Type-C新规范出炉,可直接支持HDMI输出

STM32开发笔记33:解决USB CDC “该设备无法启动”问题

单片机型号:STM32F401    调试STM32的USB CDC设备已经有好多次了,可以看一下前面写的日志,针对不同的STM32 MCU都进行了调试。原本以为STM32F4会很简单,可处处是坑,已经调到半夜才解决问题,把问题重新梳理。    我现在使用的芯片时STM32F401,在STM32CubeMX中,按照以下步骤设置。    1、设置为全速从设备,不做USB电源检测。    2、使能CDC,其它采用默认设置。    按照上述设置生成的程序,下载到芯片后,接入计算机,默认是这样的    仔细查看细节问题
发表于 2019-07-16
STM32开发笔记33:解决USB CDC “该设备无法启动”问题

STM32开发笔记34:USB CDC驱动程序的详细移植过程

单片机型号:STM32F401      本文详细介绍USB CDC驱动程序的移植过程。    1、按照STM32F4 开发笔记8:解决USB CDC “该设备无法启动”问题介绍的过程生成驱动程序后,找到如下图所示的文件加入到自己的项目工程中。    2、打开usbd_cdc_if.c文件,可以看到其中有,如下4个函数,其中Init、DeInit和Control函数都不需要改变,关键是Receive函数。static int8_t CDC_Init_FS(void);static int8_t CDC_DeInit_FS(void);static
发表于 2019-07-16
STM32开发笔记34:USB CDC驱动程序的详细移植过程

STM32开发笔记35:USB FS的枚举方法

单片机型号:STM32F401    FS是Full Speed的意思,指全速USB设备,在电路设计时,通过在DP接1.5K上拉电阻到电源的方法告知主机为全速USB设备,但是在具体使用时,还有问题存在,就是当单片机复位后,主机端虽然还能辨认当前USB设备,但是不能够直接使用,其原因在于USB设备重新启动后,需要完成一个枚举过程,以通知主机。    枚举的具体电路如下图所示,其原理很简单,系统上电后将DE引脚拉高,待USB初始化完毕后,将DE引脚拉低即可。    具体的头文件程序代码如下,建立DE引脚类,并在CUSB类中具体声明。#ifndef USB
发表于 2019-07-16
STM32开发笔记35:USB FS的枚举方法

世界最快,传照片利器问市

索尼宣布推出了一款USB-C扩展坞MRW-S3,他们将其定义为世界上最快的UHS-II SD和microSD读卡器,以及带USB 3.1 Gen 2的USB集线器,此外它还具有高达100W的USB供电(USB PD)和HDMI输出功能。MRW-S3是面向专业摄影师和视频工作者的一站式解决方案,可以快速可靠地传输数据。UHS-II SD和microSD读卡器可以高速处理从高分辨率RAW图像到4K视频文件的所有内容。MRW-S3也是支持USB 3.1 Gen 2的最快的USB集线器,可提供高达1000MB / s的高速数据传输。这款扩展坞还可以接收高达100W的USB供电(USB PD),以确保与USB设备之间的稳定可靠连接。如果每个
发表于 2019-07-13
世界最快,传照片利器问市

STM32HAL----USB升级固件(DFU)

       早就听说stm32可以利用USB升级固件,脱离各种Link。趁有空搜了下相关资料,然后利用stm32CubeMX实现了这个功能。参考了这个地址的资料:http://www.stm32cube.com/question/500       上面这个链接写得很详细,所以不再赘述,直接上重点以及注意点。一、bootloader地址设置在CubeMX里面,有两个参数要设置好,以上画框部分。一个是APP的默认地址。另一个是DFU接口。用来识别我们bootloader存放起始地址以及占用内存大小,还有内部FLASH的扇区划分方式。因为我的MCU
发表于 2019-06-29
STM32HAL----USB升级固件(DFU)

小广播

何立民专栏

单片机及嵌入式宝典

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

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