《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 其他 > 業(yè)界動(dòng)態(tài) > 基于FPGA的LCD&VGA控制器設(shè)計(jì)

基于FPGA的LCD&VGA控制器設(shè)計(jì)

2008-11-05
作者:朱耀東 經(jīng)亞枝 張煥春

??? 摘? 要: 介紹了基于FPGA的圖形式LCD&VGA控制器的設(shè)計(jì),詳細(xì)討論了用VHDL設(shè)計(jì)行場掃描時(shí)序的方法,這種設(shè)計(jì)方法" title="設(shè)計(jì)方法">設(shè)計(jì)方法稍作改動(dòng)便可產(chǎn)生任意行場掃描時(shí)序,具有很好的可重用性。該控制器已成功地在某型飛機(jī)座艙圖形顯示系統(tǒng)" title="顯示系統(tǒng)">顯示系統(tǒng)中使用。?

????關(guān)鍵詞: 儀表裝置? LCD? VHDL? FPGA? VGA

?

??? 飛機(jī)座艙圖形顯示系統(tǒng)已發(fā)展到第六代,即采用有源矩陣彩色液晶顯示器AMLCD(Active Matrix Liquid Crystal Display)。當(dāng)前高分辨率的軍用AMLCD顯示模塊" title="顯示模塊">顯示模塊還只能依靠進(jìn)口,且控制電路板須安裝在該顯示模塊提供的機(jī)箱內(nèi)。這種安裝方式對AMLCD控制電路板的尺寸要求高,要求盡可能減少所設(shè)計(jì)電路板的尺寸。在筆者設(shè)計(jì)的新一代飛機(jī)座艙圖形顯示系統(tǒng)中使用了大規(guī)模現(xiàn)場可編程門陣列FPGA(Field Programmable Gate Array),這種設(shè)計(jì)方式可以將以前需要多塊集成芯片的電路設(shè)計(jì)到一塊大規(guī)??删幊踢壿嬈骷?大大減少了電路板的尺寸,增強(qiáng)了系統(tǒng)的可靠性和設(shè)計(jì)的靈活性。本文詳細(xì)介紹了已在實(shí)際項(xiàng)目中應(yīng)用的基于FPGA的圖形式AMLCD控制器設(shè)計(jì),這種設(shè)計(jì)方法稍作修改即可應(yīng)用于常見VGA視頻接口電路的設(shè)計(jì)。?

1 圖形顯示系統(tǒng)簡介

??? 圖1是飛機(jī)座艙圖形顯示系統(tǒng)結(jié)構(gòu)框圖。圖中處理器采用AD公司的ADSP21061芯片,AMLCD采用Korry公司的KDM710全彩色液晶顯示模塊,該模塊為5×5英寸、600×600分辨率彩色液晶顯示模塊,24位數(shù)字RGB輸入。兩個(gè)幀存A和B采用IDT公司的71V424高速異步靜態(tài)RAM,系統(tǒng)采用兩個(gè)幀存輪流操作的方法:當(dāng)DSP向其中一個(gè)幀存寫象素時(shí),由FPGA構(gòu)成的幀存控制器將另一個(gè)幀存中的象素順序讀出送給AMLCD,反之亦然。圖形顯示系統(tǒng)通過IDT公司的71V04雙口RAM接收主機(jī)的顯示信息。圖1中的幀存控制器和視頻控制器由Xilinx公司的SpartanII芯片XC2S50實(shí)現(xiàn)。?

?

?

2 KMD710顯示模塊?

??? 如圖1所示,美國Korry公司提供的KDM710全彩色液晶顯示模塊接口信號(hào)主要有如下幾組:3個(gè)8位RGB數(shù)字信號(hào)、同步信號(hào)" title="同步信號(hào)">同步信號(hào)數(shù)據(jù)使能信號(hào)DATA_EN和點(diǎn)時(shí)鐘輸入DCLK。根據(jù)AMLCD數(shù)據(jù)手冊所要求的時(shí)序,確定掃描時(shí)序和相應(yīng)的時(shí)序參數(shù)如圖2所示。一般,圖形終端顯示器掃描制式與廣播電視的標(biāo)準(zhǔn)有點(diǎn)不同,須根據(jù)顯示模塊所提供的時(shí)間要求來確定掃描時(shí)序,其中的行場同步的前后肩,可以根據(jù)需要進(jìn)行微調(diào),一般為了防止每行的第一個(gè)象素丟失,要求行同步的后肩C與行同步脈沖寬B盡量相等。圖2中的點(diǎn)時(shí)鐘為20MHz,行周期為650個(gè)時(shí)鐘周期,場周期為615個(gè)行周期(場頻為50Hz)。?

?

?

3 LCD&VGA控制器設(shè)計(jì)?

??? 設(shè)計(jì)行場掃描時(shí)序,一般有兩種方式:查找表" title="查找表">查找表方式和編程邏輯方式。查找表方式主要由存儲(chǔ)芯片構(gòu)成,如SRAM、EPROM、PORM等。使用時(shí),先根據(jù)所要產(chǎn)生的時(shí)序在存儲(chǔ)單元寫入相應(yīng)的數(shù)值,查表時(shí)再從表內(nèi)讀出對應(yīng)存儲(chǔ)單元的數(shù)值,以形成掃描時(shí)序。掃描時(shí)序查找表分為行掃描時(shí)序查找表和場掃描時(shí)序查找表。場掃描時(shí)序查找表的輸入時(shí)鐘由行同步脈沖提供。用查找表形成時(shí)序的方法存在體積大、計(jì)算煩瑣的缺點(diǎn)。隨著大規(guī)模邏輯芯片的出現(xiàn),利用編程邏輯方法產(chǎn)生行場掃描時(shí)序是一個(gè)發(fā)展方向。這種方法具有電路簡單、功能強(qiáng)、修改方便、可靠性高等優(yōu)點(diǎn)。圖3為LCD控制器的框圖。

?

?

??? 在本設(shè)計(jì)中,點(diǎn)時(shí)鐘DCLK由處理器DSP的系統(tǒng)時(shí)鐘40MHz經(jīng)數(shù)字鎖相環(huán)二分頻得到。點(diǎn)時(shí)鐘驅(qū)動(dòng)行時(shí)序生成器,產(chǎn)生圖2所示的行同步信號(hào)和行消隱信號(hào)。為避免毛刺,控制器設(shè)計(jì)采用同步設(shè)計(jì)方法,如圖3所示,行同步信號(hào)通過一個(gè)微分電路,產(chǎn)生一個(gè)點(diǎn)時(shí)鐘周期寬的場時(shí)序生成器使能信號(hào)。在使能信號(hào)有效時(shí),場時(shí)序生成器開始計(jì)數(shù),并產(chǎn)生場同步信號(hào)和場消隱信號(hào)。行消隱信號(hào)和場消隱信號(hào)相與后即為數(shù)據(jù)使能信號(hào)DATA_EN。該數(shù)據(jù)使能信號(hào)作為產(chǎn)生幀存地址計(jì)數(shù)器的計(jì)數(shù)使能,以保證DATA_EN信號(hào)為高時(shí),將象素送給AMLCD顯示。在DCLK的上升沿,幀存地址計(jì)數(shù)器加一,幀存SRAM經(jīng)過一段延時(shí)后,象素?cái)?shù)據(jù)出現(xiàn)在總線上。在DCLK的下降沿AMLCD將數(shù)據(jù)讀入。該LCD控制器的設(shè)計(jì)方法很容易用于VGA視頻接口。在VGA接口電路的設(shè)計(jì)中,不需點(diǎn)時(shí)鐘電路,只須將行同步信號(hào)與場同步信號(hào)輸出,將數(shù)據(jù)使能信號(hào)作為復(fù)合消隱信號(hào)輸入即可。產(chǎn)生行場掃描時(shí)序的VHDL描述如下:?

entity seq_gen is ?

port( clk_seq? : in std_logic;?

rst_seq?????? : in std_logic;?

lcd_hs_out??? : out std_logic;?

lcd_dataen??? : out std_logic;?

lcd_vs_out??? : out std_logic;?

pix_clk?????? : out std_logic? );?

end seq_gen;?

architecture rtl_seq_gen of seq_gen is ?

signal? lcd_hb : std_logic;?

signal? lcd_hs :? std_logic;?

signal? lcd_vb : std_logic;?

signal? lcd_vs :? std_logic;?

signal? clken_vcount : std_logic;?

begin? ?

hcount:? block?

signal hcountreg :std_logic_vector(9 downto 0);?

signal?? hz_temp??? : std_logic;?

signal?? lcd_hz : std_logic;?

begin?

process (clk_seq, lcd_hz )?

begin?

if (lcd_hz = ‘1’ )? then?

hcountreg <= (others => ‘0’);?

elsif clk_seq'event and clk_seq = ‘1’ then?

hcountreg <= hcountreg +1;?

end if;?

end process;?

lcd_hb <= ‘0’ when hcountreg >=600 and hcountreg < 650 else ‘1’;?

lcd_hs <= ‘0’ when hcountreg >=610 and hcountreg

hz_temp <= ‘1’ when hcountreg = 650 else ‘0’;?

lcd_hz <= hz_temp or rst_seq;?

end block hcount;?

diff :? block?

signal?? inputrega? :? std_logic;?

signal?? inputregb? :? std_logic;?

begin?

process(clk_seq)?

begin?

if clk_seq'event and clk_seq=‘1’ then?

inputregb <= inputrega;?

inputrega? <=? not lcd_hs; ?

end if;?

end process;?

clken_vcount <= not inputregb and inputrega;?

end block diff; ?

vcount : block?

signal?? vcountreg :??? std_logic_vector(9 downto 0);?

signal?? vz_temp :??? ? std_logic;?

signal?? lcd_vz :????? std_logic;?

begin?

process (clk_seq, lcd_vz)?

begin?

if (lcd_vz=‘1’)? then?

vcountreg <= (others => ‘0’);?

elsif clk_seq'event and clk_seq = ‘1’ then ?

if clken_vcount = ‘1’ then?

vcountreg <= vcountreg +1;?

end if;?

end if;?

end process;?

lcd_vb <= ‘0’ when vcountreg >=600 and vcountreg < 615 else ‘1’;?

lcd_vs <= ‘0’ when vcountreg >=607 and vcountreg

vz_temp <= ‘1’ when vcountreg = 615 else ‘0’;?

lcd_vz <= vz_temp or rst_seq;?

end block vcount;?

pix_clk <= clk_seq;?

lcd_dataen <= lcd_hb and lcd_vb;?

lcd_hs_out <= lcd_hs;?

lcd_vs_out <= lcd_vs;?

end rtl_seq_gen;?

??? 這種用VHDL產(chǎn)生掃描時(shí)序的方法簡單、易讀,并且易于修改。在代碼中只須修改一些時(shí)序參數(shù)就能產(chǎn)生任意時(shí)序的波形,具有很好的可重用性。用FPGA Express 3.5將VHDL代碼綜合后,通過Foundation 3.1i進(jìn)行布局和布線,用Foundation提供的門級(jí)仿真工具產(chǎn)生的行掃描時(shí)序仿真圖如圖4所示。

?

?

??? 采用FPGA技術(shù)設(shè)計(jì)的AMLCD控制器,大大減少了電路板的尺寸,同時(shí)增加了系統(tǒng)可靠性和設(shè)計(jì)靈活性。這種用VHDL語言實(shí)現(xiàn)行場掃描時(shí)序生成器的方法,具有簡便。易讀和可重用性強(qiáng)的特點(diǎn)。該AMLCD控制器已用Xilinx公司的SpartanII系列器件XC2S50實(shí)現(xiàn),并在飛機(jī)座艙圖形顯示系統(tǒng)中實(shí)際應(yīng)用。?

參考文獻(xiàn)?

1 The programmable Logic Data Book 2000. USA:Xilinx?Corp,2000?

2 杜海濤.現(xiàn)代飛機(jī)座艙顯示系統(tǒng)研究. 南京航空航天大學(xué)博士論文,1999?

3 蘇光大.微機(jī)圖像處理系統(tǒng). 北京:清華大學(xué)出版社,?2000:21~38?

4 候伯亭,顧 新.VHDL硬件描述語言與數(shù)字邏輯電路設(shè)計(jì)(修訂版).西安:西安電子科技大學(xué)出版社,1999

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。