本發(fā)明專利涉及數(shù)據(jù)接口技術(shù)領(lǐng)域,具體涉及一種vga顯示接口設(shè)計。
背景技術(shù):
vga(videographicsarray)是ibm在1987年隨ps/2機(jī)一起推出的一種視頻傳輸標(biāo)準(zhǔn),具有分辨率高、顯示速率快、顏色豐富等優(yōu)點(diǎn),在彩色顯示器領(lǐng)域得到了廣泛的應(yīng)用。目前vga技術(shù)的應(yīng)用還主要基于vga顯示卡的計算機(jī)、筆記本等設(shè)備,而在一些既要求顯示彩色高分辨率圖像又沒有必要使用計算機(jī)的設(shè)備上,vga技術(shù)的應(yīng)用卻很少見到。
利用現(xiàn)場可編程邏輯器件產(chǎn)生vga時序信號和彩條圖像信號,并將其作為信號源,應(yīng)用于電視機(jī)或計算機(jī)等彩色顯示器的電路開發(fā),方便彩色顯示器驅(qū)動控制電路的調(diào)試。計算機(jī)顯示器的顯示有許多標(biāo)準(zhǔn),常見的有vga,svga等。在這里嘗試用fpga實(shí)現(xiàn)vga圖像顯示控制器,這一過程通過編程實(shí)現(xiàn),之后通過軟件的測試和仿真,當(dāng)軟件驗證無誤后完成硬件的下載驗證,最終在crt顯示器上實(shí)現(xiàn)輸出,基本原理就是利用fpga的可編程原理和vga的時序控制原理,這在產(chǎn)品開發(fā)設(shè)計中有許多實(shí)際應(yīng)用。
本發(fā)明對vga顯示的實(shí)現(xiàn)方法進(jìn)行了研究?;谶@種設(shè)計方法的嵌入式vga顯示系統(tǒng),可以在不使用vga顯示卡和計算機(jī)的情況下,實(shí)現(xiàn)vga圖像的顯示和控制。系統(tǒng)具有成本低、結(jié)構(gòu)簡單、應(yīng)用靈活的優(yōu)點(diǎn),可廣泛應(yīng)用于超市、車站、飛機(jī)場等公共場所的廣告宣傳和提示信息顯示,也可應(yīng)用于工廠車間生產(chǎn)過程中的操作信息顯示,還能以多媒體形式應(yīng)用于日常生活。
發(fā)明專利內(nèi)容
本發(fā)明專利涉及數(shù)據(jù)接口技術(shù)領(lǐng)域,具體涉及一種vga顯示接口設(shè)計。本發(fā)明所設(shè)計的vga控制器就是通過利用超大規(guī)??删幊踢壿嬈骷pga和aletera公司開發(fā)的eda設(shè)計軟件quartusii8.0,并采用自頂向下的vhdl設(shè)計方法,將該控制器分成用vhdl語言進(jìn)行描述的五個子模塊來實(shí)現(xiàn)。在quartusii8.0軟件平臺,完成了對該控制器的設(shè)計輸入、綜合、仿真和下載。在實(shí)驗開發(fā)板上,也警醒了硬件調(diào)試。調(diào)試結(jié)果表明,設(shè)計的vga控制器能夠正確地輸出rgb顏色信號和時序控制信號,可以顯示符合vga工業(yè)標(biāo)準(zhǔn)的測試彩條信號,內(nèi)置rom信息,實(shí)時ram,還能夠分屏顯示三路rgb圖像信息,并在這幾種模式之間靈活切換和痛斷。他工作穩(wěn)定,達(dá)到了設(shè)計要求。
本發(fā)明利用了不同于以往傳統(tǒng)的電子設(shè)計方法,具有修改靈活,搞高移植性,維護(hù)簡單,可靠性好等優(yōu)點(diǎn)。大大地縮短了設(shè)計周期,降低了生產(chǎn)成本。
附圖說明
圖1:總體設(shè)計框架圖。
具體實(shí)施方式
為了使本發(fā)明專利的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明專利進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明專利,并不用于限定本發(fā)明專利。
本發(fā)明專利涉及數(shù)據(jù)接口技術(shù)領(lǐng)域,具體涉及一種vga顯示接口設(shè)計。本發(fā)明所設(shè)計的vga控制器就是通過利用超大規(guī)??删幊踢壿嬈骷pga和aletera公司開發(fā)的eda設(shè)計軟件quartusii8.0,并采用自頂向下的vhdl設(shè)計方法,將該控制器分成用vhdl語言進(jìn)行描述的五個子模塊來實(shí)現(xiàn)。在quartusii8.0軟件平臺,完成了對該控制器的設(shè)計輸入、綜合、仿真和下載。在實(shí)驗開發(fā)板上,也警醒了硬件調(diào)試。調(diào)試結(jié)果表明,設(shè)計的vga控制器能夠正確地輸出rgb顏色信號和時序控制信號,可以顯示符合vga工業(yè)標(biāo)準(zhǔn)的測試彩條信號,內(nèi)置rom信息,實(shí)時ram,還能夠分屏顯示三路rgb圖像信息,并在這幾種模式之間靈活切換和痛斷。他工作穩(wěn)定,達(dá)到了設(shè)計要求。
(1)總體設(shè)計框架圖
進(jìn)一步的,本發(fā)明以fpga芯片作為中央控制器控制整個系統(tǒng)的處理,根據(jù)自頂向下的設(shè)計流程,按照層次化、結(jié)構(gòu)化的設(shè)計方法可以將該系統(tǒng)劃分為以下幾個模塊:頂層模塊、分頻模塊、vga控制模塊。其總體設(shè)計框架圖如圖1所示。本發(fā)明的工作原理為系統(tǒng)加電fpga芯片讀入配置信息,配置完成后,fpga進(jìn)入工作狀態(tài),將要顯示的信息初始化到單口ram中,由系統(tǒng)時鐘產(chǎn)生時序,程序根據(jù)時序信息控制vga接口輸出行、場同步及顏色信息到顯示器上。
(2)主模塊設(shè)計
進(jìn)一步的,系統(tǒng)主要有分頻模塊以及vga彩條信號產(chǎn)生模塊構(gòu)成。vga工業(yè)標(biāo)準(zhǔn)所要求的頻率為25.175hz,而fpga芯片輸出的頻率為50mhz,因而必須對fpga輸出頻率進(jìn)行分頻,采用二分頻即可,利用鎖相環(huán)的分頻功能得到。vga時序信號產(chǎn)生包括行點(diǎn)計數(shù)器x_cnt(計數(shù)個數(shù)用nx表示)、場點(diǎn)計數(shù)器y_cnt(計數(shù)個數(shù)用ny表示)、行同步信號hsync、場同步信號vsync、有效顯示區(qū)visiblearea等。其中行點(diǎn)計數(shù)器是800進(jìn)制計數(shù)器,場點(diǎn)計數(shù)器是525進(jìn)制計數(shù)器。根據(jù)vga時序的工業(yè)標(biāo)準(zhǔn)行、場同步信號有4種狀態(tài):同步脈沖信號(sync),顯示后沿信號(backporch),可視顯示區(qū)(visiblearea),顯示前沿(frontporch)。這4種狀態(tài)具有很清晰的時序規(guī)律,可以用有限狀態(tài)機(jī)來實(shí)現(xiàn)這4種狀態(tài)的轉(zhuǎn)換,用h_state來表示行同步狀態(tài)機(jī)的4種狀態(tài):h_sync,h_back,h_visible,h_fron;tv_state來表示場同步狀態(tài)機(jī)的4種狀態(tài):v_sync,v_back,v_visible,v_front。行、場計數(shù)器的值決定了狀態(tài)機(jī)在何時進(jìn)行狀態(tài)翻轉(zhuǎn)。豎彩條發(fā)生模塊根據(jù)行點(diǎn)數(shù)器hcnt的計數(shù)值來產(chǎn)生彩條,它對行點(diǎn)數(shù)計數(shù)器的數(shù)值進(jìn)行判斷,每80條豎線生成一種豎彩條,共8種豎彩條紅、綠、黃、藍(lán)、粉、青、灰和黑。
(3)設(shè)計實(shí)現(xiàn)
進(jìn)一步的,本發(fā)明的fpga芯片用的是altera公司的ep1c12q240c8,它由若干個邏輯單元和中央布線池加i/o端口構(gòu)成。本發(fā)明采用vhdl語言設(shè)計文件,首先定義兩個計數(shù)器hcnt和vcant,按照實(shí)驗原理中的hs和vs的實(shí)現(xiàn)方法,產(chǎn)生得到hs和vs兩個時序序號。其次根據(jù)hcnt和vcnt計數(shù)值的范圍來確定顯示區(qū)域,并同時送入顯示顏色即可。然后,編譯工程,修改語法錯誤。本發(fā)明使用vhdl硬件語言的完整代碼:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
entityvga_caitiaois
port(clk:instd_logic;
key0:instd_logic_vector(1dounto0);
vga_r:outstd_logic;
vga_g:outstd_logic;
vga_b:outstd_logic;
vga_hs:outstd_logic;
vga_vs:outstd_logic);
endvga_caitiao;
architectureoneofvga_caitiaois
signalhcnt:integerrang0to799;
signalvcnt:integerrang0to524;
signalclk25m:std_logic;
signalhs:std_logic;
signalvs:std_logic;
signalgrbx,grby,grb:std_logic_vector(3dounto1);
begin
process(clk)
begin
ifclk25m’eventandclk25m=’1’then
ifhcnt=799thenhcnt<=0;
elsehcnt<=hcnt+1;
endif;
endif;
endprocess;
process(hs)
begin
ifhs’eventandhs=’1’then
ifvcnt=524thenvcnt<=0;
elsevcnt<=vcnt+1;
endif;
endif;
endprocess;
process(hcnt)
begin
ifvcnt<95thenhs<=’0’;
elsehs<=’1’;
endif;
endprocess;
process(vcnt)
begin
ifvcnt<2thenvs<=’0’;
elsevs<=’1’;
endif;
endprocess;
process(hcnt)
begin
ifhcnt<96+40+8-1thengrby<=”000”;
elseifhcnt<96+40+8+80-1thengrby<=”111”;
elseifhcnt<96+40+8+160-1thengrby<=”110”;
elseifhcnt<96+40+8+240-1thengrby<=”101”;
elseifhcnt<96+40+8+320-1thengrby<=”010”;
elseifhcnt<96+40+8+400-1thengrby<=”011”;
elseifhcnt<96+40+8+480-1thengrby<=”100”;
elseifhcnt<96+40+8+560-1thengrby<=”001”;
elseifhcnt<96+40+8+640-1thengrby<=”000”;
elsegrby<=”000”;
endif;
endprocess;
process(vcnt)
begin
ifvcnt<2+25+8-1thengrbx<=”000”;
elseifvcnt<2+25+8+60-1thengrbx<=”111”;
elseifvcnt<2+25+8+120-1thengrbx<=”110”;
elseifvcnt<2+25+8+180-1thengrbx<=”101”;
elseifvcnt<2+25+8+240-1thengrbx<=”010”;
elseifvcnt<2+25+8+300-1thengrbx<=”011”;
elseifvcnt<2+25+8+360-1thengrbx<=”100”;
elseifvcnt<2+25+8+420-1thengrbx<=”001”;
elseifvcnt<2+25+8+480-1thengrbx<=”000”;
elsegrbx<=”000”;
endif;
endprocess;
process(key0,grbx,grby)
begin
ifkey0=”01”thengrb<=grbx;
elseifkey0=”10”thengrb<=grby;
elsegrb<=grbyxorgrbx;
endif;
endprocess;
vga_r<=grb(3)andhsandvs;
vga_g<=grb(2)andhsandvs;
vga_b<=grb(1)andhsandvs;
vga_hs<=hs;andhsandvs;
end;
以上所述僅為本發(fā)明專利的較佳實(shí)施例而已,并不用以限制本發(fā)明專利,凡在本發(fā)明專利的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明專利的保護(hù)范圍之內(nèi)。