基于USB2.0單片機(jī)的全數(shù)字圖像的實(shí)時(shí)采集設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:主要論述利用USB2.0單片機(jī)接口技術(shù)實(shí)現(xiàn)高分辨率(640×480點(diǎn)陣以上)、快速(24幀/s以上)全數(shù)字圖像的實(shí)時(shí)采集、傳輸?shù)脑?、方法和系統(tǒng)實(shí)現(xiàn),以及相應(yīng)的固件程序設(shè)計(jì)。
引言
傳統(tǒng)的方法是用視頻采集卡(如1394)對(duì)視頻信號(hào)進(jìn)行采集,利用相應(yīng)的軟件傳給PC機(jī),既不方便,也不經(jīng)濟(jì)。本文介紹一種利用Cypress公司2002年發(fā)布的世界上第一塊帶 有USB2.0接口的芯片CY7C68013與PC機(jī)(主板為支持USB2.0的華碩主板PB533)實(shí)現(xiàn)了高分辨率(640×480點(diǎn)陣以上)、快速(24幀/s以上)、全數(shù)字圖像的實(shí)時(shí)采集系統(tǒng)。
1 數(shù)字圖像的實(shí)時(shí)采集原理
數(shù)字圖像的實(shí)時(shí)采集原理如圖1所示。在圖1中,以O(shè)mnivision technologies公司的OV7620/7120芯片作為圖像采集芯片,其主要特點(diǎn)是該芯片可提供0.5~30幀/s,640×480像素點(diǎn)陣CMOS的彩色或黑白數(shù)字圖像,工作頻率為27MHz,像素時(shí)鐘為27MHz;以Cypress公司的CY7C68013作為CPU控制和USB2.0接口芯片,該芯片的主要特點(diǎn)是在一塊芯片上集成了USB2.0內(nèi)核和引擎、一個(gè)增強(qiáng)型51系列的微處理器,及可編程外圍接口的芯片,提供了高效率的時(shí)序解決方案,在這種有獨(dú)創(chuàng)性的結(jié)構(gòu)下,仍然使用低價(jià)位的51系列的微處理器,其數(shù)據(jù)傳輸速度可以達(dá)到56MB/s,可以提供USB2.0的最大帶寬。因此在圖1中,CPU控制和USB2.0接口芯片選擇了上述芯片。圖像芯片(OV7620/7120)所采集的圖像數(shù)據(jù)按設(shè)定的頻率(0.5~30幀/s),在CY7C68013內(nèi)部51CPU的控制下,直接將其送到CY7C68013的FIFO緩沖區(qū),再由其內(nèi)部的USB2.0接口通過(guò)USB電纜將其圖像數(shù)據(jù)傳輸?shù)接?jì)算機(jī)。
2 數(shù)字圖像的實(shí)時(shí)傳輸
為了實(shí)現(xiàn)數(shù)字圖像的實(shí)時(shí)傳輸,必須解決影響實(shí)時(shí)傳輸?shù)膸状笠蛩兀阂皇菆D像芯片采集速度;二是圖像芯片與CY7C68013的FIFO緩沖區(qū)之間的傳輸速度;三是CY7C68013內(nèi)部的USB2.0與帶有USB2.0接口計(jì)算機(jī)之間的傳輸速度;四是計(jì)算機(jī)中應(yīng)用軟件的接收?qǐng)D像、處理圖像速度。以下將分別加以具體說(shuō)明。
(1)圖像芯片采集速度
圖像芯片采集速度是選擇圖像芯片的關(guān)鍵指標(biāo),在該指標(biāo)滿足的前提下,選取圖像分辨率相對(duì)較高的圖像芯片。如可以選取Photobit公司的PB-0300或Omnivision公司的OV7620以及Philips公司的SAA7111等高分辨率圖像采集及處理芯片。
(2)圖像芯片與CY7C68013的傳輸速度
一般的,對(duì)于大多數(shù)CMOS數(shù)字圖像采集和處理芯片,其數(shù)據(jù)傳輸速度為其像素時(shí)鐘,與其工作頻率基本一致,其周期小于40ns;而當(dāng)CY7C68013工作在主頻48MHz時(shí),其內(nèi)部的通用編程接口可以將外部5~48MHz的數(shù)據(jù)傳輸?shù)絻?nèi)部FIFO緩沖區(qū)。可見(jiàn),應(yīng)選取像素?cái)?shù)據(jù)傳輸速度合適的圖像采集及處理芯片。
(3)CY7C68013與計(jì)算機(jī)之間的傳輸速度
在USB1.0和USB1.1接口中,只支持低速和全速兩種傳輸方式。在低速方式下其最大傳輸速度為1.5Mbps;在全速方式下其最大傳輸速度為12Mbps。顯然,在這兩種方式下要完成高分辨率(640×480像素點(diǎn)陣以上)的數(shù)字圖像實(shí)時(shí)傳輸(24幀/s以上)是不可能的。而USB2.0接口,除支持低速和全速兩種傳輸方式外,還支持高速傳輸方式。在高速傳輸方式下,其最大傳輸速度為480Mbps。因此選取帶有USB2.0內(nèi)核的CY7C68013芯片作為USB2.0接口芯片及帶有USB2.0接口的計(jì)算機(jī),滿足數(shù)字圖像的實(shí)時(shí)傳輸速度要求。
(4)計(jì)算機(jī)中應(yīng)用軟件的處理速度
計(jì)算機(jī)中,應(yīng)用軟件的接收?qǐng)D像、處理圖像速度,也是完成高分辨率數(shù)字圖像實(shí)時(shí)傳輸所面臨的一個(gè)很大挑戰(zhàn)。特別是在Windows多任務(wù)作業(yè)下的延遲,更是如此。
此外,USB總線的帶寬、操作系統(tǒng)等也會(huì)影響數(shù)字圖像的實(shí)時(shí)傳輸。
3 系統(tǒng)實(shí)現(xiàn)及固件程序設(shè)計(jì)
(1)系統(tǒng)實(shí)現(xiàn)
本系統(tǒng)的具體和詳細(xì)設(shè)計(jì)如圖2所示的數(shù)據(jù)采集邏輯原理圖。在圖2中,圖像采集處理芯片用OV7620/7120,時(shí)鐘頻率為27MHz,像素時(shí)鐘為27MHz;CPU控制和USB2.0接口芯片用CY7C68013,時(shí)鐘頻率為24MHz,通過(guò)對(duì)CY7C68013內(nèi)部的CPUCS寄存器進(jìn)行修改,使其工作在48MHz方式下。根據(jù)芯片OV7620/7120及CY7C68013內(nèi)部的FIFO、通用編程接口等特點(diǎn),其具體接法是:將OV7620/7120的像素時(shí)鐘PCLK接到CY7C68013的IFCLK上;OV7620/7120的HREF、VSYNC分別接到CY7C68013的RDY0、RDY1上;同時(shí)將OV7620/7120的VSYNC、CHSYNC分別接到CY7C68013的INT0、INT1上。將CY7C68013的PE0、PE1接在OV7620/7120的I2C BUS上。
(2)固件程序設(shè)計(jì)
按照?qǐng)D2數(shù)據(jù)采集邏輯原理圖,其固件程序設(shè)計(jì)主要由以下幾部分組成。
①USB2.0接口的初始化程序設(shè)計(jì)。本段程序主要通過(guò)對(duì)CY7C68013的CPUCS寄存器進(jìn)行設(shè)定,使CY7C68013重枚舉后工作在頻率48MHz下;通過(guò)對(duì)CY7C68013的USBCS寄存器設(shè)定,使其USB內(nèi)核工作在USB2.0方式下,由固件程序應(yīng)答USB的傳輸,而不是由USB內(nèi)核應(yīng)答;同時(shí)通過(guò)對(duì)CY7C68013的IFCONFIG寄存器設(shè)定,使其CY7C68013工作在通用編程接口方式下。
②圖像芯片的初始化程序設(shè)計(jì)。本段程序主要通過(guò)CY7C68013的PE0、PE1模擬I2C BUS的時(shí)序,完成對(duì)圖像芯片的初始化、顯示窗口大小、數(shù)據(jù)格式、顯示幀數(shù)等工作。
③通用編程接口(GPIF)程序設(shè)計(jì)。本接口程序設(shè)計(jì)主要完成對(duì)CY7C68013通用編程接口的初始化以及控制信號(hào)RDYx和CTLx(本設(shè)計(jì)中未用)、數(shù)據(jù)寬度(8位)、FIFO緩沖區(qū)、計(jì)數(shù)器等的編程設(shè)計(jì),并對(duì)OV7620/7120的輸入信號(hào)HREF、VSYNC等進(jìn)行邏輯控制,即當(dāng)HREF為高電平、VSYNC為底時(shí),數(shù)據(jù)開(kāi)始傳輸。
④USB2.0等時(shí)傳輸程序設(shè)計(jì)。本段程序主要完成USB2.0的等時(shí)傳輸功能。要實(shí)時(shí)采樣數(shù)據(jù),必須使用USB2.0的等時(shí)傳輸技術(shù)及中斷技術(shù)。
⑤主程序設(shè)計(jì)。在主程序中,除要完成①~④中斷論述的功能外,還要給出USB控制傳輸?shù)墓碳?yīng)答程序及相應(yīng)的中斷初始化和中斷服務(wù)程序。
4 結(jié)論
本系統(tǒng)在工業(yè)在線檢測(cè)、無(wú)人駕駛汽車(chē)等領(lǐng)域得到了很好的應(yīng)用,滿足了應(yīng)用的需求。