當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]一種HCI自適應的解決辦法

摘要:  在嵌入式系統(tǒng)工程開發(fā)及現(xiàn)場施工實踐中,為了解決由于嵌入式系統(tǒng)資源退化引起的人機交互復雜性和不確定性問題,從可適應性角度討論,分析了嵌入式系統(tǒng)中人機交互界面(HCI)的可適應性需求,應該針對資源退化提供一種HCI自適應的解決辦法,故對于嵌入式設(shè)備交互特點進行了研究,詳細描述了嵌入式設(shè)備的HCI模型和內(nèi)存結(jié)構(gòu)的建立,并給出具有實踐意義的HCI可適應性策略,最后以一個工程實例進行了驗證。從實例可知,為嵌入式系統(tǒng)的項目開發(fā)提供了一種可行性解決方案。

  嵌入式系統(tǒng)是以應用為中心,以計算機技術(shù)為基礎(chǔ),軟硬件可裁剪,適用于應用系統(tǒng)對功能,對可靠性、成本、體積、功耗有嚴格要求的專用計算機系統(tǒng),其工程實踐正逐漸地引起研究人員的關(guān)注,在實際工程中有諸多因素需要考慮,比如微處理器的功耗,器件的可靠性,設(shè)備的抗惡劣環(huán)境能力,人機交互界面(HCI),現(xiàn)場通信等等問題。HCI是嵌入式系統(tǒng)工程中的一個重要課題。由于某些嵌入式系統(tǒng)研發(fā)的復雜性和工程實施中的不確定性,導致嵌入式系統(tǒng)HCI有僵化的趨勢,對此提出一種可適應性的解決思路是必要的。

  1 嵌入式工程的HCI

  圖形用戶界面是當前用戶界面的主流。HCI是決定嵌入式計算機系統(tǒng)是否友好的一個重要因素。嵌入式系統(tǒng)人機交互功能主要靠輸入輸出的設(shè)備與相應的軟件協(xié)同來實現(xiàn)。可供人機交互使用的設(shè)備主要有鍵盤、顯示以及各種模式識別設(shè)備等。嵌入式系統(tǒng)的人機交互因其特殊性而與PC有所區(qū)別,多數(shù)的嵌入式系統(tǒng)都是顯示屏幕與鍵盤,或者帶觸摸屏定位的設(shè)備組成。對用戶而言,需要用按鍵或觸摸屏的動作告知系統(tǒng)如何按照人的意圖去輸出,絕大多數(shù)嵌入式系統(tǒng)都有個HCI系統(tǒng)供用戶使用。問題是在工程中交互設(shè)計時,設(shè)計者往往會把交互界面和系統(tǒng)的資源聯(lián)系起來,使得界面的設(shè)計不獨立于系統(tǒng)資源。軟件設(shè)計勢必在很大程度上受限于硬件資源。實踐中,通常的做法是根據(jù)現(xiàn)有的硬件條件臨時組織一個數(shù)據(jù)結(jié)構(gòu),把一系列字符串值“串”起來,之間可以實現(xiàn)相互跳轉(zhuǎn)。一個交互節(jié)點的快照描述一般需要幾部分組成:1)狀態(tài)枚舉量;2)顯示常量狀態(tài)值;3)前趨狀態(tài);4)后繼狀態(tài)。還可能需要包含節(jié)點Id標識等其他的輔助信息。顯然,這是用一種靜態(tài)的方法來生成一個菜單對象,代碼易讀性強,但各個部分相互依賴,編碼和調(diào)試比較繁瑣,需要設(shè)計者對各部分都十分清楚。最大的問題是可擴展性受限,對后續(xù)規(guī)模的增加造成一定的影響。工程實踐中,用戶的需求及隱含需求往往是復雜和不確定的。

  本文的研究目的是建立一套能夠適應應用復雜性和不確定性的實現(xiàn)方案,為后續(xù)嵌入式系統(tǒng)開發(fā)提供一個工程性的解決思路。

  2 可適應的嵌入式HCI

  可適應的HCI是指可根據(jù)系統(tǒng)的計算環(huán)境或應用情境進行伴隨調(diào)節(jié)的界面??梢赃M一步區(qū)分為被動性適應和主動性適應(或自適應)。

  可適應性HCI在嵌入式系統(tǒng)開發(fā)中有著越來越迫切的要求。通常該需求來源于2個方面,一個是用戶需求的變更;另一個是系統(tǒng)執(zhí)行中的應用環(huán)境變化。由這2種因素出發(fā),依據(jù)可適應性的行為模式,嵌入式HCI的可適應性從以下2個方面展開研究:

  所謂靜態(tài)可適應性是指與系統(tǒng)靜態(tài)配置相關(guān)的可適應性,通常適應行為發(fā)生在2次系統(tǒng)啟動之間。這種適應的需求通常是外來的,比如用戶需求的修改,設(shè)計方案的變化。在工程中,常常出現(xiàn)迭代式的適應性修改,所以靜態(tài)可適應性也是一個很有現(xiàn)實意義的需求。這種可適應性的實現(xiàn)必須借助非易失性存儲器來進行,用來存儲變化后的定義及配置參數(shù),使得順利完成適應行為。

  動態(tài)可適應性是指在系統(tǒng)運行過程中,可以依據(jù)環(huán)境的變化進行在線自適應修改,即普適環(huán)境下的修改。通常普適設(shè)備在使用環(huán)境中遷移,引起了環(huán)境參數(shù)的強制性變化,系統(tǒng)的HCI與環(huán)境就會產(chǎn)生矛盾,因此普適策略下的自適應調(diào)整是很有必要的。依據(jù)收集到的系統(tǒng)狀態(tài)信息,判斷是否HCI與系統(tǒng)配置同步,依靠算法實時糾正系統(tǒng)配置來實現(xiàn)自適應。普適環(huán)境下的自適應特點在于動態(tài)性,只有在出現(xiàn)矛盾的時候才做普適調(diào)整,在設(shè)計中必須對匹配性進行考慮。

  3 基于多重鏈表的嵌入式HCI

  3.1 模型建立

  多重鏈表在組織順序型結(jié)構(gòu)數(shù)據(jù)時具有較快的搜索速度,下面給出一個基于多重鏈表的模型,每個節(jié)點扇出為4,分別指向上層節(jié)點、下層節(jié)點及左、右的鄰居節(jié)點,扇入不限。每個節(jié)點與相鄰的節(jié)點之間都有雙向連接,并且每個節(jié)點均可帶子節(jié)點進行擴展。

  模型從功能上講是個層次結(jié)構(gòu),從數(shù)據(jù)模型上看是網(wǎng)狀結(jié)構(gòu),允許有一個以上的節(jié)點無雙親,并且一個節(jié)點可以有多于一個的雙親。每層節(jié)點的數(shù)目不固定,可視實際情況而變化。每層都是一個閉環(huán)的雙向回路,可進行水平雙向遍歷。層與層之間由父節(jié)點與長子節(jié)點雙向連接。父層節(jié)點對子層節(jié)點是一對一聯(lián)系,由父節(jié)點進入子層時在長子節(jié)點駐足;子層節(jié)點對父節(jié)點是多對一聯(lián)系,意味著由每個子節(jié)點都可回溯至父節(jié)點。由父層切換至子層的每次遍歷必須經(jīng)過長子節(jié)點,然后可由長子節(jié)點依次進行水平循環(huán)遍歷,子層切換至父層則比較靈活,每個子節(jié)點均可到達其父節(jié)點。

  3.2 方案實現(xiàn)

  3.2.1 內(nèi)存結(jié)構(gòu)設(shè)計

  節(jié)點應該具備4個域,除了標示身份外還至少應該具備指向上層父節(jié)點的指針域、指向下層子節(jié)點的指針域以及指向同層左、右兄弟的指針域。

  圖1是一個簡單的HCI結(jié)構(gòu)圖,從功能上看,它分為5層,第一層有5個節(jié)點項形成一個閉環(huán),第二層閉環(huán)是第一層第一個節(jié)點的子節(jié)點組,該子節(jié)點組的第二項又有子節(jié)點組。如此下去共有5層,處在最高位置的節(jié)點其父指針為空,最低位置的節(jié)點的兒子指針為空。


 

圖1 一個簡單的HCI結(jié)構(gòu)圖

 

  3.2.2 類設(shè)計

  依據(jù)模型定義如圖2所示的類對象。左邊所示是個基本的菜單節(jié)點類,除了模型中提到的幾個節(jié)點指針,還增加了幾個相關(guān)的屬性域,Id用來標識節(jié)點身份,displayValue用來存儲菜單的顯示標題,布爾成員editable指明當前節(jié)點是否可編輯,另外還增加一個ptr_function域,用來指向一個功能函數(shù),該函數(shù)完成節(jié)點在接受確定消息后要做的工作。


 

圖2 菜單結(jié)點的類定義和菜單代理類定義

  在節(jié)點類中還定義了幾個成員方法,與私有屬性相關(guān)的命名符合OOP的命名規(guī)定,均使用Get—Set前綴規(guī)則。除針對幾個成員屬性的方法外,還引入了另外幾個成員方法,CoUp執(zhí)行向父節(jié)點的跳轉(zhuǎn),CoDown執(zhí)行向長子節(jié)點的跳轉(zhuǎn),CoLeft和GoRight負責向左右鄰居的跳轉(zhuǎn)。

  從軟件設(shè)計獨立與資源來考慮,提出一個界面代理的概念,界面代理就是基于事件驅(qū)動,處在界面與環(huán)境之間一個中間對象。外界事件的消息均由代理來接收識別,并由它調(diào)用界面元素,對界面做出改變。圖2右邊上部所示的定義的是菜單代理類MenuManageAgent。該類對象用來作為菜單體系與外界交互的媒介物,它用來記錄菜單的頭指針,菜單體系的規(guī)模以及菜單的總體狀態(tài);初始化菜單結(jié)構(gòu),創(chuàng)建菜單系統(tǒng)并代表菜單接受外來的消息,并對消息加以識別和做出合理的響應。圖2右下是對外部消息的定義。消息的列表可以依據(jù)實際情況擴展和修正。

  4 嵌入式HCI的可適應性實現(xiàn)

  靜態(tài)可適應的實現(xiàn)是基于用戶主觀意圖進行的。這個過程強調(diào)人機交互,因此用戶的工作內(nèi)容很重要,一般也作為靜態(tài)可適應性實現(xiàn)的輸入?yún)?shù)。而實現(xiàn)的技術(shù)細節(jié)相對簡單。在算法設(shè)計上,該種可適應性實現(xiàn)工作重點仍然放在用戶交互內(nèi)容的管理上,由用戶的“交互內(nèi)容”綜合系統(tǒng)功能可以得到界面的“變更差”,進而推導出系統(tǒng)HCI的具體參數(shù)集的變化。

  如圖3所示,設(shè)備在使用環(huán)境中的動態(tài)可適應以系統(tǒng)狀態(tài)檢測開始,這是一個周期性的行為,頻率依據(jù)系統(tǒng)在HCI上的實時性要求而定。系統(tǒng)狀態(tài)檢測應該包含幾部分的工作:1)應該有監(jiān)測環(huán)境參數(shù)的手段,比如傳感器、接入信號等;2)要依據(jù)特定的算法來測定這個矛盾,其中包括差異的獲取,尺度的制定。狀態(tài)檢測的結(jié)果是,是否有矛盾輸出,如果有矛盾出現(xiàn)的情況下,還需要做決策分析,其主要任務是基于系統(tǒng)現(xiàn)有條件是否可實現(xiàn)動態(tài)可適應,比如已經(jīng)達到了臨界狀態(tài)時,就喪失了這種可能性。所以這里涉及到對系統(tǒng)資源的管理調(diào)度。下一步就是在動態(tài)適應的情況下,采用動態(tài)適應策略對系統(tǒng)HCI給出合適的調(diào)整,從而達到普適環(huán)境下可動態(tài)適應的目的。


 

圖3 動態(tài)自適應性算法流程

[!--empirenews.page--]

  5 工程應用

  5.1 工程介紹

  我們在一個系列工程中采用了以下方案構(gòu)造HCI的菜單體系。某公司研發(fā)一款嵌入式的數(shù)據(jù)采集產(chǎn)品,該產(chǎn)品的代碼與數(shù)據(jù)獨立存儲在兩個Flash芯片,通過采集外界的模擬量和數(shù)字量對其處理后進行輸出。產(chǎn)品的人機交互界面采用按鍵、LED數(shù)碼管,計算控制單元采用飛思卡爾半導體的微處理器Coldfire V2系列,該CPU基于變長RISC處理器核心,具有32位地址線和數(shù)據(jù)線以及集成的調(diào)試模塊,MAC/eMAC單元能提供高性能的品質(zhì)。

  嵌入式操作系統(tǒng)采用Nucleus PLUS,Nucleus PLUS實時操作系統(tǒng)是Accelerated Technology公司開發(fā)的嵌入式RTOS產(chǎn)品,只需一次性購買Licenses,就可以獲得操作系統(tǒng)的源碼。最終是以C庫的形式提供給用戶,可以選擇所需要的部分鏈入到應用程序中。具有如下特性:

  1)快速響應時間:對臨界資源的檢測時間不依賴于占有該臨界資源的線程執(zhí)行時間長短,一旦低優(yōu)先級線程釋放掉臨界資源(不管其是否執(zhí)行完),高優(yōu)先級線程就會搶占運行。

  2)模塊相互獨立:每個任務的執(zhí)行時間和其他任務的處理時間無關(guān)。

  3)較高吞吐量:隨著任務數(shù)目的增多,任務的調(diào)度時間為常數(shù)。

  4)具有可擴展性:利用現(xiàn)有系統(tǒng)調(diào)用的結(jié)合可得到新的系統(tǒng)調(diào)用。

  5.2 驗證過程

  我們擬在這個項目開發(fā)中實現(xiàn)普適設(shè)備的嵌入式人機交互界面,在其中應用可適應性的思想。

  首先是硬件設(shè)計,該產(chǎn)品設(shè)計了8個Ied數(shù)碼管,8個按鍵Key1~Key8。這部分設(shè)計的功用體現(xiàn)在兩個方面:

  1)數(shù)據(jù)采集設(shè)備通過LED顯示采集的數(shù)據(jù)和處理結(jié)果;

  2)用戶通過按鍵可以查看和設(shè)置設(shè)備的參數(shù)。

  其次是一些必要的定義,對按鍵的功能通過項目組討論做了如表1的定義。

  表1的定義給消息定義提供一個依據(jù)。按功能鍵送入一個OK消息,按取消鍵則發(fā)送了一個CANCEL消息,其他按鍵事件以此類推。于是我們便得到一個消息枚舉量的定義。

表1 按鍵定義


 

  界面狀態(tài)定義。把人機交互工作分為工作、驗證和設(shè)置狀態(tài)。每種狀態(tài)用一個MenuStatus枚舉常量表示,NORMAL表示工作狀態(tài),CHECKI-NG表示驗證狀態(tài),SETHNG表示設(shè)置狀態(tài)。正常工作時處于NORMAL狀態(tài),一旦按下功能鍵會進入菜單成為驗證或設(shè)置態(tài)。

  交互行為定義如下:

  1)常態(tài)時默認為各通道實時數(shù)據(jù)循環(huán)顯示,有報警時,可顯示報警標識;

  2)默認常態(tài)下按功能鍵進入1層菜單,按上翻鍵、下翻鍵顯示1-、2-、3-、…、14-Reset;

  3)狀態(tài)2-和狀態(tài)4-可用作擴展;

  4)狀態(tài)3-時,按功能鍵進入日期時間設(shè)置菜單,按上翻鍵、下翻鍵顯示日期、時間,設(shè)置好后,按功能鍵確定退出;

  5)狀態(tài)4-時,按功能鍵進入?yún)?shù)設(shè)置菜單,按上翻鍵、下翻鍵顯示4-1、4-2、4-3……、4-19,表示通道選擇;

  狀態(tài)4-x時,按功能鍵進入x通道的參數(shù)設(shè)置菜單,按上翻鍵、下翻鍵顯示4-x-O、4-x-2、4-x-3、…、4-x-8時,按功能鍵進入x通道的y(0≤y≤8)參數(shù)設(shè)置菜單,按加1鍵、減1鍵和移位可以進行參數(shù)修改操作;修改好參數(shù)按功能鍵確定退出;

  6)在任一狀態(tài)時,按Key7則返回上層;

  7)在任一狀態(tài)時,按取消鍵可返回常態(tài)。

  然后按照上面定義的交互行為,定義菜單節(jié)點的功能函數(shù)。在菜單的創(chuàng)建時把函數(shù)的指針賦值給節(jié)點。該模型同樣可以用于實現(xiàn)通過通信進行的交互。

  上述HCI的實例,不但實現(xiàn)簡潔,開發(fā)效率高,而且是結(jié)構(gòu)開放性的,便于界面規(guī)模的控制。

  6 結(jié)束語

  通過工程實踐驗證,該基于可適應性考慮的嵌入式HCI方案有如下特點:

  1)易于維護,在拓撲結(jié)構(gòu)不變的情況下,隨按鍵或輸入的不同,數(shù)據(jù)結(jié)構(gòu)易于加以修改。菜單節(jié)點可以隨實際項目需求增減成員,代理類也可隨實際需求修改。

  2)開放性好,便于擴展。只要內(nèi)存容量允許,菜單規(guī)模理論上不受限,并且增刪節(jié)點容易實現(xiàn)。菜單結(jié)構(gòu)可以靜態(tài)聲明,也可以使用動態(tài)內(nèi)存分配。

  3)通用性強,不但適應于Led數(shù)碼管與按鍵的組合,而且適應于LCD屏幕與按鍵或觸摸屏。只要是用戶與系統(tǒng)交互,能產(chǎn)生消息驅(qū)動的地方都可以使用。

  4)效率高,從根節(jié)點到任一節(jié)點的路由不需要軟件實現(xiàn),由用戶交互決定。雖然是網(wǎng)狀模型,但對用戶而言,從功能上仍是個層狀結(jié)構(gòu),脈絡比較清楚,容易被開發(fā)人員掌握。

  另外,在具體應用中,可適應性的實現(xiàn)還可能以混合的模式出現(xiàn)。

  未來的研究是考察在宿主機與目標機交互的情況下,如何實現(xiàn)HCI方案到目標機的遷移,實現(xiàn)目標機HCI動態(tài)配置。


 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務中斷的風險,如企業(yè)系統(tǒng)復雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機 衛(wèi)星通信

要點: 有效應對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團)股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉