傳統上,家電人機介面(HMI)由按鍵和旋鈕等機械元件以及顯示指示器所組成,這些指示器包括發光二極體(LED)和真空螢光顯示器(VFD)等。但隨著液晶顯示器(LCD)技術在電視、電腦、汽車和行動設備上的廣泛應用,其成本不斷下降,使得家電和消費性產品的人機介面設計潮流發生了很大的變化。具有互動式圖形使用者介面(GUI)能力的LCD,已成為目前大部分家電中傳統機械式人機介面的高性能價格比替代方案。
iPhone掀起觸控式HMI風潮
消費者總是希望有更簡單的方式來和家中的家電產品進行互動。目前家電產品最主要的人機介面裝置為顯示幕,特別是數位顯示器,在人機互動上所扮演的角色越來越重要。iPhone等產品的出現,更進一步推動了圖形互動產品的發展。iPhone從根本上重新定義了消費者對一般消費性產品的預期,導致現在的消費者習慣於觸控虛擬按鍵,在螢幕上滑動手指來調整設置,甚至使用手勢來代替複雜的操作動作。此外,消費者還希望產品具有「智慧」能力,能夠輕鬆獲得正確的豐富資訊,並在毋須查看手冊的情形下獲得操作協助。
在當今競爭激烈的消費性產品和家電市場上,生產廠商必須以最小的成本來突顯產品優勢,以吸引消費者,從而提高市場占有率。當一項新技術出現時,一般總是首先應用在高階產品上,然後過渡到中階產品,最後成為所有產品的標準功能。最近新出現的技術包括在電冰箱和網路家電上整合高畫質電視(HDTV),以及洗衣機和乾衣機的智慧電源解決方 案等。
這些功能都有一個共通點:它們需要更高級的顯示技術來實現人機互動。在很多情況下,都是透過觸控螢幕來實現這一點訴求。原始設備製造商(OEM)採用觸控螢幕來實現對新一代家電產品的平順控制,突顯自己的品牌優勢,滿足當前消費者的需求。使用數位顯示幕技術替代機械式人機介面,最終將可加速開發速度,而且能夠重新利用現有架構。從長遠看,由於GUI軟體和可編程邏輯元件(PLD)技術的進步,設計成本會越來越低。顯見家電觸控螢幕已是消費性產品的必然發展方向,並使得數位生活方式不斷演進。
觸控技術門派眾多 電阻式技術具備可靠度優勢
觸控螢幕能夠探測到顯示區域一定範圍內接觸點的出現及其位置,一般可透過手指或者塑膠觸控筆來實現。最新的觸控技術使用多點觸控感測技術,一個人使用兩隻手指來操作一個目標,例如iPhone,或是多人在一個螢幕上相互合作,進行互動,例如微軟的表面運算技術(Surface)。
觸控技術發明於上個世紀的60年代後期,最先應用於企業研究實驗室電腦輔助學習終端以及商用電話系統中。然而,當時觸控技術並沒有得到廣泛的市場應用,直到最近某些產品的推出才逐漸流行起來,並在行動電話市場廣為採用。消費者最先接觸到觸控技術是在個人數位助理(PDA)上,例如Palm Pilot,而隨著iPhone的出現,對這一種技術的需求越來越大。
觸控螢幕主要由三種整合組件構成:感測器、模組和顯示幕。觸控螢幕感測器是產品的關鍵組成,它能夠找到手指或者觸控筆的觸碰位置,然後與底層系統進行通訊。觸控螢幕模組包括觸控螢幕感測器、控制器元件和軟體。觸控螢幕則包括整合了顯示面板的模組。
目前商用的觸控螢幕感測器有各種類型,其中電阻感測器由於成本低,是目前應用最廣泛的技術,三分之二的觸控螢幕元件生產廠商生產採用電阻感測器架構的觸控螢幕。電阻觸控螢幕不受水、光或者灰塵等外部因素的影響,能夠實現解析度較高的圖像,支援精確的小目標移動。電阻觸控螢幕使用氧化銦錫(ITO)玻璃或者顯示幕表面塑膠薄膜上的控制器來產生觸控連接。在啟動觸控螢幕時,手指或者觸控筆按壓塑膠薄膜和基底之間的氣隙,從而在ITO薄膜和玻璃之間產生電壓差。控制器晶片計算觸碰位置,確定使用者在感測器上的實際位置,然後,底層應用軟體利用這一個資訊確定使用者的意圖,完成相對應的動作。
GUI軟體開發挑戰艱鉅
要實現先進的觸控式人機介面,除了仰賴上述觸控感測技術外,GUI程式也必須改寫。傳統的GUI應用程式開發很容易出錯,需要大量的時間與人力投入,OEM宣稱高達70%的品質問題來自GUI。這些缺點主要源自於效率不佳的工作流程、時間和成本壓力導致的折衷方案,以及在嵌入式系統上開發非常複雜的高性能圖形軟體。
GUI設計和應用程式的開發一般由設計團隊完成,該團隊與軟體工程團隊分開。軟體工程團隊接到設計文件後,以手寫程式碼的方式來進行開發。然後,把結果送到品質檢查組,與最初的設計規範進行比對。若找到不正確的地方,便標記為缺陷,重新返回到軟體工程團隊,在下一次軟體發展中進行改正。這一種開發/品質檢查過程(圖1)不斷重複,直到軟體和設計文件之間達到匹配,彼此可以接受。但是,其中仍可能須進行很多折衷考量,最終的應用程式和GUI有可能不符合最初的設計規範,因為開發工作受到時間、成本所帶來的壓力,以及實際平台性能的限制。通常軟體開發團隊總是無法在研發時限內解決所有的問題,因此只能把這些剩餘問題只能先視為已知問題,告知客戶或消費者,未來再透過更新來解決。
|
圖1 傳統軟體發展工作流程 |
即使是改變文字位置等很小的細節,都會導致設計團隊軟體工程的變化,有可能出現系統不穩定。對於每一次的GUI修改,不論規模大小,至少須完成一個完整的設計、軟體工程和測試週期,以確保品質結果,避免出現意想不到的複雜程式碼變化。最初版本完成後,即使只對軟體進行很小幅的改動以推出不同版本,都須進行大量測試;若系統最終過渡到新的低成本硬體平台,軟體工程團隊更必須針對新的軟體應用程式介面(API)來重複整個過程,這意味著在先前平台上的投入有很大一部分變成白忙一場。在最糟的情況下,軟體團隊即使花費大量的時間來推出後續產品,一樣無法保證前後代產品的GUI外觀和樣式具有連續性,有時甚至必須捨棄一些功能。
不可諱言的是,上述開發過程效率低落的問題很難徹底根治,但是在導入更新穎的開發工具和統包(Turnkey)解決方案後,依然有助軟體團隊縮短重複性的開發週期,在嵌入式系統設計中實現更好的圖形性能,得到不會過時的設計,並且很容易在不同硬體平台間移植這些設計。
GUI開發方法與時俱進
有很多方法可實現GUI開發,手寫程式碼是開發圖形應用程式最常用的方法,也是成本最高的方法。它需要較長的開發時間,就算是很小的GUI變化都會非常繁瑣,針對每一個元件實現都需要從頭開始重新編寫程式碼。第二種方法是程式碼產生器工具,它提供使用方便的介面來建構GUI、定義行為,但是,它產生的通用程式碼,須要進行很多硬體修改才能使其運行。第三種方法是使用二級腳本語言(Secondary Scriptimg Language)以及直譯引擎(Interpretive Engine)來處理運行時的腳本,這須要大量的平台資源,很容易出現嚴重的性能問題和錯誤。
第四種方法稱為二進位GUI方法,它結合了專業GUI建構工具,一套強大的軟體中介層(API),一些手寫程式碼以及高性能的嵌入式圖形引擎。設計人員採用個人電腦架構的工具,可以開發畫素精度很高的GUI,將其輸出到一個二進位資料檔案中。然後,將畫素的點對點設計從設計人員的桌面直接傳送給開發人員,不須進行其他轉換。然後開發人員利用先進的高性能GUI引擎及相關API來處理,並顯示儲存在二進位資料檔中的圖形資料。這種方法不但占用的平台資源少,而且還允許進一步修改所產生的GUI,毋須改動程式碼和邏輯,或者只須進行小幅改動即可,而且在不同產品型號、甚至在不同的硬體設計之間,都很容易對應用程式進行修改與重新使用。
軟硬體開發平台攜手加速觸控HMI開發
要在系統中實現具有較強互動功能的GUI,勢必要使用更高性能的處理器。然而,目前市場上的很多低成本微控制器(MCU)不能滿足在LCD螢幕上實現生動的互動式GUI的性能需求,而且許多現有的MCU方案並未整合周邊、圖形加速或者LCD顯示幕支援功能,因此將所有獨立元件組合起來後,其整體成本非常高。
現場可編程閘陣列(FPGA)元件由邏輯單元陣列組成,可以配置完成各種功能,相對於MCU,其性能和靈活性更強,是LCD觸控螢幕更好的選擇方案。結合嵌入式軟式核心處理器,FPGA很容易支援實現MCU通用處理功能以及其他外部元件功能。這種解決方案能夠適應不同的螢幕尺寸、圖像解析度、周邊和GUI,在應用上非常靈活。
由於具有可編程能力,FPGA以前主要用於驗證設計概念,建構最初的產品原型。然而,隨著半導體次微米技術的發展,許多低成本FPGA也可以廣泛應用在大量的消費性電子產品中,包括數位電視、機上盒以及DVD錄放影機等。此一趨勢的發展導致FPGA在家電設計中得到進一步應用。
圖2為採用低成本FPGA與嵌入式軟核處理器平台所實現的LCD觸控螢幕。由於該平台內建LCD控制器和觸控螢幕介面,因此不須搭配其他LCD控制器和圖形處理器。
|
圖2 採用低成本FPGA與嵌入式軟核處理器實現的觸控螢幕 |
除硬體外,在軟體開發環境部分,也可導入用於人機介面和LCD觸控螢幕控制的高性能GUI引擎和開發工具。藉由這類整合軟硬體的平台,可幫助系統設計人員避免使用外部LCD驅動器和其他圖形元件,降低材料清單(BOM)成本,縮短產品面市時間。在家電市場上,從機械人機介面過渡到新一代數位LCD觸控螢幕介面時,這一種系統設計方法有明顯的優勢。
圖3所示為本文平台控制器設計周邊和介面的高階結構圖。本平台在硬體部分可分為低成本FPGA、LCD觸控螢幕模組以及複雜可編程邏輯元件(CPLD)這三大區塊,分別執行視訊串流、圖形資料介面和觸控感應、以及電壓轉換任務。
|
圖3 整合低成本FPGA、CPLD與LCD觸控螢幕模組之硬體平台架構 |
視訊串流負責驅動LCD模組資料匯流排上的資料訊號,讀取嵌入式軟核處理器產生的圖幀緩衝資料。一組專用的串流周邊實現了資料單元在不同寬度匯流排之間的轉換,在這一個例子中,是24位元紅色、綠色和藍色(RGB)畫素輸入串流至8位元畫素輸出串流的轉換,分別傳送每個RGB顏色的色差資料。在模組資料匯流排上,視訊同步產生器周邊將控制和資料訊號進行排序,向LCD觸控螢幕模組發送畫素資料。
LCD觸控螢幕模組包括三個主要元件,包含LCD圖形資料介面、觸控螢幕介面與LCD控制器介面。圖形資料介面包括一個24位元RGB資料匯流排和某些控制訊號,將視訊資料傳送給LCD模組。觸控螢幕介面包括序列周邊介面(SPI)和平行輸入輸出(PIO)周邊。
SPI與觸控螢幕數位轉換器晶片進行通訊,告知出現「觸碰」事件,一條PIO線採集中斷事件,嵌入式軟核處理器運行驅動所有周邊的軟體。LCD控制器介面透過通用PIO周邊的簡單三線介面實現控制器晶片通訊協定,發送並接收資料,對模組進行配置。嵌入式軟核處理器上運行的硬體抽象層(HAL)軟體驅動程式對PIO周邊進行控制。
CPLD提供低成本FPGA與其連接周邊的2.5伏特輸入和3.3伏特輸出之間的電壓轉換,並可做為FPGA和LCD模組之間的顏色解多工器,接收來自FPGA的8位元分時多工(TDM)串流,將其轉換回24位元平行RGB格式,顯示在LCD模組上。設計人員如果不須電壓轉換或者多工/解多工功能,可以在LCD控制器設計中去掉本區塊。
GUI開發環境進化 軟體開發效率顯著提升
GUI開發平台(圖4)則結合了嵌入式GUI引擎和專業GUI設計工具。為進一步提高可靠性,平台輸出一個與高效率平台無關的二進位檔案,毋須對其進行解譯或者編譯,從而避免採用其他傳統GUI開發方法時經常出現的性能和穩定性問題。小型高性能嵌入式軟體GUI引擎在運行時動態裝入只有資料的GUI描述檔,管理所有的螢幕上顯示圖形和文字單元。
|
圖4 採用「一次設計」工作流程的GUI開發平台 |
GUI開發平台同時實現了動態GUI裝入和動態目標鏈結,支援應用程式和圖形布局以及GUI描述檔中的其他設計資源直接進行通訊,彼此之間不需要靜態鏈結。透過一組功能強大的API和特殊目標名稱參考,來完成螢幕目標處理和訊息傳遞。
透過名稱進行目標鏈結保證了它們從描述或者圖形表徵中抽象出來,意味著只要目標名稱不變,就可以連續正常工作,與實體描述、螢幕上顯示位置或者透過GUI設計工具完成的目標圖形處理無關。GUI設計工具和GUI引擎技術相結合完成開發,所得到的GUI不但靈活、快速,而且具有可攜式特性,完全獨立於應用軟體的開發。
目前市場上的GUI開發平台已可為家電生產廠商提供獨特的功能,來實現採用單一軟體唯讀記憶體(ROM)鏡像架構的多種模型和多品牌GUI。即使是成本/功率消耗非常低的嵌入式硬體方案也支援動畫、手勢控制和主題變換等GUI特性。在一條產品線上,便可很容易管理上層和底層GUI外觀和特性,為產品線定價提供「開箱即用」式的支援。此外,GUI開發平台還提供Unicode字元集與多種布局引擎,以支援多種組合式的語言,例如阿拉伯語。
做為傳統軟體發展工作流程的替代方案,新的GUI開發平台提供「一次設計」的工作流程(圖5),幫助設計人員將平台無關且可實施封裝中合適的GUI直接傳送給工程師。這種方式簡化了開發過程,降低由於工程團隊間進行設計轉換而導致的出錯機率。經過試用顯示,採用開發平台和人工調整訂製應用程式相比,可節省近66%資源。
|
圖5 SpectraWorks的「一次設計」工作流程 |
此外,GUI開發平台表層技術使用相同的軟體、硬體和系統設計,加速了開發過程,可以管理多個不同的品牌。OEM可以在硬體設計之間自由轉換,不僅可提高開發效率、提升靈活性以及產品穩定性,更降低開發成本,並加速產品上市的時程。
降低研發成本為普及關鍵
隨著iPhone等產品的流行,LCD螢幕的成本顯著降低,具有互動GUI特性的觸摸控制被認為是一種高階功能。而整合FPGA、CPLD、GUI設計工具與引擎的軟硬體開發平台,則為家電業者提供觸控式人機介面的最佳解決方案。因為這類平台可透過減少使用外部元件、提升晶片設計靈活性、降低GUI開發成本、實現設計重用等多種方式,降低物料清單(BOM)整體成本並縮短開發週期。
(本文作者Paul Stathacopoulos任職於Planetweb、Tina T. Tran任職於Altera)