<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
關(guān) 閉

新聞中心

EEPW首頁(yè) > 工控自動(dòng)化 > 設計應用 > 新型圖形人機接口硬件系統和軟件架構設計

新型圖形人機接口硬件系統和軟件架構設計

作者: 時(shí)間:2007-07-19 來(lái)源:網(wǎng)絡(luò ) 收藏

是使用者與機器之間互相傳遞信息的媒介。傳統設計中,操作者與機器的對話(huà)方式比較單一、實(shí)現功能比較簡(jiǎn)單;一般采用按鍵操作,用戶(hù)操作比較復雜。傳統設計中,架構比較簡(jiǎn)單,功能劃分比較模糊,程序的可讀性與維護性較差。本文介紹的人機接口與傳統的人機接口相比有以下幾個(gè)優(yōu)點(diǎn):首先采用菜單顯示,簡(jiǎn)化用戶(hù)操作流程;其次采用了合理的架構,功能模塊劃分明確,提高了程序的可讀性與可維護性。

人機接口構成

本文介紹的人機接口主要為SEED_MMI5402系統服務(wù)。SEED_MMI5402系統可提供多路數字信號源,并與其它子卡進(jìn)行通訊,控制多種外設。根據系統要求,操作者必須能夠通過(guò)人機接口控制信號源,及完成其它相應的控制任務(wù)。

為節約成本、簡(jiǎn)化設計,該人機接口不采用單獨的主控芯片,其功能由SEED_MMI5402系統的主控芯片TMS320VC5402完成。因SEED_MMI5402系統需控制多個(gè)外設,且液晶屏的顯示控制線(xiàn)較多,為保證系統的功能實(shí)現,液晶屏的顯示控制由TMS320VC5402通過(guò)CPLD實(shí)現。

該人機接口中使用的顯示模塊是240x120點(diǎn)陣液晶屏(其控制芯片是T6963C)。T6963C是點(diǎn)陣式液晶屏圖形顯示控制器,顯示方式有圖形方式、文本方式以及圖形和文本合成方式,還可實(shí)現文本方式下的特征顯示以及圖形拷貝操作等。T6963C的字符字體由硬件設置,在該人機接口系統中,固定使用8x8字體。

該人機接口中使用的鍵盤(pán)其功能與布局與計算機小鍵盤(pán)相似,在此將做不介紹。

圖形人機接口架構

該圖形人機接口設計的目標是實(shí)現中文窗口界面,用戶(hù)可以在菜單方式下進(jìn)行操作。該圖形人機接口提供多級界面操作,操作者可以通過(guò)鍵盤(pán)選擇不同的窗口,進(jìn)行參數輸入、程序的運行選擇,并可通過(guò)液晶屏查看相應運行結果。圖形人機接口的程序流程圖如圖2所示。

根據需求分析,該圖形人機接口的軟件由以下幾個(gè)模塊構成:

1. 鍵值處理模塊

本模塊功能是獲取鍵值,并根據按鍵類(lèi)型調用不同處理函數。圖3是鍵值處理模塊的流程圖。

2. 菜單顯示模塊

因為該圖形人機接口的菜單選項比較多,各級子菜單的顯示只能通過(guò)覆蓋上級菜單實(shí)現,不能通過(guò)下拉菜單實(shí)現。為了能較好實(shí)現各級菜單的切換,應該確定本系統需要多少個(gè)界面,每個(gè)界面有多少個(gè)菜單選項,并畫(huà)出各菜單選項之間的關(guān)系圖。

分析菜單操作示意圖(圖4),可知該圖形人機接口菜單由以下兩類(lèi)菜單構成:

a. 標題菜單類(lèi):每級菜單的索引;

b. 項目菜單類(lèi):每級菜單的菜單選項。


圖1:人機接口硬件構成框圖


圖2:圖形人機接口的程序流程圖


圖3:鍵值處理模塊的流程圖


圖4:菜單操作示意圖

在進(jìn)行界面顯示處理時(shí),不僅要知道各菜單項的邏輯關(guān)系,還要知道菜單項的功能(用戶(hù)選中該菜單選項時(shí),處理器對應的函數操作)。根據分析,該圖形人機接口的菜單功能分為以下幾類(lèi):

a. 跳轉菜單類(lèi):下級子菜單入口,用戶(hù)選中該菜單選項時(shí),液晶屏進(jìn)入其下級子菜單的顯示與操作;

b. 命令菜單類(lèi):操作函數入口,用戶(hù)選中該菜單選項時(shí),通知處理器進(jìn)入相應的處理程序;

c. 選擇菜單類(lèi):參數或命令選項的輸出顯示,用戶(hù)選中該菜單選項時(shí),可根據液晶屏的顯示進(jìn)行相應的輸入選擇;

d. 編輯菜單類(lèi):對話(huà)菜單類(lèi)的入口,用戶(hù)選中該菜單選項時(shí),進(jìn)入對話(huà)菜單類(lèi)的顯示,同時(shí)保留當前參數值;

e. 對話(huà)菜單類(lèi):參數的輸入輸出顯示,在當前菜單下,用戶(hù)可根據需求對運行參數進(jìn)行修改。

為更好體現各個(gè)菜單之間的變遷,該圖形人機接口中使用到的菜單項按使用順序進(jìn)行編號。該圖形人機接口設計了一個(gè)結構體,所有菜單項按菜單使用序號順次存放在該結構體的中,這樣所有的菜單選項組成一個(gè)樹(shù)狀結構,每一個(gè)菜單項都是樹(shù)上的枝、葉。結構屬性描述如下:

struct GUITREE_Node

{

菜單種類(lèi)域:該菜單的功能描述

菜單位置描述域:該菜單的與其它菜單項的關(guān)系

菜單狀態(tài)描述域:該菜單的狀態(tài)信息

菜單輸入顯示域:該菜單允許的參數輸入范圍信息

菜單選項顯示域:該菜單對應的參數或命令選項信息

菜單操作函數域:該菜單所對應操作函數的信息

菜單名顯示域:該菜單名顯示信息由該域控制

}

3. 運行函數接口模塊

用戶(hù)操作與處理器運行程序的連接由此模塊實(shí)現。操作者根據液晶屏的顯示,通過(guò)按鍵輸入參數或選擇不同操作命令,運行函數接口模塊將這些信息傳遞給處理器;當處理器處理完成相應的用戶(hù)操作后,調用運行函數接口模塊將結果通過(guò)液晶屏顯示反饋給用戶(hù)。運行函數接口模塊的流程圖見(jiàn)圖5。


圖5:運行函數接口模塊的流程圖

本文小結

本文主要從軟件架構的角度出發(fā),提出了一種解決人機交互問(wèn)題的方法。通過(guò)定義合理數據結構實(shí)現了簡(jiǎn)潔中文窗口菜單操作。文中的方法具有非常好的靈活性和良好的可維護性,可在需要的時(shí)候方便地修改原有窗口或者加入新的窗口,而不至于影響系統軟件原有的結構。

作者:趙榮霞 ,硬件工程師 ,北京合眾達電子技術(shù)有限責任公司



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>