利用单片机实现全数字图像的实时采集
引言
传统的方法是用视频采集卡(如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数据采集逻辑原理图,其固件程序设计主要由以下几部分组成。
①USB2.0接口的初始化程序设计。本段程序主要通过对CY7C68013的CPUCS寄存器进行设定,使CY7C68013重枚举后工作在频率48MHz下;通过对CY7C68013的USBCS寄存器设定,使其USB内核工作在USB2.0方式下,由固件程序应答USB的传输,而不是由USB内核应答;同时通过对CY7C68013的IFCONFIG寄存器设定,使其CY7C68013工作在通用编程接口方
- FPGA的DSP性能揭秘(06-16)
- 基于单片机通用引脚的软件UART设计(10-16)
- 分时操作系统思想在单片机中的具体应用 (10-30)
- 基于AT89C51+DSP的双CPU伺服运动控制器的研究(05-26)
- 关于RTX51 TINY的分析与探讨(05-30)
- 基于MC9S12DGl28单片机的智能寻迹车设计(04-03)
- 妤傛ḿ楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閸忋劍鏌熸担宥咁劅娑旂姴鐨犳0鎴滅瑩娑撴氨鐓$拠鍡礉閹绘劕宕岄惍鏂垮絺瀹搞儰缍旈懗钘夊閿涘苯濮幃銊ユ彥闁喐鍨氶梹澶歌礋娴兼ḿ顫呴惃鍕殸妫版垵浼愮粙瀣瑎...
- 娑擃厾楠囩亸鍕暥瀹搞儳鈻肩敮鍫濆悋閹存劕鐓跨拋顓熸殌缁嬪顨滅憗锟�
缁箖鈧拷30婢舵岸妫亸鍕暥閸╃顔勭拠鍓р柤閿涘奔绗撶€硅埖宸跨拠鎾呯礉閸斺晛顒熼崨妯烘彥闁喕鎻崚棰佺娑擃亜鎮庨弽鐓庣殸妫版垵浼愮粙瀣瑎閻ㄥ嫯顩﹀Ч锟�...
- Agilent ADS 閺佹瑥顒熼崺纭咁唲鐠囧墽鈻兼總妤勵棅
娑撴挸顔嶉幒鍫n嚦閿涘苯鍙忛棃銏n唹鐟欘枃DS閸氬嫮顫掗崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱遍崝鈺傚亶閻€劍娓堕惌顓犳畱閺冨爼妫跨€涳缚绱癆DS...
- HFSS鐎涳缚绡勯崺纭咁唲鐠囧墽鈻兼總妤勵棅
鐠у嫭绻佹稉鎾愁啀閹哄牐顕抽敍灞藉弿闂堛垼顔夐幒鍦欶SS閻ㄥ嫬濮涢懗钘夋嫲鎼存梻鏁ら敍灞藉簻閸斺晜鍋嶉崗銊╂桨缁崵绮洪崷鏉款劅娑旂姵甯夐幓顡嶧SS...
- CST瀵邦喗灏濆銉ょ稊鐎广倕鐓跨拋顓熸殌缁嬪顨滅憗锟�
閺夊孩妲戝ú瀣╁瘜鐠佽绱濋崗銊╂桨鐠佸弶宸緾ST閸氬嫰銆嶉崝鐔诲厴閸滃苯浼愮粙瀣安閻㈩煉绱濋崝鈺傚亶韫囶偊鈧喕鍤滅€涳附甯夐幓顡塖T鐠佹崘顓告惔鏃傛暏...
- 鐏忓嫰顣堕崺铏诡攨閸╃顔勭拠鍓р柤
娑撳洣绗€妤傛ɑ銈奸獮鍐叉勾鐠у嚖绱濇潻娆庣昂鐠囧墽鈻兼稉杞扮稑閸︺劌鐨犳0鎴炲Η閺堫垶顣崺鐔枫亣鐏炴洘瀚甸懘姘剧礉閹垫挷绗呴崸姘杽閻ㄥ嫪绗撴稉姘唨绾偓...
- 瀵邦喗灏濈亸鍕暥濞村鍣洪幙宥勭稊閸╃顔勭拠鍓р柤閸氬牓娉�
鐠愵厺鎷遍崥鍫ユ肠閺囨潙鐤勯幆鐙呯礉缂冩垵鍨庨妴渚€顣剁拫鍙樺崕閵嗕胶銇氬▔銏犳珤閵嗕椒淇婇崣閿嬬爱閿涘本鍨滅憰浣圭壉閺嶉绨块柅锟�...