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