DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1336|回复: 0
打印 上一主题 下一主题

[待整理] 利用USB2.0单片机实现全数字图像的实时采集

[复制链接]
跳转到指定楼层
楼主
发表于 2014-10-5 14:13:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
利用USB2.0单片机实现全数字图像的实时采集

摘要:主要论述利用USB2.0单片机接口技术实现高分辨率(640×480点阵以上)、快速(24帧/s以上)全数字图像的实时采集、传输的原理、方法和系统实现,以及相应的固件程序设计。     关键词:USB2.0 接口技术 数字图像 单片机
引言
传统的方法是用视频采集卡(如1394)对视频信号进行采集,利用相应的软件传给PC机,既不方便,也不经济。本文介绍一种利用Cypress公司2002年发布的世界上第一块带 有USB2.0接口的芯片CY7C68013与PC机(主板为支持USB2.0的华硕主板PB533)实现了高分辨率(640×480点阵以上)、快速(24帧/s以上)、全数字图像的实时采集系统。
1 数字图像的实时采集原理
数字图像的实时采集原理如图1所示。在图1中,以Omnivision technologies公司的OV7620/7120芯片作为图像采集芯片,其主要特点是该芯片可提供0.5~30帧/s,640×480像素点阵CMOS的彩色或黑白数字图像,工作频率为27MHz,像素时钟为27MHz;以Cypress公司的CY7C68013作为CPU控制和USB2.0接口芯片,该芯片的主要特点是在一块芯片上集成了USB2.0内核和引擎、一个增强型51系列的微处理器,及可编程外围接口的芯片,提供了高效率的时序解决方案,在这种有独创性的结构下,仍然使用低价位的51系列的微处理器,其数据传输速度可以达到56MB/s,可以提供USB2.0的最大带宽。因此在图1中,CPU控制和USB2.0接口芯片选择了上述芯片。图像芯片(OV7620/7120)所采集的图像数据按设定的频率(0.5~30帧/s),在CY7C68013内部51CPU的控制下,直接将其送到CY7C68013的FIFO缓冲区,再由其内部的USB2.0接口通过USB电缆将其图像数据传输到计算机。
2 数字图像的实时传输
为了实现数字图像的实时传输,必须解决影响实时传输的几大因素:一是图像芯片采集速度;二是图像芯片与CY7C68013的FIFO缓冲区之间的传输速度;三是CY7C68013内部的USB2.0与带有USB2.0接口计算机之间的传输速度;四是计算机中应用软件的接收图像、处理图像速度。以下将分别加以具体说明。

    (1)图像芯片采集速度
图像芯片采集速度是选择图像芯片的关键指标,在该指标满足的前提下,选取图像分辨率相对较高的图像芯片。如可以选取Photobit公司的PB-0300或Omnivision公司的OV7620以及Philips公司的SAA7111等高分辨率图像采集及处理芯片。
(2)图像芯片与CY7C68013的传输速度
一般的,对于大多数CMOS数字图像采集和处理芯片,其数据传输速度为其像素时钟,与其工作频率基本一致,其周期小于40ns;而当CY7C68013工作在主频48MHz时,其内部的通用编程接口可以将外部5~48MHz的数据传输到内部FIFO缓冲区。可见,应选取像素数据传输速度合适的图像采集及处理芯片。
(3)CY7C68013与计算机之间的传输速度
在USB1.0和USB1.1接口中,只支持低速和全速两种传输方式。在低速方式下其最大传输速度为1.5Mbps;在全速方式下其最大传输速度为12Mbps。显然,在这两种方式下要完成高分辨率(640×480像素点阵以上)的数字图像实时传输(24帧/s以上)是不可能的。而USB2.0接口,除支持低速和全速两种传输方式外,还支持高速传输方式。在高速传输方式下,其最大传输速度为480Mbps。因此选取带有USB2.0内核的CY7C68013芯片作为USB2.0接口芯片及带有USB2.0接口的计算机,满足数字图像的实时传输速度要求。
(4)计算机中应用软件的处理速度
计算机中,应用软件的接收图像、处理图像速度,也是完成高分辨率数字图像实时传输所面临的一个很大挑战。特别是在Windows多任务作业下的延迟,更是如此。
此外,USB总线的带宽、操作系统等也会影响数字图像的实时传输。
3 系统实现及固件程序设计
(1)系统实现
本系统的具体和详细设计如图2所示的数据采集逻辑原理图。在图2中,图像采集处理芯片用OV7620/7120,时钟频率为27MHz,像素时钟为27MHz;CPU控制和USB2.0接口芯片用CY7C68013,时钟频率为24MHz,通过对CY7C68013内部的CPUCS寄存器进行修改,使其工作在48MHz方式下。根据芯片OV7620/7120及CY7C68013内部的FIFO、通用编程接口等特点,其具体接法是:将OV7620/7120的像素时钟PCLK接到CY7C68013的IFCLK上;OV7620/7120的HREF、VSYNC分别接到CY7C68013的RDY0、RDY1上;同时将OV7620/7120的VSYNC、CHSYNC分别接到CY7C68013的INT0、INT1上。将CY7C68013的PE0、PE1接在OV7620/7120的I2C BUS上。


图2


    (2)固件程序设计
按照图2数据采集逻辑原理图,其固件程序设计主要由以下几部分组成。
①USB2.0接口的初始化程序设计。本段程序主要通过对CY7C68013的CPUCS寄存器进行设定,使CY7C68013重枚举后工作在频率48MHz下;通过对CY7C68013的USBCS寄存器设定,使其USB内核工作在USB2.0方式下,由固件程序应答USB的传输,而不是由USB内核应答;同时通过对CY7C68013的IFCONFIG寄存器设定,使其CY7C68013工作在通用编程接口方式下。
②图像芯片的初始化程序设计。本段程序主要通过CY7C68013的PE0、PE1模拟I2C BUS的时序,完成对图像芯片的初始化、显示窗口大小、数据格式、显示帧数等工作。
③通用编程接口(GPIF)程序设计。本接口程序设计主要完成对CY7C68013通用编程接口的初始化以及控制信号RDYx和CTLx(本设计中未用)、数据宽度(8位)、FIFO缓冲区、计数器等的编程设计,并对OV7620/7120的输入信号HREF、VSYNC等进行逻辑控制,即当HREF为高电平、VSYNC为底时,数据开始传输。
④USB2.0等时传输程序设计。本段程序主要完成USB2.0的等时传输功能。要实时采样数据,必须使用USB2.0的等时传输技术及中断技术。
⑤主程序设计。在主程序中,除要完成①~④中断论述的功能外,还要给出USB控制传输的固件应答程序及相应的中断初始化和中断服务程序,其完整程序见本刊网站www.dpj.com.cn
4 结论
本系统在工业在线检测、无人驾驶汽车等领域得到了很好的应用,满足了应用的需求。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-27 11:12 , 耗时 0.092772 秒, 21 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表