嵌入式設備鼠標接口的設計與實現
摘要:分析了PS/2鼠標的接口和通信協議,介紹了PS/2鼠標與單片機的接口設計方法,配合點陣LCD顯示器,實現了嵌入式設備的圖形化人機接口(GUI)。關鍵詞:PS/2接口 雙向同步串行協議 GUI
當前嵌入式系統(tǒng)技術已得到了廣泛應用,但傳統(tǒng)嵌入式系統(tǒng)的人機接口多采用小鍵盤操作的文本菜單方式,用戶操作較為不便。本文介紹了一種利用PS/2接口鼠標,在點陣LCD的單片機系統(tǒng)上實現圖形化用戶界面的方案。用窗口菜單和圖形按鈕取代了傳統(tǒng)的鍵盤操作,具有成本低、效果好等特點,具有很強的實用性。
1 PS/2接口和協議
1.1 接口的物理特性
PS/2接口用于許多現代的鼠標和鍵盤,由IBM最初開發(fā)和使用。物理上的PS/2接口有兩種類型的連接器:5腳的DIN和6腳的mini-DIN。圖1就是兩種連接器的引腳定義。使用中,主機提供+5V電源給鼠標,鼠標的地連接到主機電源地上。
1.2 接口協議原理
PS/2鼠標接口采用一種雙向同步串行協議。即每在時鐘線上發(fā)一個脈沖,就在數據線上發(fā)送一位數據。在相互傳輸中,主機擁有總線控制權,即它可以在任何時候抑制鼠標的發(fā)送。方法是把時鐘線一直拉低,鼠標就不能產生時鐘信號和發(fā)送數據。在兩個方向的傳輸中,時鐘信號都是由鼠標產生,即主機不產生通信時鐘信號。
如果主機要發(fā)送數據,它必須控制鼠標產生時鐘信號。方法如下:主機首先下拉時鐘線至少100μs抑制通信,然后再下拉數據線,最后釋放時鐘線。通過這一時序控制鼠標產生時鐘信號。當鼠標檢測到這個時序狀態(tài),會在10ms內產生時鐘信號。如圖3中?A?時序段。主機和鼠標之間,傳輸數據幀的時序如圖2、圖3所示。
2 PS/2鼠標的工作模式和協議數據包格式
2.1 PS/2鼠標的四種工作模式
PS/2鼠標的四種工作模式是:Reset模式,當鼠標上電或主機發(fā)復位命令?0xFF?給它時進入這種模式;Stream模式?鼠標的默認模式,當鼠標上電或復位完成后,自動進入此模式,鼠標基本上以此模式工作;Remote模式,只有在主機發(fā)送了模式設置命令?0xF0?后,鼠標才進入這種模式;Wrap模式,這種模式只用于測試鼠標與主機連接是否正確。
2.2 數據包結構
PS/2鼠標在工作過程中,會及時把它的狀態(tài)數據發(fā)送給主機。發(fā)送的數據包格式如表1所示。
表1 鼠標發(fā)送的數據包格式
Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0[1] [2] [3]