基于FPGA的PS/2鼠標(biāo)接口設(shè)計(jì)方法及其應(yīng)用
Byte1中的Bit0、Bit1、Bit2分別表示左、右、中鍵的狀態(tài),狀態(tài)值0表示釋放,1表示按下;Byte2和Byte3分別表示X軸和Y軸方向的移動計(jì)量值,是二進(jìn)制補(bǔ)碼值;Byte4的低四位表示滾輪的移動計(jì)量值,也是二進(jìn)制補(bǔ)碼值,高四位作為擴(kuò)展符號位。這種數(shù)據(jù)包由帶滾輪的三鍵三維鼠標(biāo)產(chǎn)生,若是不帶滾輪的三鍵鼠標(biāo),產(chǎn)生的數(shù)據(jù)包沒有Byte4,其余的相同。
VGA信號時序
圖4所示是計(jì)算機(jī)VGA(640×480,60Hz)圖像格式的信號時序圖,其點(diǎn)時鐘DCLK為25.175MHz,場頻為59.94Hz。圖中,Vsync為場同步信號,場周期Tvsync為16.683mS,每場有525行,其中480行為有效顯示行,45行為場消隱期。場同步信號Vs每場有一個脈沖,該脈沖的低電平寬度twv為63μS(2行)。場 消隱期包括場同步時間twv、場消隱前肩tHV(13行)和場消隱后肩tVH(30行),共45行。行周期THSYNC為31.78μS,每顯示行包 括800點(diǎn),其中640點(diǎn)為有效顯示,160點(diǎn)為行消隱期(非顯示 區(qū))。行同步信號Hs每行有一個脈沖,該脈沖的低電平寬度tWH為3.81μS(即96個DCLK);行消隱期包括行同步時間tWH,行消隱前肩tHC(19個DCLK)和行消隱后肩tCH(45個DCLK),共160個點(diǎn)時鐘。復(fù)合消隱信號是行消隱信號和場消隱信號的邏輯與,在有效顯示期復(fù)合消隱信號為高電平,在非顯示區(qū)域它是低電平。
設(shè)計(jì)實(shí)現(xiàn)
實(shí)現(xiàn)功能
1、 用FPGA實(shí)現(xiàn)PS/2鼠標(biāo)接口。
2、鼠標(biāo)左鍵按下時十字形鼠標(biāo)圖象的中間方塊改變顏色,右鍵按下時箭頭改變顏色。
3、 Reset按鍵:總復(fù)位。
設(shè)計(jì)原理
主機(jī)復(fù)位后,首先向鼠標(biāo)發(fā)送初始化命令(0xf4)。當(dāng)鼠標(biāo)收到命令字后會給出一個應(yīng)答字節(jié)(0xfa),主機(jī)根據(jù)應(yīng)答字節(jié)來判斷鼠標(biāo)是否正確應(yīng)答。如果應(yīng)答正確則接收鼠標(biāo)數(shù)據(jù)包,然后從接收到的數(shù)據(jù)包中獲得鼠標(biāo)位置及狀態(tài)數(shù)據(jù),并輸出給顯示模塊。顯示模塊在CRT上顯示出當(dāng)前鼠標(biāo)的狀態(tài)和位置,否則,停止處理。如圖5。
評論