<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設(shè)計(jì)應(yīng)用 > 實(shí)現(xiàn)高性價(jià)比家電人機(jī)接口

          實(shí)現(xiàn)高性價(jià)比家電人機(jī)接口

          作者: 時(shí)間:2010-02-03 來源:網(wǎng)絡(luò) 收藏

          GUI 設(shè)計(jì)和應(yīng)用程序的開發(fā)一般由設(shè)計(jì)團(tuán)隊(duì)完成,該團(tuán)隊(duì)與軟件工程團(tuán)隊(duì)分開。軟件工程團(tuán)隊(duì)接到設(shè)計(jì)文檔后,手寫編程來進(jìn)行開發(fā)。然后,把結(jié)果送到質(zhì)量檢查組,與最初的設(shè)計(jì)規(guī)范進(jìn)行對(duì)比。找到不對(duì)的地方,標(biāo)記為缺陷,返回到軟件工程團(tuán)隊(duì),在下一次軟件開發(fā)中進(jìn)行改正。這一開發(fā)/ 質(zhì)量檢查過程( 圖3) 不斷重復(fù),直到軟件和設(shè)計(jì)文檔之間達(dá)到匹配,彼此可接受。但是,可能需要進(jìn)行很多折衷考慮,最終的應(yīng)用程序和GUI 不符合最初的設(shè)計(jì)規(guī)范。由于時(shí)間、成本壓力以及實(shí)際的平臺(tái)性能,一般很難解決剩余問題,而將其簡單地作為已知問題,軟件也就隨之發(fā)布。

          本文引用地址:http://www.ex-cimer.com/article/191795.htm

          圖3. 傳統(tǒng)的軟件開發(fā)工作流程
          設(shè)計(jì)團(tuán)隊(duì)即使是改變文本位置等很小的細(xì)節(jié),都會(huì)導(dǎo)致軟件工程的變化,有可能出現(xiàn)系統(tǒng)不穩(wěn)定。對(duì)于每一次GUI 修改,不論大小,至少需要完成一個(gè)完整的設(shè)計(jì)、軟件工程和測試周期,以確保質(zhì)量結(jié)果,避免出現(xiàn)意想不到的復(fù)雜的代碼變化。最初版本完成后,對(duì)軟件很小的改動(dòng)以推出不同版本都需要進(jìn)行大量的測試。最終過渡到新的低成本硬件平臺(tái)意味著軟件工程團(tuán)隊(duì)需要針對(duì)新的軟件應(yīng)用程序(API) 來重復(fù)整個(gè)過程,放棄了在以前產(chǎn)品上的所有工作。結(jié)果,他們花費(fèi)大量的時(shí)間來推出后續(xù)產(chǎn)品,在很多情況下,無法保證GUI 外觀和樣式的連續(xù)性,甚至丟掉了這一特性。
          雖然很難徹底消除開發(fā)過程的低效問題,但是,現(xiàn)在可以使用工具和全包技術(shù)解決方案來縮短重復(fù)性的開發(fā)周期,在嵌入式系統(tǒng)設(shè)計(jì)中實(shí)現(xiàn)更好的圖形性能,得到不會(huì)過時(shí)的設(shè)計(jì),并且很容易在硬件系列之間移植這些設(shè)計(jì)。

          4
          GUI 開發(fā)方法
          有很多方法實(shí)現(xiàn)GUI 開發(fā)。手寫代碼是開發(fā)圖形應(yīng)用程序最常用的方法,也是成本最高的方法。它需要較長的開發(fā)時(shí)間,很小的GUI 變化都非常繁瑣,針對(duì)每一器件實(shí)現(xiàn)都需要從頭開始重新編寫代碼。第二種方法是代碼發(fā)生器工具,它提供使用方便的來構(gòu)建GUI,定義行為,但是,它產(chǎn)生通用代碼,需要進(jìn)行很多硬件修改才能使其運(yùn)行。第三種方法使用二級(jí)腳本語言以及解釋引擎來處理運(yùn)行時(shí)腳本,需要大量的平臺(tái)資源,很容易出現(xiàn)嚴(yán)重的性能問題和錯(cuò)誤。
          第四種方法稱為二進(jìn)制GUI 方法,它結(jié)合了專業(yè)GUI 構(gòu)建工具,一套強(qiáng)大的軟件API,一些手寫代碼以及高性能嵌入式圖形引擎。設(shè)計(jì)人員利用基于PC 的工具可以開發(fā)象素精度很高的GUI,將其輸出到一個(gè)二進(jìn)制數(shù)據(jù)文件。然后,將逐象素設(shè)計(jì)從設(shè)計(jì)人員的桌面直接傳送給開發(fā)人員,不需要進(jìn)行其他的轉(zhuǎn)換。開發(fā)人員然后利用先進(jìn)的高性能GUI 引擎以及相關(guān)的API 來處理并顯示存儲(chǔ)在二進(jìn)制數(shù)據(jù)文件中的圖形數(shù)據(jù)。這一方法不但占用的平臺(tái)資源少,而且還允許進(jìn)一步修改生成的GUI,不需要改動(dòng)代碼和邏輯,或者進(jìn)行很少的改動(dòng)即可。而且,在模型之間,甚至在不同的硬件設(shè)計(jì)之間,今后都很容易對(duì)應(yīng)用程序進(jìn)行修改,重新使用。
          “節(jié)能意識(shí)”應(yīng)用平臺(tái)
          為幫助生產(chǎn)商熟悉基于FPGA 的 HMI 解決方案在家電應(yīng)用中的優(yōu)勢, Altera、Echelon 和Altia 面向高質(zhì)量白色家電市場推出了節(jié)能意識(shí)應(yīng)用平臺(tái)。這一全集成的參考硬件平臺(tái)包括Altera Nios® 嵌入式評(píng)估套件(NEEK),與其連接的是Echelon 電力線智能收發(fā)器板,一個(gè)4.3 LCD 觸摸屏模塊,以及顯示套件內(nèi)部的玻璃背板。
          平臺(tái)的主要構(gòu)成是帶有Altera Nios II 嵌入式軟核處理器的Altera Cyclone III FPGA。這些器件控制所有系統(tǒng)軟件,包括用于電力線聯(lián)網(wǎng)的Echelon ShortStack® API,以及用于HMI 和LCD 觸摸屏控制的Altia 高性能GUI 引擎和工具等。 含有內(nèi)置LCD 控制器、觸摸屏、內(nèi)部視頻流水線以及集成高性能GUI 引擎和工具,
          Cyclone III FPGA 幫助系統(tǒng)設(shè)計(jì)人員避免了使用外部LCD 驅(qū)動(dòng)器和其他圖形元件,降低了材料 (BOM) 成本,縮短了產(chǎn)品面市時(shí)間。在家電市場上,從機(jī)械HMI 過渡到新一代數(shù)字LCD 觸摸屏HMI 時(shí),這一系統(tǒng)設(shè)計(jì)方法有明顯的優(yōu)勢。
          NEEK LCD 控制器
          圖4 所示為實(shí)現(xiàn)NEEK LCD 控制器設(shè)計(jì)外設(shè)和接口的高級(jí)結(jié)構(gòu)圖。Cyclone III FPGA 的視頻流水線、LCD觸摸屏模塊以及MAX® II CPLD 是NEEK LCD 控制器的主要組成。

          5


          圖4. NEEK LCD 控制器子系統(tǒng)
          視頻流水線
          視頻流水線負(fù)責(zé)驅(qū)動(dòng)LCD 模塊數(shù)據(jù)總線上的數(shù)據(jù)信號(hào),讀取Nios II 處理器產(chǎn)生的幀緩沖數(shù)據(jù)。一組專用Avalon® 流(ST) 外設(shè)實(shí)現(xiàn)了數(shù)據(jù)單元在不同寬度總線之間的轉(zhuǎn)換,在這一例子中,是24 位紅色、綠色和藍(lán)色(RGB) 象素輸入流至8 位象素輸出流的轉(zhuǎn)換,分別傳送每個(gè)RGB 顏色分量。在模塊數(shù)據(jù)總線上,視頻同步發(fā)生器外設(shè)將控制和數(shù)據(jù)信號(hào)進(jìn)行排序,向LCD 觸摸屏模塊發(fā)送象素?cái)?shù)據(jù)。



          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();