嵌入式系統(tǒng)VGA顯示接口的系統(tǒng)實(shí)現(xiàn),軟硬件解決方案
- 設(shè)計(jì)摘要
在許多嵌入式系統(tǒng)中,為了實(shí)現(xiàn)良好的人機(jī)界面,這就對(duì)系統(tǒng)的MCU和顯示設(shè)備提出了更高的要求。若能用低速的MCU實(shí)現(xiàn)和PC機(jī)類似的顯示效果,將會(huì)大幅度提高產(chǎn)品的附加值。目前,帶有VGA接口和類VGA的顯示設(shè)備隨處可見,若能以此類設(shè)備作為各種嵌入式系統(tǒng)的顯示器,也可提高各種嵌入式設(shè)備人機(jī)界面的通用性。本項(xiàng)目采用FPGA器件和帶有VGA接口的顯示器,實(shí)現(xiàn)適用于各種嵌入式系統(tǒng)的顯示接口,使得低速的MCU不需要增加過多開銷即可采用VGA接口設(shè)備作為顯示器。
- 硬件結(jié)構(gòu)圖
系統(tǒng)硬件結(jié)構(gòu)圖如圖1所示:
圖1系統(tǒng)硬件結(jié)構(gòu)圖
三、軟件介紹
系統(tǒng)軟件分為兩個(gè)部分:MCU軟件模塊和FPGA軟件模塊。MCU軟件模塊主要負(fù)責(zé)將要顯示數(shù)據(jù)傳送給FPGA,主要實(shí)現(xiàn)的功能是在VGA顯示器上打點(diǎn)(在指定的行坐標(biāo)、列坐標(biāo)出以某一指定的顏色顯示一個(gè)點(diǎn)),在此功能的基礎(chǔ)之上實(shí)現(xiàn)劃線、矩形填充、顯示圖片的功能。FPGA模塊主要負(fù)責(zé)接收MCU模塊發(fā)送的數(shù)據(jù),并將接收到的數(shù)據(jù)通過內(nèi)部的寫FIFO單元存入外接的SDRAM存儲(chǔ)器中,然后再通過內(nèi)部的讀FIFO單元從SDRAM中將數(shù)據(jù)取出送到VGA數(shù)模轉(zhuǎn)換模塊,同時(shí)FPGA模塊還要提供VGA顯示所需要的HS、VS、SYNC等掃描信號(hào)。
1、FPGA軟件模塊介紹
FPGA模塊的軟件主要有以下幾部分組成。
- FPGA頂層模塊:
FPGA頂層模塊主要定義了FPGA與外圍的MCU、SDRAM、VGA數(shù)模轉(zhuǎn)換的接口。各引腳的具體定義如表1和圖1所示。
表1
方向 | 名稱 | 描述 |
Input | clk | 輸入時(shí)鐘50M |
Input | rst_n | 異步復(fù)位,低有效 |
Input | a0 | 數(shù)據(jù)地址選擇,低表示地址 |
Input | we | 寫信號(hào),上升沿有效 |
Input | re | RE,讀信號(hào),下降沿有效 |
Input | ce | 片選,低有效 |
input | [15:0]data1616 | 時(shí)序接口,數(shù)據(jù)線 |
output | dclk | 輸出時(shí)鐘40M,給VGA |
output | hs_sig | 列同步信號(hào) |
output | vs_sig | 行同步信號(hào) |
output | red_sig[4:0] | 紅信號(hào) |
output | green_sig[5:0] | 綠信號(hào) |
output | blue_sig[4:0] | 藍(lán)信號(hào) |
output | sdram_clk | SDRAM時(shí)鐘信號(hào) |
output | sdram_cke | SDRAM時(shí)鐘有效信號(hào) |
output | sdram_cs_n | SDRAM片選信號(hào) |
output | sdram_ras_n | SDRAM行地址選通脈沖 |
output | sdram_cas_n | SDRAM列地址選通脈沖 |
output | sdram_we_n | SDRAM寫允許位 |
output | sdram_ba[1:0] | SDRAM的L-Bank地址線 |
output | sdram_addr[12:0] | SDRAM地址總線 |
inout | sdram_data[15:0] | SDRAM數(shù)據(jù)總線 |
output | sdram_udqm | SDRAM高字節(jié)屏蔽 |
output | sdram_ldqm | SDRAM低字節(jié)屏蔽 |
圖1 FPGA軟件頂層模塊
- SDRAM讀、寫控制模塊
SDRAM讀、寫控制模塊主要實(shí)現(xiàn)FPGA對(duì)SDRAM存儲(chǔ)器的讀寫控制,該模塊主要完成SDRAM的上電初始化以及定時(shí)刷新、讀寫控制等狀態(tài)的變遷。該模塊各引腳的具體定義如表2和圖2所示。
表2
方向 | 名稱 | 描述 |
input | clk | 系統(tǒng)時(shí)鐘,100MHz |
input | rst_n | 復(fù)位信號(hào),低電平有效 |
input | sdram_wr_req | 系統(tǒng)寫SDRAM請(qǐng)求信號(hào) |
input | sdram_rd_req | 系統(tǒng)讀SDRAM請(qǐng)求信號(hào) |
output | sdram_wr_ack | 系統(tǒng)寫SDRAM響應(yīng)信號(hào) |
output | sdram_rd_ack | 系統(tǒng)讀SDRAM響應(yīng)信號(hào) |
input | sys_addr[21:0] | 讀寫SDRAM時(shí)地址暫存器 |
input | sys_data_in[15:0] | 寫SDRAM時(shí)數(shù)據(jù)暫存器 |
output | sys_data_out[15:0] | 讀SDRAM時(shí)數(shù)據(jù)暫存器 |
output | writing | SDRAM正寫標(biāo)志 |
output | sdram_clk | SDRAM時(shí)鐘信號(hào) |
output | sdram_cke | SDRAM時(shí)鐘有效信號(hào) |
output | sdram_cs_n | SDRAM片選信號(hào) |
output | sdram_ras_n | SDRAM行地址選通脈沖 |
output | sdram_cas_n | SDRAM列地址選通脈沖 |
output | sdram_we_n | SDRAM寫允許位 |
output | sdram_ba[1:0] | SDRAM的L-Bank地址線 |
output | sdram_addr[11:0] | SDRAM地址總線 |
inout | sdram_data[15:0] | SDRAM數(shù)據(jù)總線 |
圖2 SDRAM頂層模塊
- 讀、寫FIFO模塊
讀、寫FIFO模塊采用系統(tǒng)的IP核實(shí)現(xiàn),F(xiàn)IFO的容量為1K字單元(16位)。Wrf FIFO單元在wrreq為1時(shí)將MCU的數(shù)據(jù)存入wrf
FIFO,數(shù)據(jù)存入后,立即被寫入SDRAM中。Rdf FIFO單元在rdreq為1時(shí)將數(shù)據(jù)從SDRAM中取出送給VGA控制模塊。
圖3 寫FIFO模塊
圖4 讀FIFO模塊
- PLL單元
PLL單元主要負(fù)責(zé)管理系統(tǒng)所需的各種時(shí)鐘信號(hào),其中主要有:inclk0為系統(tǒng)輸入時(shí)鐘(50MHZ)。c1、c2為SDRAM提供100MHZ的讀、寫時(shí)鐘。c0、c3分別是為采樣MCU數(shù)據(jù)和VGA時(shí)序掃描所提供的40MHZ時(shí)鐘。
圖5 PLL模塊
- VGA控制模塊
VGA控制模塊主要負(fù)責(zé)將從MCU接收到的數(shù)據(jù)送給wrf FIFO中,然后從rdf FIFO中取出要顯示的數(shù)據(jù),并產(chǎn)生VGA所需的行掃描、列掃描信號(hào)、同步信號(hào)、時(shí)鐘信號(hào),一并送給外圍的VGA數(shù)模轉(zhuǎn)換電路。該模塊的各引腳的具體定義如表3和圖6所示。
表3
方向 | 名稱 | 描述 |
input | clk_40m | 輸入時(shí)鐘40M |
input | clk_100m | 輸入時(shí)鐘100M |
input | rst_n | 異步復(fù)位,低有效 |
input | a0 | 數(shù)據(jù)地址選擇,低表示地址 |
input | we | 寫信號(hào),上升沿有效 |
input | re | 讀信號(hào),下降沿有效 |
input | ce | 片選,低有效 |
input | rdf_q[15:0] | rdf讀數(shù)據(jù) |
input | writing | 正寫SDRAM |
input | sdram_rd_ack | 讀SDRAM應(yīng)答 |
input | data1616[15:0] | 數(shù)據(jù)線 |
output | wrf_din[15:0] | wrf寫數(shù)據(jù) |
output | wrf_wrreq | wrf寫使能 |
output | wrf_aclr | wrf異步清零 |
output | [21:0]sys_addr | SDRAM地址 |
output | rdf_rdreq | rdf讀使能 |
output | hs_sig | 列同步信號(hào) |
output | vs_sig | 行同步信號(hào) |
output | de | 時(shí)序控制 |
output | red_sig[4:0] | 紅信號(hào) |
output | green_sig[5:0] | 綠信號(hào) |
output | blue_sig[4:0] | 藍(lán)信號(hào) |
圖6?。郑牵聊K
2、系統(tǒng)的RTL圖
評(píng)論