嵌入式系統(tǒng)廣泛應用在通信終端、車載設備、工業(yè)控制等領域。隨著嵌入式技術的發(fā)展,對嵌入式系統(tǒng)圖形用戶界面(Graphic User Interface,GUI)的要求逐步提高。GUI是用戶和嵌入式設備之間的接口,是嵌入式系統(tǒng)的重要組成部分,它通過窗口和菜單等圖形化操作方式,極大地方便了用戶對嵌入式產品的使用。GUI的好壞將直接影響嵌入式產品的普及和使用。GUI簡潔、方便、美觀的嵌入式產品具有廣闊的市場應用前景。
嵌入式系統(tǒng)的資源是比較緊張的,多數(shù)嵌入式系統(tǒng)沒有個人電腦所具有的硬件資源和圖形顯示處理資源。一個嵌入式系統(tǒng)能夠顯示何種風格的界面,是由嵌入式系統(tǒng)的功能需求和本身的圖形顯示處理機制決定的。因此不同嵌入式系統(tǒng)的GUI設計是不同的,它綜合了硬件和軟件兩方面的考慮,而不像在個人電腦上開發(fā)界面時多數(shù)情況下只需考慮軟件設計。
本文以車載影音導航系統(tǒng)為例,介紹了一種嵌入式系統(tǒng)圖形用戶界面的設計方法。首先介紹了系統(tǒng)對圖形界面的需求,然后給出了實現(xiàn)系統(tǒng)圖形界面的硬件和軟件設計方案。
1 功能需求
文中的車載影音導航系統(tǒng)集導航、DVD播放、收音、倒車雷達顯示、倒車后視等多功能于一體,采用圖形化界面顯示。為了方便用戶使用,系統(tǒng)采用按鍵和觸摸屏結合的操作方式。
本系統(tǒng)對圖形界面的功能需求主要分為兩大類。
一類是單純的用戶界面操作,如圖1所示。這一類界面總體上是由窗口和按鈕組成,整個操作界面可以看成是一個窗口,窗口上有可供用戶操作的各種按鈕。從實現(xiàn)上看,圖形界面的窗口實際上是一個背景圖片,每個按鈕則至少由兩張圖片組成的:一張圖片用于表示正常顯示的按鈕,一張圖片用于表示選中時的按鈕顯示。那么整個界面就是由窗口圖片和按鈕圖片組合而成,最終送到顯示終端上的是一副完整拼接的圖片。圖1中,“設置”按鈕顯示當前用戶點中了該按鈕。
另一類圖形界面是在有播放視頻(如DVD播放)時,疊加在播放視頻上的按鈕,如圖2所示。從實現(xiàn)上看,這類圖形界面上的每個按鈕仍然至少由兩張圖片組成。但是不同的是,這類圖形界面最終送到顯示終端上的內容由圖片和DVD視頻兩部分疊加而成。大多數(shù)DVD機芯輸出的視頻信號是CVBS(復合視頻信號)或 YC,而圖片信息在系統(tǒng)中是以RGB的形式出現(xiàn)的,那么要實現(xiàn)這類圖形界面就需要對DVD視頻進行解碼,解碼后和圖片的RGB信息進行疊加再輸出到顯示終端。圖2所示為DVD播放時,提供給用戶的操作按鈕。
2 硬件設計方案
為了實現(xiàn)本系統(tǒng)中的圖形用戶界面,采用雅馬哈公司的圖像處理芯片YGV629。同時為了滿足圖像處理的要求,系統(tǒng)的MCU使用意法半導體公司基于 ARM7TDMI-S的32位RISC CPU STR750,STR750主頻最高可達60 MHz,具有16 KB的RAM,最大片內Flash為256 KB。
2.1 YGV629
YGV629是一款圖像處理芯片,通過MCU控制其讀取存儲在Flash或ROM中的圖片數(shù)據(jù),將數(shù)據(jù)處理成RGB信號輸出。有兩種RGB信號輸出:模擬 RGB和數(shù)字RGB。輸出的行場時序有兩種方式,一種是YGV629自身產生的時序關系,此時芯片工作在內同步模式下;另一種是根據(jù)外部輸入的視頻時序來生成輸出的視頻時序關系,此時芯片工作在外同步模式下。YGV629可以產生的終端顯示時序包括NTSC、PAL、VGA、QVGA、SVGA等,因此可以支持多種顯示終端設備。
YGV629對圖形界面中圖片的管理是通過圖層的方式,每個圖片占用1個圖層,最多可以有341個圖層,輸出圖片的RGB由這341個圖層疊加而成。每個圖層在整屏上的顯示由12字節(jié)的屬性數(shù)據(jù)確定,這些屬性數(shù)據(jù)決定每個圖層在整屏上的顯示位置、透明色、縮放比例、Alpha通道等。
YGV629支持8位色和16位色的BMP圖片以及PNG圖片。對于8位色,YGV629內部有調色板機制,并有2 KB的調色板存儲空間。對于16位色,不使用調色板,圖片直接存儲為顏色數(shù)據(jù)。
2.2 硬件方案
圖3是本文中車載影音導航系統(tǒng)的硬件設計方案。圖形界面使用到的圖片數(shù)據(jù)保存在圖片存儲Flash中,YGV629通過并口讀取圖片數(shù)據(jù)。
對于前文提到的第一類用戶界面,此時整個顯示終端的輸入都是由YGV629輸出的,YGV629工作在內同步模式下。MCU通過SPI控制YGV629,設置其工作模式、顯示圖層屬性、輸出視頻格式等。YGV629通過并口讀取存儲在Flash中的圖片數(shù)據(jù),然后生成輸出的圖片模擬RGB以及行場同步信號 HCSYNC和VSYNC,YS信號是YGV629輸出的對模擬開關的控制信號。對于這一類用戶界面,YS控制模擬開關全部輸出圖片模擬RGB。這樣 L_R、L_G、L_B、HCSYNC和VSYNC構成了對顯示終端的輸出。
對于第二類用戶界面,由MCU控制視頻通道選擇開關來選擇要播放的視頻源。視頻源可以是DVD視頻、導航視頻或后視視頻。例如,若MCU選擇的是DVD視頻通路,那么DVD視頻輸出到視頻解碼芯片,視頻解碼芯片輸出DVD視頻解碼后的模擬RGB和行場同步。其中模擬RGB輸出到模擬開關,視頻行場同步信號輸出到YGV629。MCU設置YGV629工作在外同步模式下,即YGV629使用DVD視頻的行場同步作為輸出圖形界面的行場同步。YGV629讀取 Flash中的圖片數(shù)據(jù),根據(jù)MCU設置的圖層屬性,在適當時候輸出相應的圖片模擬RGB和通道切換控制信號YS。高速模擬開關根據(jù)通道切換控制信號YS 的高低電平,在每個像素點的輸出時刻,從DVD視頻RGB和圖形界面圖片RGB這兩路RGB信號中選擇一路輸出,通過“像素點插入”的方式將圖形界面嵌入到DVD視頻中,從而實現(xiàn)了DVD視頻和圖形界面的疊加。
3 軟件設計方案
車載影音導航系統(tǒng)圖形用戶界面軟件模塊的設計分為兩部分:應用軟件模塊設計和YGV629驅動模塊設計。硬件驅動模塊由MCU和YGV629間通信、圖層屬性設置、工作模式設置、顯示輸出設置等組成。為了提高顯示質量,防止在界面切換時出現(xiàn)屏幕抖動,YGV629采用雙緩沖機制,將341個圖層劃分成兩幀,每幀占用170個圖層。一幀用于當前顯示界面。另一幀用于準備下一個顯示界面,在準備好下一個顯示界面后,再將顯示輸出從當前幀切換到下一幀??紤]到系統(tǒng)每個界面使用的圖層數(shù)都遠遠小于170,所以這樣的機制是可行的。根據(jù)需求,硬件驅動模塊主要設計了以下幾組函數(shù):VC_Write_XXX()和 VC_Read_XXX(),用于MCU和YGV629進行串口通信,設置和讀取YGV629內部寄存器、圖層屬性數(shù)據(jù)、調色板數(shù)據(jù)等;VC_Layer_SetXXX(),用于設置YGV629的圖層屬性;VC_Palette_XXX(),用于對調色板進行管理;VC_Display_Set(),用于設置YGV629的顯示輸出;VC_ModeSet(),用于在內同步和外同步工作模式之間進行切換。應用軟件模塊主要對不同圖形用戶界面進行封裝管理,不同界面包含多個按鈕,每個按鈕對應按下和抬起兩個動作。MMI_Open()函數(shù)用于打開不同的界面,這個函數(shù)通過調用硬件驅動模塊,準備要打開界面的圖層屬性數(shù)據(jù)、調色板數(shù)據(jù),并寫入YGV629中,最后根據(jù)要顯示的界面進行顯示輸出設置和工作模式的切換。對于按鈕,設計了函數(shù)MMI_Button_Down()和MMI_Button_Up(),用于處理當某個按鈕按下和抬起時的界面變化。此外對不同界面,另需定制專門的處理函數(shù),比如界面上某些焦點閃爍、音量調節(jié)進度條的變化等。
4 總結
本文主要介紹了一種基于雅馬哈圖像處理芯片YGV629的嵌入式系統(tǒng)圖形用戶界面的設計方法。對于嵌入式系統(tǒng),大多數(shù)顯示處理芯片提供OSD顯示,只是簡單的圖形顯示和字符顯示,顏色比較單調,不能顯示顏色豐富、美觀炫麗的圖片界面。YGV629提供了顯示8位色、16位色圖片的功能,并且能夠實現(xiàn)圖形界面和DVD等視頻源的疊加,給嵌入式系統(tǒng)界面設計帶來很大空間。本文以車載影音導航系統(tǒng)為例,詳細介紹了使用YGV629芯片的硬件設計和軟件設計方案。
責任編輯:gt
-
芯片
+關注
關注
455文章
50845瀏覽量
423847 -
嵌入式
+關注
關注
5083文章
19129瀏覽量
305434 -
接口
+關注
關注
33文章
8610瀏覽量
151220
發(fā)布評論請先 登錄
相關推薦
評論