《基于FPGA 的PS2鼠標(biāo)控制器設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于FPGA 的PS2鼠標(biāo)控制器設(shè)計(jì)(7頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、 基于FPGA 的PS/2 鼠標(biāo)控制器設(shè)計(jì)
1 PS/2介紹
PS/2 接口作為傳統(tǒng)的鼠標(biāo)鍵盤接口已經(jīng)被大部分人所熟知,雖然隨著 USB
接口鍵鼠的普及,絕大多數(shù) PC用戶均選擇了 USB的鍵鼠,但目前主流 PC中依舊保留了PS/2鍵鼠的接口,由于 PS/2接口實(shí)現(xiàn)簡(jiǎn)單,使用方便的特點(diǎn),在許多領(lǐng)域如工控機(jī)等仍舊采用 PS/2接口來完成基本的人機(jī)交互。
1.1 PS/2 的接口特性
PS/2 接口多用于鼠標(biāo)和鍵盤,IBM是開發(fā)和使用最早的。PS/2 接口從物理上有兩種類型的連接器,它們分別是5腳的 DIN和6腳的MINI-DIN,如圖1-1所示。
2、
圖1-1 PS/2 接口連接器引腳定義
1.2 PS/2 的接口協(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í)鐘線。通過這一時(shí)序控制鼠標(biāo)產(chǎn)生時(shí)鐘信號(hào)。PS/2接口的鼠標(biāo)一般工作在10KHz-20KHz
3、時(shí)鐘頻率,不同廠家制造的鼠標(biāo)工作的時(shí)鐘頻率不同,推薦值在15kHz左右,也就是說,Clock(時(shí)鐘腳)高、低電平的持續(xù)時(shí)間都為40μs。
PS/2接口分為兩種通訊模式:設(shè)備到主機(jī)的通訊、主機(jī)到設(shè)備的通訊。時(shí)序如圖1-2。當(dāng)時(shí)鐘為高時(shí),設(shè)備驅(qū)動(dòng)數(shù)據(jù)線改變狀態(tài),在時(shí)鐘信號(hào)的下降沿?cái)?shù)據(jù)被控制器鎖存。圖 1-3為主機(jī)到設(shè)備的通訊時(shí)序。
圖1-2鼠標(biāo)到主機(jī)的通信時(shí)序
圖1-3主機(jī)到的鼠標(biāo)通信時(shí)序
1.3 PS/2 的鼠標(biāo)工作模式
PS/2 鼠標(biāo)有四種工作模式,它們分別為:Reset 模式:當(dāng)鼠標(biāo)上電或主機(jī)
發(fā)復(fù)位命令給它時(shí),進(jìn)入 Reset 模式;Stream 模式:這是鼠
4、標(biāo)的默認(rèn)模式,當(dāng)
鼠標(biāo)上電或復(fù)位完成后,鼠標(biāo)自動(dòng)進(jìn) Stream 模式,鼠標(biāo)大部分就是用此模式工作;Remote模式:只有當(dāng)主機(jī)發(fā)送了設(shè)置命令后,鼠標(biāo)才進(jìn)入 Remote 模式;Wrap模式:Wrap 模式只用于測(cè)試鼠標(biāo)與主機(jī)連接是否正確。
1.4 PS/2 的數(shù)據(jù)幀格式
鼠標(biāo)在實(shí)際工作中,會(huì)把及時(shí)收到的數(shù)據(jù)狀態(tài)發(fā)送給主機(jī),讓主機(jī)做出相應(yīng)
的動(dòng)作。發(fā)送的數(shù)據(jù)包格式如圖1-4所示。
圖1-4 鼠標(biāo)發(fā)送數(shù)據(jù)格式
鼠標(biāo)發(fā)送數(shù)據(jù)的具體方式如下:Byte1 中的 Bit0、Bit1、Bit2 分別表示左、右、中鍵的狀態(tài),狀態(tài)值0表示釋放
5、,1表示按下;Byte2 和Byte3分別表示X軸和Y軸方向的移動(dòng)計(jì)量值,是二進(jìn)制補(bǔ)碼值;Byte4的低四位表示滾輪的移動(dòng)二進(jìn)制補(bǔ)碼值,高四位作為擴(kuò)展符號(hào)位。這種數(shù)據(jù)包由帶滾輪的三鍵三維鼠標(biāo)產(chǎn)生,若是不帶滾輪的三鍵鼠標(biāo),產(chǎn)生的數(shù)據(jù)包沒有 Byte4,其余的相同。數(shù)據(jù)幀格式如圖 1-5所示。
圖 1-5 數(shù)據(jù)幀格式
2 硬件相關(guān)介紹
2.1 PS/2 接口
DE2-115 包含一個(gè)標(biāo)準(zhǔn)的 PS/2 接口,可以用來外接 PS/2 鼠標(biāo)或鍵盤。圖 2-1給出了 PS/2 接口相關(guān)的原理圖。
圖 2-1 PS/2 接口原理圖
PS/2 接口相關(guān)的引腳配置信息可以
6、在圖 2-2中找到。
圖 2-2 PS/2 接口引腳配置
2.2 按鍵及撥碼開關(guān)電路
DE2-115提供了四個(gè)按鈕開關(guān),如圖1-8所示。每個(gè)按鈕開關(guān)都通過一個(gè)施密特觸發(fā)器進(jìn)行了去抖處理。四個(gè)施密特觸發(fā)器的輸出信號(hào),分別為KEY0、KEY1、KEY2、KEY3,直接連接到了Cyclone IV E FPGA。當(dāng)按鈕沒有被按下的時(shí)候,它的輸出是高電平,按下去則給出一個(gè)低電平。得益于去抖動(dòng)電路,這些按鈕開關(guān)適合用來給內(nèi)部電路提供(模擬的)時(shí)鐘信號(hào)或者復(fù)位信號(hào)。
圖1-8 KEY電路示意圖
圖1-9 按鍵消抖
DE2-115開發(fā)板上還有18個(gè)撥動(dòng)開關(guān),如圖1-10
7、所示。這些開關(guān)沒有去抖電路,它們可以作為對(duì)電平敏感的電路的輸入數(shù)據(jù)。每個(gè)開關(guān)都直接連接到Cyclone IV E。當(dāng)撥動(dòng)開關(guān)在DOWN位置(靠近開發(fā)板邊緣)的時(shí)候輸出為低電平,當(dāng)在UP位置是輸出為高電平。
圖1-10 撥碼開關(guān)電路示意圖
2.3 LED電路
DE2-115開發(fā)板共有27個(gè)直接由FPGA控制的LED.18個(gè)紅色的LED位于18個(gè)撥動(dòng)開關(guān)的正上方,8個(gè)綠色LED可以在按鈕開關(guān)的上方找到(第九個(gè)LED位于七段數(shù)碼管的中間)。每一個(gè)LED都由Cyclone IV E FPGA的一個(gè)引腳直接驅(qū)動(dòng),其輸出高電平則點(diǎn)亮LED,輸出低電平LED熄滅。圖1-11給出了LED和C
8、yclone IV E FPGA之間的連接示意圖。
圖1-11 LED 電路示意圖
Cyclone IV E FPGA到撥動(dòng)開關(guān)間的詳細(xì)引腳連接信息請(qǐng)參考附錄。
2.4 數(shù)碼管電路
DE2-115配有八個(gè)七段數(shù)碼管。它們被分成兩組,每組四個(gè),用來作為數(shù)字顯示用。正如圖1-12所示,七段數(shù)碼管的每個(gè)引腳(共陽(yáng)模式)均連接到Cyclone IV E FPGA。FPGA輸出低電壓的時(shí)候,對(duì)應(yīng)的字碼段點(diǎn)亮,反之則熄滅。
每個(gè)數(shù)碼管的字段都從0到6依次編號(hào),對(duì)應(yīng)我們常用的數(shù)碼管7段的編號(hào)abcdefg。
圖1-12 數(shù)碼管電路示意圖
3 設(shè)計(jì)方案
3.1 設(shè)計(jì)任務(wù)
完成以下功能: 接入PS/2鼠標(biāo) ,按下 KEY0以使能鼠標(biāo)數(shù)據(jù)發(fā)送,按下KEY1清零位移數(shù)據(jù)顯示。當(dāng)鼠標(biāo)有移動(dòng)時(shí),可以觀察到七段數(shù)碼管顯示的數(shù)字跟隨變動(dòng)。當(dāng)按下左中右鍵時(shí),相應(yīng)的綠色LED 燈LED[2:0]會(huì)點(diǎn)亮。
3.2 系統(tǒng)框圖
整個(gè)系統(tǒng)的框圖如下所示,按鍵控制數(shù)碼管清零,鼠標(biāo)通過 PS/2接口4根
信號(hào)線向FPGA輸入信號(hào),F(xiàn)PGA識(shí)別信號(hào)并按程序點(diǎn)亮 LED燈并顯示數(shù)碼管。