【硬件設計】嵌入式輸入設備設計
常見的人機交互輸入設備包括按鍵、觸摸屏、麥克風及其他各類用戶可控輸入的傳感器等。隨著科技的發(fā)展,不僅我們常見的交互輸入設備出現(xiàn)了新的形態(tài),而且也出現(xiàn)了不少新的交互輸入方式。比如,現(xiàn)在手機中的電容按鍵及重力感應傳感器、距離傳感器?,F(xiàn)在的交互設備不僅體現(xiàn)在硬件設備的復雜性上,而且在相關數(shù)據(jù)的復雜性上也與以往有了較大的增加。比如,可用于語音輸入的麥克和可用于人臉識別的攝像頭,為了完成這些人機交互輸入,除了硬件輸入設備對信息采集外,還需要后臺進行大量的數(shù)據(jù)處理,以幫助系統(tǒng)“理解”用戶的“輸入信息”。
下面我們詳細介紹最常用的輸入設備:鍵盤/按鍵。
鍵盤是嵌入式應用的常用外部設備之一。鍵盤是由若干個按鍵組成的開關矩陣,它是最簡單的數(shù)字量輸入設備。對系統(tǒng)而言,鍵盤上不同的按鍵代表著不同的含義(一般來說,按鍵的含義可通過軟件定義)。用戶通過按動鍵盤的按鍵,輸入數(shù)據(jù)或命令,實現(xiàn)簡單的人機交互。
鍵盤的基本電路是一個接觸開關,通、斷兩種狀態(tài)分別表示邏輯“0”和“1”。如圖2所示,當開關打開時,處理器檢測到相應引腳為高電平,表示邏輯“1”;當開關閉合時,處理器檢測到相應引腳為低電平,表示邏輯“0”。
按鍵排布的方式,鍵盤可分為可分成獨立式按鍵鍵盤和矩陣式按鍵鍵盤;按讀入鍵值的方式,可分為直讀方式和掃描方式;按編碼方式,可分成非編碼方式和硬件編碼方式;按微處理器響應方式可分為中斷方式和查詢方式。以上各種方式組合可構成不同硬件結構和接口的鍵盤。以下介紹較為常用的兩種方式。
①獨立式
獨立式按鍵鍵盤是指將每個獨立按鍵按一對一的方式直接接到微處理器的I/O輸入端口,如圖2所示。讀鍵值時,處理器可以檢測相應I/O輸入端口的狀態(tài),判定輸入電平,確定輸入的邏輯值。按鍵之間在硬件和讀取方式上均相互獨立,所以習慣稱這種按鍵為獨立式按鍵。這種方式在軟硬件上實現(xiàn)均比較簡單,但每一個按鍵都占用一個I/O端口,占用的資源較多,一般在按鍵數(shù)量較少,微處理器I/O資源充足時采用。
②矩陣式
矩陣式鍵盤是用n條I/O線組成行輸入口,m條I/O線組成列輸出口,在行列線的每一個交點上設置一個按鍵。如圖3(b)所示,為一個4行4列的矩陣鍵盤。矩陣式鍵盤讀取鍵值一般采用逐行掃描的方式,即輸出口按位輪換輸出低電平,再從輸入口讀入信息,最后計算各次從輸入口讀取的信息,獲得鍵碼。例如,將row0~3配置為輸出模式,col0~3配置為輸入模式;現(xiàn)將row0輸出低電平,row1~3輸出高電平,讀取col0~3;如果此時第0行0列的按鍵有按下,則col0檢測到輸入為低電平,其他列為高電平。這種方式占用I/O線較少,在按鍵較多的應用中采用較多。
設計鍵盤時,通常小于4個按鍵的應用,可以使用獨立式接口。如果按鍵較多,為了減少微處理器的I/O端口的占用,可以使用矩陣式鍵盤。
另外,如果使用處理器I/O直接與矩陣鍵盤接口相連,上述矩陣鍵盤的檢測方式需要處理器不斷對接口掃描檢測。對速度較快的處理器來說,這種檢測方式是對處理器的極大浪費。所以實際應用中建議使用專門的矩陣鍵盤的驅動芯片或I/O擴展芯片,來實現(xiàn)對矩陣鍵盤的檢測,比如ZLG7290、CAT9555等擴展芯片。使用驅動或I/O擴展芯片,可以將處理器從簡單但頻繁的鍵盤掃描動作中解放出來。如圖4為ZLG7290實現(xiàn)矩陣鍵盤應用的基本電路,該芯片支持2×8個I/O擴展,采用IIC接口與處理器連接,并支持中斷輸出,最大可擴展8×8的矩陣鍵盤。