《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 可編程邏輯 > 設(shè)計應(yīng)用 > 基于NIOS II嵌入式處理器實現(xiàn)LCD的控制
基于NIOS II嵌入式處理器實現(xiàn)LCD的控制
摘要: 利用NIOS II作為FPGA嵌入式處理器控制LCD的解決方案,,能較容易地實現(xiàn)圖像數(shù)據(jù)的DMA傳輸與控制,,系統(tǒng)中可根據(jù)實際需求有選擇的定制相應(yīng)模塊,使系統(tǒng)具有較強的靈活性,。同時由于采用“軟”硬件實現(xiàn)LCD的控制,,調(diào)試過程中通過不斷更改“軟件”就可達(dá)到改進(jìn)硬件功能的目的。
關(guān)鍵詞: SoPC NIOS II LCD DMA
Abstract:
Key words :

隨著半導(dǎo)體技術(shù)以及計算機軟硬件技術(shù)的飛速發(fā)展,,對于圖像的顯示的控制技術(shù)也呈現(xiàn)出越來越多的方式,。本文介紹了一種基于NIOS II軟核處理器實現(xiàn)對LCD-LQ057Q3DC02控制的新方法。在設(shè)計中利用FPGA的Altera的SOPC Builder定制NIOS II軟核處理器及其與顯示功能相關(guān)的“軟” 硬件模塊來協(xié)同實現(xiàn)顯示控制的軟硬件設(shè)計,。利用SOPC技術(shù),,將NIOS II CPU和LCD控制器放在同一片F(xiàn)PGA中,解決了通常情況下必須使用LCD 控制專用芯片才能解決LCD顯示的問題,。

  1 LCD選型及主要特性

  本文所采用的LCD是SHARP公司的5.7英寸的LCD-LQ057Q3DC02,。它能顯示320×240×3點像素,輸入信號有:18位色度信號(R,,G,,B各6位)的數(shù)據(jù)信號,4個時鐘信號(CLK,,Hsync,,Vsync,Enable)以及實現(xiàn)水平顯示模式,,垂直顯示模式的R/L,、U/D和VGA/QVGA模式選擇信號線。


  事實上,,LCD-LQ057Q3DC02是一個逐行掃描設(shè)備,,它總是從屏幕的左上方開始掃描,先水平掃描完一行(320像素點)到最右邊,然后再回到最左邊,,換下一行,,繼續(xù)掃描。直到掃描到屏幕的最下方(共240行),,這樣就掃描完一幀圖像,,然后再回到最左邊,開始下一幀的掃描,。

  2 Avalon流模式LCD控制器設(shè)計

  文中實現(xiàn)的LCD 實時圖像顯示控制方式采用的是DMA數(shù)據(jù)傳輸方式,。設(shè)計時,利用DMA控制器在流模式LCD控制器和SDRAM 之間建立一條DMA傳送通道,,讓硬件來完成像素信息的自動讀取,,而NIOS II處理器僅通過操作SDRAM 中相應(yīng)的區(qū)塊就能實現(xiàn)LCD 圖像的更新。

  2.1 Avalon流模式控制器的組成

  設(shè)計Avalon流模式外設(shè)時需要遵循Avalon總線規(guī)范,。在實際設(shè)計時,,筆者設(shè)計的Avalon流模式LCD控制器的硬件結(jié)構(gòu)如圖1。該控制器由如下3部分構(gòu)成:LCD接口控制器,、FIFO存儲器和Avalon Streaming Port接口,。


  2.2 LCD顯示控制流程

  對LCD-LQ057Q3DC02而言,要實現(xiàn)LCD的正常顯示就必須對相應(yīng)的控制信號正確配置,,特別是行同步(LCD_Hsync),、場同步(LCD_Vsync)必須與從SDRAM 存儲器中取出的圖像數(shù)據(jù)同步,否則,,圖像將不能正常再現(xiàn),。實現(xiàn)LCD控制的行同步、場同步的控制時序流程如圖2,。
 


  2.3 LCD控制器文件組成及部分代碼

  與LCD控制器硬件相對應(yīng)的是3個模塊文件,,分別是:LCD_interface.vhd,LCD_pixel_fifo.v以及LCD_controller_stream.v,。其中LCD_controller_stream.v是頂層模塊,,其內(nèi)部也包含了Avalon Streaming Port接口時序部分,LCD_pixel_fifo.v可通過QuartusII中的宏模塊直接生成,。當(dāng)生成了上述3個文件后,,可選擇SOPC Builder中的System->Add Interface to User Logic命令打開Interface to User Logic對話框,選擇總線類型為Avalon Memory Slave,,因為工作于流模式的LCD控制器可看成一個存儲器(FIFO類型),,可通過添加DMA控制器來實現(xiàn)存儲器(FIFO)到存儲器(SDRAM)的DMA設(shè)置。下面給出LCD接口部分程序,。

ENTITY LCD_interface IS
PORT(
reset :IN std_logic;
lcd_clk :IN std_logic;
Wrdata :IN std_logic_vector(17 downto 0);
hsync :OUT std_logic;
vsync :OUT std_logic;
enable :OUT std_logic;
lcd_R/L :OUT std_logic;
lcd_U/D :OUT std_logic;
sel_VGA_QVGA :OUT std_logic;
RGB :OUT std_logic_vector(17 downto 0);
end_of_picture :OUT std_logic);
END LCD_interface;
ARCHITECTURE trans OF LCD_interface IS
process(lcd_clk) begin
if(rising_edge(lcd_clk)) then
if(hcnt<400) then
hcnt<=hcnt+1;
else
hcnt<=(others=>0);
end if;
end if;
end process;--行計數(shù)器模塊
process(lcd_clk) begin
if(rising_edge(lcd_clk)) then
if(hcnt=320) then
if(vcnt<262) then
vcnt<= vcnt+1;
else
vcnt<=(others=>0);
end if;
end if;
end if;
end process;--場計數(shù)器模塊
process(lcd_clk) begin
if(rising_edge(lcd_clk)) then
if((hcnt>= 320+20+20 ) and (hcnt<320+20+20+40)) then
hs<=0;
else
hs<=1;
end if;
end if;
end process;--產(chǎn)生水平同步脈沖
process(vcnt)begin
if((vcnt>=240+6+6)and(vcnt<240+6+6+10)) then
VS<=0;
else
vs<=1;
end if;
end process;--產(chǎn)生場同步脈沖
process(lcd_clk) begin
if(rising_edge(lcd_clk)) then
if(hcnt<320 and vcnt<240)and(hcnt>20 and vcnt>6) then
en<=1;
else
en<=0;
end if;
end if;
end process;--產(chǎn)生顯示使能控制信號
process(led_clk)begin
if(rising_edge(lcd_clk))then
if(hcnt<320 and vcnt<240)then
RGB<=Wdata;
else
RGB<=(others=>0);
end if;
end if;
end process;--像素輸出及消隱
process(lcd_clk)begin
if(rising_edge(lcd_clk))then
if((vcnt=320+1)and(hcnt=0))then
end_of_picture<=1;
else
end_of_picture<=0;
end if;
end if;
end process;--一幀傳輸完畢
END ARCHITECTURE trans;

  3 DMA控制流程及實驗結(jié)論

  3.1 DMA傳輸方式下的程序流程

  利用該方案實現(xiàn)LCD的顯示已在某面陣CCD采集系統(tǒng)中得到驗證,。在實際的系統(tǒng)中,,該部分主要實現(xiàn)所采集的面陣CCD圖像傳感器圖像數(shù)據(jù)的動態(tài)顯示。在實際的采集控制系統(tǒng)中選用了2個DMA,,一個用于圖像數(shù)據(jù)的采集,,一個用于采集后圖像的再現(xiàn)。在文中僅介紹了顯示DMA傳輸控制方式下的相應(yīng)模塊,。實際系統(tǒng)中,圖像數(shù)據(jù)從面陣CCD圖像傳感器以DMA控制方式將圖像數(shù)據(jù)采集到SDRAM,,所采集后的圖像數(shù)據(jù)從SDRAM到LCD顯示,。實際系統(tǒng)中的DMA控制流程如圖3。
 


  3.2實驗結(jié)論

  根據(jù)圖3所采集到的面陣CCD的圖像數(shù)據(jù)保存在SDRAM中,,按一定比例抽取的圖像數(shù)據(jù)在SDRAM中合成18位的RGB圖像信號,,而后在NIOS II處理器以及顯示DMA的控制下,將一幀完整的圖像顯示在LCD上,,實際控制的顯示結(jié)果如圖4,。

  4 結(jié)束語

  利用NIOS II作為FPGA嵌入式處理器控制LCD的解決方案,能較容易地實現(xiàn)圖像數(shù)據(jù)的DMA傳輸與控制,,系統(tǒng)中可根據(jù)實際需求有選擇的定制相應(yīng)模塊,,使系統(tǒng)具有較強的靈活性。同時由于采用“軟”硬件實現(xiàn)LCD的控制,,調(diào)試過程中通過不斷更改“軟件”就可達(dá)到改進(jìn)硬件功能的目的,。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。