帶有微處理器的儀器的操作曾經是通過儀器面板上眾多的功能鍵和數字鍵來實現人機交互的,程序用查詢的方法掃描鍵盤或響應鍵盤中斷的方法讀回鍵值,然后散轉各分支程序去執行相應的功能子程序,完成相應的作業。使用者往往不得不借助厚厚的使用說明書來熟悉、來指南儀器面板上各種按鍵的定義和操作的方法。隨著微電子技術的發展及大屏幕點陣式液晶顯示器的出現,使得智能化儀器的操作也向菜單式、傻瓜型邁進。通過液晶屏上的菜單選項,用面板上三四個按鍵或旋轉式光電編碼開關,就能完成儀器操作所必需的參數設置、命令執行等必要的人機交互。該類儀器的程序結構也適應了其菜單式"傻瓜"界面的特點,用后臺大量的編程工作換取了前臺儀器操作的極其簡單和方便。本文從軟硬件設計的角度,討論智能儀器中菜單式交互界面形成的原理和實現的方法。
1 交互界面的輸入結構
在菜單式界面的智能儀器中,人機交互的指令輸入部件可用按鍵或旋轉式光電編碼開關。按鍵由增鍵、減鍵和確認鍵構成(圖1) .使用這3 種操作可以用來在液晶顯示屏上移動光標、數據輸入和操作選定等。增鍵和減鍵用于選擇菜單中選項時的光標移動,以及在設定數值時對數值大小的增減;確認鍵用于對選中的選項和設定的數值大小的確定。
圖1 按鍵示意圖
按鍵的功能可以用旋轉式光電編碼開關來替代。旋轉式光電編碼開關的功能類似計算機上使用的鼠標,它有3 種操作:"左旋""右旋"和"按下選定", 可對應著按鍵輸入時的增鍵、減鍵和確認鍵。
圖2 是光電編碼開關的外形圖、電原理圖、輸出信號真值表和波形圖。該開關壓下時②和③短路輸出,旋轉時,由把柄帶動穿孔圓盤一起轉動。開關內有2 個發光二極管、2 個光敏三極管和1 個穿孔圓盤,圓盤上的穿孔按特定規律分布。光敏二極管接收發光二極管發出的光,形成二路旋轉輸出信號"輸出A"和"輸出B".旋轉時,當穿孔圓盤上的某個圓孔正對著發光二極管時,發光二極管發出的光通過該圓孔照射到光敏三極管上,三極管導通,輸出低電平信號;當圓盤上的所有圓孔都錯開發光二極管時,光敏三極管因收不到光信號而截止,輸出高電平信號。
圖2 光電編碼開關
由圖2 (c) 真值表可見,其實"輸出B"和"輸出A"的編碼對應著2 位循環碼(格雷碼) ,循環碼的特點是由一個計數狀態變到下一個計數狀態的過程中,只有一位數碼變化,因此在循環碼的譯碼器中,不會產生競爭冒險現象。在智能儀器中微處理器引腳狀態變化的中斷輸入中也不會產生中斷事件的競爭。但循環碼不能用二進制計算來判別大小和順序,所以要判別光電編碼開關是"左旋"還是"右旋"時,要引入"輸出B"和"輸出A"電平的現狀態和前狀態進行分支邏輯判斷,軟件編程稍稍復雜一點。
現在很多單片微控制器的I/ O 口線都帶有鍵盤中斷功能,圖1 所示的按鍵和圖2 所示的旋轉式光電編碼開關,可通過上拉電阻的形式直接接到這些I/ O 口線上。有操作信號時,口線的電平改變會引起鍵盤中斷的發生,CPU 響應中斷后可去處理相應的操作。在微處理器I/ O 口線或外中斷口線緊張的情況下,可以如圖3 所示,通過I2 C 總線外擴一片串行變并行的PCF8574 芯片,芯片P0~ P7 的8根口線可用作輸入或輸出;用作輸入時,口線電平的變化會引起芯片13 腳電平變低向微處理器申請中斷。圖3 中RL K 是旋轉式光電編碼開關,它的"輸出A""輸出B"和"按下開關"接到了PCF8574 的P4、P5 和P6 ,在筆者研制的"電流互感器伏安特性試驗儀"中,PCF8574 的P0~P3 被用作輸出,經接插件J9 ,通過光耦去驅動試驗電壓量程切換的繼電器。
圖3 節省I/ O 口線的按鍵輸入接口電路
2 交互界面的輸出結構
菜單式交互界面的輸出部件可采用能顯示字符、漢字及圖形和曲線的大屏幕點陣式液晶顯示器。
帶有驅動控制器的點陣式LCD 液晶屏與微處理器的接口信號線除了8 位數據線外,一般還帶有讀有效線、寫有效線及地址譯碼的片選線 ,所以對它的連接和讀寫操作,可看作是對微處理器片外的RAM 單元的連接和讀寫操作。讀寫操作中,不同的驅動控制器具有不同的指令格式,如常用于驅動320 ×240 點陣式液晶顯示屏的SED1335 液晶驅動芯片就帶有13 條指令,能方便地完成各種顯示功能。多任務下的選擇菜單可由多屏菜單形成多級鏈式結構,為便于敘述,以三級任務菜單為例,將作業分為主任務(用大寫字母A 、B、C 等表示) 、子任務(用小寫字母a 、b 、c 等表示) 和支任務(用數字1 、2 、3 等表示) ,圖4 是顯示界面的部分屏顯的匯總。每屏界面都有自己的編號:win1 、win2 、win3 ??.圖中win1 為主屏菜單,提供了主任務A、B 和C 3 個選項;win2 、win3 、win4 為第一級子菜單,為每項主任務提供了各自的子任務的選擇(如win2 屏是主任務A 的子任務A2a 、A2b 和A2c 的選項) ;win5 、win6和win7 是第二級子菜單,為第一級子菜單中的子任務提供下一級支任務(如win5 屏為win2 中的子任務選項A2a 提供A2a21 、A2a22 和A2a23 的支任務選項) ;各級子菜單中均有"返回"的選項,選擇執行后返回上一級菜單。圖4 中的選項標志用■和□來指示, ■表示該項選中,選項的變動由增鍵和減鍵(或旋轉式光電編碼開關的"左旋"和"右旋") 來完成,選項的執行由確認鍵(或旋轉式光電編碼開關的"按下選定") 來完成,根據■所在的位置,選項號opt =0 ,1 ,2 …….圖中舉例win14~win18 是具體任務的執行情況界面,可以是測量值顯示,也可以是某參數的動態曲線顯示,可以是歷史數據查詢,等等。這些界面的"返回"功能在作業完成后自動進行,或默認按"確認"鍵返回。
這種結構還很適合儀器在改進和升級時功能程序模塊的增加和變換。比如系統要增加"子任務B2d",只要在如圖4 所示的win3 屏顯中插入這個選項為opt = 3 ,使該屏為5 選項,則當標志■選中該項時程序即調用執行"子任務B2d"的子程序。要增加"主任務D"的方法是類似的,只要在win1 屏顯中加入這個選項,然后程序根據菜單的選擇來分支就行了。
圖4 顯示界面的部分屏顯匯總
3 基于界面狀態的程序結構
儀器儀表的系統程序結構,由按鍵和作業的對應關系可分為一鍵一義型和一鍵多義型兩種結構。
對于一鍵多義型系統程序,作業的調度條件是多因數的,不僅與外因(鍵盤操作) 有關,也與內因(系統當前所處的狀態) 有關。為此,引入系統狀態的概念,即將系統運行情況分成若干狀態(如圖4 所示的界面狀態和選項狀態,選項狀態屬于界面狀態的子狀態) ,使得在任何一個狀態下每一個按鍵只有唯一的定義。這樣一來,系統運行去向就可以由當前狀態和當前鍵碼來共同決定了。智能化儀器儀表正由一鍵一義型向一鍵多義型進化。如用圖4 所示的顯示界面來表征系統當前所處的狀態,其程序結構稱之為基于界面狀態的程序結構。
為提高系統效率,對鍵盤(或旋轉式光電編碼開關) 的操作響應可采用中斷的方式進行。進入鍵中斷服務程序后,先判別是增建、減鍵、確認鍵(或旋轉式光電編碼開關的"左旋""右旋""按下選定") 的哪一個鍵碼觸發中斷;接著判別當前系統所處的狀態(當前的顯示屏號win 及選項號opt ) ; 再由鍵碼key ,系統狀態win 和opt 決定執行什么作業。程序框圖如圖5 所示。值得一提的是,對那些不適合在中斷服務程序中執行或執行時間過長的作業(如打印等) ,可在中斷服務程序中置位該作業的啟動標志,待中斷返回后在主程序中再執行選中的作業,完成后清除該作業的啟動標志。
圖5 基于界面的交互過程
4 操作界面的上位機介入
電子技術的飛速發展,使嵌入式系統中的存儲器體積越來越小、容量越來越大。但是,如果要在一臺試驗用的儀器上進行日積月累的試驗數據的查詢和管理,如果要使儀器的實時試驗曲線具有較高的分辨率和對局部曲線進行分析,如果要使儀器的操作能遠程控制,那么,儀器單機的資源就略顯不足。
滿足上述要求的通常做法是用PC 機(或筆記本電腦) 作為儀器的上位機,通過RS232 串口(或USB口) 與儀器通信構成自動測試系統,使儀器共享上位計算機的資源,進一步增強智能儀器的性能。
基于界面狀態的程序結構為上位計算機介入后對儀器的控制提供了很好的軟件平臺。微處理器在響應串口中斷的中斷服務程序中,首先從接收到的上位機傳來的信息判斷是何種作業,然后用調用子程序的方法,調用圖4 所示的基于界面狀態的opt 作業程序。這樣,原來基于界面狀態的程序結構幾乎不用改動,只要在串口中斷服務程序中根據上位機的命令來分支調用子程序就行了。當然,在上位機控制下執行相應作業時,儀器上的液晶顯示界面仍然將同步顯示當前作業,為遠程操作儀器和實地監視儀器提供了方便。
5 結 語
大屏幕點陣式液晶顯示器和內置大容量程序存儲器的微處理器的出現,給儀器儀表的智能化進程推波助瀾。上述人機交互界面的軟硬件設計,在工程項目中的初步嘗試,基本達到了結構簡單、操作方便、編程高效和界面友好的效果。用后臺大量的工作換取前臺操作的極其簡單和方便,應是儀器儀表業內同行始終追求的境界。
-
人機交互
+關注
關注
12文章
1217瀏覽量
55469 -
筆記本電腦
+關注
關注
9文章
1417瀏覽量
48509 -
PC
+關注
關注
9文章
2102瀏覽量
154498
發布評論請先 登錄
相關推薦
評論