加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

Verilog HDL基礎(chǔ)之:實(shí)例4 PS/2接口控制

2013/08/20
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

實(shí)例的內(nèi)容及目標(biāo)

1.實(shí)例的主要內(nèi)容

本實(shí)例通過Verilog編程實(shí)現(xiàn)在紅色颶風(fēng)II代Xilinx開發(fā)板上面實(shí)現(xiàn)對(duì)鍵盤、LCD、RS-232等接口或者器件進(jìn)行控制,將有鍵盤輸入的數(shù)據(jù)在LCD上面顯示出來,或者通過RS-232在PC機(jī)上的超級(jí)終端上顯示出來。

2.實(shí)例目標(biāo)

通過本實(shí)例,讀者應(yīng)達(dá)到下面的目標(biāo)。

  • 了解PS/2接口協(xié)議。
  • 掌握鍵盤的工作原理。
  • 編寫Verilog程序?qū)崿F(xiàn)通過開發(fā)板上PS/2接口讀取鍵盤的輸入信息。

?

原理簡(jiǎn)介

PS/2鍵盤履行一種雙向同步串行協(xié)議。換句話說每次數(shù)據(jù)線上發(fā)送一位數(shù)據(jù),并且每在時(shí)鐘線上發(fā)一個(gè)脈沖就被讀入,鍵盤可以發(fā)送數(shù)據(jù)到主機(jī),而主機(jī)也可以發(fā)送數(shù)據(jù)到設(shè)備。但主機(jī)總是在總線上有優(yōu)先權(quán),它可以在任何時(shí)候抑制來自于鍵盤的通信,只要把時(shí)鐘拉低即可。

本實(shí)例要編寫一個(gè)能實(shí)現(xiàn)PS/2端口功能的Verilog程序。首先我們要了解PS/2端口的結(jié)構(gòu)與管腳功能定義,如表1所示。

表1 ??????????????????????????????????????????????? PS/2端口結(jié)構(gòu)及管腳定義

端 口 結(jié) 構(gòu)

管 腳 定 義

1

數(shù)據(jù)

2

未實(shí)現(xiàn),保留

3

電源

4

電源,+5V

5

時(shí)鐘

插頭

插座

6

未實(shí)現(xiàn),保留

可以看到,PS/2里面只有一個(gè)數(shù)據(jù)口,若要分辨很多按鍵就需要一個(gè)高效率的分辨方法。鍵盤的處理器花費(fèi)很多的時(shí)間來掃描或監(jiān)視按鍵矩陣。如果它發(fā)現(xiàn)有鍵被按下,釋放或按住鍵盤,將發(fā)送掃描碼的信息包到計(jì)算機(jī)。

掃描碼有兩種不同的類型:“通碼”和“斷碼”。當(dāng)一個(gè)鍵被按下或按住就發(fā)送“通碼”,當(dāng)一個(gè)鍵被釋放就發(fā)送“斷碼”。每個(gè)按鍵被分配了惟一的“通碼”和“斷碼”。這樣,主機(jī)通過查找惟一的掃描碼就可以測(cè)定是哪個(gè)按鍵。

每個(gè)鍵一整套的通斷碼組成了掃描碼集,圖1中包含了鍵盤上面大部分按鍵的掃描碼。

當(dāng)按鍵被釋放以后,鍵盤回在掃描碼前面加上一個(gè)“F0”作為按鍵松開信號(hào)。同時(shí)有的按鍵是Extended(擴(kuò)展)鍵,此時(shí)要在它們的掃描碼前面加上一個(gè)“E0”作為開頭,這種按鍵松開以后將在掃描碼前面附加上“E0F0”。

下面我們來了解信號(hào)是如何從鍵盤輸入通過PS/2端口的數(shù)據(jù)線輸入的。首先鍵盤要檢測(cè)數(shù)據(jù)線和時(shí)鐘線是否都為高,只有它們都處在高的狀態(tài)才可以寫數(shù)據(jù)。從鍵盤發(fā)送到主機(jī)的數(shù)據(jù)在時(shí)鐘信號(hào)的下降沿(當(dāng)時(shí)鐘從高變到低)的時(shí)候被讀取。

鍵盤主要使用一種每幀包含11位的串行協(xié)議:第一位是起始位,始終為“0”;接下來是8位數(shù)據(jù)位,排列順序是由低到高;再后面是奇偶校驗(yàn)位;最后是結(jié)束位,始終為“1”。如圖2所示為該協(xié)議的時(shí)序圖。

圖1? 鍵盤掃描碼

?

圖2 鍵盤串行協(xié)議

?

實(shí)例詳解

此處僅給出主要的操作流程。

(1)啟動(dòng)ISE軟件。

(2)創(chuàng)建新工程。

(3)編寫鍵盤串行協(xié)議。

按照?qǐng)D2的時(shí)序編寫相應(yīng)的Verilog代碼,具體源代碼參見實(shí)例代碼。

(4)添加設(shè)計(jì)輸入。

將編寫好的接口協(xié)議加載至工程中,完成接口控制與系統(tǒng)的對(duì)接。

(5)設(shè)置器件及管腳約束。

按照開發(fā)板的說明進(jìn)行相關(guān)的設(shè)置。

(6)下載驗(yàn)證。

下載程序后,將鍵盤接至開發(fā)板上,通過開發(fā)板的LCD可以看到鍵盤輸入的字符。

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

華清遠(yuǎn)見(www.farsight.com.cn)是國(guó)內(nèi)領(lǐng)先嵌入師培訓(xùn)機(jī)構(gòu),2004年注冊(cè)于中國(guó)北京海淀高科技園區(qū),除北京總部外,上海、深圳、成都、南京、武漢、西安、廣州均有直營(yíng)分公司。華清遠(yuǎn)見除提供嵌入式相關(guān)的長(zhǎng)期就業(yè)培訓(xùn)、短期高端培訓(xùn)、師資培訓(xùn)及企業(yè)員工內(nèi)訓(xùn)等業(yè)務(wù)外,其下屬研發(fā)中心還負(fù)責(zé)嵌入式、Android及物聯(lián)網(wǎng)方向的教學(xué)實(shí)驗(yàn)平臺(tái)的研發(fā)及培訓(xùn)教材的出版,截止目前為止已公開出版70余本嵌入式/移動(dòng)開發(fā)/物聯(lián)網(wǎng)相關(guān)圖書。企業(yè)理念:專業(yè)始于專注 卓識(shí)源于遠(yuǎn)見。企業(yè)價(jià)值觀:做良心教育、做專業(yè)教育,更要做受人尊敬的職業(yè)教育。