《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 業(yè)界動(dòng)態(tài) > 鍵盤接口在單片機(jī)系統(tǒng)與PC機(jī)通信中的應(yīng)用

鍵盤接口在單片機(jī)系統(tǒng)與PC機(jī)通信中的應(yīng)用

2009-03-26
作者:李江偉 汪 銳 汪仁煌

  摘? 要: 提出一種全新的利用鍵盤接口實(shí)現(xiàn)單片機(jī)系統(tǒng)和PC機(jī)通信的方案,介紹了鍵盤與PC機(jī)通信的原理,并成功地應(yīng)用于實(shí)際系統(tǒng)。該方案為外部單片機(jī)系統(tǒng)與PC機(jī)通信提供了一條有效的途徑。

  關(guān)鍵詞: 鍵盤接口? 單片機(jī)系統(tǒng)? 時(shí)序 命令字

?

  在工控系統(tǒng)中,單片機(jī)應(yīng)用系統(tǒng)與PC機(jī)之間的通信主要是采用異步串行通信方式,通過RS-232C、RS-422、RS-423或RS-449標(biāo)準(zhǔn)接口實(shí)現(xiàn)。這些通信方式都各自規(guī)定了自己的電氣標(biāo)準(zhǔn),都不能直接滿足TTL電平的傳送要求。為了通過這些標(biāo)準(zhǔn)接口通信,必須在單片機(jī)應(yīng)用系統(tǒng)中加入電平轉(zhuǎn)換芯片,以實(shí)現(xiàn)TTL電平向標(biāo)準(zhǔn)接口電平的轉(zhuǎn)換[1]

  鍵盤接口是PC機(jī)的固有接口。在很多工控系統(tǒng)中,工控PC機(jī)的鍵盤由于受到高溫、灰塵的侵襲,容易損壞,故僅采用鼠標(biāo)作為人機(jī)對(duì)話的工具,鍵盤接口處于空閑狀態(tài)[2]。以鍵盤接口作為單片機(jī)應(yīng)用系統(tǒng)與PC機(jī)的通信接口,具有以下優(yōu)點(diǎn):①鍵盤接口的電氣標(biāo)準(zhǔn)能滿足TTL電平的傳送要求,不需電平轉(zhuǎn)換;②PC機(jī)的操作系統(tǒng)內(nèi)核能解釋單片機(jī)應(yīng)用系統(tǒng)通過鍵盤接口傳送來的數(shù)據(jù),免除了編寫串行數(shù)據(jù)接收程序的工作;③PC機(jī)能提供+5V電源。

1 鍵盤與PC機(jī)通信原理

1.1 鍵盤接口結(jié)構(gòu)

  PC機(jī)鍵盤分為PC/XT、PC/AT和PS/2這三種類型。PC/XT和PC/AT鍵盤通過一個(gè)5針DIN插頭與PC機(jī)相連,PS/2鍵盤通過一個(gè)6針DIN插頭與PC機(jī)相連。3種鍵盤接口結(jié)構(gòu)類似,在其應(yīng)用于外部單片機(jī)應(yīng)用系統(tǒng)與PC機(jī)通信的場(chǎng)合,有效的接口引腳都為4個(gè),它們?cè)诮涌谏系木幪?hào)與定義分別為:1、鍵盤時(shí)鐘;2、鍵盤數(shù)據(jù);4、地;5、+5V。

1.2? 鍵盤與PC機(jī)通信時(shí)序

  當(dāng)首次給鍵盤上電時(shí),鍵盤邏輯電路產(chǎn)生上電復(fù)位信號(hào),鍵盤開始自檢。在自檢期間,數(shù)據(jù)線和時(shí)鐘線上的任何信號(hào)都無效。如果自檢無誤,鍵盤發(fā)送0AAH給PC機(jī),然后開始鍵盤掃描。

  在鍵盤與PC機(jī)通信中,存在兩種傳輸協(xié)議:XT傳輸協(xié)議和AT傳輸協(xié)議。在采用XT協(xié)議的傳輸模式下,鍵盤只能接收來自PC機(jī)的復(fù)位指令和向PC機(jī)發(fā)送數(shù)據(jù),沒有大的應(yīng)用價(jià)值。只有在采用AT協(xié)議的傳輸模式下,鍵盤能接收來自AT-PS/2兼容PC機(jī)的指令和向PC機(jī)發(fā)送數(shù)據(jù)。其數(shù)據(jù)幀長度為11位,由起始位(低電平)、8位數(shù)據(jù)(低位在前,高位在后)、奇偶校驗(yàn)位(奇校驗(yàn))和停止位(高電平)組成。圖1為采用AT傳輸協(xié)議的鍵盤與PC機(jī)通信時(shí)序圖。

?

?

  當(dāng)無數(shù)據(jù)傳輸時(shí),鍵盤接口數(shù)據(jù)線和時(shí)鐘線均為高電平。接口時(shí)鐘信號(hào)由鍵盤提供,其頻率至少應(yīng)為733.33Hz,才能保證數(shù)據(jù)的準(zhǔn)確發(fā)送與接收。在鍵盤發(fā)送數(shù)據(jù)之前,鍵盤檢測(cè)接口時(shí)鐘線和數(shù)據(jù)線上電平。如果時(shí)鐘線為低電平,則主機(jī)禁止鍵盤發(fā)送數(shù)據(jù)。鍵盤上的鍵擊代碼送到緩存器中緩存。只有當(dāng)數(shù)據(jù)線和時(shí)鐘線上電平均為高時(shí),才允許鍵盤發(fā)送數(shù)據(jù)。此時(shí)鍵盤向主機(jī)發(fā)送數(shù)據(jù)和時(shí)鐘信號(hào)。鍵盤發(fā)送數(shù)據(jù)時(shí),先拉低數(shù)據(jù)線以發(fā)送起始位,再依次送出8位數(shù)據(jù),最后發(fā)送奇偶校驗(yàn)位和停止位。每位數(shù)據(jù)在時(shí)鐘脈沖下降沿有效,在時(shí)鐘脈沖高電平期間變化。如果在第10位(奇偶校驗(yàn)位)發(fā)送之前,計(jì)算機(jī)下拉時(shí)鐘線至少有60μs,則鍵盤停止發(fā)送,并將故障數(shù)據(jù)存儲(chǔ)在輸出緩存器中。數(shù)據(jù)發(fā)送完畢后,保持?jǐn)?shù)據(jù)線和時(shí)鐘線為高電平。PC機(jī)接收到數(shù)據(jù)后,若有誤,則要求鍵盤重發(fā)。當(dāng)PC機(jī)請(qǐng)求發(fā)送數(shù)據(jù)時(shí),PC機(jī)將數(shù)據(jù)線拉低,鍵盤進(jìn)入接收數(shù)據(jù)狀態(tài)并發(fā)送時(shí)鐘信號(hào)。每位數(shù)據(jù)均在時(shí)鐘脈沖上升沿有效,在時(shí)鐘脈沖低電平期間變化。鍵盤接收完11位數(shù)據(jù)后,將停止位拉低作為應(yīng)答信號(hào),表示數(shù)據(jù)接收完畢。鍵盤對(duì)接收到的數(shù)據(jù)進(jìn)行判斷,若有誤,則要求PC機(jī)重發(fā)。

1.3? 鍵盤與PC機(jī)通信命令字

  鍵盤與PC機(jī)通信命令字很多,下面僅介紹與單片機(jī)系統(tǒng)和PC機(jī)通信有關(guān)的命令字。表1為PC機(jī)和鍵盤發(fā)送的命令字及其對(duì)應(yīng)的16進(jìn)制值。

  在任何時(shí)候PC機(jī)都可對(duì)鍵盤發(fā)送命令字。除了以下兩種情況外,鍵盤一般必須在20ms內(nèi)應(yīng)答確認(rèn)命令字0FAH:(1)當(dāng)PC機(jī)發(fā)送ECHO指令(0EEH),鍵盤回應(yīng)以ECHO(0EEH),表示通信正常;(2)當(dāng)PC機(jī)要求重發(fā)數(shù)據(jù)時(shí),鍵盤重發(fā)上次發(fā)送的數(shù)據(jù)。

2 單片機(jī)應(yīng)用系統(tǒng)通過鍵盤接口與PC機(jī)通信構(gòu)思及實(shí)例

2.1 單片機(jī)應(yīng)用系統(tǒng)通過鍵盤接口與PC機(jī)通信的構(gòu)思

  單片機(jī)應(yīng)用系統(tǒng)通過鍵盤接口與PC機(jī)通信必須嚴(yán)格按照鍵盤與PC機(jī)通信的時(shí)序要求并且按照命令字進(jìn)行應(yīng)答。當(dāng)系統(tǒng)上電復(fù)位時(shí),單片機(jī)應(yīng)用系統(tǒng)通過鍵盤接口發(fā)送0AAH,模擬鍵盤自檢完成信息。之后,單片機(jī)應(yīng)用系統(tǒng)檢測(cè)鍵盤接口數(shù)據(jù)線上電平,若數(shù)據(jù)線電平被PC機(jī)拉低,單片機(jī)系統(tǒng)進(jìn)入接收數(shù)據(jù)狀態(tài),按照?qǐng)D1時(shí)序接收命令信息或數(shù)據(jù)信息,單片機(jī)系統(tǒng)根據(jù)表1對(duì)接收信息予以解釋。當(dāng)單片機(jī)系統(tǒng)要發(fā)送數(shù)據(jù)或命令時(shí),按照?qǐng)D1時(shí)序發(fā)送信息,命令字則按表1的定義發(fā)送,PC機(jī)操作系統(tǒng)能識(shí)別這些鍵盤命令并進(jìn)行相應(yīng)的操作。而發(fā)送的數(shù)據(jù)則模擬鍵盤上各鍵的編碼,PC機(jī)操作系統(tǒng)可將編碼解釋為對(duì)應(yīng)的鍵盤字符。在PC機(jī)端通信程序中,根據(jù)接收到的字符串執(zhí)行相應(yīng)的操作,這樣就省去了編寫將PC機(jī)端接收到的二進(jìn)制流解釋為相應(yīng)字符的程序。

?

?

2.2 實(shí)例

  在一個(gè)溫度測(cè)量單片機(jī)應(yīng)用系統(tǒng)中,要求定時(shí)將測(cè)得的溫度信息顯示在PC機(jī)上。系統(tǒng)由3部分組成:溫度檢測(cè)部分、信號(hào)轉(zhuǎn)換部分、信號(hào)處理部分。外界溫度的測(cè)量通過集成化測(cè)溫元件AD590實(shí)現(xiàn)。AD590是一種電流型元件,其測(cè)溫范圍為-55°C~100°C,其分辨率為1μA/°C。經(jīng)過信號(hào)轉(zhuǎn)換部分(由標(biāo)準(zhǔn)運(yùn)放電路和A/D元件組成)將電流信號(hào)轉(zhuǎn)變?yōu)閿?shù)字信號(hào)。輸出結(jié)果送入89C51的I/O口,經(jīng)程序處理后,將溫度信息轉(zhuǎn)換為字符串信息,經(jīng)鍵盤接口送入PC機(jī)。鍵盤接口的數(shù)據(jù)線和時(shí)鐘線分別與89C51的P0口第7、8腳(P0.6、P0.7)相連。測(cè)量系統(tǒng)的供電直接取自鍵盤接口。

  溫測(cè)系統(tǒng)通過鍵盤接口與PC機(jī)通信程序包括兩部分:PC機(jī)通信程序和單片機(jī)應(yīng)用系統(tǒng)通信程序。PC機(jī)通信程序很簡(jiǎn)單:在C語言條件下,使用getchar函數(shù)接收數(shù)據(jù),接收到的是經(jīng)過操作系統(tǒng)解釋的字符。使用outport函數(shù)往鍵盤端口(60H)寫數(shù)據(jù)。相比之下,單片機(jī)應(yīng)用系統(tǒng)通信程序更為復(fù)雜,圖2為單片機(jī)應(yīng)用系統(tǒng)通信程序部分流程圖。

?

?

參考文獻(xiàn)

1 何立民.MCS-51系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)系統(tǒng)配置與接口技術(shù).北京:北京航空航天大學(xué)出版社,1990

2 關(guān)鐘明.只采用鼠標(biāo)的工業(yè)控制軟件的設(shè)計(jì)方法探討.微型計(jì)算機(jī)信息,1999

3 馬道均.微型計(jì)算機(jī)原理·使用·維修.北京:中國廣播電視出版社,1997

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請(qǐng)及時(shí)通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。