基于FPGA的PS/2鼠標接口設計方法及其應用
當前嵌入式系統(tǒng)技術(shù)已得到了廣泛應用,但傳統(tǒng)嵌入式系統(tǒng)的人機接口多采用小鍵盤操作的文本菜單方式,用戶操作較為不便。本設計利用FPGA實現(xiàn)對PS/2接口鼠標的控制,是在以VGA作為輸出設備的單片機系統(tǒng)上初步實現(xiàn)圖形化用戶界面的方案,它成本低、效果好,并且有很強的實用性。
FPGA(Field Programmable Gate Array)是 20世紀80年代中期出現(xiàn)的高密度、可編程邏輯器件,FPGA及其軟件系統(tǒng)是開發(fā)數(shù)字電路的最新技術(shù),它利用EDA技術(shù),以電路原理圖、硬件描述語言及狀態(tài)機等形式輸入設計邏輯,提供功能模擬、時序仿真等模擬手段,在功能模擬和時序仿真度滿足要求后,經(jīng)過一系列變換,將輸入邏輯轉(zhuǎn)換成FPGA器件的編程文件,以實現(xiàn)專用集成電路。本設計選用Altera公司推出的CyclONe II系列的EP2C5T144C8 FPGA來設計PS/2接口,體積減小,可靠性提高。
PS/2接口和協(xié)議
接口的物理特性
PS/2接口用于許多現(xiàn)代的鼠標和鍵盤,由IBM最初開發(fā)和使用。物理上的PS/2接口有兩種類型的連接 器 :5腳的DIN和6腳的MINI-DIN。圖1就是兩種連接器的引腳定義。使用中,主機提供+5V電源給鼠標,鼠標的地連接到主機電源地上。
接口協(xié)議原理
PS/2鼠標接口采用一種雙向同步串行協(xié)議,即每在時鐘線上發(fā)一個脈沖,就在數(shù)據(jù)線上發(fā)送一位數(shù)據(jù)。在相互傳輸中,主機擁有總線控制權(quán),即它可以在任何時候抑制鼠標的發(fā)送,方法是把時鐘線一直拉低,鼠標就不能產(chǎn)生時鐘信號并發(fā)送數(shù)據(jù)。在兩個方向的傳輸中,時鐘信號都由鼠標產(chǎn)生,主機不產(chǎn)生通信時鐘信號。
如果主機要發(fā)送數(shù)據(jù),就必須控制鼠標產(chǎn)生時鐘信號,方法如下:主機首先下拉時鐘線至少100μS抑制通信,然后再下拉數(shù)據(jù)線,最后釋放時鐘線。鼠標檢測到這個時序狀態(tài)后,會在10mS內(nèi)產(chǎn)生時鐘信號。如圖3中(A)時序段。主機和鼠標之間,傳輸數(shù)據(jù)幀的時序如圖2、圖3所示。
PS/2鼠標的工作模式和協(xié)議數(shù)據(jù)包格式
PS/2鼠標的四種工作模式
PS/2鼠標的四種工作模式分別是:Reset模式,當鼠標上電或主機發(fā)復位命令(0xFF)給它時,進入這種模式;STream模式,鼠標的默認模式,當鼠標上電或復位完成后,自動進入此模式,鼠標基本上以此模式工作;Remote模式,只有在主機發(fā)送了模式設置命令(0xF0)后,鼠標才進入這種模式;Wrap模式,這種模式只用于測試鼠標與主機連接是否正確。
數(shù)據(jù)包結(jié)構(gòu)
PS/2鼠標在工作過程中,會及時把它的狀態(tài)數(shù)據(jù)發(fā)送給主機。發(fā)送的數(shù)據(jù)包格式如表1所示。
評論