招賢納士網

        基于事件—目標驅動的人機界面設計

        發布于:07-13



        引?言

        人機界面(human-computer?interface),又稱用戶界面、人機交互、人機接口等,是人與機器之間傳遞、交換信息的媒介,是用戶使用計算機系統的綜合操作環境。在商品競爭中,一個應用系統的成功與否在某種程度上也取決于用戶使用界面的感受好壞,因此,人機界面的設計在應用系統的設計中有著重要的作用。嵌入式系統強調人機界面操作的實時性,簡單化,強調在特定平臺上特定應用的時間空間效率。在傳統的小系統設計中。程序設計一般采用前后臺工作方式。應用程序是一個無限的循環,循環中調用相應的函數完成相應的操作,時間相關性很強的關鍵操作(crltical?operation)是靠中斷服務來保證的。因為中斷服務提供的信息一直要等到后臺程序走到該處理此信息這一步時才能得到處理.這種系統在處理信息的及時性上,比實際可以做到的要差。最壞情況下的任務級響應時間取決于整個循環的執行時間。因為循環的執行時間不是常數,程序經過某一特定部分的準確時間也是不能確定的。如果程序修改了,循環的時序也會受到影響。



        實時操作系統將應用分解成多任務,簡化了應用系統軟件的設計。良好的多任務設計,有助于提高系統的穩定性和可靠性,并使系統的實時性得到保證。很多實時操作系統提供了專用函數,簡化了程序的測試。



        1、系統設計



        如圖l所示,人機界面系統采用小鍵盤操作的文本菜單方式,使用在嵌入式數字視頻錄像DVR(Digital?Video?Record)系統中。在MSP430F149上移植μC/OS—Ⅱ來獨立實現人機界面的功能,用戶通過鍵盤輸入指令,經過單片機處理后發往主系統,同時把相應信息通過專用芯片的OSD(0n?Screen?Display)功能顯示在監視器上;用戶根據監視器上的信息進行菜單操作,形成人與機器的交互。







        圖1?人機界面系統



        把人機界面部分從主系統中獨立出來,用戶所有輸入的指令由單片機來處理,減少了主系統的工作量,使整個系統模塊化,便于開發和調試,提高了可靠性和穩定性.另外,這種人機界面設計具有通用性,便于移植到各種嵌入式系統中。本系統選用MSP430nF149單片機,是基于以下三個方面的原因:



        ①?OSD功能需要經常刷新,并且要處理與主機部分的數據交換,要求單片機的計算速度足夠高,并且要求嵌入式系統能夠長時間正常運轉,且芯片功耗低。



        ②?實時操作系統本身要耗費一部分內存,同時0SD功能要求建立字庫,要求內存空間足夠大,否則要外接閃存,增加設計的復雜度及成本。



        ③?要連接鍵盤電路,需較多I/O口。



        MSP430系列單片機是由TI公司開發的16位單片機。其突出特點是強調超低功耗,適合于各種功率要求低的應用;有較高的處理速度,在8?MHz晶振的驅動下,指令周期為125ns;MSP430F149具有60?KB的Flash?ROM和2?KB?RAM,可滿足系統程序量和數據量大的要求,可以解決因為加載實時操作系統而增加的內存需求,具有2個串行通信接口,其中一個串口用于跟主系統通信,另一個可用于控制其他外圍模塊;具有48個可獨立編程的I/O口,其中有2個具有中斷功能的8位并行端口,在設計按鍵電路時,可方便地采用中斷方式識別鍵值。



        2、軟件設計與實現



        2.1?實時操作系統



        μC/OS—II是一個源碼開放,擁有搶占式內核,支持多任務的實時操作系統;任務被分為休眠態、就緒態、運行態、掛起態和被中斷態五種狀態,內核根據任務所處的狀態對任務作相應的處理,已經準備就緒的高優先級任務可以剝奪正在運行的低優先級任務對CPU的使用權。系統大部分代碼采用C語言編寫,與硬件相關的部分很集中,并給出了規范的接口說明,移植相當方便,可應用于目前大多數型號的8位、16位、32位CPU。μC/OS—II提供的僅僅是一個操作系統內核,對硬件系統要求很低,很適合在低端CPU上開發小系統。



        將μC/OS—II移植在MSP430F149單片機上,對其進行裁減,只保留消息隊列一種任務間通信方式,利用它的任務優先級搶占機制,使人機界面很好地滿足嵌入式系統對實時性和可靠性的要求。下面詳細介紹基于μC/0S—II操作系統的程序設計。



        2.2?軟件設計



        本系統的軟件部分設計基于E-O模型的思想,劃分事件和目標。以有限狀態機的方式,在實時操作系統μC/OS一Ⅱ中,用狀態機把目標和事件聯系起來,實現OA?(Object-Action)行為模式完成人機交互的過程,使以小鍵盤操作的文本菜單方式設計更清晰。



        (1)事件-目標驅動的用戶界面模型



        事件-目標驅動的用戶界面模型,即E-O模型(E-vent-Object?Drive?User?Interface?Model),將人機交互活動歸結為事件與目標的相互作用.事件是人機交互活動中傳遞的信息,目標是交互活動的對象;事件引發交互活動,目標是交互活動的承受者。E-O模型基于的基本行為模式是“目標-動作”(OA),以目標為核心,具有面向對象風格。



        E-O模型由四個邏輯部件組成:①設備管理模塊(device?management?module),提供與各種交互設備的接口,實現設備無關特性;②事件管理子系統(event?Man-agement?subsystem),它讀取輸入設備的輸入信息形成事件并進行統一管理,將反饋信息的事件解釋為適當的輸出指令并傳送給輸出設備;③目標管理子系統(object?Man-agement?subsystem),創建、裝載、保存用戶界面中各類目標,并對目標進行管理,④事件-目標管理子系統(event-object?management?subsystem),主要職責是實現事件與目標的整合,按適當策略控制事件在各目標結點之間流動,以形成和維持交互的過程,是整個用戶界面系統的核心。



        (2)有限狀態機的形式化描述



        有限狀態機FSM(Finite?State?Machine)由狀態、事件、轉換和活動組成。每個狀態有1個狀態進入動作(entryaction)和1個狀態退出動作(exit?action),每個轉換有1個源狀態和目標狀態并且與1個事件相關聯。當在源狀態時,該事件發生且觸發轉換的監護條件為真,則順序執行下列一些動作:①源狀態的退出動作;②轉換動作;③目標狀態的進入動作。



        FSM可以形式化表示為1個五元組:M=(0,I,λ,S,δ,S0)。



        其中,S為有限狀態集;



        I為有窮的事件輸入集;



        0為有窮的輸出集,



        S0為初始狀態集;



        δ:S×I→S,進入下一個狀態的過程;



        λ:S×I→O,產生輸出的過程。



        T=δUλ。T中的每個元素又可以表示為1個五元組,T=(Soure-State,Target-State,Input-Event,Con-straint,Action)。其中“Source-State”和“Target-State”分別表示T的初始狀態和目標狀態,“Input-Event”表示來自于I的輸入事件或為空,“Constramt”表示監護條件及輸入事件參數等約束,Action表示轉換執行的動作。



        用軟件實現有限狀態機有兩種方法:表格法和過程驅動法。表格驅動法利用一個二維數組。該數組中的短一行與一個狀態相對應,每一列與一個輸入事件相對應,每一項則與某一狀態下對事件的處理相對應。表格驅動法適用于具有結構規則、操作簡單的有限狀態機。



        過程驅動法為每一個狀態都定義一個處理過程,處理過程實現在此狀態時對事件的響應,包括輸出處理及對當前狀態值的轉換。這個過程可以用case語句區分事件,并采用相應的處理。無論采用何種方法實現FSM,當FSM收到一條消息時必須知道當前的狀態。為此,對應每一個狀態機必須能夠保存當前所處的狀態。過程法適用于實現一個具有幾種轉換和復雜操作的有限狀態機。



        2.3?程序設計與實現



        基于消息驅動的程序設計思想,為了保證系統的實時性,在中斷中只負責發送消息到相應的任務的消息隊列,由應用級的任務來處理,保證各個處理的時間是可確定的.主程序在消息循環中不斷地判斷各個任務的狀態,執行進入就緒態的任務。這就允許采用異步方式處理各種中斷及任務。



        本系統程序中采用了兩組有限狀態機,運用消息驅動的方式來驅動狀態的變更。一組是通信任務中以串口接收數據驅動為事件對象的有限狀態機,另一組是以用戶按鍵和命令碼驅動為事件對象的有限狀態機.在實時操作系統μC/OS一Ⅱ下,整個人機界面分為三個模塊,即三個任務來實現,分別是鍵值處理模塊、與主機通信模塊和時鐘模塊。



        ●?鍵值處理模塊



        OSTaskCreate(KEYTaskStart,(void*)O,&TaskKey-Stk[],7);



        先初始化所有的模塊,然后在循環中接收并處理鍵盤的輸入,Key-Process(char?KeyValue)根據相應的輸入鍵值和系統所處的狀態,對菜單進行相應的操作。



        State_Trans(char?RxData)根據鍵值輸入事件負責調度系統的狀態,并在相應的狀態下,根據從主系統收到的信息顯示菜單。







        相關文章


        基于LPC2119和μC/OSII的CAN中繼器設計
        PLC與DCS集成的通信架構及關鍵技術淺析
        通信電源、機房環境集中監控系統優化和升級
        TS101S型DSP與PCI總線的簡易接口設計
        人機界面中的LCD控制驅動與接口設計
        基于MSP430F149的實時多任務操作系統
        微機繼電保護實驗系統的研究與實現
        電力操作電源智能電池巡檢系統的設計
        蓄電池化成控制系統中顯示功能的實現
        LCM12864ZK與MSP430F149的接口控制技術



        聲明:本站部分內容來源于網絡,本站僅提供信息存儲,版權歸原作者所有,不承擔相關法律責任,不代表本站的觀點和立場,如有侵權請聯系刪除。
        閱讀 331
        尤物萝控精品福利视频的