采用基于USB2.0總線技術和視頻解碼芯片SAA7114完成對紅外圖像的采集,利用FPGA實現視頻數據流的收發時序,通過USB接口芯片Ez-USB FX2 CY7C68013與主機進行通信。系統具有靈活性、即插即用、自動配置資源、應用廣泛。 目前,紅外熱像儀在軍事和民用領域應用廣泛,但市面多數紅外熱像儀隨機附帶的圖像處理功能較單一,不能進行復雜運算,而具有多功能的熱像儀價格昂貴。因此,文中提供了另一種解決方案,采用FPGA和USB2.0技術完成紅外視頻圖像的采集,再利用通用微型計算機完成圖像存儲及復雜圖像處理,此方法較靈活、方便,可建立起圖像數據庫為后續的研究工作提供數據支持。該系統包括圖像采集、存儲及提取模塊,其體積小、功耗低、速度快、適應性強,能夠滿足日常紅外圖像處理應用。 1 系統構成及原理 硬件平臺首先要考慮數據的吞吐率,市面上大部分的紅外熱像儀均支持PAL制式的視頻圖像輸出,幀頻為25幀/s,以720列×576行×25幀/s為例,720列×520行×16 bit×25幀/s≈166 Mbit/s,約為20 MB/s。據此指標初步設定方案,如圖1所示。 1.1 視頻解碼芯片SAA7114 SAA7114是Philips公司生產的可編程視頻處理器,該芯片集A/D與解碼功能于一身,片內附有鎖相、自動鉗位、自動增益控制、時鐘產生、多制式解碼等電路。而且SAA7114還可對亮度、對比度和飽和度進行控制,既支持PAL電視制式又支持NTSC和SECAM電視制式。該芯片主要有以下特點: (1)具有六路模擬輸入和內部模擬信號源選擇,如6×CVBS或者(2×Y/C和2×CVBS)或者(1×Y/C和4×CVBS);(2)具有兩路模擬預處理通道和兩路模擬抗混疊濾波器;(3)對選擇的CVBS或Y/C通道可編程為靜態增益控制或自動增益控制;(4)可進行白峰控制;(5)內含兩個9位的A/D轉換器,數字CVBS或Y/C信號可通過擴展接口輸入;(6)片內行鎖定時鐘發生器符合“ITU 60l”標準;(7)具有數字PLL,可用來對所有的標準和非標準制式的視頻源(例如消費級磁帶錄像機)進行同步處理和時鐘發生;(8)所有的制式標準只需要同一頻率的晶振32.1l MHz或者24.576 MHz;(9)可進行行場同步信號的探測;(10)自動進行50/60 Hz場頻的檢測,自動進行標準PAL制式和NTSC制式之間的轉換;(11)可對各種制式的視頻信號的亮度和色度進行處理,這寫制式包括PAL BGDHIN,PAL N,PAL M,NTSC M,NTSC-Japan,NTSC4.43和SECAM;(12)自適應的2/4路梳狀濾波器進行二維的亮度或色度的分離,——增加了亮度和色度的帶寬以支持所有的PAL和NTSC制式標準,——減少了串色和亮度失真;(13)PAL行延遲校正了相位錯誤;(14)獨立的亮度對比度和飽和度調節;(15)用戶可編程銳度調節;(16)獨立的可對原始數據進行獲取和偏移調節;(17)可進行行場縮放以適應窗口大小;(18)支持4:2:2,4:1:1,4:2:0,4:1:0 YUV格式的輸出;(19)支持8位灰度圖像和原始CVBS數據的輸出;(20)支持軟件控制省電待機模式;(21)可通過I2C總線接受外部控制器的控制,速率可達400 kB/s。 本設計采用一路模擬輸入,輸入是PAL制式信號,輸出是16位寬度的數字視頻圖像,可兼容8位寬度的數字視頻圖像,圖像尺寸大小可縮放。SAA7114通電后并非立即對輸入的視頻信號進行A/D轉換,輸出數字視頻信號,而是要對其內部的寄存器進行設置才能夠進行正常工作。本設計采用I2C總線對片內的寄存器進行設置。 1.2 存儲單元 經過A/D轉化過的數字視頻圖像,采用YUV格式輸出時,需用2 bit表示,在圖像處理領域,通常只用1 bit表示黑白圖像,為了兼容彩色圖像采集模式,數據存儲空間按照彩色圖像的數據量進行設計。每幀圖像為720×576×1*05 000 bit×16 bit,存儲器可采用雙口FIFO、雙口SRAM,但考慮到圖像的數據量及成本,采用兩片SRAM構成乒乓式存儲結構。雙緩存結構常用于高速大容量數據傳輸中。因此采用兩片容量為512 kbit×16 bit的SRAM構成乒乓存儲單元。這里只截取640×480像素圖像,因此采用512 000 bit×16 bit的SRAM是可以完成圖像的存儲與傳輸。 1.3 數據傳輸 本設計采用Cypress公司的USB2.O控制器芯片CY7C68013,該片集成有包含8.5 kB RAM增強型8051微處理器,4 kB的FIFO存儲器,通用可編程接口(GPIF),串行接口引擎(SIE)和USB2.0收發器。 芯片工作在Slave FIFO的接口方式下,在該模式下外部邏輯直接控制接口芯片內部的FIFO。其工作過程是,當USB設備接入計算機時,計算機和USB設備之間產生枚舉過程,計算機檢測到有設備接入,自動發出查詢請求,USB設備回應請求,返回設備的Verdor ID和Product ID,計算機據此裝載相應的驅動程序,完成重枚舉過程。計算機通過USB發出采集指令后,啟動A/D和FPGA,紅外圖像的一幀經過SAA7114處理送到SRAM,然后通過USB芯片上傳給計算機。在上傳過程中,兩片SRAM分別存儲一幀圖像的奇偶場,當一片用于存儲時,另一片用于傳輸已存儲的圖像,如此往復完成實時視頻圖像采集。 1.4 現場可編程門陣列單元 FPGA完成的邏輯功能包括:對SAA7114進行配置,將A/D轉換后的數字視頻流變換成固定分辨率的圖像視頻流及行場使能信號,控制USB芯片及SRAM存儲芯片的讀寫時序。采用FPGA實現這些功能降低了PCB板的復雜程度,而且提高了系統的靈活性。 2 軟件設計 本系統的軟件由以下3部分組成。 2.1 固件程序設計 開發USB接口的應用系統最重要的是USB驅動程序和固件程序的編制。Cypress公司的開發包中提供專門的開發系統,為開發固件提供了便利條件。在Cypress的主頁上有。EZ-USB開發工具包下載,提供了控制面板程序(ControlPanel)和KeilC51套裝軟件。在Keil uVision2環境下在Periph.c和Dscr.a5l文件中加入用戶代碼程序即可實現特定的功能,加快開發進度。固件程序設計主要包括初始化、處理標準USB設備請求以及USB掛起時的電源管理,初始化FIFO及USB端點。CY7C68013具有軟配置的特性,當設備與主機連接后,可裝載不同的固件使設備呈現不同的特性,方便外設固件的在線升級。 設置CY7C68013內部相應的寄存器,使其工作在USB2.0方式下,由固件程序應答USB的傳輸,而不是USB內核。芯片工作在Slave FIF0接口模式下。 框架函數分為3大類:任務分配器(以TD為字首)、標準設備請求分析(以DR為字首)和USB中斷處理(以ISR為字首)。 void TD_Init(void) 該函數在框架初始化期間調用,函數中可設置整體狀態變量的初始值,規定各種資源的使用及配置外圍接口的輸入/輸出等。 Void TD_poll(void) 設備工作期間,該函數重復調用,包含一個執行外設功能的狀態機。 BOOL TD_Suspend(void) 該函數包含使設備進入低功耗狀態的程序,然后返回True。返回False時,阻止設備進入掛起狀態。 void TD_Resume(void) 此函數使設備恢復到正常操作方式。 設備請求主要完成的任務是確定新的配置接口和端點。USB中斷完成用戶定義的中斷請求服務。本設計中使用的是SLAVE FIFO工作模式。 2.2 FPGA的程序設計 SAA7114不僅輸出了數字視頻流,還輸出了場同步信號、行同步信號、奇偶場信號和像素時鐘信號,FPGA根據這些同步信號以及SRAM的片選、寫選通信號等來控制視頻數據流的時序,完成圖像采集、緩存和上傳。 2.3 上位機驅動程序設計和應用程序設計 利用VC++6.O對Cypress提供的GPD重新擴充生成定制的驅動程序。應用程序是通過I/O控制調用訪問USB設備完成紅外視頻的采集、處理、顯示及存儲。 3 結束語 該系統能夠完成圖像的采集、傳輸、存儲等要求,達到了設計的數據傳輸要求。系統具有集成度高、靈活性好、即插即用與自動配置等優點。但圖像在高分辨率的情況下數據量較大,當PC連接有多個USB高速設備時對帶寬的要求較高,可先將數據壓縮后再上傳。 |