日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
PS/2接口協(xié)議解析及應(yīng)用
PS/2接口協(xié)議解析及應(yīng)用
 更新時(shí)間:2008-8-4 4:39:50  點(diǎn)擊數(shù):28
【字體: 字體顏色

    從PS/2向PC機(jī)發(fā)送一個(gè)字節(jié)可按照下面的步驟進(jìn)行:

(1)檢測(cè)時(shí)鐘線電平,如果時(shí)鐘線為低,則延時(shí)50μs;

(2)檢測(cè)判斷時(shí)鐘信號(hào)是否為高,為高,則向下執(zhí)行,為低,則轉(zhuǎn)到(1);

(3)檢測(cè)數(shù)據(jù)線是否為高,如果為高則繼續(xù)執(zhí)行,如果為低,則放棄發(fā)送(此時(shí)PC機(jī)在向PS/2設(shè)備發(fā)送數(shù)據(jù),所以PS/2設(shè)備要轉(zhuǎn)移到接收程序處接收數(shù)據(jù));

(4)延時(shí)20μs(如果此時(shí)正在發(fā)送起始位,則應(yīng)延時(shí)40μs);

(5)輸出起始位(0)到數(shù)據(jù)線上。這里要注意的是:在送出每一位后都要檢測(cè)時(shí)鐘線,以確保PC機(jī)沒有抑制PS/2設(shè)備,如果有則中止發(fā)送;

(6)輸出8?jìng)(gè)數(shù)據(jù)位到數(shù)據(jù)線上;

(7)輸出校驗(yàn)位;

(8)輸出停止位(1);

(9)延時(shí)30μs(如果在發(fā)送停止位時(shí)釋放時(shí)鐘信號(hào)則應(yīng)延時(shí)50μs);

通過以下步驟可發(fā)送單個(gè)位:

(1)準(zhǔn)備數(shù)據(jù)位(將需要發(fā)送的數(shù)據(jù)位放到數(shù)據(jù)線上);

(2)延時(shí)20μs;

(3)把時(shí)鐘線拉低;

(4)延時(shí)40μs;

(5)釋放時(shí)鐘線;

(6)延時(shí)20μs。

3.2 PS/2設(shè)備從PC機(jī)接收一個(gè)字節(jié)

由于PS/2設(shè)備能提供串行同步時(shí)鐘,因此,如果PC機(jī)發(fā)送數(shù)據(jù),則PC機(jī)要先把時(shí)鐘線和數(shù)據(jù)線置為請(qǐng)求發(fā)送的狀態(tài)。PC機(jī)通過下拉時(shí)鐘線大于100μs來抑制通訊,并且通過下拉數(shù)據(jù)線發(fā)出請(qǐng)求發(fā)送數(shù)據(jù)的信號(hào),然后釋放時(shí)鐘。當(dāng)PS/2設(shè)備檢測(cè)到需要接收的數(shù)據(jù)時(shí),它會(huì)產(chǎn)生時(shí)鐘信號(hào)并記錄下面8?jìng)(gè)數(shù)據(jù)位和一個(gè)停止位。主機(jī)此時(shí)在時(shí)鐘線變?yōu)榈蜁r(shí)準(zhǔn)備數(shù)據(jù)到數(shù)據(jù)線,并在時(shí)鐘上升沿鎖存數(shù)據(jù)。而PS/2設(shè)備則要配合PC機(jī)才能讀到準(zhǔn)確的數(shù)據(jù)。具體連接步驟如下:

(1)等待時(shí)鐘線為高電平。

(2)判斷數(shù)據(jù)線是否為低,為高則錯(cuò)誤退出,否則繼續(xù)執(zhí)行。

(3)讀地址線上的數(shù)據(jù)內(nèi)容,共8?jìng)(gè)bit,每讀完一個(gè)位,都應(yīng)檢測(cè)時(shí)鐘線是否被PC機(jī)拉低,如果被拉低則要中止接收。

(4)讀地址線上的校驗(yàn)位內(nèi)容,1個(gè)bit。

(5)讀停止位。

(6)如果數(shù)據(jù)線上為0(即還是低電平),PS/2設(shè)備繼續(xù)產(chǎn)生時(shí)鐘,直到接收到1且產(chǎn)生出錯(cuò)信號(hào)為止(因?yàn)橥V刮皇牵保绻校樱苍O(shè)備沒有讀到停止位,則表明此次傳輸出錯(cuò))。

(7 輸出應(yīng)答位。

(8) 檢測(cè)奇偶校驗(yàn)位,如果校驗(yàn)失敗,則產(chǎn)生錯(cuò)誤信號(hào)以表明此次傳輸出現(xiàn)錯(cuò)誤。

(9)延時(shí)45 μs,以便PC機(jī)進(jìn)行下一次傳輸。

讀數(shù)據(jù)線的步驟如下:

(1)延時(shí)20μs;

(2)把時(shí)鐘線拉低

(3)延時(shí)40μs

(4)釋放時(shí)鐘線

(5)延時(shí)20μs

(6)讀數(shù)據(jù)線。

下面的步驟可用于發(fā)出應(yīng)答位;

(1)延時(shí)15μs;

(2)把數(shù)據(jù)線拉低;

(3)延時(shí)5μs;

(4)把時(shí)鐘線拉低;

(5)延時(shí)40μs;

(6)釋放時(shí)鐘線;

(7)延時(shí)5μs;

(8)釋放數(shù)據(jù)線。

4 用于工控機(jī)的雙鍵盤設(shè)計(jì)

工控機(jī)通常要接標(biāo)準(zhǔn)鍵盤,但是為了方便操作,常常需要外接一個(gè)專用鍵盤。此實(shí)例介紹了在工控PC機(jī)到PS/2總線上再接入一個(gè)自制專用鍵盤的應(yīng)用方法。

該設(shè)計(jì)應(yīng)能保證兩個(gè)鍵盤單獨(dú)工作,而且相互不能影響。因此,不能直接把專用鍵盤和標(biāo)準(zhǔn)鍵盤一起接到工控PC的PS/2口。鑒于這種情況,本設(shè)計(jì)使用模擬開關(guān)CD4052并通過時(shí)分復(fù)用工控PC的PS/2口,來使在同一個(gè)時(shí)刻只有一個(gè)鍵盤有效,從而解決上述問題。其硬件原理圖如圖3所示。其中P2口和P1口用于鍵盤掃描電路(圖中未畫出),P0.0為數(shù)據(jù)端,P0.1為時(shí)鐘端,P0.2為模擬開關(guān)選通端。由于專用鍵盤不需要接收工控PC機(jī)的命令,所以軟件中并不需要寫這部分相應(yīng)的代碼。

通過軟件可在專用鍵盤復(fù)位后把P0.2清0,以使模擬開關(guān)CD4052打開相應(yīng)的通道。這時(shí)工控PC的標(biāo)準(zhǔn)鍵盤將開始工作。標(biāo)準(zhǔn)鍵盤可以完成工控PC剛啟動(dòng)時(shí)對(duì)外設(shè)檢測(cè)的應(yīng)答。復(fù)位后的專用鍵盤不停地掃描有沒有按鍵,如果有鍵按下則識(shí)別按鍵,并且按照預(yù)先的設(shè)計(jì)進(jìn)行編碼,同時(shí)調(diào)用發(fā)送程序并通過PS/2口發(fā)送到工控PC。此時(shí)模擬開關(guān)關(guān)閉相應(yīng)通道(將P0.2置1),專用鍵盤接入工控PC PS/2口的時(shí)鐘線和數(shù)據(jù)線而工作,但標(biāo)準(zhǔn)鍵盤被模擬開關(guān)從PS/2的時(shí)鐘線和數(shù)據(jù)線中斷而不工作,這樣,雙鍵盤便可時(shí)分復(fù)用同一個(gè)工控PC機(jī)的PS/2口。相應(yīng)的發(fā)送子程序如下:

#define DATA P00 用P0.0做數(shù)據(jù)線

#define CLK P01 用P0.1做時(shí)鐘線

#define INHIBIT P02 用P0.2做CD4052的INH端

#define PORTR P1 用P1口做讀入口

#define PORTW P2 用P2口做寫出口 可以實(shí)現(xiàn)64個(gè)自定義鍵

void send(uchar x)/***function for send a char da-ta***/

{

uchar i,temp,char_temp;

bit flag_check=1;

INHIBIT=1;//disable standard keyboard

delay_ ms(3);

temp=x;

for(i=0;i<8;i++)//find the number of 1 in this uchar x is odd or not

{

char_temp=temp&0x01;

if(char_temp==0x01)

{

flag_check=!flag_check;

}

temp=temp>>1;

}

CLK=1;//send 1 to P1 then read P1

while (!CLK) //if CLK is low wait

{

;

}

CLK=1;DATA=1;//send 1 to P1 then read P1

if(CLK==1)

{

delay_us(30);//

}

if(CLK==1&&DATA==1)//send data

{

DATA=0;//start bit 0

delay_us(10);

CLK=0;

delay_us(5);//

temp=x;

for(i=0;i<8;i++)//send 8 bits LSBfirst

{

CLK=1;

delay_us(5);

char_temp=temp&0x01;

if(char_temp==0x01)

{

DATA=1;

}

else

{

DATA=0;

}

//DATA=(bit)(temp&0x01);

//LSB

delay_us(10);

CLK=0;

delay_us(5);

temp=temp>>1;

}

CLK=1;//send check bit

delay_us(5);

DATA=flag_check;

delay_us(10);

CLK=0;

delay_us(5)

CLK=1;//send stop bit

delay_us(5);

DATA=1;

delay us10

CLK=0

delay_us(5);

CLK=1;

delay_us(30); 

CLK=1;DATA=1;//send 1 to P1 then read P1

if(CLK==1&&DATA==0)

{

return; //pc is sending data to mcu, go to

receiving function

}

INHIBIT=0; //enable standard keyboard

}

5 結(jié)論

PS/2接口協(xié)議是現(xiàn)在大多數(shù)鍵盤、鼠標(biāo)與PC機(jī)通訊的標(biāo)準(zhǔn)協(xié)議。其中鼠標(biāo)對(duì)PC機(jī)的通訊更為簡(jiǎn)單,只是傳輸數(shù)據(jù)的內(nèi)容不一樣而已。充分理解PS/2接口協(xié)議,可以幫助設(shè)計(jì)者自主開發(fā)一些工控機(jī)上的專用鍵盤等外設(shè),并能夠按照用戶的要求開發(fā)出專用的多功能鍵盤。該工控機(jī)的雙鍵盤設(shè)計(jì)目前已被某工控公司所采納,并已作為組件加入到產(chǎn)品當(dāng)中。



  • 上一篇: 在符合USB 2.0標(biāo)準(zhǔn)的系統(tǒng)中引進(jìn)物理層(全文)
  • 下一篇: RS-232多串口擴(kuò)展器件SP2538及其應(yīng)用
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1