




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
研究生課程設(shè)計(jì)報(bào)告課程名稱: 基于FPGA的現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)設(shè)計(jì)名稱: PS/2鍵盤接口設(shè)計(jì)姓名: 學(xué) 號(hào): 課程教師: 起止日期:2016,西南科技大學(xué)信息工程學(xué)院制設(shè)計(jì)任務(wù)書學(xué)生班級(jí):學(xué)生姓名: 學(xué)號(hào):設(shè)計(jì)名稱:PS/2鍵盤接口設(shè)計(jì)起止日期:2016,12,21至2016,12,28 課程教師:設(shè)計(jì)要求:(1)通過對(duì)PS/2鍵盤接口信號(hào)的定義,采用VerilogHDL模擬PS/2鍵盤的傳輸協(xié)議,并用2個(gè)數(shù)碼管顯示按鍵的通碼值。(2)完成系統(tǒng)的設(shè)計(jì)、仿真。(3)合理設(shè)計(jì)下載測(cè)試平臺(tái),進(jìn)行下載測(cè)試。設(shè)計(jì)題目設(shè)計(jì)題目設(shè)計(jì)目的和意義鍵盤是嵌入式系統(tǒng)的最重要的輸入設(shè)備之一,是實(shí)現(xiàn)人機(jī)交互的重要途徑。除了可以自行設(shè)計(jì)掃描式矩陣鍵盤之外,還可以選擇標(biāo)準(zhǔn)PS/2鍵盤實(shí)現(xiàn)人機(jī)交互。掃描式矩陣鍵盤雖然電路簡(jiǎn)單,但不具有通用性,當(dāng)需要使用較多的按鍵輸入時(shí),則會(huì)占用較多的 I/O端口,在軟件上則要進(jìn)行上電復(fù)位、按鍵掃描及通信的處理,而且還要加上按鍵的去抖動(dòng)處理,增大了系統(tǒng)軟、硬件的開銷,開發(fā)周期較長(zhǎng)。標(biāo)準(zhǔn)PS/2鍵盤由于接口通信協(xié)議簡(jiǎn)單,在系統(tǒng)中占用軟硬件資源少,高可靠性,表達(dá)信息量大而得到了越來越廣泛的應(yīng)用本設(shè)計(jì)根據(jù) PS/2鍵盤的通信時(shí)序,利用VerilogHDL硬件描述語言來設(shè)計(jì)PS/2接口鍵盤的輸入識(shí)別電路,并在
CPLD/FPG上實(shí)現(xiàn),避免了硬件電路的焊接與測(cè)試。 VerilogHDL語言滿足數(shù)字系統(tǒng)設(shè)計(jì)和綜合的所有要求,設(shè)計(jì)中充分運(yùn)用VerilogHDL層次化與模塊化的思想,使整個(gè)設(shè)計(jì)過程簡(jiǎn)單、靈活。同時(shí)運(yùn)用EDA工具ISEDesignSuitelO.1驗(yàn)證設(shè)計(jì)。經(jīng)過對(duì)系統(tǒng)進(jìn)行編譯、仿真、測(cè)試,完成把鍵盤按鍵掃描碼轉(zhuǎn)的通碼的顯示,成功實(shí)現(xiàn) PS/2接口鍵盤的輸入識(shí)別及顯示的功能。本設(shè)計(jì)具有較好的通用性和可移植性,可取代自行設(shè)計(jì)掃描式矩陣鍵盤而用于許多嵌入式系統(tǒng)設(shè)計(jì)中。二、設(shè)計(jì)原理PS/2模塊1.1、SP/2鍵盤接口PS/2通信協(xié)議是一種雙向同步串行通迅協(xié)議。通迅的兩端通過CLOCK時(shí)鐘信號(hào)端)同步,并通過DATA數(shù)據(jù)端口)交換數(shù)據(jù)。任何一方如果想要抑制另外一方的通迅時(shí),只需要把CLOCK拉到低電平。PS/2控制接口僅使用到兩條傳輸端口,一為頻率端口,另一則為數(shù)據(jù)端口如圖 2.1所示,且此傳輸埠必為三態(tài)并具有雙向特性。PS/2傳輸產(chǎn)品上,常見為鼠標(biāo)與鍵盤,兩者的驅(qū)動(dòng)原理均相同,僅掃描碼不同。以PS/2鍵盤為例進(jìn)行說明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個(gè)起始位總是邏輯08個(gè)數(shù)據(jù)位(LSB低位在前1個(gè)奇偶校驗(yàn)位奇校驗(yàn)1個(gè)停止位總是邏輯11個(gè)應(yīng)答位僅用在主機(jī)對(duì)設(shè)備的通訊中表中,如果數(shù)據(jù)位中1的個(gè)數(shù)為偶數(shù),校驗(yàn)位就為1;如果數(shù)據(jù)位中1的個(gè)數(shù)為奇數(shù),校驗(yàn)位就為0;總之,數(shù)據(jù)位中1的個(gè)數(shù)加上校驗(yàn)位中1的個(gè)數(shù)總為奇數(shù),因此總進(jìn)行奇校驗(yàn)。PS/2設(shè)備的clock和data都是集電極開路的,平時(shí)都是高電平。當(dāng) PS/2設(shè)備等待發(fā)送數(shù)據(jù)時(shí),它首先檢查clock是否為高。如果為低,則認(rèn)為PC抑制了通訊,此時(shí)它緩沖數(shù)據(jù)直到獲得總線的控制權(quán)。如果clock為高電平,PS/2則開始向PC發(fā)送數(shù)據(jù)。一般都是由PS/2設(shè)備產(chǎn)生時(shí)鐘信號(hào)。發(fā)送按幀格式。數(shù)據(jù)位在clock為高電平時(shí)準(zhǔn)備好,在clock下降沿被PC讀入。數(shù)據(jù)從鍵盤/鼠標(biāo)發(fā)送到主機(jī)或從主機(jī)發(fā)送到鍵盤/鼠標(biāo),時(shí)鐘都是PS/2設(shè)備產(chǎn)生.主機(jī)對(duì)時(shí)鐘控制有優(yōu)先權(quán),即主機(jī)想發(fā)送控制指令給 PS/2設(shè)備時(shí),可以拉低時(shí)鐘線至少100卩S,然后再下拉數(shù)據(jù)線,最后釋放時(shí)鐘線為高。 PS/2設(shè)備的時(shí)鐘線和數(shù)據(jù)線都是集電極開路的,容易實(shí)現(xiàn)拉低電平。1.3、數(shù)據(jù)發(fā)送時(shí)序從ps/2向PC機(jī)發(fā)送一個(gè)字節(jié)是可按照下面的步驟進(jìn)行的,只要滿足它的時(shí)序就能實(shí)現(xiàn)功能。KHDAT]O] ]of[存叮 04[1>芻]06[U7| ]KRCIKJ2口|~^口口口|~4口口口|~|KRDAT |QIDU|1)1]1力|3|4]口廠ObI5FI1(b)圖2鍵盤接口時(shí)序(a)鍵盤發(fā)送時(shí)序;(b)鍵盤接收時(shí)序1.4、鍵盤的返回值
現(xiàn)在PC機(jī)使用的PS/2鍵盤都默認(rèn)采用第二套掃描碼集,掃描碼有兩種不同的類型:通碼(makecode)和斷碼(breakcode)。當(dāng)一個(gè)鍵被按下或持續(xù)按住時(shí),鍵盤會(huì)將該鍵的通碼發(fā)送給主機(jī);而當(dāng)一個(gè)鍵被釋放時(shí),鍵盤會(huì)將該鍵的斷碼發(fā)送給主機(jī)。第二套通碼都只有一個(gè)字節(jié)寬,但也有少數(shù)“擴(kuò)展按鍵”的通碼是兩字節(jié)或四字節(jié)寬,這類碼的第一個(gè)字節(jié)總是OxEO。與通碼一樣,每個(gè)按鍵在釋放的時(shí)候,鍵盤就會(huì)發(fā)送一個(gè)斷碼。每個(gè)鍵也都有它自己的唯一的斷碼,斷碼與斷碼之間存在著必然的聯(lián)系。多數(shù)第二套斷碼有兩個(gè)字長(zhǎng),它們的第一個(gè)字節(jié)是OxFO,第二個(gè)字節(jié)就是對(duì)應(yīng)按鍵的通碼。擴(kuò)展按鍵的斷碼通常有三個(gè)字節(jié),前兩個(gè)字節(jié)OxEO和OxFO,最后一個(gè)字節(jié)是這個(gè)按鍵通碼的最后一個(gè)字節(jié)。 附錄列出了本次課程設(shè)計(jì)中所用鍵盤的掃描碼。2、數(shù)碼管顯示模塊數(shù)碼管是電子開發(fā)過程中常用的輸出顯示設(shè)備。 在實(shí)驗(yàn)系統(tǒng)中使用的是兩個(gè)共陰極型七段數(shù)碼管。由于七段數(shù)碼管公共端連接到GN(共陰極型),當(dāng)數(shù)碼管的中的那一個(gè)段被輸入高電平,則相應(yīng)的這一段被點(diǎn)亮。反之則不亮。共陽極性的數(shù)碼管與之相么。其單個(gè)靜態(tài)數(shù)碼管如下圖3所示。圖3靜態(tài)七段數(shù)碼管三、詳細(xì)設(shè)計(jì)步驟總體設(shè)計(jì)模塊化處理使得結(jié)構(gòu)清晰,編程更加方便??傮w分為兩個(gè)部分,即 PS/2接收模塊和數(shù)碼管顯示模塊。,PS/2接收模塊接收模塊的主要作用是根據(jù)時(shí)鐘信號(hào)接收來自 PS/2鍵盤的數(shù)據(jù),判斷有沒有數(shù)據(jù)傳進(jìn)來, 依次的把11位的數(shù)據(jù)接收進(jìn)來,并提取出8位數(shù)據(jù),接收完畢所存并轉(zhuǎn)化高四位和低四位。,數(shù)碼管顯示模塊把接收模塊的數(shù)據(jù)用數(shù)碼管顯示模塊顯示,實(shí)現(xiàn)的功能就是分別顯示通碼的高四位和低四位。
程序的設(shè)計(jì)②雙擊ISEDesignSuitelO.1 軟件快捷圖標(biāo)進(jìn)入ISEDesignSuitelO.1集成開發(fā)環(huán)境,新建工程項(xiàng)目文件,并在該項(xiàng)目下新建 Verilog源程序文件,輸入程序代碼,建立模塊層次結(jié)構(gòu)圖,總的軟件設(shè)計(jì)流程如下:圖4程序流程圖
四、設(shè)計(jì)結(jié)果及分析1設(shè)計(jì)的結(jié)果1.1接收模塊為了在顯示模塊中用兩個(gè)數(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分為低四位和高四位用兩個(gè)數(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舉例,和各模塊對(duì)比,易于觀察。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è)計(jì)中碰到一些問題,碰到問題最多的是編程問題,通過查閱相關(guān)資料,如 PS/2鍵盤接口使用,對(duì)于什么是通碼,什么是斷碼有很大了解,由于自己對(duì)于程序不是很熟,所以過程中會(huì)出現(xiàn)許多小的錯(cuò)誤。其中由于不能在always函數(shù)中使用wire變量而要使用reg,還有變量位寬忘記設(shè)置,導(dǎo)致測(cè)試程序無法通過得到正確的結(jié)果。導(dǎo)致程序一直調(diào)試不出來,這是我犯的知識(shí)還不熟的問題,需要在后期加強(qiáng)。由于自己沒有FPGA的板子,所以沒能把程序下載到板子上驗(yàn)證,只有仿真圖,所以這是這次課程實(shí)驗(yàn)的遺憾之一。五、體會(huì)本次課程設(shè)計(jì)成功實(shí)現(xiàn)了較為簡(jiǎn)單的PS/2鍵盤按鍵輸入功能,并且顯示在數(shù)碼管上。此項(xiàng)技術(shù)在生活中已得到廣泛應(yīng)用,我對(duì)它的學(xué)習(xí)使得我對(duì)通信協(xié)議有了進(jìn)一步的理解, HDL項(xiàng)目設(shè)計(jì)的目的就是讓我們?cè)诶碚搶W(xué)習(xí)的基礎(chǔ)上,通過完成一個(gè)涉及時(shí)序邏輯、組合邏輯、聲光輸出的,具有實(shí)用性、趣味性的小系統(tǒng)設(shè)計(jì),使我們不但能夠?qū)⒄n堂上學(xué)到的理論知識(shí)與實(shí)際應(yīng)用結(jié)合起來,而且能夠?qū)Ψ治?、解決實(shí)際的數(shù)字電路問題進(jìn)一步加深認(rèn)識(shí),為今后能夠獨(dú)立進(jìn)行某些數(shù)字應(yīng)用系統(tǒng)的開發(fā)設(shè)計(jì)工作打下一定的基礎(chǔ)。課程設(shè)計(jì)完成了,在這個(gè)過程中我學(xué)到了很多東西。首先在遇到困難時(shí)學(xué)會(huì)自己想辦法解決,培養(yǎng)了自己的毅力和實(shí)踐動(dòng)手能力。并且在項(xiàng)目中更深層次地了解 VerilogHDL這門課程,更加熟悉了它的編程方式以及編程語言。然后在查閱資料時(shí),還了解了很多關(guān)于同步、異步通信的知識(shí)。通過編程,我發(fā)現(xiàn)HDL語言跟C語言、匯編語言在某些方面是相通的,所以無形之中我也對(duì)計(jì)算機(jī)語言有了更深的認(rèn)識(shí)。收獲最大的是不管以后干什么,都要從大處著眼,小處著手,先將任務(wù)分成幾個(gè)部分,再一部分一部分的去完成,最終再完成總體的設(shè)計(jì),不然直接設(shè)計(jì)一個(gè)整體的模型,不方便調(diào)試,出了錯(cuò)也不知道是哪部分出了問題。在課設(shè)中我付出了很多,也收獲很多。我覺得本次課程設(shè)計(jì)無論對(duì)于學(xué)習(xí)還是自身的成長(zhǎng)方面都有較大幫助。六、參考文獻(xiàn)劉桂華?基于FPGA的現(xiàn)代數(shù)字系統(tǒng)設(shè)計(jì)[M].西安:西安電子科技大學(xué)出版社,2012夏宇聞.Verilog數(shù)字系統(tǒng)設(shè)計(jì)教程(第二版)[M]?北京:北京航空航天大學(xué)出版社,2008.張延偉,楊金巖等.VerilogHDL程序設(shè)計(jì)實(shí)例詳解[M].北京:人民郵電出版社,2008.劉韜,樓興華.FPGA數(shù)字電子系統(tǒng)設(shè)計(jì)與開發(fā)實(shí)例導(dǎo)航[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) "檢測(cè)到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) 〃檢測(cè)到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等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 北京市通州區(qū)2024-2025學(xué)年高二上學(xué)期期末考試生物學(xué)試題(含答案)
- 產(chǎn)品使用體驗(yàn)數(shù)據(jù)收集表
- 農(nóng)民合作社互助保險(xiǎn)協(xié)議
- 農(nóng)村新型農(nóng)業(yè)組織發(fā)展合作協(xié)議
- 鄉(xiāng)村有機(jī)果園經(jīng)營(yíng)管理協(xié)議
- 物資采購(gòu)框架協(xié)議
- 人力資源派遣與服務(wù)外包合同
- 生產(chǎn)物料采購(gòu)周期表
- 西游記中的團(tuán)隊(duì)精神與道德啟示評(píng)析
- 《星系與宇宙探索概述:九年級(jí)地理教學(xué)教案》
- 物流園區(qū)倉(cāng)儲(chǔ)管理手冊(cè)
- 職業(yè)技術(shù)學(xué)院《口腔頜面外科學(xué)》課程標(biāo)準(zhǔn)
- 高中英語北師大版(2019)必修第二冊(cè)Unit 5 Humans and Nature Lesson 1 A sea story 教學(xué)設(shè)計(jì)
- 港口液體?;费b卸管理人員理論考試題及答案
- TSG ZF001-2006《安全閥安全技術(shù)監(jiān)察規(guī)程》
- 13《少年中國(guó)說》課件
- 2024版小學(xué)英語新課程標(biāo)準(zhǔn)測(cè)試題及答案
- 《學(xué)前兒童藝術(shù)教育活動(dòng)指導(dǎo)》第7章
- 2025年駕駛證資格考試科目一必刷題庫(kù)及答案(共300題)
- 南京醫(yī)科大學(xué)科技成果轉(zhuǎn)移轉(zhuǎn)化管理辦法-資產(chǎn)管理處
- AQ 1110-2014 煤礦帶式輸送機(jī)用盤式制動(dòng)裝置安全檢驗(yàn)規(guī)范(正式版)
評(píng)論
0/150
提交評(píng)論