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