PS2鍵盤接口設(shè)計要點_第1頁
PS2鍵盤接口設(shè)計要點_第2頁
PS2鍵盤接口設(shè)計要點_第3頁
PS2鍵盤接口設(shè)計要點_第4頁
PS2鍵盤接口設(shè)計要點_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

研究生課程設(shè)計報告課程名稱: 基于FPGA的現(xiàn)代數(shù)字系統(tǒng)設(shè)計設(shè)計名稱: PS/2鍵盤接口設(shè)計姓名: 學 號: 課程教師: 起止日期:2016,西南科技大學信息工程學院制設(shè)計任務書學生班級:學生姓名: 學號:設(shè)計名稱:PS/2鍵盤接口設(shè)計起止日期:2016,12,21至2016,12,28 課程教師:設(shè)計要求:(1)通過對PS/2鍵盤接口信號的定義,采用VerilogHDL模擬PS/2鍵盤的傳輸協(xié)議,并用2個數(shù)碼管顯示按鍵的通碼值。(2)完成系統(tǒng)的設(shè)計、仿真。(3)合理設(shè)計下載測試平臺,進行下載測試。設(shè)計題目設(shè)計題目設(shè)計目的和意義鍵盤是嵌入式系統(tǒng)的最重要的輸入設(shè)備之一,是實現(xiàn)人機交互的重要途徑。除了可以自行設(shè)計掃描式矩陣鍵盤之外,還可以選擇標準PS/2鍵盤實現(xiàn)人機交互。掃描式矩陣鍵盤雖然電路簡單,但不具有通用性,當需要使用較多的按鍵輸入時,則會占用較多的 I/O端口,在軟件上則要進行上電復位、按鍵掃描及通信的處理,而且還要加上按鍵的去抖動處理,增大了系統(tǒng)軟、硬件的開銷,開發(fā)周期較長。標準PS/2鍵盤由于接口通信協(xié)議簡單,在系統(tǒng)中占用軟硬件資源少,高可靠性,表達信息量大而得到了越來越廣泛的應用本設(shè)計根據(jù) PS/2鍵盤的通信時序,利用VerilogHDL硬件描述語言來設(shè)計PS/2接口鍵盤的輸入識別電路,并在

CPLD/FPG上實現(xiàn),避免了硬件電路的焊接與測試。 VerilogHDL語言滿足數(shù)字系統(tǒng)設(shè)計和綜合的所有要求,設(shè)計中充分運用VerilogHDL層次化與模塊化的思想,使整個設(shè)計過程簡單、靈活。同時運用EDA工具ISEDesignSuitelO.1驗證設(shè)計。經(jīng)過對系統(tǒng)進行編譯、仿真、測試,完成把鍵盤按鍵掃描碼轉(zhuǎn)的通碼的顯示,成功實現(xiàn) PS/2接口鍵盤的輸入識別及顯示的功能。本設(shè)計具有較好的通用性和可移植性,可取代自行設(shè)計掃描式矩陣鍵盤而用于許多嵌入式系統(tǒng)設(shè)計中。二、設(shè)計原理PS/2模塊1.1、SP/2鍵盤接口PS/2通信協(xié)議是一種雙向同步串行通迅協(xié)議。通迅的兩端通過CLOCK時鐘信號端)同步,并通過DATA數(shù)據(jù)端口)交換數(shù)據(jù)。任何一方如果想要抑制另外一方的通迅時,只需要把CLOCK拉到低電平。PS/2控制接口僅使用到兩條傳輸端口,一為頻率端口,另一則為數(shù)據(jù)端口如圖 2.1所示,且此傳輸埠必為三態(tài)并具有雙向特性。PS/2傳輸產(chǎn)品上,常見為鼠標與鍵盤,兩者的驅(qū)動原理均相同,僅掃描碼不同。以PS/2鍵盤為例進行說明Male(Plug)Female(Socket)6-pinMini-DIN(PS/2):Male(Plug)Female(Socket)-Data-NotImplemented-Ground-Vcc(+5V)-Clock-NotImplemented圖1PS/2端口腳位定義1.1數(shù)據(jù)格式表1數(shù)據(jù)幀格式1個起始位總是邏輯08個數(shù)據(jù)位(LSB低位在前1個奇偶校驗位奇校驗1個停止位總是邏輯11個應答位僅用在主機對設(shè)備的通訊中表中,如果數(shù)據(jù)位中1的個數(shù)為偶數(shù),校驗位就為1;如果數(shù)據(jù)位中1的個數(shù)為奇數(shù),校驗位就為0;總之,數(shù)據(jù)位中1的個數(shù)加上校驗位中1的個數(shù)總為奇數(shù),因此總進行奇校驗。PS/2設(shè)備的clock和data都是集電極開路的,平時都是高電平。當 PS/2設(shè)備等待發(fā)送數(shù)據(jù)時,它首先檢查clock是否為高。如果為低,則認為PC抑制了通訊,此時它緩沖數(shù)據(jù)直到獲得總線的控制權(quán)。如果clock為高電平,PS/2則開始向PC發(fā)送數(shù)據(jù)。一般都是由PS/2設(shè)備產(chǎn)生時鐘信號。發(fā)送按幀格式。數(shù)據(jù)位在clock為高電平時準備好,在clock下降沿被PC讀入。數(shù)據(jù)從鍵盤/鼠標發(fā)送到主機或從主機發(fā)送到鍵盤/鼠標,時鐘都是PS/2設(shè)備產(chǎn)生.主機對時鐘控制有優(yōu)先權(quán),即主機想發(fā)送控制指令給 PS/2設(shè)備時,可以拉低時鐘線至少100卩S,然后再下拉數(shù)據(jù)線,最后釋放時鐘線為高。 PS/2設(shè)備的時鐘線和數(shù)據(jù)線都是集電極開路的,容易實現(xiàn)拉低電平。1.3、數(shù)據(jù)發(fā)送時序從ps/2向PC機發(fā)送一個字節(jié)是可按照下面的步驟進行的,只要滿足它的時序就能實現(xiàn)功能。KHDAT]O] ]of[存叮 04[1>芻]06[U7| ]KRCIKJ2口|~^口口口|~4口口口|~|KRDAT |QIDU|1)1]1力|3|4]口廠ObI5FI1(b)圖2鍵盤接口時序(a)鍵盤發(fā)送時序;(b)鍵盤接收時序1.4、鍵盤的返回值

現(xiàn)在PC機使用的PS/2鍵盤都默認采用第二套掃描碼集,掃描碼有兩種不同的類型:通碼(makecode)和斷碼(breakcode)。當一個鍵被按下或持續(xù)按住時,鍵盤會將該鍵的通碼發(fā)送給主機;而當一個鍵被釋放時,鍵盤會將該鍵的斷碼發(fā)送給主機。第二套通碼都只有一個字節(jié)寬,但也有少數(shù)“擴展按鍵”的通碼是兩字節(jié)或四字節(jié)寬,這類碼的第一個字節(jié)總是OxEO。與通碼一樣,每個按鍵在釋放的時候,鍵盤就會發(fā)送一個斷碼。每個鍵也都有它自己的唯一的斷碼,斷碼與斷碼之間存在著必然的聯(lián)系。多數(shù)第二套斷碼有兩個字長,它們的第一個字節(jié)是OxFO,第二個字節(jié)就是對應按鍵的通碼。擴展按鍵的斷碼通常有三個字節(jié),前兩個字節(jié)OxEO和OxFO,最后一個字節(jié)是這個按鍵通碼的最后一個字節(jié)。 附錄列出了本次課程設(shè)計中所用鍵盤的掃描碼。2、數(shù)碼管顯示模塊數(shù)碼管是電子開發(fā)過程中常用的輸出顯示設(shè)備。 在實驗系統(tǒng)中使用的是兩個共陰極型七段數(shù)碼管。由于七段數(shù)碼管公共端連接到GN(共陰極型),當數(shù)碼管的中的那一個段被輸入高電平,則相應的這一段被點亮。反之則不亮。共陽極性的數(shù)碼管與之相么。其單個靜態(tài)數(shù)碼管如下圖3所示。圖3靜態(tài)七段數(shù)碼管三、詳細設(shè)計步驟總體設(shè)計模塊化處理使得結(jié)構(gòu)清晰,編程更加方便??傮w分為兩個部分,即 PS/2接收模塊和數(shù)碼管顯示模塊。,PS/2接收模塊接收模塊的主要作用是根據(jù)時鐘信號接收來自 PS/2鍵盤的數(shù)據(jù),判斷有沒有數(shù)據(jù)傳進來, 依次的把11位的數(shù)據(jù)接收進來,并提取出8位數(shù)據(jù),接收完畢所存并轉(zhuǎn)化高四位和低四位。,數(shù)碼管顯示模塊把接收模塊的數(shù)據(jù)用數(shù)碼管顯示模塊顯示,實現(xiàn)的功能就是分別顯示通碼的高四位和低四位。

程序的設(shè)計②雙擊ISEDesignSuitelO.1 軟件快捷圖標進入ISEDesignSuitelO.1集成開發(fā)環(huán)境,新建工程項目文件,并在該項目下新建 Verilog源程序文件,輸入程序代碼,建立模塊層次結(jié)構(gòu)圖,總的軟件設(shè)計流程如下:圖4程序流程圖

四、設(shè)計結(jié)果及分析1設(shè)計的結(jié)果1.1接收模塊為了在顯示模塊中用兩個數(shù)碼管顯示通碼, 接收模塊中分別把接收的數(shù)據(jù)轉(zhuǎn)換為低位和高四位分別保存在A[3:0],B[3:0]。為了方便舉例,在這里選擇就收 0鍵的通碼值0x45。IllHlWnsill」iiiGOJlL10HEll1n?0101[MMXQ】0O[Q0OTns|Z0ns1p?y10IllHlWnsill」iiiGOJlL10HEll1n?0101[MMXQ】0O[Q0OTns|Z0ns1p?y10HEll1nsn?MM0101XQ0OT01W2Qn-Eiii圖5接收模塊圖1.2顯示模塊在顯示模塊中把接收的0鍵通碼值0x45分為低四位和高四位用兩個數(shù)碼管顯示If-nJ.tp-d[7rstdkRIRIIASLaoiaoialaoiiooiithii如TilI |5■xm一乂0100If-nJ.tp-d[7rstdkRIRIIASLaoiaoialaoiiooiithii如TilI |5■xm一乂0100-7.二±竺101010100圖6顯示模塊圖1.3頂層模塊這里還是用0鍵通碼值0x45舉例,和各模塊對比,易于觀察。Name?llQOOQdOName?llQOOQdOiioaoo<]o円elkE曲卜rdata_p52g0nslL!■L5.1S3ue■niiiii卩?r「l」」1卩?” 」130HE. 140HE150HE.llllLllll|G0TLL『??[liocp?01M11OFFTlTTrlTXTrTr1nnnJnnnTT1~1Li~lJ1j圖7頂層模塊圖2,出現(xiàn)的問題和分析課程設(shè)計中碰到一些問題,碰到問題最多的是編程問題,通過查閱相關(guān)資料,如 PS/2鍵盤接口使用,對于什么是通碼,什么是斷碼有很大了解,由于自己對于程序不是很熟,所以過程中會出現(xiàn)許多小的錯誤。其中由于不能在always函數(shù)中使用wire變量而要使用reg,還有變量位寬忘記設(shè)置,導致測試程序無法通過得到正確的結(jié)果。導致程序一直調(diào)試不出來,這是我犯的知識還不熟的問題,需要在后期加強。由于自己沒有FPGA的板子,所以沒能把程序下載到板子上驗證,只有仿真圖,所以這是這次課程實驗的遺憾之一。五、體會本次課程設(shè)計成功實現(xiàn)了較為簡單的PS/2鍵盤按鍵輸入功能,并且顯示在數(shù)碼管上。此項技術(shù)在生活中已得到廣泛應用,我對它的學習使得我對通信協(xié)議有了進一步的理解, HDL項目設(shè)計的目的就是讓我們在理論學習的基礎(chǔ)上,通過完成一個涉及時序邏輯、組合邏輯、聲光輸出的,具有實用性、趣味性的小系統(tǒng)設(shè)計,使我們不但能夠?qū)⒄n堂上學到的理論知識與實際應用結(jié)合起來,而且能夠?qū)Ψ治?、解決實際的數(shù)字電路問題進一步加深認識,為今后能夠獨立進行某些數(shù)字應用系統(tǒng)的開發(fā)設(shè)計工作打下一定的基礎(chǔ)。課程設(shè)計完成了,在這個過程中我學到了很多東西。首先在遇到困難時學會自己想辦法解決,培養(yǎng)了自己的毅力和實踐動手能力。并且在項目中更深層次地了解 VerilogHDL這門課程,更加熟悉了它的編程方式以及編程語言。然后在查閱資料時,還了解了很多關(guān)于同步、異步通信的知識。通過編程,我發(fā)現(xiàn)HDL語言跟C語言、匯編語言在某些方面是相通的,所以無形之中我也對計算機語言有了更深的認識。收獲最大的是不管以后干什么,都要從大處著眼,小處著手,先將任務分成幾個部分,再一部分一部分的去完成,最終再完成總體的設(shè)計,不然直接設(shè)計一個整體的模型,不方便調(diào)試,出了錯也不知道是哪部分出了問題。在課設(shè)中我付出了很多,也收獲很多。我覺得本次課程設(shè)計無論對于學習還是自身的成長方面都有較大幫助。六、參考文獻劉桂華?基于FPGA的現(xiàn)代數(shù)字系統(tǒng)設(shè)計[M].西安:西安電子科技大學出版社,2012夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計教程(第二版)[M]?北京:北京航空航天大學出版社,2008.張延偉,楊金巖等.VerilogHDL程序設(shè)計實例詳解[M].北京:人民郵電出版社,2008.劉韜,樓興華.FPGA數(shù)字電子系統(tǒng)設(shè)計與開發(fā)實例導航[M].北京:人民郵電出版社,2005、所用鍵值表KEY通碼斷碼045F045116F01621EF01E3 [26F026425F025 「5 [2EF02E636F03673DF03D8]3EF03E :9 ]46F046A1CF01CB[32F032C21F021D23F023E亍24F024F2BF02B、源程序********************接收模塊程序*************************************2Q///////////////////////////////////////////////////////////////21moduleJieshou(rcldati_ps2fAfB);22Inputrst;23inputelk;24d*'ca_ps2;2Soutput[3:0JA;262728output[3:0]B;29reg[3:0]num;30reg[3:0]tempd.atal;31reg[3:0]terrjpda^a2;32reg-[3:CJ]A;33reg[3:Q]B;34always@ elkorne^ed^erm匸}3Sbegin36if(JMS匸}37be?in38num<■4*dO;39匸eirpda匸己二<=41d0;弓0remp_datal<= *dO;41end42elseif(Ielk)43begin44ease(num)454fdO:46begrin47if(dati_ps2"?0)48nuiu<—num+1■bl;的else50nmn<=0;51end52勺Pl:53begin54num<=num+1*bl;55tempdatal[0]<=dataps2;56end57總,d2:5Sbegin59num<=num+1*bl;60Eempd^ual[1]<=dauapa2;61end624'ci3:€3begin已num<=num+11bl;65tempdatal[2^<■dataps2;66end674*d4:68begin69num<=num+l'bl;70tertpdatal(3] dataps2;71乜“且72q'd5:73begin74num<=num+1?bl;75tempdata2(0]<—dataps2;76end774rd€:78begin30SIB283845556873SS990919293949596979S9910010110210310410510610710B109110111112113114US116117na119120121num<=nLiiii+1'bl;tertp [1] <?end.1tertp [1] <?end.1d.7:beginnum<■num+1?bl:t [2]end.■d.3:beginnum<-mam+1?b:l:ternp_iiata2[3]<=endbeginnum<-nujn+1?bl:end“eno:beginnum<-£'dO;enddefault:;endcaseendenddataps2:datips2;dataps2;always&(posedgeelkornegedgerst)beginif(J工耳匸)fceginA<-^"dO;E<=4V0;endelaeif(nmn=41dlD}beginA<=匸eicpdatal;B<=teirp_data2;endendendir.odule

21|ncd\ilexianshi(rsuFelk,A,Brc,d.);22inpucrat;23Inp^velk;24inp^Lit[3:0]Ar25inp^it(3:□]BaF26outputc;27outputd;28reg[7:0]c;253031reg[7:0]d;32ilways@(negedgeelkornegedg皀rst)33begin3^if(IT5Z}3Sbegin36c<-S?dOOOOOOOO;37end33elseif[Iclic) "檢測到uik的T7降沿39lc^gln40case(A)414*i>O0OO:c<=fl*b!1000000;////Q弓?i>0001:j<=3?blllllOOl;//I434'b0010^3<=8^IDIQOIQO;//244弓?boon:(=<-S*bl0110000;//3454*i>0100i<z<=a^10011001;//446弓70101:=<=8't>10010010;//547嗎?b0110:c<=BTbl00OQ010; //648弓?bOlll:(=<-8'blllllOOO;//?194^1000;0<=8lblOOOOOOO;//S50ii1t>1001:C<=3'fclOOlOOOO;//9S14'bioio:c<=a'biooaiooo;//a524^1011:0<=S'blOOOOOll;//!;53'biiaa:^-a^ioiooiiij/Zc544'bllOlc<=8'bl010000L;//d554^1110c<=8'bl0000100;//e56l^bllllc<=a'biooonio;//F57defaultc53'bOOOOOOOO;5Sendcase59endSOend61always@(negedgeclfearnegedgexsZ}62lesgin€3if(1TSt}64begin65d<=e?doooooaoo;€6end?7elseif(1elk) 〃檢測到Ck的下眸沿€Bbegin69case(B}70"BOOQOd<-e^noooooo;////a71'bOOOld<=S^blllllOOl;//I724'bOOlOd<=S'blOiaO10O;//273^^bOOlld<-3Tbl0110000;//3744?bOlDOdV=S'tlOOllOOLj//^7S4'bOiaid<=8^10010010;//5761Tb0ll0d<=BTblOOO0OlO;/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論