新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的多計(jì)算機(jī)外設(shè)共享控制器的設(shè)計(jì)與實(shí)現(xiàn)

基于單片機(jī)的多計(jì)算機(jī)外設(shè)共享控制器的設(shè)計(jì)與實(shí)現(xiàn)

作者: 時(shí)間:2011-11-11 來(lái)源:網(wǎng)絡(luò) 收藏

1.3 原理

的原理見(jiàn)圖3,采用ATMEL公司的AT89S8252,它擁有8k flash存儲(chǔ)區(qū)、256×8位RAM。AT89S8252自帶EEPRO-M,且其P0、P1、P2、P3均可作為I/O口使用。在本中,鍵盤(pán)鼠標(biāo)等PS/2口的切換主要是通過(guò)雙刀雙擲繼電器,顯示的R、G、B信號(hào)主要通過(guò)AD8183芯片完成信號(hào)切換,H、V信號(hào)通過(guò)54LS157芯片完成信號(hào)切換。為保證顯示信號(hào)切換的一致性,通過(guò)一個(gè)雙刀雙擲繼電器對(duì)AD8183和54LS157進(jìn)行統(tǒng)一控制。本文為兩臺(tái)設(shè)計(jì)一套鍵盤(pán)鼠標(biāo)電路,數(shù)量多時(shí),情形類(lèi)似。

4.jpg

2 設(shè)計(jì)買(mǎi)現(xiàn)

共享需要解決啟動(dòng)對(duì)外設(shè)(PS/2、VGA)初始化,并在計(jì)算機(jī)啟動(dòng)完成后,控制信號(hào)的動(dòng)態(tài)切換。共分為硬件設(shè)計(jì)和軟件設(shè)計(jì)。

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

U1的P1口接鍵盤(pán)K0、鼠標(biāo)M0的時(shí)鐘、數(shù)據(jù)線;P0口接計(jì)算機(jī)的鍵盤(pán)鼠標(biāo)信號(hào)線,即:PCI的時(shí)鐘線kbclk1、mselk1,數(shù)據(jù)線kbda-ta1、msdata1,PC2的時(shí)鐘線kbclk2、msclk2,數(shù)據(jù)線kbdata2,msdata2;P2口用來(lái)控制計(jì)算機(jī)間的切換。
計(jì)算機(jī)啟動(dòng)時(shí),P0口的時(shí)鐘、數(shù)據(jù)線被拉高和拉低,檢測(cè)這些狀態(tài),并根據(jù)PS/2協(xié)議讀出這些發(fā)來(lái)的命令。然后把這些命令直接發(fā)送給鍵盤(pán)K0。K0應(yīng)答計(jì)算機(jī)的命令,單片機(jī)把這些應(yīng)答數(shù)據(jù)轉(zhuǎn)發(fā)給計(jì)算機(jī)。對(duì)于后臺(tái)計(jì)算機(jī),單片機(jī)直接回應(yīng)這些計(jì)算機(jī)發(fā)來(lái)的命令。鼠標(biāo)和計(jì)算機(jī)間的聯(lián)系和鍵盤(pán)相同。

習(xí)慣上,指定其中一臺(tái)計(jì)算機(jī)設(shè)為前臺(tái)計(jì)算機(jī),單片機(jī)轉(zhuǎn)發(fā)這臺(tái)計(jì)算機(jī)的命令、數(shù)據(jù)給鍵盤(pán)。當(dāng)這臺(tái)計(jì)算機(jī)沒(méi)有接入時(shí),單片機(jī)自動(dòng)指定另一臺(tái)為前臺(tái)計(jì)算機(jī)。
單片機(jī)的P2口外接一瞬態(tài)開(kāi)關(guān),當(dāng)開(kāi)關(guān)按下時(shí),單片機(jī)接受一個(gè)脈沖,于是就把當(dāng)前的前臺(tái)計(jì)算機(jī)和后臺(tái)計(jì)算機(jī)進(jìn)行互換。并放置指示燈指示對(duì)應(yīng)計(jì)算機(jī)的狀態(tài)。
顯示信號(hào)分R、G、B信號(hào),H、V信號(hào)。前三個(gè)信號(hào)為模擬信號(hào),用AD8183芯片控制,在這個(gè)片子的輸入輸出端要力175Ω的匹配電阻,并且這個(gè)片子需要5V電源供電。輸出選擇端在U2的223腳SEL,當(dāng)SEL端接地時(shí),A路輸出,否則B路輸出。H、V信號(hào)由54LS157控制,這是四組2選1的數(shù)據(jù)選擇器,它的選擇端在1腳,1腳拉高B路輸出,1腳拉低A路輸出。這兩個(gè)片子的選擇端接到一個(gè)雙刀雙擲繼電器,對(duì)AD8183和154LS15 7進(jìn)行統(tǒng)一控制。

2.2 軟件設(shè)計(jì)

計(jì)算機(jī)啟動(dòng)時(shí),運(yùn)行BIOS,檢測(cè)主板和各種外部硬件設(shè)備,識(shí)別其設(shè)備類(lèi)型,并對(duì)它們進(jìn)行初始化。當(dāng)檢測(cè)鍵盤(pán)時(shí),如果掃描不到,且計(jì)算機(jī)在BIOS中設(shè)置PostBehavior->keyboard Errors->Report,計(jì)算機(jī)就會(huì)停止初始化,顯示出錯(cuò)信息;否則,認(rèn)為鍵盤(pán)不存在,跳過(guò)該設(shè)
備,計(jì)算機(jī)初始化結(jié)束后該設(shè)備不能用。當(dāng)多臺(tái)計(jì)算機(jī)與一個(gè)鍵盤(pán)相連時(shí),必須給沒(méi)有與鍵盤(pán)物理連接的計(jì)算機(jī)建立虛擬的鍵盤(pán)。這個(gè)虛擬外設(shè)能夠完成與計(jì)算機(jī)的數(shù)據(jù)交換,幫助計(jì)算機(jī)順利通過(guò)BIOS檢測(cè)。同樣,對(duì)于鼠標(biāo),也必須建立虛擬鼠標(biāo)使計(jì)算機(jī)通過(guò)BIOS檢測(cè)。虛擬鍵盤(pán)和虛擬鼠標(biāo)這些虛擬外設(shè),在計(jì)算機(jī)給出命令時(shí),應(yīng)答命令,使計(jì)算機(jī)確信該外設(shè)存在。
BIOS檢測(cè)完成后,計(jì)算機(jī)進(jìn)入系統(tǒng)初始化過(guò)程。在這個(gè)過(guò)程中,操作系統(tǒng)要對(duì)外部設(shè)備的具體參數(shù)進(jìn)行設(shè)置。鍵盤(pán)要設(shè)置機(jī)打速率/延遲(typematic rate/delay);鼠標(biāo)要設(shè)置采樣率(sample rate),讀取設(shè)備類(lèi)型(不同類(lèi)型的鼠標(biāo)有不同的ID),設(shè)置分辨率(resolution,設(shè)置為每mm多少個(gè)計(jì)數(shù)點(diǎn)counts/mm),比例(scaling),設(shè)置數(shù)據(jù)報(bào)告禁止/允許。同樣,對(duì)于計(jì)算機(jī)必須建立虛擬外設(shè),使系統(tǒng)確認(rèn)外設(shè)存在,以通過(guò)初始化。
當(dāng)上述過(guò)程完成后,系統(tǒng)就順利通過(guò)了初始化。顯示器顯示一臺(tái)計(jì)算機(jī)的畫(huà)面,該畫(huà)面對(duì)應(yīng)的計(jì)算機(jī)稱(chēng)為前臺(tái)計(jì)算機(jī),不被顯示畫(huà)面的計(jì)算機(jī)為后臺(tái)計(jì)算機(jī)。按下共享控制器上的切換按鈕,外設(shè)選擇一后臺(tái)計(jì)算機(jī),把其置前成為前臺(tái)計(jì)算機(jī),此時(shí),顯示器顯示該計(jì)算機(jī)的畫(huà)面,鍵盤(pán)鼠標(biāo)響應(yīng)該計(jì)算機(jī)。原先的前臺(tái)計(jì)算機(jī)變?yōu)楹笈_(tái)工作。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉