《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 模擬設(shè)計(jì) > 設(shè)計(jì)應(yīng)用 > 基于AD9883A與USB的VGA圖像采集與顯示系統(tǒng)
基于AD9883A與USB的VGA圖像采集與顯示系統(tǒng)
摘要: 圖像顯示接口由于采用不同的USB控制處理器件,主機(jī)需安裝各種專用驅(qū)動(dòng)程序,且互不兼容,所以需要向USB接口的視頻設(shè)備提供統(tǒng)一的數(shù)據(jù)交換規(guī)范以方便快捷地與計(jì)算機(jī)通信。因此,這里給出了基于AD9883A與USB的VGA圖像采集與顯示系統(tǒng)的解決方案。
Abstract:
Key words :

  1 引言

  高速大容量圖像數(shù)據(jù)采集與顯示系統(tǒng)在雷達(dá)、氣象、地震預(yù)報(bào)、航空航天、通信等領(lǐng)域中有著廣泛的應(yīng)用前景。這些領(lǐng)域的信號(hào)處理具有實(shí)時(shí)性強(qiáng),數(shù)據(jù)率高,數(shù)據(jù)量大,處理復(fù)雜,運(yùn)算量大等特點(diǎn)。這就要求圖像數(shù)據(jù)采集必須具有處理大量數(shù)據(jù)的能力;并對(duì)其體積,功耗和穩(wěn)定性要求嚴(yán)格。高轉(zhuǎn)換率低功耗的A/D轉(zhuǎn)換器與高效FPGA相結(jié)合可完成該功能要求。圖像顯示接口由于采用不同的USB控制處理器件,主機(jī)需安裝各種專用驅(qū)動(dòng)程序,且互不兼容,所以需要向USB接口的視頻設(shè)備提供統(tǒng)一的數(shù)據(jù)交換規(guī)范以方便快捷地與計(jì)算機(jī)通信。因此,這里給出了基于AD9883A與USB的VGA圖像采集與顯示系統(tǒng)的解決方案。

  2 系統(tǒng)整體設(shè)計(jì)

  圖1為圖像采集顯示系統(tǒng)框圖。

圖像采集顯示系統(tǒng)框圖

  (1)VGA輸入模塊 將模擬信號(hào)RGB及行同步信號(hào),場(chǎng)同步信號(hào)輸入給A/D轉(zhuǎn)換模塊。由于該模塊是由模擬電路組成,易產(chǎn)生噪聲,因此接口器件應(yīng)盡量靠近A/D轉(zhuǎn)換器放置。

  (2)A/D轉(zhuǎn)換模塊 首先根據(jù)同步信號(hào)確定所采樣的行頻和場(chǎng)頻,接著由行頻和內(nèi)部寄存器確定像素時(shí)鐘,A/D轉(zhuǎn)換器內(nèi)部PLL產(chǎn)生像素時(shí)鐘。將VGA輸入的模擬信號(hào)轉(zhuǎn)換為8×3路的數(shù)字視頻信號(hào),并通過(guò)一系列寄存器調(diào)整圖像的采樣效果。

  (3)FPGA控制模塊 一方面FPGA通過(guò)I2C總線向A/D轉(zhuǎn)換器寄存器寫入控制信息;另一方面輸出8×3路的數(shù)字信號(hào)。當(dāng)FPGA接收8×3路信號(hào)時(shí),由于其像素頻率為75 MHz,與FPGA內(nèi)部時(shí)鐘頻率不一致,而且數(shù)據(jù)速率較大,因此,可利用兩個(gè)FIFO以pingpong的方式讀取。

  (4)USB輸出顯示模塊FIFO為異步接口,具有數(shù)據(jù)緩沖作用。通過(guò)USB控制器獲取存儲(chǔ)在FIFO的數(shù)據(jù),并通過(guò)USB接口傳送至計(jì)算機(jī)以顯示。

  3 系統(tǒng)硬件設(shè)計(jì)

  3.1 VGA接口

  VGA是一種D型接口,可傳輸VGA,SVGA,XGA,SXGA等圖像格式。VGA接口共有15針,分成3排,每排5個(gè)。VGA接口是顯卡應(yīng)用最為廣泛的接口類型。

  系統(tǒng)VGA模擬信號(hào)輸入與A/D轉(zhuǎn)換器相連,A/D轉(zhuǎn)換器的RAIN,GAIN,BAIN分別與模擬接口的R,G,B相連。

  3.2 A/D轉(zhuǎn)換接口

  由于A/D轉(zhuǎn)換器的采樣率較高,相應(yīng)的輸出數(shù)據(jù)速率也高。在系統(tǒng)最高要求下,像素點(diǎn)頻率為108 MHz,相應(yīng)的數(shù)據(jù)速率為324 Mbit/s(R,G,B 3個(gè)分量,每個(gè)分量8 bit)。同時(shí),由于采集圖像數(shù)據(jù),要求較高的行同步時(shí)。如果某一行圖像數(shù)據(jù)丟失一個(gè)或多個(gè)點(diǎn)數(shù)據(jù),整個(gè)圖像就會(huì)產(chǎn)生傾斜。因此需突發(fā)存儲(chǔ)每行數(shù)據(jù),保證數(shù)據(jù)不丟失。其突發(fā)長(zhǎng)度為圖像的水平分辨率。

  該采集模塊的A/D轉(zhuǎn)換器采用AD9883A。該器件是專門針對(duì)采集模擬R,G,B信號(hào),并將其數(shù)字化顯示或?yàn)槠渌麘?yīng)用而設(shè)計(jì)的。該器件具有采樣精度為8 bit的3路通道,最高采樣率為140 MS/s,300 MB的模擬帶寬,并且優(yōu)化了計(jì)算機(jī)及工作站的圖像接口,可采樣分辨率為1280×1024。刷新率為75 Hz的視頻信號(hào)?;贏D9883A的電路可為高清電視(HDTV)提供良好的計(jì)算機(jī)接口和高性能視頻設(shè)備的前端掃描轉(zhuǎn)換器。AD9883A內(nèi)部結(jié)構(gòu)如圖2所示。

AD9883A內(nèi)部結(jié)構(gòu)

  輸入VGA圖像信號(hào)后,先箝位以調(diào)整其直流偏移分量,使輸入電平滿足A/D轉(zhuǎn)換模塊要求。AD9883A內(nèi)部具有3個(gè)高帶寬、8 bit分辨率、110MS/s轉(zhuǎn)換速率的A/D轉(zhuǎn)換器,對(duì)箝位后的模擬視頻信號(hào)進(jìn)行采樣、量化、編碼,得到數(shù)字視頻信號(hào),通過(guò)寄存器調(diào)整采樣相位,獲得最佳轉(zhuǎn)換效果。

  采樣時(shí)鐘通過(guò)配置鎖相環(huán)(PLL)生成,可使用行同步信(HSYNC)作為參考時(shí)鐘,然后經(jīng)分頻,得到A/D轉(zhuǎn)換器所需的采樣時(shí)鐘。AD9883A內(nèi)部集成一個(gè)超低抖動(dòng)鎖相環(huán),在所有工作模式下時(shí)鐘抖動(dòng)不到點(diǎn)時(shí)鐘的5%。AD9883A時(shí)鐘的穩(wěn)定性對(duì)于系統(tǒng)產(chǎn)生清晰穩(wěn)定的圖像十分重要。由于AD9883A具有一個(gè)寬范圍,可調(diào)的鎖相環(huán),能夠產(chǎn)生12~140 MHz的像素點(diǎn)頻率,因此AD9883A支持豐富的輸入圖像格式。

  AD9883A的同步信號(hào)產(chǎn)生模塊能識(shí)別多種同步信號(hào)輸入模式,同時(shí)也可根據(jù)需要靈活設(shè)定同步信號(hào)的輸出模式。通過(guò)I2C總線時(shí)序,方便實(shí)現(xiàn)器件初始化。

  A/D轉(zhuǎn)換模塊能采集多種VGA圖像格式,但不能自動(dòng)檢測(cè)圖像格式,必須通過(guò)它提供的I2C接口進(jìn)行設(shè)置,F(xiàn)PGA自動(dòng)檢測(cè)圖像格式,并設(shè)置A/D轉(zhuǎn)換模塊。另外,不同格式的VGA圖像中場(chǎng)同步信號(hào)的有效脈沖電平不統(tǒng)一,A/D轉(zhuǎn)換模塊可自動(dòng)檢測(cè)輸入的場(chǎng)同步信號(hào)極性并存儲(chǔ)到內(nèi)部寄存器,通過(guò)讀取該寄存器判斷輸入VGA信號(hào)場(chǎng)同步的極性。A/D轉(zhuǎn)換模塊輸出的場(chǎng)同步信號(hào)實(shí)現(xiàn)輸入場(chǎng)同步信號(hào)的反相。FP-GA內(nèi)部的同步邏輯只支持一種有效電平的場(chǎng)同步信號(hào),因此在采集前需讀取A/D轉(zhuǎn)換器內(nèi)部寄存器來(lái)判斷當(dāng)前輸入同步信號(hào)的極性,以確定是否需要設(shè)置A/D轉(zhuǎn)換器對(duì)場(chǎng)同步信號(hào)進(jìn)行反相處理。

 

  輸入的模擬視頻信號(hào)經(jīng)箝位處理、增益與偏置控制后,AD9883內(nèi)部3個(gè)高精度高速A/D轉(zhuǎn)換器在鎖相環(huán)產(chǎn)生的采樣時(shí)鐘作用下,轉(zhuǎn)換為顯示所需的數(shù)字視頻信號(hào)。圖3為其數(shù)據(jù)輸出的時(shí)序,在輸出數(shù)據(jù)時(shí)鐘DATACK的下降沿,采樣及量化其對(duì)應(yīng)的信號(hào),量化后的數(shù)據(jù)在時(shí)鐘上升沿輸出:接口電路以DATACK的上升沿準(zhǔn)確鎖存圖像數(shù)據(jù),實(shí)現(xiàn)數(shù)字化圖像的采集。考慮到像素時(shí)鐘和數(shù)據(jù)的相位延遲等問(wèn)題,可用HSYNC消除邊沿定時(shí)的不確定性。要注意的是,AD9883A有一個(gè)數(shù)據(jù)輸出通道,在輸出數(shù)據(jù)有效之前必須清空通道,從而導(dǎo)致在輸出每行有效數(shù)據(jù)之前將輸出4組無(wú)效數(shù)據(jù),可通過(guò)對(duì)時(shí)鐘計(jì)數(shù)避免輸出這些無(wú)效數(shù)據(jù)。

數(shù)據(jù)輸出的時(shí)序

  3.3 FPGA控制器設(shè)計(jì)

  主控FPGA產(chǎn)生系統(tǒng)所需的控制信號(hào),保證各個(gè)模塊協(xié)涮工作。該系統(tǒng)設(shè)計(jì)采用EP1C12Q240C8型FPGA。其內(nèi)部模塊框圖如圖4所示。

內(nèi)部模塊框圖

  FPGA內(nèi)部由主控制、A/D轉(zhuǎn)換接口、FIFO,以及USB等模塊組成。主控制模塊負(fù)責(zé)協(xié)調(diào)各模塊之間的工作。A/D轉(zhuǎn)換接口模塊接收A/D轉(zhuǎn)換模塊輸出的數(shù)據(jù)和同步信號(hào)并保證圖像數(shù)據(jù)的行、場(chǎng)同步,F(xiàn)IFO模塊采用pingpong的方式讀取A/D轉(zhuǎn)換傳輸?shù)?×3路數(shù)字信號(hào),然后USB輸出接口模塊輸出高速數(shù)據(jù)。

  3.4 輸出顯示設(shè)計(jì)

  USB接口模塊為應(yīng)用程序和功能性設(shè)備提供可靠接口,USB體系可分為USB主機(jī)和USB設(shè)備兩部分,其模塊結(jié)構(gòu)圖如圖5所示。

模塊結(jié)構(gòu)圖

  USB接口器件選用Cypress公司的EZ-USB FX2器件CY7C68013A。該器件內(nèi)部集成USB 2.0收發(fā)器智能串行引擎SIE,增強(qiáng)型8051控制器,通用可編程接口(GPIF),8.5 KB的RAM和4 KB的FIFO存儲(chǔ)器,F(xiàn)X2系列的獨(dú)創(chuàng)性設(shè)計(jì)可滿足USB2.0的總線帶寬。

  該系統(tǒng)以傳輸控制信息和視頻數(shù)據(jù)為主,可將器件置于Slave FIFO模式,USB串行接口引擎(SIE)直接與Slave FIFO傳輸數(shù)據(jù),Slave FIFO再與外部設(shè)備(FPGA)通信,從而實(shí)現(xiàn)PC機(jī)與FPGA的通信,并顯示視頻數(shù)據(jù)。

  3.5 USB設(shè)備驅(qū)動(dòng)開發(fā)

  USB設(shè)備驅(qū)動(dòng)程序嘲是連接USB外設(shè)、操作系統(tǒng)以及用戶應(yīng)用程序的橋梁,是USB設(shè)備連接到計(jì)算機(jī)系統(tǒng)的軟件接口。EZ-USB FX2器件CY7C68013A的設(shè)備驅(qū)動(dòng)程序有兩種:一種用來(lái)在設(shè)備接入時(shí)從主機(jī)下載的固件存儲(chǔ)RAM中,稱為同件下載驅(qū)動(dòng)程序(wdgtldr.sys);另一種是在設(shè)備重新列舉后加載的通用設(shè)備驅(qū)動(dòng)程序(ezusb.sys),應(yīng)用軟件通過(guò)該設(shè)備驅(qū)動(dòng)程序與FX2通信。編寫上位機(jī)程序的一個(gè)類USB Video Class,它對(duì)應(yīng)于硬件CY7C68013A的一個(gè)同件,Video Class協(xié)議的目的是給USB接口的視頻設(shè)備提供統(tǒng)一的數(shù)據(jù)交換規(guī)范,這樣CY7C68013A接入PC后就無(wú)需ezusb.sys,而是使用PC自帶的Video驅(qū)動(dòng)將其識(shí)別為Video設(shè)備。

  固件的程序代碼既可通過(guò)外部E2PROM下載,也可通過(guò)主機(jī)下載,這里選用從主機(jī)下載。其中,USB Video Class協(xié)議是主機(jī)端通過(guò)向設(shè)備端獲取描述符(Descriptor)來(lái)得到視頻設(shè)備端的結(jié)構(gòu)及其所支持的功能。而控制這些功能模塊,配置數(shù)據(jù)源和數(shù)據(jù)流,則需通過(guò)Request(包括所有USB設(shè)備都需要支持的Standard Device Requests和Class與相關(guān)的Class Specific Requests)完成。

  操作系統(tǒng)通過(guò)驅(qū)動(dòng)程序?qū)崿F(xiàn)對(duì)Video Class的支持。Video Class驅(qū)動(dòng)的整體框架分為兩部分:一部分是負(fù)責(zé)處理模塊的初始化,處理USB總線上的Descriptor和Requests的交互,包括USB總線上的控制和查詢包的接收、解釋、分配和應(yīng)答:另一部分是在初始化中啟動(dòng)的一個(gè)獨(dú)立的內(nèi)核線程。負(fù)責(zé)執(zhí)行具體的控制指令,獲取和傳輸圖像數(shù)據(jù)。

  表1給出了USB Video Class程序中Uncompressed Video Format Descriptor(未壓縮的視頻格式描述符)的相關(guān)定義和實(shí)例。這個(gè)描述符定義了一種特殊的視頻流的特性,用于定義未縮視頻的信息,包括所有的YUV類型。一個(gè)視頻終端包含屬于相關(guān)通道的USB端點(diǎn)IN或OUT,可支持一個(gè)或多個(gè)格式定義。為了選擇一種特定的格式,因此主機(jī)需發(fā)送控制請(qǐng)求給相關(guān)的通道。

USB Video Class程序中Uncompressed Video Format Descriptor

  4 結(jié)語(yǔ)

  實(shí)現(xiàn)基于AD9883A和USB的8×3 bit,高速圖像數(shù)據(jù)采樣和顯示系統(tǒng)設(shè)計(jì)。該系統(tǒng)最高采樣速率可達(dá)110 Ms/s,采用高速率低功耗的AD9883A對(duì)1024×768,70Hz的圖像進(jìn)行采樣,通過(guò)FPGA控制電路,CY7C68013A作為USB2.0的專用接口器件實(shí)現(xiàn)PC機(jī)與PFGA的通信,采用USB Video Class類,而不用加載額外的通用設(shè)備驅(qū)動(dòng)程序。利用高速A/D轉(zhuǎn)換器,F(xiàn)PGA和USB共同實(shí)現(xiàn)電路的高速化與集成化。該系統(tǒng)可廣泛應(yīng)用于雷達(dá)、氣象預(yù)報(bào)、航空航天、通信等領(lǐng)域的圖像數(shù)據(jù)實(shí)時(shí)記錄。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。