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