新型圖形人機(jī)接口硬件系統(tǒng)和軟件架構(gòu)設(shè)計(jì)
人機(jī)接口是使用者與機(jī)器之間互相傳遞信息的媒介。傳統(tǒng)人機(jī)接口設(shè)計(jì)中,操作者與機(jī)器的對(duì)話(huà)方式比較單一、實(shí)現(xiàn)功能比較簡(jiǎn)單;一般采用按鍵操作,用戶(hù)操作比較復(fù)雜。傳統(tǒng)人機(jī)接口設(shè)計(jì)中,軟件架構(gòu)比較簡(jiǎn)單,功能劃分比較模糊,程序的可讀性與維護(hù)性較差。本文介紹的人機(jī)接口與傳統(tǒng)的人機(jī)接口相比有以下幾個(gè)優(yōu)點(diǎn):首先采用菜單顯示,簡(jiǎn)化用戶(hù)操作流程;其次采用了合理的軟件架構(gòu),功能模塊劃分明確,提高了程序的可讀性與可維護(hù)性。
人機(jī)接口硬件系統(tǒng)構(gòu)成
本文介紹的人機(jī)接口主要為SEED_MMI5402系統(tǒng)服務(wù)。SEED_MMI5402系統(tǒng)可提供多路數(shù)字信號(hào)源,并與其它子卡進(jìn)行通訊,控制多種外設(shè)。根據(jù)系統(tǒng)要求,操作者必須能夠通過(guò)人機(jī)接口控制信號(hào)源,及完成其它相應(yīng)的控制任務(wù)。
為節(jié)約成本、簡(jiǎn)化設(shè)計(jì),該人機(jī)接口不采用單獨(dú)的主控芯片,其功能由SEED_MMI5402系統(tǒng)的主控芯片TMS320VC5402完成。因SEED_MMI5402系統(tǒng)需控制多個(gè)外設(shè),且液晶屏的顯示控制線(xiàn)較多,為保證系統(tǒng)的功能實(shí)現(xiàn),液晶屏的顯示控制由TMS320VC5402通過(guò)CPLD實(shí)現(xiàn)。
該人機(jī)接口中使用的顯示模塊是240x120點(diǎn)陣液晶屏(其控制芯片是T6963C)。T6963C是點(diǎn)陣式液晶屏圖形顯示控制器,顯示方式有圖形方式、文本方式以及圖形和文本合成方式,還可實(shí)現(xiàn)文本方式下的特征顯示以及圖形拷貝操作等。T6963C的字符字體由硬件設(shè)置,在該人機(jī)接口系統(tǒng)中,固定使用8x8字體。
該人機(jī)接口中使用的鍵盤(pán)其功能與布局與計(jì)算機(jī)小鍵盤(pán)相似,在此將做不介紹。
圖形人機(jī)接口軟件架構(gòu)
該圖形人機(jī)接口設(shè)計(jì)的目標(biāo)是實(shí)現(xiàn)中文窗口界面,用戶(hù)可以在菜單方式下進(jìn)行操作。該圖形人機(jī)接口提供多級(jí)界面操作,操作者可以通過(guò)鍵盤(pán)選擇不同的窗口,進(jìn)行參數(shù)輸入、程序的運(yùn)行選擇,并可通過(guò)液晶屏查看相應(yīng)運(yùn)行結(jié)果。圖形人機(jī)接口的程序流程圖如圖2所示。
根據(jù)需求分析,該圖形人機(jī)接口的軟件由以下幾個(gè)模塊構(gòu)成:
1. 鍵值處理模塊
本模塊功能是獲取鍵值,并根據(jù)按鍵類(lèi)型調(diào)用不同處理函數(shù)。圖3是鍵值處理模塊的流程圖。
2. 菜單顯示模塊
因?yàn)樵搱D形人機(jī)接口的菜單選項(xiàng)比較多,各級(jí)子菜單的顯示只能通過(guò)覆蓋上級(jí)菜單實(shí)現(xiàn),不能通過(guò)下拉菜單實(shí)現(xiàn)。為了能較好實(shí)現(xiàn)各級(jí)菜單的切換,應(yīng)該確定本系統(tǒng)需要多少個(gè)界面,每個(gè)界面有多少個(gè)菜單選項(xiàng),并畫(huà)出各菜單選項(xiàng)之間的關(guān)系圖。
分析菜單操作示意圖(圖4),可知該圖形人機(jī)接口菜單由以下兩類(lèi)菜單構(gòu)成:
a. 標(biāo)題菜單類(lèi):每級(jí)菜單的索引;
b. 項(xiàng)目菜單類(lèi):每級(jí)菜單的菜單選項(xiàng)。
圖1:人機(jī)接口硬件構(gòu)成框圖
圖2:圖形人機(jī)接口的程序流程圖
圖3:鍵值處理模塊的流程圖
圖4:菜單操作示意圖
在進(jìn)行界面顯示處理時(shí),不僅要知道各菜單項(xiàng)的邏輯關(guān)系,還要知道菜單項(xiàng)的功能(用戶(hù)選中該菜單選項(xiàng)時(shí),處理器對(duì)應(yīng)的函數(shù)操作)。根據(jù)分析,該圖形人機(jī)接口的菜單功能分為以下幾類(lèi):
a. 跳轉(zhuǎn)菜單類(lèi):下級(jí)子菜單入口,用戶(hù)選中該菜單選項(xiàng)時(shí),液晶屏進(jìn)入其下級(jí)子菜單的顯示與操作;
b. 命令菜單類(lèi):操作函數(shù)入口,用戶(hù)選中該菜單選項(xiàng)時(shí),通知處理器進(jìn)入相應(yīng)的處理程序;
c. 選擇菜單類(lèi):參數(shù)或命令選項(xiàng)的輸出顯示,用戶(hù)選中該菜單選項(xiàng)時(shí),可根據(jù)液晶屏的顯示進(jìn)行相應(yīng)的輸入選擇;
d. 編輯菜單類(lèi):對(duì)話(huà)菜單類(lèi)的入口,用戶(hù)選中該菜單選項(xiàng)時(shí),進(jìn)入對(duì)話(huà)菜單類(lèi)的顯示,同時(shí)保留當(dāng)前參數(shù)值;
e. 對(duì)話(huà)菜單類(lèi):參數(shù)的輸入輸出顯示,在當(dāng)前菜單下,用戶(hù)可根據(jù)需求對(duì)運(yùn)行參數(shù)進(jìn)行修改。
為更好體現(xiàn)各個(gè)菜單之間的變遷,該圖形人機(jī)接口中使用到的菜單項(xiàng)按使用順序進(jìn)行編號(hào)。該圖形人機(jī)接口設(shè)計(jì)了一個(gè)結(jié)構(gòu)體,所有菜單項(xiàng)按菜單使用序號(hào)順次存放在該結(jié)構(gòu)體的中,這樣所有的菜單選項(xiàng)組成一個(gè)樹(shù)狀結(jié)構(gòu),每一個(gè)菜單項(xiàng)都是樹(shù)上的枝、葉。結(jié)構(gòu)屬性描述如下:
struct GUITREE_Node
{
菜單種類(lèi)域:該菜單的功能描述
菜單位置描述域:該菜單的與其它菜單項(xiàng)的關(guān)系
菜單狀態(tài)描述域:該菜單的狀態(tài)信息
菜單輸入顯示域:該菜單允許的參數(shù)輸入范圍信息
菜單選項(xiàng)顯示域:該菜單對(duì)應(yīng)的參數(shù)或命令選項(xiàng)信息
菜單操作函數(shù)域:該菜單所對(duì)應(yīng)操作函數(shù)的信息
菜單名顯示域:該菜單名顯示信息由該域控制
}
3. 運(yùn)行函數(shù)接口模塊
用戶(hù)操作與處理器運(yùn)行程序的連接由此模塊實(shí)現(xiàn)。操作者根據(jù)液晶屏的顯示,通過(guò)按鍵輸入?yún)?shù)或選擇不同操作命令,運(yùn)行函數(shù)接口模塊將這些信息傳遞給處理器;當(dāng)處理器處理完成相應(yīng)的用戶(hù)操作后,調(diào)用運(yùn)行函數(shù)接口模塊將結(jié)果通過(guò)液晶屏顯示反饋給用戶(hù)。運(yùn)行函數(shù)接口模塊的流程圖見(jiàn)圖5。
圖5:運(yùn)行函數(shù)接口模塊的流程圖
本文小結(jié)
本文主要從軟件架構(gòu)的角度出發(fā),提出了一種解決人機(jī)交互問(wèn)題的方法。通過(guò)定義合理數(shù)據(jù)結(jié)構(gòu)實(shí)現(xiàn)了簡(jiǎn)潔中文窗口菜單操作。文中的方法具有非常好的靈活性和良好的可維護(hù)性,可在需要的時(shí)候方便地修改原有窗口或者加入新的窗口,而不至于影響系統(tǒng)軟件原有的結(jié)構(gòu)。
作者:趙榮霞 ,硬件工程師 ,北京合眾達(dá)電子技術(shù)有限責(zé)任公司
評(píng)論