<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > EDA/PCB > 設計應用 > 基于FPGA的AMLCD控制器的設計

基于FPGA的AMLCD控制器的設計

作者: 時(shí)間:2011-12-29 來(lái)源:網(wǎng)絡(luò ) 收藏

飛機座艙圖形顯示系統已發(fā)展到第六代,即采用有源矩陣彩色液晶顯示器(ActiveMatrixLiquidCrystalDisplay)。當前高分辨率的軍用顯示模塊還只能依靠進(jìn)口,且控制電路板須安裝在該顯示模塊提供的機箱內。這種安裝方式對控制電路板的尺寸要求高,要求盡可能減少所設計電路板的尺寸。在筆者設計的新一代飛機座艙圖形顯示系統中使用了大規?,F場(chǎng)可編程門(mén)陣列(FieldProgrammableGataArray),這種設計方式可以將以前需要多塊集成芯片的電路設計到一塊大模塊可編程邏輯器件中,大大減少了電路板的尺寸,增強了系統的可靠性和設計的靈活性。本文詳細介紹了已在實(shí)際項目中應用的基于的圖形式AMLCD設計,這種設計方法稍作修改即可應用于常見(jiàn)VGA視頻接口電路的設計。

本文引用地址:http://dyxdggzs.com/article/190866.htm

1圖形顯示系統簡(jiǎn)介

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

62.jpg

2KMD710顯示模塊

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

63.jpg

3LCDVGA控制器設計

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

64.jpg

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

entityseq_genis

port(clk_seq:instd_logic;

rst_seq:instd_logic;

lcd_hs_out : outstd_logic;

lcd_dataen : outstd_logic;

lcd_vs_out : outstd_logic;

pix_clk : outstd_logic);

endseq_gen;

architecturertl_seq_genofseq_genis

signallcd_hb:std_logic;

signallcd_hs:std_logic;

signallcd_vb:std_logic;

signallcd_vs:std_logic;

signalclken_vcount:std_logic;

begin

hcount:block

signalhcountreg:std_logic_vector(9downto0);

signalhz_temp:std_logic;

signallcd_hz:std_logic;

begin

process(clk_seq,lcd_hz)

begin

if(lcd_hz='1')then

hcountreg=(others=>'0');

elsifclk_seq'eventandclk_seq='1'then

hcountreg=hcountreg+1;

endif;

endprocess;

lcd_hb='0'whenhcountreg>=600andhcountreg650

else'1';

lcd_hs='0'whenhcountreg>=610andhcountreg630

else'1';

hz_temp='1'whenhcountreg=650else'0';

lcd_hz=hz_temporrst_seq;

endblockhcount;

diff:block

signalinputrega:std_logic;

signalinputregb:std_logic;

begin

process(clk_seq)

begin

ifclk_seq'eventandclk_seq='1'then

inputregb=inputrega;

inputrega=notlcd_hs;

endif;

endprocess;

clken_vcount=notinputregbandinputrega;

endblockdiff;

vcount:block

signalvcountreg:std_logic_vector(9downto0);

signalvz_temp:std_logic;

signallcd_vz:std_logic;

begin

process(clk_seq,lcd_vz)

begin

if(lcd_vz='1')then

vcountreg=(others=>'0');

elsifclk_seq'eventandclk_seq='1'then

ifclken_vcount='1'then

vcountreg=vcountreg+1;

endif;

endif;

endprocess;

lcd_vb='0'whenvcountreg>=600andvcountreg615

else'1';

lcd_vs='0'whenvcountreg>=607andvcounreg610

else'1';

vz_temp='1'whenvcountreg=615else'0';

lcd_vz=vz_temporrst_seq;

endblockvcount;

pix_clk=clk_seq;

lcd_dataen=lcd_hbandlcd_vb;

lcd_hs_out=lcd_hs;

lcd_vs_out=lcd_vs;

endrtl_seq_gen;

這種用VHDL產(chǎn)生掃描時(shí)序的方法簡(jiǎn)單、易讀,并且易于修改。在代碼中只須修改一些時(shí)序參數就能產(chǎn)生任意時(shí)序的波形,具有很好的可重用性。用FPGAExpress3.5半VHDL代碼綜合后,通過(guò)Foundation3.1i進(jìn)行布局和布線(xiàn),用Foundation提供的門(mén)級仿真工具產(chǎn)生的行掃描時(shí)序仿真圖。

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



關(guān)鍵詞: AMLCD FPGA 控制器

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>