在嵌入式應(yīng)用中引入用戶界面(上)
設(shè)備廠商意識到,除消費電子產(chǎn)品外,觸摸屏GUI可讓很多其它嵌入式系統(tǒng)增加產(chǎn)品價值。傳統(tǒng)的開關(guān)按鈕式界面很容易出現(xiàn)機械部件故障,電容式觸摸屏不僅可實現(xiàn)更可靠的用戶界面,還能為設(shè)備廠商提供更高的設(shè)計靈活性和功能擴展性。
本文引用地址:http://butianyuan.cn/article/142447.htm32位處理
給嵌入式系統(tǒng)增加GUI界面與在設(shè)備面板上添加幾個按鈕或控制開關(guān)完全不同。隨著觸摸屏在手機上近乎無限普及,消費者期望各種設(shè)備都配備先進的用戶界面,采用3D圖像、感觀深度、動畫狀態(tài)轉(zhuǎn)換、圖形紋理和復(fù)雜的背景照明技術(shù)。要想創(chuàng)建一個能夠給應(yīng)用增加價值和美感的直觀用戶界面,GUI必須支持觸摸屏界面所必備的基本功能:點擊、拖動、滑動、翻頁等手勢控制。
基于8位或16位處理器的應(yīng)用沒有能力處理圖形,即便簡單的圖形也無法處理。像STM32一樣的高性能32位微控制器,除提供最基本的應(yīng)用運行功能外,還能提供完整的圖形處理功能以及觸控功能,在先進圖形用戶界面的普及過程中發(fā)揮關(guān)鍵作用。例如,STM32-F0具有32位的性能,8位或16位的價格。對于圖形處理任務(wù)更多的應(yīng)用,STM32-F2和STM32-F4提供更大容量的閃存,以存儲更多的圖形數(shù)據(jù)。STM32最高性能達到168 MHz/210 DMIP,可以滿足用戶對GUI設(shè)備的顯示響應(yīng)性能的要求。
但是,隨著硬件成本降低,軟件復(fù)雜程度卻不斷提高。實際上,不論是從研發(fā)投入還研發(fā)周期看,應(yīng)用軟件已成為嵌入式系統(tǒng)的最大開發(fā)成本,為保持市場競爭力,設(shè)備廠商必須增加先進的GUI功能,同時還要嚴格控制軟件開發(fā)成本。實現(xiàn)這個目標(biāo)需要滿足以下要求:擁有GUI設(shè)計框架,能夠使用Java替代C語言設(shè)計界面外觀,能夠在目標(biāo)硬件還在研發(fā)過程中快速推出設(shè)計原型,以便獲得消費者的反饋意見,最后,還需要針對嵌入式系統(tǒng)常見的存儲器和處理性能受到嚴格限制的特點優(yōu)化的開發(fā)工具。
GUI設(shè)計框架
GUI設(shè)計有兩個主要過程。第一過程是開發(fā)底層軟件代碼,GUI底層提供基本的UI功能。在底層準(zhǔn)備就緒后,就開始設(shè)計GUI的外觀。為把系統(tǒng)開發(fā)成本控制在預(yù)算范圍內(nèi),開發(fā)人員必須盡量降低這兩個過程的成本,消除不必要的設(shè)計延時。
過去,嵌入式系統(tǒng)UI是為目標(biāo)硬件專門設(shè)計,隨著縮短設(shè)計周期的壓力不斷增加,IP復(fù)用問題成為UI設(shè)計的一個重要考慮因素。最理想的是,開發(fā)人員能夠在不同的產(chǎn)品系列移植UI代碼,而且這些產(chǎn)品可搭載不同系列的微控制器。GUI應(yīng)用代碼在硬件層上抽象化可實現(xiàn)跨系遷移。硬件抽象層(HAL)用于處理特定底層代碼的細節(jié),例如,如何在存儲器內(nèi)保存圖形數(shù)據(jù),如何傳輸?shù)斤@示器(圖1)。通過使API與HAL層互動,能夠把GUI應(yīng)用代碼變成可移植的設(shè)計框架,開發(fā)人員可在同一產(chǎn)品家族內(nèi)移植GUI代碼,而且代碼重寫量被降至最低水平。創(chuàng)建一個大型的GUI框架是一個復(fù)雜的過程,HAL層讓開發(fā)人員能夠使用匯編語言以外的語言創(chuàng)建框架,因此,代碼開發(fā)速度和IP復(fù)用性都得到相應(yīng)提高。不過,使用C語言設(shè)計框架仍然需要大量的開發(fā)資源。最好的解決之道是,開發(fā)人員能夠使用現(xiàn)成的軟件,無需從頭開始設(shè)計,把開發(fā)投資降至最低。通過使用適當(dāng)?shù)脑O(shè)計工具,GUI設(shè)計周期可縮至幾個星期。例如,GeeseWare的GWStudio是一個預(yù)裝GUI軟件庫的Java圖形界面設(shè)計框架,為開發(fā)人員提供一個完整的人機界面(HMI)開發(fā)環(huán)境。該框架的Java引擎基于IS2T MicroEJ 技術(shù),經(jīng)過專門優(yōu)化處理,能夠滿足嵌入應(yīng)用的特殊要求:存儲空間、外設(shè)接口、網(wǎng)絡(luò)連接和低功耗都受到限制?! ?/p>
評論