基于USB2.0的高速圖像傳輸系統(tǒng)設(shè)計(jì)
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:針對(duì)油氣井視頻檢測(cè)高速圖像采集傳輸?shù)囊?,設(shè)計(jì)一種基于通用串行總線USB2.0協(xié)議的高速圖像采集系統(tǒng)。該系統(tǒng)設(shè)計(jì)是以TMS320DM6437型DSP為系統(tǒng)核心,并通過(guò)USB接口器件與PC主機(jī)相連,實(shí)現(xiàn)與PC主機(jī)的高速數(shù)據(jù)傳輸。該高速圖像采集系統(tǒng)應(yīng)用于油氣勘探實(shí)現(xiàn)井下視頻檢測(cè)。
關(guān)鍵詞:圖像采集;采集系統(tǒng);USB2.0協(xié)議;DSP;TMS320DM6437;CY7C68033
1 引言
圖像處理、瞬態(tài)信號(hào)檢測(cè)等領(lǐng)域要求高速度、高精度、高實(shí)時(shí)性的數(shù)據(jù)采集與處理技術(shù),因此對(duì)高速圖像采集系統(tǒng)的數(shù)據(jù)傳輸提出更高要求。現(xiàn)在高速圖像采集系統(tǒng)一般采用高性能數(shù)字信號(hào)處理器(DSP)和高速總線的框架結(jié)構(gòu)。DSP完成計(jì)算量巨大的實(shí)時(shí)處理算法,高速總線實(shí)現(xiàn)處理結(jié)果或采樣數(shù)據(jù)的快速傳輸,可采用ISA、PCI、USB等高速總線,而USB總線具有安裝方便、高帶寬、易擴(kuò)展、傳輸速率高達(dá)480 b/s,已成為計(jì)算機(jī)接口的主流。因此,這里介紹一種采用USB2.0接口和高性能DSP的高速圖像采集處理系統(tǒng),主要應(yīng)用于井下視頻檢測(cè),也可應(yīng)用于光纖通信、雷達(dá)信號(hào)處理等領(lǐng)域。
2 圖像采集系統(tǒng)硬件設(shè)計(jì)
2.1 系統(tǒng)硬件設(shè)計(jì)架構(gòu)
圖1為該高速圖像采集系統(tǒng)硬件設(shè)計(jì)架構(gòu)。該系統(tǒng)設(shè)計(jì)選用ICX205AL型CCD傳感器來(lái)采集圖像,前端被測(cè)物體的光線經(jīng)光學(xué)系統(tǒng)聚集在CCD傳感器上,然后輸出信號(hào)經(jīng)低噪聲的OP37傳輸至高速、高精度的AD9220型A/D轉(zhuǎn)換器,所轉(zhuǎn)換的數(shù)據(jù)再經(jīng)DSP預(yù)處理,通過(guò)USB接口器件傳輸給PC機(jī),這樣就完成了圖像采集過(guò)程。
ICX205AL型高速面陣CCD傳感器的有效像素可達(dá)到1145 M(1 392 Hx1 040 V),水平驅(qū)動(dòng)頻率141 318 MHz,并具有靈敏度高、暗電流小、分辨率高、轉(zhuǎn)移速度快、連續(xù)可調(diào)電子快門(mén)等特點(diǎn)。
該系統(tǒng)設(shè)計(jì)選用TMS320DM6437型高性能的數(shù)字媒體處理器DSI作為核心控制。TMS320DM6437通過(guò)HPI接口訪問(wèn)USB接口器件。HPI接口是一個(gè)并行端口,16位數(shù)據(jù)總線寬度,8級(jí)深度內(nèi)部讀寫(xiě)緩存,通過(guò)HPIC、HPIA、HPID 3個(gè)寄存器組合易于實(shí)現(xiàn)主機(jī)對(duì)DSP的控制。主機(jī)(上位機(jī))通過(guò)HPI接口直接訪問(wèn)DSP的全部存儲(chǔ)空間,包括存儲(chǔ)映射的外圍設(shè)備。主機(jī)和DSP都可訪問(wèn)HPI的控制寄存器(HPIC),此外,主機(jī)還可訪問(wèn)地址寄存器(HPIA)和數(shù)據(jù)寄存器(HPID)。
USB接口器件采用Cypress公司的CY7C68033,其內(nèi)部集成有USB2.0收發(fā)器、串行接口引擎(SIE)、增強(qiáng)型的8051內(nèi)核和可編程控制的外圍接口(GPIF),可提供高速數(shù)據(jù)傳輸有效、方便的解決方案。CY7C68033的固件程序位于內(nèi)部RAM中,由uSB或電子可擦寫(xiě)可編程只讀存儲(chǔ)器(EEP-ROM)下載;具有4個(gè)可以自由編程分配控制的端點(diǎn);8位或16位外部數(shù)據(jù)接口:內(nèi)部具有4個(gè)集成的FIFO,對(duì)外有兩種接口模式,Master模式使用GPIF接口,Slave FIFO模式使用集成的FIFO供外部設(shè)備讀寫(xiě),很容易與外部的專(zhuān)用集成電路或DSP器件連接;內(nèi)置增強(qiáng)型的8051內(nèi)核時(shí)鐘最高可達(dá)48 MHz,其指令周期只需4個(gè)時(shí)鐘周期;具有2個(gè)通用異步收發(fā)器(UART)、3個(gè)定時(shí)計(jì)數(shù)器、擴(kuò)展的中斷系統(tǒng);內(nèi)置2個(gè)I2C總線控制模塊。
2.2 USB接口設(shè)計(jì)
圖2是該高速圖像采集系統(tǒng)的USB接口電路連接圖。
圖2中,CY7C68033的PA3~PA2引腳作為地址線與TMS320DM6437 DSP的HCNTL[1:0]相連,用于選擇HPI的寄存器與工作模式;FD[15:0]作為16位數(shù)據(jù)總線與HPl的數(shù)據(jù)總線HD[15:0]相連,用于交換數(shù)據(jù);CTLx引腳為GPIF的輸出控制信號(hào),RDYO引腳為GPIF的輸入控制信號(hào)。由于訪問(wèn)HPI寄存器需兩次半字傳輸,因此使用CY7C68033的CTL0引腳進(jìn)行控制。TMS320DM6437的HR/W接至CTL1,用來(lái)作為讀/寫(xiě)選擇標(biāo)志;HDS1與CTL2相連,作為數(shù)據(jù)選通信號(hào)。HRDY與輸入信號(hào)線RDYO相連,用于查詢(xún)HPI接口狀態(tài),GPIF通過(guò)監(jiān)測(cè)該信號(hào)以控制內(nèi)部存取操作。TMS320DM6437的HINT與CY7C68033的INT0引腳相連,DSP復(fù)位時(shí)HINT引腳啟用,該引腳也用于DSP向CY7C68033發(fā)送外部中斷請(qǐng)求。另外,TMS320DM6437的HCS3引腳接地表示可對(duì)HPI進(jìn)行連續(xù)存取操作。
3 圖像采集系統(tǒng)軟件設(shè)計(jì)
當(dāng)USB設(shè)備插入計(jì)算機(jī)時(shí),計(jì)算機(jī)和USB設(shè)備之間產(chǎn)生一個(gè)枚舉過(guò)程。計(jì)算機(jī)檢測(cè)到有設(shè)備插入。自動(dòng)發(fā)出查詢(xún)請(qǐng)求;USB設(shè)備回應(yīng)該請(qǐng)求,發(fā)送出該設(shè)備的Vendor ID和Product ID;計(jì)算機(jī)根據(jù)這兩個(gè)ID裝載相應(yīng)設(shè)備驅(qū)動(dòng)程序,完成枚舉過(guò)程。然后就可以傳輸數(shù)據(jù),接收數(shù)據(jù),即TMS320DM6437 DSP向PC機(jī)傳輸數(shù)據(jù)時(shí),首先向CY7C68033發(fā)送一硬件中斷信號(hào),CY7C68033接收該中斷,并啟動(dòng)接收程序,通過(guò)HPI接口設(shè)置DSP的HPIC寄存器的HINT標(biāo)志位,使DSP下一次仍通過(guò)該位發(fā)出中斷:然后通過(guò)端口6將固定長(zhǎng)度(512字節(jié))的數(shù)據(jù)讀人FIFO:端口6讀取數(shù)據(jù)時(shí),為了保證較高的傳輸速度,CY7C68033中的CPU不能干預(yù)數(shù)據(jù)傳輸,當(dāng)FIFO中的數(shù)據(jù)達(dá)到一定數(shù)量后,CY7C68033自動(dòng)將數(shù)據(jù)打包傳送給USB總線;發(fā)送數(shù)據(jù)時(shí),它將數(shù)據(jù)包直接傳輸給CY7C68033,CY7C68033接收到數(shù)據(jù)后,按指定字節(jié)長(zhǎng)度將數(shù)據(jù)讀到發(fā)送端口2的FIFO中,然后自動(dòng)啟動(dòng)GPIF,將數(shù)據(jù)傳送給DSP,接下來(lái)CY7C68033通過(guò)HPI接口設(shè)置DSP的HPIC寄存器中的DSPINT位(將其置1),向DSP發(fā)送請(qǐng)求中斷,通知DSP有數(shù)據(jù)包。
USB設(shè)備的軟件開(kāi)發(fā)包括設(shè)備固件、設(shè)備驅(qū)動(dòng)程序以及應(yīng)用程序3方面設(shè)計(jì)。
3.1 設(shè)備固件
設(shè)備固件設(shè)計(jì)是由主程序和中斷處理程序2部分組成,其中,主程序負(fù)責(zé)系統(tǒng)外設(shè)器件的互聯(lián)以及初始化設(shè)置USB端口等。系統(tǒng)上電時(shí),通過(guò)USB電纜將固件程序下載到CY7C68033的內(nèi)部RAM,為了傳輸可靠,固件程序下載采用批量傳輸方式。由于系統(tǒng)要求快速持續(xù)傳輸大量數(shù)據(jù),因此采用同步傳輸方式。
3.2 USB設(shè)備驅(qū)動(dòng)程序
USB設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)一般采用Windows DDK(devicedriver kil)設(shè)計(jì),但由于DDK的復(fù)雜性和調(diào)試難度,難以開(kāi)發(fā)穩(wěn)定完善的USB驅(qū)動(dòng)程序。因此,這里選用NuMega公司的開(kāi)發(fā)軟件DriverWorks,它是以面向?qū)ο蟮乃枷胪耆庋bDDK的所有庫(kù)函數(shù)。
通過(guò)DriverWorks提供的類(lèi),編寫(xiě)大部分驅(qū)動(dòng)程序。最重要的是DriverWorks提供對(duì)USB總線的封裝,這樣大大簡(jiǎn)化對(duì)USB總線的操作接口。DriverWorks通過(guò)向?qū)蒛SB驅(qū)動(dòng)程序的框架,并利用KDriver、KPnpDevice、KpnpLowerDe-vice等類(lèi)簡(jiǎn)化WDM(Win32 driver module)驅(qū)動(dòng)程序編程,它們分別對(duì)應(yīng)的封裝是WDM中的PD0、FD0、FiD0。每一個(gè)WDM驅(qū)動(dòng)程序都有一個(gè)入口函數(shù)AddDevice,當(dāng)PC機(jī)監(jiān)測(cè)到USB接口中接入新設(shè)備時(shí).立刻調(diào)用入口函數(shù)AddDevice并且創(chuàng)建設(shè)備的PD0,接著將其保存到函數(shù)參數(shù)指針中。成員函數(shù)AddDevice同時(shí)創(chuàng)建另外一個(gè)設(shè)備對(duì)象FD0.它被KPnpDevice封裝。對(duì)WDM總線驅(qū)動(dòng)程序的上層接口通過(guò)KpnpLowerDevice類(lèi)實(shí)現(xiàn)FD0和PD0之間的連接,同時(shí)它也提供對(duì)PD0的操作接口。對(duì)USB客戶(hù)驅(qū)動(dòng)程序從KLow-erDevice類(lèi)派生出的KusbLowerDevice類(lèi)封裝USB的底層設(shè)備對(duì)象,通過(guò)其接口操作USB總線的驅(qū)動(dòng)程序。
3.3 客戶(hù)應(yīng)用程序
PC機(jī)上的應(yīng)用程序使用VC++編寫(xiě)。應(yīng)用程序通過(guò)調(diào)用Windows API函數(shù)實(shí)現(xiàn)系統(tǒng)所要求的功能。應(yīng)用程序主要采用以下3個(gè)函數(shù):ReadFile,WriteFile和DevriceloControl。ReadFile從前端圖像采集系統(tǒng)讀取數(shù)據(jù);WriteFile向圖像采集系統(tǒng)寫(xiě)入數(shù)據(jù):DeviceloControl在PC機(jī)中從圖形采集系統(tǒng)讀取數(shù)據(jù)或向圖像采集系統(tǒng)寫(xiě)入數(shù)據(jù)前向DSP發(fā)送交換數(shù)據(jù)的請(qǐng)求。
4 實(shí)驗(yàn)驗(yàn)證
DSP系統(tǒng)采集圖像后將數(shù)據(jù)發(fā)送至USB端口,主機(jī)應(yīng)用程序打開(kāi)設(shè)備,先從設(shè)備讀取設(shè)備描述符和通道信息,接著讀取USB端口數(shù)據(jù)。采用BUS HOUND監(jiān)控USB端口數(shù)據(jù)流,如圖3所示。從圖3看到:從USB端口讀取的數(shù)據(jù)包括設(shè)備描述符數(shù)據(jù)、通道信息數(shù)據(jù),以及從USB端口寫(xiě)入的數(shù)據(jù)塊。實(shí)驗(yàn)測(cè)試數(shù)據(jù)傳輸率達(dá)29.5 MB/s,1 s能夠傳輸15幀未經(jīng)壓縮圖像,完全滿足高速圖像傳輸要求。
5 結(jié)束語(yǔ)
高速圖像采集系統(tǒng)DSP通過(guò)CY7C68033的底層驅(qū)動(dòng)以及簡(jiǎn)單實(shí)用的編程結(jié)構(gòu),可方便建立上層PC機(jī)與DSP之間的USB通信信道。
根據(jù)DSP的HPI接口讀/寫(xiě)控制時(shí)序,連接CY7C68033的GPIF接口,將HPI接口的各個(gè)寄存器映射為CY7C68033的外部地址,使得CY7C68033能夠方便讀寫(xiě)DSP內(nèi)部RAM,從而建立基于USB2.0接口的PC機(jī)與DSP之間的高速圖像采集通信通道。
該系統(tǒng)設(shè)計(jì)充分利用USB的即插即用功能,高速圖像采集設(shè)備操作方便快捷,因此具有高使用價(jià)值。