基于NiosⅡ的VGA彩條信號(hào)顯示的實(shí)現(xiàn)
摘 要:VGA 作為一種標(biāo)準(zhǔn)的顯示接口得到廣泛的應(yīng)用。依據(jù)VGA 顯示的原理,提出了一種基于Nios Ⅱ處理器的VGA 時(shí)序彩條信號(hào)顯示的實(shí)現(xiàn)方法。利用FPGA 產(chǎn)生VGA 時(shí)序信號(hào),Nios Ⅱ處理器控制輸出彩條的顏色,按鍵控制彩條的輸出模式,將要顯示信號(hào)的數(shù)據(jù)直接送到顯示器,這樣就加快了數(shù)據(jù)處理速度,節(jié)約了硬件成本。
關(guān)鍵詞: FPGA ;Nios Ⅱ;VGA ;彩條信號(hào)
1 引 言
Altera 開(kāi)發(fā)了整套工具(包括SOPC Builder ,Nios Ⅱ集成設(shè)計(jì)環(huán)境和Quartus Ⅱ開(kāi)發(fā)軟件) 幫助用戶(hù)加速硬件和軟件的開(kāi)發(fā),實(shí)現(xiàn)完整的基于可編程邏輯的SOPC 解決方案。SOPC Builder 是在Altera FPGA 中實(shí)施IP 的關(guān)鍵工具。該系統(tǒng)級(jí)工具使用Altera 的MegaWizard 技術(shù)自動(dòng)生成AvalON 的交換架構(gòu),將設(shè)計(jì)中的不同功能模塊連接在一起。SOPC Builder 還會(huì)生成定制軟件開(kāi)發(fā)工具,根據(jù)需要為由Nios Ⅱ處理器控制的功能模塊提供合適的軟件頭文件。Nios Ⅱ IDE 是Nios Ⅱ軟核處理器的主要開(kāi)發(fā)工具。他為軟件開(kāi)發(fā)提供了一個(gè)集成的設(shè)計(jì)開(kāi)發(fā)環(huán)境,包括一個(gè)具有工程管理、源代碼開(kāi)發(fā)、基于J TAG 調(diào)試功能的圖形用戶(hù)界面( GUI) ,大大簡(jiǎn)化了大量復(fù)雜的NiosⅡ處理器設(shè)計(jì)。業(yè)內(nèi)領(lǐng)先的Quartus Ⅱ軟件為硬件開(kāi)發(fā)提供了設(shè)計(jì)采集、綜合、仿真和布局布線(xiàn)功能。Quartus Ⅱ軟件是最具成本效益的FPGA 開(kāi)發(fā)套件。
本VGA 輸出顯示實(shí)例采用Altera DE2 嵌入式系統(tǒng)開(kāi)發(fā)板,實(shí)現(xiàn)了嵌入式VGA 彩條輸出顯示。
2 VGA 信號(hào)時(shí)序
[!--empirenews.page--]
3 硬件設(shè)計(jì)與實(shí)現(xiàn)
3. 1 Nios Ⅱ嵌入式軟核處理器簡(jiǎn)介
Nios Ⅱ嵌入式處理器是Altera 公司于2004 年6 月推出的第二代用于可編程邏輯器件的可配置的軟核處理器,在CycloneII 器件下,性能最高可達(dá)56 DMIPS。Nios Ⅱ是基于哈佛結(jié)構(gòu)的RISC 通用嵌入式處理器軟核,能與用戶(hù)邏輯相結(jié)合, 編程至Altera 的FPGA 中。處理器具有32 位指令集,32 位數(shù)據(jù)通道和可配置的指令以及數(shù)據(jù)緩沖。他特別為可編程邏輯進(jìn)行了優(yōu)化設(shè)計(jì),也為可編程單芯片系統(tǒng)(SOPC) 設(shè)計(jì)了一套綜合解決方案。Nios Ⅱ處理器系列包括3 種內(nèi)核:高性能的快速內(nèi)核(Nios Ⅱ/ f ) ;低成本經(jīng)濟(jì)型內(nèi)核(Nios Ⅱ/ e) ;性能/ 成本折中的標(biāo)準(zhǔn)內(nèi)核(Nios Ⅱ/ s) ,是前2 種的平衡。本系統(tǒng)采用經(jīng)濟(jì)型內(nèi)核。
3. 2 系統(tǒng)的硬件平臺(tái)
系統(tǒng)的硬件結(jié)構(gòu)如圖2 所示。
圖1 所示是計(jì)算機(jī)VGA(640 ×480 ,60 Hz) 圖像格式的信號(hào)時(shí)序圖, 其點(diǎn)時(shí)鐘DCLK 為251175 MHz , 場(chǎng)頻為59194 Hz。圖中, Vsync 為場(chǎng)同步信號(hào), 場(chǎng)周期TVsync 為161683 ms ,每場(chǎng)有525 行,其中480 行為有效顯示行,45 行為場(chǎng)消隱期。場(chǎng)同步信號(hào)Vsync 每場(chǎng)有一個(gè)脈沖,該脈沖的低電平寬度twv為63μs (2 行) 。場(chǎng)消隱期包括場(chǎng)同步時(shí)間twv 、場(chǎng)消隱前肩tHV (13 行) 、場(chǎng)消隱后肩tVH (30 行) ,共45 行。
行周期THsync為31178μs ,每顯示行包括800 點(diǎn),其中640 點(diǎn)為有效顯示區(qū),160 點(diǎn)為行消隱期(非顯示區(qū)) 。行同步信號(hào)Hsync 每行有一個(gè)脈沖,該脈沖的低電平寬度tWH為3181 μs (即96 個(gè)DCL K) ;行消隱期包括行同步時(shí)間tWH ,行消隱前肩tHC (19 個(gè)DCL K) 和行消隱后肩tCH(45 個(gè)DCL K) ,共160 個(gè)點(diǎn)時(shí)鐘。復(fù)合消隱信號(hào)是行消隱信號(hào)和場(chǎng)消隱信號(hào)的邏輯與,在有效顯示期復(fù)合消隱信號(hào)為高電平,在非顯示區(qū)域是低電平。
本系統(tǒng)的硬件平臺(tái)主要是在terasic 公司的AlteraDE2 開(kāi)發(fā)板上實(shí)現(xiàn),選用Altera 的Cyclone Ⅱ版本的NiosⅡ開(kāi)發(fā)套件,包括Nios Ⅱ處理器、標(biāo)準(zhǔn)外圍設(shè)備庫(kù)、集成了SOPC Builder 系統(tǒng)設(shè)計(jì)工具的Quartus Ⅱ開(kāi)發(fā)軟件等。
系統(tǒng)的主要組件有Nios Ⅱ的經(jīng)濟(jì)型內(nèi)核、片內(nèi)存儲(chǔ)器、定時(shí)器、VGA 控制器、LCD 控制器等,都集成在一塊Altera的Cyclone II FPGA 芯片上,使用SOPC Builder 來(lái)配置生成片上系統(tǒng)。SOPC Builder 自動(dòng)產(chǎn)生每個(gè)模塊的HDL 文件,同時(shí)自動(dòng)產(chǎn)生一些必要的仲裁邏輯來(lái)協(xié)調(diào)系統(tǒng)中各部件的工作。
3. 3 V GA 時(shí)序信號(hào)的產(chǎn)生
系統(tǒng)中最重要的部分是VGA 時(shí)序的產(chǎn)生,是正常輸出顯示的關(guān)鍵,他包含在VGA 控制器中。VGA 控制器是用SOPC Builder 中的interface to user logic 生成的,首先用硬件描述語(yǔ)言定義一個(gè)時(shí)序輸出和RGB 信號(hào)輸出模塊,點(diǎn)時(shí)鐘251175 MHz 由開(kāi)發(fā)板提供的27 MHz 的時(shí)鐘經(jīng)鎖相環(huán)分頻產(chǎn)生,鎖相環(huán)是通過(guò)MegWizard 工具加入系統(tǒng)的。他實(shí)現(xiàn)了VGA 輸出所需的點(diǎn)時(shí)鐘、復(fù)合同步控制信號(hào)、復(fù)合消隱控制信號(hào)、行同步和場(chǎng)同步信號(hào)。同時(shí),他完成了從寄存器內(nèi)讀取輸出顯示命令及彩條顏色值,并根據(jù)按鍵計(jì)數(shù)判斷顯示彩條的類(lèi)型,包括橫彩條、豎彩條及網(wǎng)格。其中點(diǎn)時(shí)鐘、復(fù)合同步控制信號(hào)、復(fù)合消隱控制信號(hào)和RGB 數(shù)字信號(hào)輸入給ADV7123 ,行同步、場(chǎng)同步和由ADV7123 轉(zhuǎn)換輸出的RGB 模擬信號(hào)輸入給VGA顯示器。另外,還要用硬件描述語(yǔ)言實(shí)現(xiàn)對(duì)寄存器的讀寫(xiě),以使VGA 控制器端口符合Avalon 接口規(guī)范。
VGA 時(shí)序信號(hào)產(chǎn)生模塊包括行點(diǎn)數(shù)計(jì)數(shù)器HCont 、場(chǎng)點(diǎn)數(shù)計(jì)數(shù)器V Cont ,行點(diǎn)數(shù)計(jì)數(shù)器是800 進(jìn)制計(jì)數(shù)器,場(chǎng)行數(shù)計(jì)數(shù)器是525 進(jìn)制計(jì)數(shù)器,由圖1 知行同步信號(hào)、場(chǎng)同步信號(hào)的電平只有2 種,分別在行同步時(shí)間和場(chǎng)同步時(shí)間為低電平,其余時(shí)間均為高電平,故可以忽略行/ 場(chǎng)消隱前肩、后肩狀態(tài)而只考慮其輸出電平的高低。
行計(jì)數(shù)器H Cont 對(duì)251175 MHz 的點(diǎn)時(shí)鐘進(jìn)行計(jì)數(shù),當(dāng)行計(jì)數(shù)器H Cont 的計(jì)數(shù)值小于96 時(shí), 行同步信號(hào)Hsync 輸出為低電平;當(dāng)H Cont 的計(jì)數(shù)值達(dá)到96 后,行同步信號(hào)Hsync 輸出為高電平;當(dāng)H Cont 的計(jì)數(shù)值達(dá)到799 時(shí),將H Cont 置0 ,同時(shí)使行同步信號(hào)Hsync 輸出轉(zhuǎn)換為高電平。場(chǎng)計(jì)數(shù)器V Cont 對(duì)H Cont 為0 值進(jìn)行計(jì)數(shù),當(dāng)場(chǎng)計(jì)數(shù)器V Cont 的計(jì)數(shù)值小于2 時(shí),場(chǎng)同步信號(hào)Vsync 輸出為低電平;當(dāng)場(chǎng)計(jì)數(shù)器V Cont 的計(jì)數(shù)值達(dá)到2 以后,場(chǎng)同步信號(hào)Vsync 輸出為高電平; 當(dāng)VCont 的計(jì)數(shù)值達(dá)到524 時(shí),將V Cont 置0 ,同時(shí)使場(chǎng)同步信號(hào)Vsync 輸出轉(zhuǎn)換為低電平。
復(fù)合消隱控制信號(hào)是行消隱信號(hào)和場(chǎng)消隱信號(hào)的邏輯與,在有效顯示期復(fù)合消隱信號(hào)為高電平,在非顯示區(qū)域是低電平;復(fù)合同步控制信號(hào)在此系統(tǒng)中始終為0 。
3. 4 RGB 信號(hào)的數(shù)模轉(zhuǎn)換
本系統(tǒng)采用ADV7123 實(shí)現(xiàn)由VGA 控制器輸出的RGB 信號(hào)的數(shù)模轉(zhuǎn)換。ADV7123 是一個(gè)3 路高速的在一個(gè)芯片上實(shí)現(xiàn)的數(shù)模轉(zhuǎn)換器。他包含3 路高速的10 位視頻D/ A 補(bǔ)償輸出轉(zhuǎn)換器,標(biāo)準(zhǔn)TTL 輸入接口和高阻模擬電流輸出。ADV7123 有3 路分開(kāi)的寬度為10 位輸入端口,30 位象素?cái)?shù)據(jù)在每個(gè)時(shí)鐘周期上升沿送到器件,然后轉(zhuǎn)換成模擬信號(hào)輸出。ADV7123 還有附加的視頻控制信號(hào),復(fù)合同步控制信號(hào)SYNC 和復(fù)合消隱控制信號(hào)BLAN K,他們?cè)邳c(diǎn)時(shí)鐘CLOCK 的上升沿有效以保證象素?cái)?shù)據(jù)流的同步。
圖3 為ADV7123 的視頻數(shù)據(jù)輸入/ 輸出時(shí)序圖。
[!--empirenews.page--]
4 系統(tǒng)的軟件設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)的軟件流程圖如圖4 所示。
在硬件設(shè)計(jì)中定義好一個(gè)3 位的控制寄存器和8 個(gè)10 位的顏色值寄存器,控制寄存器主要控制3 種顏色信號(hào)的使能,顏色值寄存器存儲(chǔ)輸出彩條的顏色值,每種彩條可以輸出8 個(gè)不同顏色。在軟件中定義一個(gè)三進(jìn)制按鍵計(jì)數(shù)器。
系統(tǒng)軟件主要是通過(guò)對(duì)片內(nèi)寄存器的讀寫(xiě)實(shí)現(xiàn)對(duì)VGA 的控制,包括顏色使能的控制、輸出彩條的顏色的控制。
5 結(jié) 語(yǔ)
本文提出了一種基于Nios Ⅱ嵌入式處理器軟核的VGA 彩條輸出顯示系統(tǒng)實(shí)現(xiàn)方法。使用Altera 的Cy2clone II FPGA 控制VGA 時(shí)序,穩(wěn)定可靠且具有開(kāi)發(fā)周期短、成本低等特點(diǎn)。使用Nios Ⅱ處理器控制彩條輸出方便,易于理解。