0 引言 視頻圖形陣列顯示接口是微機系統使用的一種通用顯示接口,廣泛應用于智能控制系統中,作為系統的顯示終端。對于由嵌入式微處理器構成的圖像處理系統來說,采用VGA顯示輸出具有兼容性強、顯示內容豐富的優勢。同時,VGA顯示接口具有結構簡單、性能可靠、兼容性強、時序容易控制的特點。因此,結合FPGA的 VGA圖像控制器在嵌入式的圖像處理系統中有廣泛的應用前景。 目前大多數計算機與外部顯示設備之間都是通過模擬VGA接口連接,計算機內部以數字方式生成的顯示圖像信息,被顯卡中的數字/模擬轉換器轉變為R、G、B三原色信號和行場同步信號,信號通過電纜傳輸到顯示設備中。 1 VGA顯示 常見的VGA接口的彩色顯示器,一般由cRT(陰極射線管)構成,色彩由R、G、B(紅:Red,綠:Green,藍:Blue三基色組成。顯示采用逐行掃描的方式進行,即當掃描完一行時,再進行下一行的掃描,直到最后一行掃描完為止。VGA接口為顯示器提供兩類信號,一類是數據信號,一類是控制信號。 數據信號包括紅、綠、藍信號,簡稱RGB信號。控制信號包括水平同步信號(HSYNC)和垂直同步信號(VsYNc)。向顯示器輸出不同的分辨率時,水平同步信號和垂直同步信號的頻率也不同。但是水平同步信號和垂直同步信號時序分析相同,在掃描時均需要經過同步信號、同步后信號、行同步信號、同步后信號四個時段。僅以水平同步信號為例,其結構如圖1所示。 VGA接口的顯示器原理其實就相當于點陣,通過控制器的控制,點亮所在的行和列。所以水平同步信號是針對列像素而言的,而垂直同步信號是針對行像素而言的。 以顯示800×600的圖片大小為例,根據VGA的時序標準,選擇6hz的刷新頻率。水平同步信號的同步信號包含128個列像素,同步后沿信號為 88個列像素,同步前沿信號為40個列像素,而屏幕顯示部分為800個列像素,所以一共需要1 28+88+40+800=1 056個列像素。場同步信號的同步信號包含4個行像素,同步后沿信號包含23個行像素,同步前沿信號包含1個行像素,而屏幕顯示部分為600個行像素,所以一共需要4+23+l+600=628個行像素,由此,液晶顯示器顯示一幅800×600的圖像,需要的行列像素分別為1056和628。 2 系統總體框架設計 本系統以FPGA EP2C8Q208C8為核心芯片,通過對VGA接口的控制,實現彩色圖像的顯示,系統結構框圖如圖2所示。 2.1鎖相環PLL 鎖相環路是一種反饋控制電路,簡稱鎖相環(PLL),一種輸出一定頻率信號的振蕩電路,也稱為相位同步環(回路)。該回路利用使外部施加的基準信號與PLL 回路內的振蕩器輸出的相位差恒定的反饋控制來產生振蕩信號。在網絡領域中,PLL用于從接收的信號中分離出時鐘信號,可以通過實際電路或軟件的方式實現。 由于FPGA的系統時鐘為50MHz,而控制VGA的時鐘為40MHz,所以在對VGA接口的控制時需要進行時鐘轉換,通常可以通過分頻或者是調用 IP核的方式實現轉換,但是由于通過自己寫的分頻程序假如在數據上處理不得當,容易產生毛刺,而調用quanersII軟件自帶的PLL內核,不僅可以做到與系統時鐘同相,而且時鐘穩定,能夠實現對VGA時序的嚴格控制,與硬件電路來實現鎖相環相比,調用PLJ。內核不僅可以做到操作簡單,而且也節約了設計成本。 2.2存儲模塊ROM 只讀存儲(Read一0nly Memory,ROM)是一種只能讀出事先所存數據的固態半導體存儲器圈。在系統框圖中的三個ROM均用來存儲顏色信息,由于本設計中使用圖片的大小為 128×128,即一共有128×128=16384個像素點,所以ROM的大小設置為16384。這里通過quanerII軟件調用FPGA的ROM內核,將MATLAB提取的紅、綠、藍三基色數據經quanusII軟件的處理,分別存入FPGA的ROMl、ROM2、ROM3中。在控制模塊中寫入 ROM的地址,在分頻后的時鐘控制下,將數據讀到vGA的RGB三個引腳,實現液晶顯示器的圖片顯示。 2.3 MATLAB的數據提取 MATLAB 作為強大的數據處理工具,其基本數據單位是矩陣,它的指令表達式與數學工程中常用的表達形式十分相似,故用MATLAB來解算問題要比用 c,FORTRAN等語言簡捷得多。在新的版本中也加入了對C,FORTRAN,C++,JAVA的支持,可以直接調用,用戶也可以將自己編寫的實用程序導人MATIAB函數庫中方便自己以后調用,此外許多的MATLAB愛好者都編寫了一些經典的程序,用戶可以直接進行下載就可以用,非常的方便。 由于MATLAB軟件中默認的圖片格式為.JPc和.BNP,因此在使用MATLAB前需將原始圖片通過Photo sh叩軟件進行格式轉換,轉換后保存圖片為.BMP格式,在彈出的位寬選擇對話框選擇24位,,然后再通過MATLAB提取紅基色數據,程序如下所示,結果被保存在Red.mif文件里: 由于本設計所使用的VGA是三位的數據接口,因此藍基色和綠基色數據也按照此方法提取。Red.mif中的數據是24位的,所以還需要對提取到的紅基色數據進行轉換。在MATLAB中做如下判斷將24位數據轉換為3位數據。 3 結果分析 圖像的顯示如圖3所示,顯示結果表明,由于原圖像是24位,即224種顏色,而FPGA控制的VGA只有3位即23種顏色,相比之下,以24位的圖像作為標準,VGA顯示的3位圖像有明顯失真的現象。 如果希望顯示的圖像更加清晰,那么需要將vGA的顯示接口重新作出電路修改,這樣才能達到清晰顯示的效果。 4 結束語 在許多圖像處理系統中,需要將經過處理的圖像顯示出來,如果采用傳統的辦法將圖像數據傳回電腦并通過顯示器顯示出來,那么在傳輸的過程中就需要嵌入式系統的 CPU不斷的對所傳輸的圖像數據信號進行控制,這樣就造成了CPU資源的浪費,同樣系統還需要依賴電腦,降低了系統的靈活性。如果采用FPGA對顯示器的 VGA接口進行設計,數據流只需要在整個系統的內部流動,而不需要依靠計算機,實現了系統的最小化,大大減少了電路板的尺寸,增強了系統的可靠性和設計的靈活性。 VGA接口同樣也是LCD液晶顯示設備的標準接口,通過VGA控制LCD可以使整個系統變得小巧,攜帶方便,使得應用的范圍大大擴展。作者所在的全景視覺圖象處理項目中,正是需要把經過處理的圖像實時地直接地顯示出來,撇開對計算機的需求,以滿足各種不同應用環境的需要。 通過FPGA對VGA接口的控制,不僅實現了FPGA對任一圖像的顯示,而且其內部時鐘可調性為設計帶來了很大的方便,節約了硬件成本。此方案可以廣泛應用于數字視頻系統、高分辨率的彩色圖片圖像處理、視頻信號再現等各種領域。 |