<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 一種嵌入式PC非標(biāo)準(zhǔn)鍵盤的設(shè)計(jì)

          一種嵌入式PC非標(biāo)準(zhǔn)鍵盤的設(shè)計(jì)

          作者: 時(shí)間:2007-05-28 來源:網(wǎng)絡(luò) 收藏

          摘要:隨著系統(tǒng)的飛速發(fā)展,得到了廣泛應(yīng)用。由于體積大,按鍵多等原因在多數(shù)情況下不能滿足要求。本文在介紹PS/2通信協(xié)議的基礎(chǔ)上,利用AT89C52實(shí)現(xiàn)了一種。給出了其完整的硬件實(shí)現(xiàn)電路圖和主要的軟件開發(fā)方法。該具有結(jié)構(gòu)簡(jiǎn)單、工作穩(wěn)定、便于擴(kuò)展等特點(diǎn),并已在某型航空?qǐng)D像回傳系統(tǒng)中得到具體應(yīng)用。
          關(guān)鍵詞
          :鍵盤,PS/2協(xié)議,單片機(jī),系統(tǒng)

          隨著嵌入式系統(tǒng)的飛速發(fā)展,嵌入式PC在工業(yè)控制、測(cè)量?jī)x器等領(lǐng)域得到了廣泛應(yīng)用,如ADVANTECH公司的PC/104、 AMD公司的E86等。它們除了具有PC的功能外,還提供了功能強(qiáng)大的各種接口,如:平板/VGA顯示器控制接口、光驅(qū)接口、以太網(wǎng)接口、RS-232/422/485接口、PC/AT鍵盤接口等。這就為新產(chǎn)品開發(fā)的標(biāo)準(zhǔn)化、模塊化提供了方便,可大大縮小研發(fā)周期,降低研制成本。由于嵌入式PC具有標(biāo)準(zhǔn)PC鍵盤接口,也就是說,可以用標(biāo)準(zhǔn)的PC/AT鍵盤來對(duì)嵌入式PC進(jìn)行操作與控制。然而,在很多實(shí)際應(yīng)用中,需要用到鍵的數(shù)量和類型有很大的差異,并希望鍵盤具有體積小巧、便于布放等特點(diǎn)。因此,希望能夠一種小巧、靈活的PC非標(biāo)準(zhǔn)鍵盤,來滿足用戶需求。

          本文根據(jù)課題要求,了一種由AT89C52實(shí)現(xiàn)的PC非標(biāo)準(zhǔn)鍵盤。下面對(duì)其硬件設(shè)計(jì)、軟件實(shí)現(xiàn)及PS/2鍵盤通信協(xié)議分別進(jìn)行介紹。

          1硬件設(shè)計(jì)

          圖1為該鍵盤電路原理圖,由ATMEL公司的微控制器AT89C52、邏輯系統(tǒng)(包括看門狗復(fù)位電路X25045和晶體振蕩電路)、矩陣鍵盤三部分組成。AT89C52單片機(jī)主要完成鍵盤掃描,確定鍵盤閉合斷開的信息,并發(fā)送鍵碼和同步時(shí)鐘到工控機(jī);邏輯系統(tǒng)提供起振信號(hào)及看門狗定時(shí)復(fù)位功能,防止出現(xiàn)死機(jī);矩陣鍵盤為44的行列式鍵盤,當(dāng)有鍵按下時(shí)產(chǎn)生低電平觸發(fā)信號(hào),便于單片機(jī)檢測(cè)有效的按鍵操作。該鍵盤由44=16個(gè)按鍵組成,其中行線為P0.4~P0.7,列線為P0.3~P0.0。P3.0為鍵碼數(shù)據(jù)輸出,P3.1為同步時(shí)鐘,分別輸出到嵌入式PC的PS/2端口;+5V電源由主機(jī)提供。

          由于AT89C52的IO端口為32個(gè),除看門狗電路的輸入輸出端CS、SI、SO、SCK、以及鍵碼數(shù)據(jù)輸出端Data和時(shí)鐘輸出端Clock外,還剩26個(gè)可用端口,這樣,其最大可獨(dú)立響應(yīng)13 13=169個(gè)鍵的輸入,不僅可滿足標(biāo)準(zhǔn)鍵盤的多鍵需求,也可滿足工控機(jī)常用控制鍵的要求。X25045為看門狗電路,它實(shí)時(shí)接收來自AT89C52的CS信號(hào),并自動(dòng)判斷兩次信號(hào)的間隔時(shí)間。當(dāng)時(shí)間間隔到達(dá)設(shè)定時(shí)間時(shí),其RST輸出端保持低電平;反之,其RST輸出端輸出高電平,AT89C52被復(fù)位。此外增加了發(fā)光二極管LED,用來指示鍵盤的工作狀態(tài)。


          圖1鍵盤電路原理圖


          AT89C52微控制器具有如下特點(diǎn)[1]

          (1)具有8K字節(jié)可編程閃存;

          (2)2568字節(jié)內(nèi)部RAM;

          (3)32根可編程I/O線;

          (4)3個(gè)16位定時(shí)計(jì)數(shù)器;

          (5)8個(gè)中斷源;

          (6)可編程串行UART通道

          2 PS/2協(xié)議

          標(biāo)準(zhǔn)鍵盤和工控機(jī)或者嵌入式PC之間是按照PS/2協(xié)議進(jìn)行通信的,因此設(shè)計(jì)的非標(biāo)準(zhǔn)鍵盤也必須嚴(yán)格按照該協(xié)議,這樣才能為系統(tǒng)正確識(shí)別和作出響應(yīng)。PS/2鍵盤接口標(biāo)準(zhǔn)由IBM公司于1987年推出,該標(biāo)準(zhǔn)采用了6腳mini―DIN連接器(見圖2)。該連接器在封裝上更加小巧,仍然用雙向串行通信協(xié)議,并且提供有可選擇的第三套鍵盤掃描碼集,同時(shí)支持l7個(gè)主機(jī)到鍵盤的命令。

          圖2 PS/2端口示意圖

          PS/2接口的6個(gè)引腳只有4個(gè)有定義,它們分別是1腳Data(數(shù)據(jù)腳)、5腳Clock(時(shí)鐘腳)、3腳Ground(電源地)、4腳Vcc(+5V電源);2腳和6腳為未定義保留端口。PS/2鍵盤與PC機(jī)的物理連接,只要保證這4根線一一對(duì)應(yīng)就可以了。鍵盤靠PC的PS/2端口提供+5V電源,因此不需要專門電源。另外時(shí)鐘腳Clock和數(shù)據(jù)腳Data都是集電極開路的,需外接上拉電阻,上拉電阻的阻值一般可取1K~10K,這和51系列單片機(jī)IO口的特性是一致的。

          PS/2通信協(xié)議是一種雙向同步串行通信協(xié)議。通信的兩端通過Clock(時(shí)鐘腳)同步,并通過Data(數(shù)據(jù)腳)交換數(shù)據(jù)。PS/2的數(shù)據(jù)是按幀進(jìn)行傳輸?shù)模恳粩?shù)據(jù)幀包含l1~12個(gè)位,其中鍵盤發(fā)送的數(shù)據(jù)幀為11位。1個(gè)起始位(低電平)、8個(gè)數(shù)據(jù)位(低位在前,高位在后)、1個(gè)奇偶校驗(yàn)位(采用奇校驗(yàn))、1個(gè)停止位(高電平)。在鍵碼傳送的同時(shí),微控制器還傳送1個(gè)鍵碼時(shí)鐘同步信號(hào),用于同步鍵碼數(shù)據(jù)的接收,鍵碼中每個(gè)數(shù)據(jù)位的傳送發(fā)生在鍵盤時(shí)鐘的下降沿。最大的時(shí)鐘頻率是33kHz 而且大多數(shù)設(shè)備工作在10~20kHz,推薦頻率在15kHz左右[2]

          當(dāng)有鍵按下時(shí),鍵盤發(fā)送一個(gè)接通碼給主機(jī),接通碼值在00~7F之間。當(dāng)按鍵松開后,鍵盤首先發(fā)送斷開碼標(biāo)志F0H,然后再發(fā)送該鍵的接通碼。如果按鍵按下0.5秒仍沒斷開,則以每秒6個(gè)鍵碼的速率發(fā)送到主機(jī)。Clock和Data必須為高電平時(shí),才能傳送鍵碼數(shù)據(jù)。鍵碼的每一位傳送發(fā)生在時(shí)鐘的下降沿,在時(shí)鐘高電平期間發(fā)生變化。

          圖3為接通鍵碼為2C,即按下t鍵時(shí),鍵碼和時(shí)鐘的傳送時(shí)序。

          圖3 鍵碼2C傳輸時(shí)的通信時(shí)序


          3軟件實(shí)現(xiàn)

          軟件包括定時(shí)0中斷子程序、定時(shí)1中斷子程序、主程序等。其中,定時(shí)器0中斷子程序用于定時(shí)(如50ms)檢測(cè)單片機(jī)工作狀態(tài),實(shí)現(xiàn)看門狗功能,完成單片機(jī)的自動(dòng)復(fù)位,防止軟件出現(xiàn)死機(jī)現(xiàn)象。定時(shí)器1中斷子程序用于設(shè)定時(shí)鐘高低電平的持續(xù)時(shí)間,即確定時(shí)鐘的頻率,這里采用的時(shí)鐘頻率為16 kHz。主程序循環(huán)檢測(cè)有無鍵被按下、判斷哪個(gè)鍵被按下并確定對(duì)應(yīng)的鍵碼,然后確定是否輸出鍵碼和同步時(shí)鐘信號(hào)。如有鍵被按下,則輸出相應(yīng)的鍵碼同時(shí)并輸出同步時(shí)鐘信號(hào)。然后再掃描按鍵是否斷開,若斷開則發(fā)送斷開掃描碼和時(shí)鐘信號(hào)。主程序流程如圖4所示。


          圖4 主程序流程圖


          這里值得注意的是:一是鍵盤斷開標(biāo)志碼0F0H和接通碼之間應(yīng)該有一定的延時(shí)(幾十毫秒即可);二是鍵盤數(shù)據(jù)位應(yīng)該在時(shí)鐘下降沿到來之前就應(yīng)該準(zhǔn)備好,即應(yīng)該有十幾微秒的提前量。

          4結(jié)束語

          經(jīng)過實(shí)際測(cè)試,該鍵盤工作穩(wěn)定,能夠?qū)η度胧絇C進(jìn)行正確的操作和輸入控制,并且已在某型航空?qǐng)D像回傳系統(tǒng)中得到具體應(yīng)用。本文設(shè)計(jì)的非標(biāo)準(zhǔn)鍵盤具有結(jié)構(gòu)簡(jiǎn)單、靈活性強(qiáng)、易于編程、體積小、成本低的特點(diǎn),并可根據(jù)用戶需要隨意設(shè)計(jì)和布放,對(duì)使用工控機(jī)的各種測(cè)試與控制儀器具有通用性,只要稍加改動(dòng)就可應(yīng)用于其它嵌入式應(yīng)用的場(chǎng)合。

          本文作者的創(chuàng)新點(diǎn):根據(jù)課題任務(wù)要求,用單片機(jī)AT89C52實(shí)現(xiàn)了對(duì)嵌入式工控PC的非標(biāo)準(zhǔn)鍵盤輸入,進(jìn)而控制整個(gè)系統(tǒng)的運(yùn)行。該鍵盤實(shí)現(xiàn)簡(jiǎn)單、工作穩(wěn)定,較傳統(tǒng)的標(biāo)準(zhǔn)鍵盤具有體積小、靈活性強(qiáng)的特點(diǎn),同時(shí)對(duì)于其它嵌入式工控PC應(yīng)用系統(tǒng)具有通用性。因此,該設(shè)計(jì)具有良好的市場(chǎng)前景和推廣應(yīng)用價(jià)值。

          參考文獻(xiàn):
          [1] ATMEL公司,AT89C52中文數(shù)據(jù)手冊(cè).
          [2]Roy Show.PS/2鍵盤鼠標(biāo)協(xié)議,2002.
          [3] 張開生,李霞,王金廣,工業(yè)控制計(jì)算機(jī)紅外線遙控鍵盤的設(shè)計(jì),微計(jì)算機(jī)信息,2005.16:122-124

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();