




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
基于89C51的計(jì)算機(jī)可鎖定加密鍵盤設(shè)計(jì)
摘要:介紹PC鍵盤和鍵盤接口的PS/2通信協(xié)議,以及用89C51實(shí)現(xiàn)可鎖定鍵盤的軟件和硬件設(shè)計(jì)方法。具有安全可靠、容錯(cuò)能力強(qiáng)、可以直接采用標(biāo)準(zhǔn)鍵盤進(jìn)行改裝、便于實(shí)現(xiàn)等優(yōu)點(diǎn),并保留標(biāo)準(zhǔn)鍵盤的全部功能。
關(guān)鍵詞:PS/289C51C51鍵盤
引言
在智能儀器、自動(dòng)控制等領(lǐng)域,已大量使用嵌入式PC,如Advantech公司的PC/104、AMD公司的DIMM-PC等。為適應(yīng)開(kāi)放式、模塊化的要求,嵌入式PC具有標(biāo)準(zhǔn)的PC接口,如VGA顯示器控制接口、以太網(wǎng)接口、RS232接口、PC/AT鍵盤接口等。所以,可以用標(biāo)準(zhǔn)的PC鍵盤對(duì)嵌入式PC進(jìn)行操作與控制。鍵盤在輸入指令之后,可能很長(zhǎng)一段時(shí)間不用。為計(jì)算機(jī)安全和防止誤觸發(fā),需要將鍵盤鎖定,還要對(duì)某些鍵采取屏蔽措施,但是PC標(biāo)準(zhǔn)鍵盤不能滿足這些要求。本文介紹一種用89C51設(shè)計(jì)實(shí)現(xiàn)的可鎖定加密PC/AT鍵盤。
1鍵盤功能及工作原理
PC鍵盤功能主要有按鍵識(shí)別、去抖、重鍵處理、發(fā)送掃描碼、自動(dòng)重發(fā)、接收鍵盤命令、處理命令等。鍵盤有編碼鍵盤和非編碼鍵盤。編碼鍵盤程序設(shè)計(jì)簡(jiǎn)單,但硬件電路復(fù)雜,價(jià)格較高;非編碼鍵盤用軟件來(lái)實(shí)現(xiàn)識(shí)別鍵、編碼轉(zhuǎn)換、去抖等功能,硬件電路簡(jiǎn)單,價(jià)格便宜?,F(xiàn)代微機(jī)系統(tǒng)中廣泛采用非編碼鍵盤。PC鍵盤多采用18行×8列的二維矩陣行列結(jié)構(gòu)。采用行掃描法識(shí)別按下的按鍵。
2PS/2協(xié)議
PS/2協(xié)議是外設(shè)與主機(jī)之間通信的一種同步雙向串行協(xié)議。在該協(xié)議中主機(jī)擁有較高的優(yōu)先級(jí),在一定條件下可以終止外設(shè)正在進(jìn)行的發(fā)送過(guò)程。PS/2協(xié)議采用的傳送數(shù)據(jù)幀的格式為:1位起始位、8位數(shù)據(jù)位、1位奇偶校驗(yàn)位、1位停止位。數(shù)據(jù)發(fā)送時(shí)低位在前,高位在后。外設(shè)每收到主機(jī)發(fā)來(lái)的1幀數(shù)據(jù),都要緊隨該幀的停止位發(fā)送一個(gè)握手位ACK應(yīng)答主機(jī)。然后,外設(shè)還要發(fā)1幀應(yīng)答數(shù)據(jù),表示外設(shè)已經(jīng)完整地接收到了主機(jī)的命令;而主機(jī)則不需發(fā)送握手位,也不需要發(fā)送應(yīng)答幀。
鍵盤到PC鍵盤接口的通信
當(dāng)時(shí)鐘線和數(shù)據(jù)線均為高電平時(shí),允許鍵盤發(fā)送數(shù)據(jù),系統(tǒng)將接收數(shù)據(jù);當(dāng)時(shí)鐘線被拉為低電平時(shí),表明系統(tǒng)禁止數(shù)據(jù)傳輸。圖1給出了發(fā)送時(shí)序,包含1個(gè)低電平觸發(fā)的起始位、8位數(shù)據(jù)位、1個(gè)奇校驗(yàn)位和1個(gè)高電平的結(jié)束位。
PC系統(tǒng)到鍵盤的通信協(xié)議
若時(shí)鐘線出現(xiàn)高電平,數(shù)據(jù)線出現(xiàn)低電平,表明系統(tǒng)請(qǐng)求發(fā)送,鍵盤準(zhǔn)備產(chǎn)生同步時(shí)鐘脈沖串,并接收數(shù)據(jù)。包含了1個(gè)低電平觸發(fā)的起始位、8位數(shù)據(jù)位、1個(gè)奇校驗(yàn)位、1個(gè)應(yīng)答位、1個(gè)高電平的結(jié)束位。圖2為時(shí)序圖。
(1)鍵盤命令及執(zhí)行過(guò)程
①FFH:復(fù)位鍵盤。系統(tǒng)通過(guò)此軟件復(fù)位命令使鍵盤進(jìn)入程序復(fù)位和內(nèi)部自測(cè)試,稱為基本保證測(cè)試。復(fù)位鍵盤的過(guò)程
a.鍵盤收到FFH后立即回送ACK作答;
b.鍵盤接口收到ACK后,將鍵盤時(shí)鐘和數(shù)據(jù)線置為高電平;
c.鍵盤檢測(cè)到此狀態(tài)后開(kāi)始BAT操作;
d.如果BAT正確完成,鍵盤發(fā)送AAH以表示結(jié)束,
否則以FDH表示診斷有誤。
②FEH:重新發(fā)送。當(dāng)系統(tǒng)檢測(cè)到從鍵盤送來(lái)的任何傳輸錯(cuò)誤時(shí),它便向鍵盤發(fā)送FEH命令。鍵盤接收到此命令后,將重新送出原來(lái)的內(nèi)容。
③FDH~F7H:空操作。
④F6H:設(shè)置缺省值。此命令使鍵盤所有條件復(fù)位到電源接通時(shí)的缺省狀態(tài),鍵盤繼續(xù)掃描。
⑤F5H:設(shè)置缺省值和停止鍵盤。此命令使鍵盤所有條件復(fù)位到電源接通時(shí)的缺省狀態(tài),并停止鍵盤掃描,等待下一個(gè)鍵盤命令。
⑥F4H:?jiǎn)?dòng)鍵盤。鍵盤接收到此命令后,用ACK作答,清除輸出緩沖器,并啟動(dòng)鍵盤開(kāi)始掃描。
⑦F3H:設(shè)置拍發(fā)速率和延時(shí)參數(shù)。每當(dāng)按下任一鍵時(shí),鍵盤以拍發(fā)速率連續(xù)送出鍵的接通碼,直到鍵被釋放為止。延時(shí)參數(shù)是指按下一鍵后,鍵盤輸出的響應(yīng)時(shí)間。
系統(tǒng)缺省設(shè)置:拍發(fā)速率=10個(gè)/s±20%,延時(shí)=500ms±20%。
當(dāng)要改變?cè)O(shè)置時(shí)可以使用F3H命令,并后跟一個(gè)字節(jié)的參數(shù)。參數(shù)定義如表1所列。
表1
D7D6D5D4D3D2D1D0
0CBA
計(jì)算拍發(fā)速率和響應(yīng)延時(shí)的公式
拍發(fā)速率=1/[×2B×]
響應(yīng)延時(shí)=×250
注:缺省的延時(shí)參數(shù)值為2CH。
此命令的執(zhí)行過(guò)程
a.鍵盤收到F3H命令后,用FAH予以響應(yīng),并停止
掃描和等待隨后的參數(shù);
b.鍵盤若收到隨后的設(shè)置參數(shù),用另一個(gè)ACK響
應(yīng),并按其參數(shù)設(shè)置新的拍發(fā)速率和響應(yīng)延時(shí),
之后重新開(kāi)始掃描;
c.鍵盤若收到FAH命令,但無(wú)隨后的設(shè)置參數(shù),則
鍵盤結(jié)束命令設(shè)置,并保持原來(lái)的拍發(fā)速率和響
應(yīng)延時(shí),停止掃描。
⑧F2H,F(xiàn)1,EFH:保留未用。
⑨F0H:設(shè)置鍵盤掃描碼命令。此命令用于設(shè)置鍵盤的掃描碼,后跟參數(shù)指定三種掃描碼的哪一種。鍵盤復(fù)位時(shí),默認(rèn)掃描碼是第二種。
⑩EEH:回送命令。此命令用于輔助診斷,要求鍵盤接收到EEH時(shí)也要回送EEH予以響應(yīng)。若鍵盤原來(lái)是開(kāi)放的,則繼續(xù)掃描。
EDH:置位/復(fù)位LED指示器。鍵盤右上角有三個(gè)LED指示器,分別反映Caps、Num和Scroll三個(gè)鍵的鎖定情況。參數(shù)字節(jié)如表2所列。
表2
D7D3D2D1D0
保留1=激勵(lì)CapsLED1=激勵(lì)NumLED1=激勵(lì)ScrollLED
此命令執(zhí)行過(guò)程與F3H相似。若命令后跟參數(shù),則按參數(shù)設(shè)定LED狀態(tài)并繼續(xù)掃描。若僅有命令無(wú)參數(shù),則不改變LED原狀態(tài),并停止掃描。
(2)鍵盤響應(yīng)
鍵盤在下列四種情況下都會(huì)向鍵盤接口發(fā)送數(shù)據(jù)。
①按下任一鍵,鍵盤以拍發(fā)速率向接口發(fā)送鍵盤接通掃描碼。
②釋放所按下的鍵,鍵盤發(fā)送斷開(kāi)掃描碼。
③系統(tǒng)向鍵盤發(fā)送鍵盤命令后,鍵盤回送應(yīng)答。
④當(dāng)用戶按鍵速度超出鍵盤所能容納的最大鍵個(gè)數(shù)時(shí),鍵盤做出響應(yīng)。
后三種情況稱為鍵盤響應(yīng)。響應(yīng)字節(jié)有7個(gè),定義如下。
①FEH:重新發(fā)送響應(yīng)。當(dāng)鍵盤收到一個(gè)無(wú)效的鍵盤命令,或者檢測(cè)到奇偶錯(cuò)的鍵盤命令時(shí),鍵盤回送響應(yīng)字節(jié)為FEH,要求系統(tǒng)重發(fā)鍵盤命令。
②FAH:正常應(yīng)答。對(duì)任何一個(gè)有效的鍵盤命令,鍵盤回送FAH予以響應(yīng)。
③00H:超限應(yīng)答。當(dāng)用戶按鍵速度超出鍵盤所能容納的最大鍵符個(gè)數(shù)時(shí),鍵盤發(fā)送00H。
④FDH:診斷故障應(yīng)答。鍵盤接受軟件復(fù)位命令,執(zhí)行自測(cè)試過(guò)程中。若檢測(cè)到故障,則以FDH應(yīng)答。此時(shí),鍵盤停止掃描并等待下一個(gè)鍵盤命令。
⑤AAH:診斷正常應(yīng)答。鍵盤在軟件復(fù)位過(guò)程中,正常完成BAT測(cè)試,以AAH應(yīng)答。
⑥FEH:回響命令的應(yīng)答,對(duì)鍵盤FEH命令的應(yīng)答。
⑦F0H:斷開(kāi)掃描碼前綴,鍵盤對(duì)鍵符按下后釋放的應(yīng)答,第一個(gè)字節(jié)為F0H,第二個(gè)字節(jié)為接通掃描碼。
3硬件設(shè)計(jì)
PC系列鍵盤采用18行×8列的矩陣行列結(jié)構(gòu)。89C51單片機(jī)有4個(gè)8位I/O端口,因此可以采用P0、P2口再加上P3口的2個(gè)作為行掃描線。P1口作為列輸入線。采用、作為數(shù)據(jù)線和時(shí)鐘線與PC系統(tǒng)進(jìn)行通信,用、、控制鍵盤上的3個(gè)指示燈。硬件原理如圖3所示。
鍵盤與計(jì)算機(jī)通過(guò)一個(gè)五芯插座相接,4個(gè)有效引腳的定義分別是電源、地、串行時(shí)鐘線、串行數(shù)據(jù)線。
4軟件設(shè)計(jì)
①消抖及重鍵處理:通過(guò)軟件上延時(shí)程序來(lái)消除抖動(dòng);采用后按鍵優(yōu)先處理,即多鍵同時(shí)按下時(shí),只重復(fù)發(fā)送最后按下鍵的掃描碼。
②程序包括鍵盤掃描子程序、發(fā)送鍵碼子程序、發(fā)送數(shù)據(jù)子程序、接收命令子程序、定時(shí)器1中斷服務(wù)程序、主程序等。鍵盤掃描子程序用于掃描鍵狀態(tài),將被按鍵的位置號(hào)存入緩沖器中;發(fā)送鍵碼子程序用于將緩沖區(qū)鍵的接通碼或斷開(kāi)碼發(fā)送給計(jì)算機(jī)鍵盤接口或者存在鍵盤密碼緩沖區(qū)中;發(fā)送數(shù)據(jù)子程序用于將數(shù)據(jù)發(fā)給計(jì)算機(jī)鍵盤接口;接收命令子程序用于接收計(jì)算機(jī)鍵盤接口發(fā)來(lái)的鍵盤命令;定時(shí)器1中斷服務(wù)子程序用于給程序中的延時(shí)提供標(biāo)準(zhǔn)時(shí)鐘,并具有軟件看門狗功能
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合同范例廣聯(lián)達(dá)
- 寫勞動(dòng)合同范本
- 北京自住房合同范本
- 合同范本游樂(lè)場(chǎng)
- 合同范本修改格式
- 合作廠房修建合同范本
- 2025年IC卡鑒別機(jī)項(xiàng)目發(fā)展計(jì)劃
- 單位分工合同范本
- 創(chuàng)業(yè)培訓(xùn)合同范本
- 基地種植合作合同范本
- 2024年全國(guó)國(guó)家版圖知識(shí)競(jìng)賽題庫(kù)及答案(中小學(xué)組)
- 湘教版高中地理必修2全冊(cè)導(dǎo)學(xué)案
- 2024陜西西安事業(yè)單位歷年公開(kāi)引進(jìn)高層次人才和急需緊缺人才筆試參考題庫(kù)(共500題)答案詳解版
- 2024年時(shí)事政治熱點(diǎn)題庫(kù)200道含完整答案(必刷)
- 《石油化工企業(yè)場(chǎng)地地下水污染防治技術(shù)指南》(T-CAEPI 39-2021)
- 人大代表身份證明
- 城區(qū)排水管網(wǎng)雨污分流改造項(xiàng)目可行性報(bào)告
- 充電設(shè)施運(yùn)營(yíng)管理制度文件范文
- 《幼兒教育評(píng)價(jià)》課程標(biāo)準(zhǔn)
- 教職工安全教育培訓(xùn)課件
- 2024年山東省春季高考技能考試-汽車專業(yè)備考試題庫(kù)(濃縮500題)
評(píng)論
0/150
提交評(píng)論