基于YGV629的系統(tǒng)圖形用戶界面設(shè)計(jì)
YGV629支持8位色和16位色的BMP圖片以及PNG圖片。對(duì)于8位色,YGV629內(nèi)部有調(diào)色板機(jī)制,并有2 KB的調(diào)色板存儲(chǔ)空間。對(duì)于16位色,不使用調(diào)色板,圖片直接存儲(chǔ)為顏色數(shù)據(jù)。
2.2 硬件方案
圖3是本文中車載影音導(dǎo)航系統(tǒng)的硬件設(shè)計(jì)方案。圖形界面使用到的圖片數(shù)據(jù)保存在圖片存儲(chǔ)Flash中,YGV629通過并口讀取圖片數(shù)據(jù)。本文引用地址:http://butianyuan.cn/article/152428.htm
對(duì)于前文提到的第一類用戶界面,此時(shí)整個(gè)顯示終端的輸入都是由YGV629輸出的,YGV629工作在內(nèi)同步模式下。MCU通過SPI控制YGV629,設(shè)置其工作模式、顯示圖層屬性、輸出視頻格式等。YGV629通過并口讀取存儲(chǔ)在Flash中的圖片數(shù)據(jù),然后生成輸出的圖片模擬RGB以及行場同步信號(hào) HCSYNC和VSYNC,YS信號(hào)是YGV629輸出的對(duì)模擬開關(guān)的控制信號(hào)。對(duì)于這一類用戶界面,YS控制模擬開關(guān)全部輸出圖片模擬RGB。這樣 L_R、L_G、L_B、HCSYNC和VSYNC構(gòu)成了對(duì)顯示終端的輸出。
對(duì)于第二類用戶界面,由MCU控制視頻通道選擇開關(guān)來選擇要播放的視頻源。視頻源可以是DVD視頻、導(dǎo)航視頻或后視視頻。例如,若MCU選擇的是DVD視頻通路,那么DVD視頻輸出到視頻解碼芯片,視頻解碼芯片輸出DVD視頻解碼后的模擬RGB和行場同步。其中模擬RGB輸出到模擬開關(guān),視頻行場同步信號(hào)輸出到Y(jié)GV629。MCU設(shè)置YGV629工作在外同步模式下,即YGV629使用DVD視頻的行場同步作為輸出圖形界面的行場同步。YGV629讀取 Flash中的圖片數(shù)據(jù),根據(jù)MCU設(shè)置的圖層屬性,在適當(dāng)時(shí)候輸出相應(yīng)的圖片模擬RGB和通道切換控制信號(hào)YS。高速模擬開關(guān)根據(jù)通道切換控制信號(hào)YS 的高低電平,在每個(gè)像素點(diǎn)的輸出時(shí)刻,從DVD視頻RGB和圖形界面圖片RGB這兩路RGB信號(hào)中選擇一路輸出,通過“像素點(diǎn)插入”的方式將圖形界面嵌入到DVD視頻中,從而實(shí)現(xiàn)了DVD視頻和圖形界面的疊加。
3 軟件設(shè)計(jì)方案
車載影音導(dǎo)航系統(tǒng)圖形用戶界面軟件模塊的設(shè)計(jì)分為兩部分:應(yīng)用軟件模塊設(shè)計(jì)和YGV629驅(qū)動(dòng)模塊設(shè)計(jì)。硬件驅(qū)動(dòng)模塊由MCU和YGV629間通信、圖層屬性設(shè)置、工作模式設(shè)置、顯示輸出設(shè)置等組成。為了提高顯示質(zhì)量,防止在界面切換時(shí)出現(xiàn)屏幕抖動(dòng),YGV629采用雙緩沖機(jī)制,將341個(gè)圖層劃分成兩幀,每幀占用170個(gè)圖層。一幀用于當(dāng)前顯示界面。另一幀用于準(zhǔn)備下一個(gè)顯示界面,在準(zhǔn)備好下一個(gè)顯示界面后,再將顯示輸出從當(dāng)前幀切換到下一幀。考慮到系統(tǒng)每個(gè)界面使用的圖層數(shù)都遠(yuǎn)遠(yuǎn)小于170,所以這樣的機(jī)制是可行的。根據(jù)需求,硬件驅(qū)動(dòng)模塊主要設(shè)計(jì)了以下幾組函數(shù):VC_Write_XXX()和VC_Read_XXX(),用于MCU和YGV629進(jìn)行串口通信,設(shè)置和讀取YGV629內(nèi)部寄存器、圖層屬性數(shù)據(jù)、調(diào)色板數(shù)據(jù)等;VC_Layer_SetXXX(),用于設(shè)置YGV629的圖層屬性;VC_Palette_XXX(),用于對(duì)調(diào)色板進(jìn)行管理;VC_Display_Set(),用于設(shè)置YGV629的顯示輸出;VC_ModeSet(),用于在內(nèi)同步和外同步工作模式之間進(jìn)行切換。應(yīng)用軟件模塊主要對(duì)不同圖形用戶界面進(jìn)行封裝管理,不同界面包含多個(gè)按鈕,每個(gè)按鈕對(duì)應(yīng)按下和抬起兩個(gè)動(dòng)作。MMI_Open()函數(shù)用于打開不同的界面,這個(gè)函數(shù)通過調(diào)用硬件驅(qū)動(dòng)模塊,準(zhǔn)備要打開界面的圖層屬性數(shù)據(jù)、調(diào)色板數(shù)據(jù),并寫入YGV629中,最后根據(jù)要顯示的界面進(jìn)行顯示輸出設(shè)置和工作模式的切換。對(duì)于按鈕,設(shè)計(jì)了函數(shù)MMI_Button_Down()和MMI_Button_Up(),用于處理當(dāng)某個(gè)按鈕按下和抬起時(shí)的界面變化。此外對(duì)不同界面,另需定制專門的處理函數(shù),比如界面上某些焦點(diǎn)閃爍、音量調(diào)節(jié)進(jìn)度條的變化等。
4 總 結(jié)
本文主要介紹了一種基于雅馬哈圖像處理芯片YGV629的嵌入式系統(tǒng)圖形用戶界面的設(shè)計(jì)方法。對(duì)于嵌入式系統(tǒng),大多數(shù)顯示處理芯片提供OSD顯示,只是簡單的圖形顯示和字符顯示,顏色比較單調(diào),不能顯示顏色豐富、美觀炫麗的圖片界面。YGV629提供了顯示8位色、16位色圖片的功能,并且能夠?qū)崿F(xiàn)圖形界面和DVD等視頻源的疊加,給嵌入式系統(tǒng)界面設(shè)計(jì)帶來很大空間。本文以車載影音導(dǎo)航系統(tǒng)為例,詳細(xì)介紹了使用YGV629芯片的硬件設(shè)計(jì)和軟件設(shè)計(jì)方案。
評(píng)論