《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于單片機(jī)的共享控制器的設(shè)計(jì)
基于單片機(jī)的共享控制器的設(shè)計(jì)
摘要: 隨著電子設(shè)備技術(shù)不斷發(fā)展和產(chǎn)品功能不斷增加,,一般情況下,,產(chǎn)品功能通常需要多個(gè)計(jì)算機(jī)配合實(shí)現(xiàn),。另一方面,,在產(chǎn)品設(shè)計(jì)過程中,為了提高產(chǎn)品的可靠性,,計(jì)算機(jī)備份技術(shù)作為提高產(chǎn)品可靠性重要手段之一也越來越多被采用,。在這種情況下,,為了降低產(chǎn)品的復(fù)雜度,,合理使用有限的空間,,在具體產(chǎn)品設(shè)計(jì)時(shí),,往往只有單套計(jì)算機(jī)外設(shè)配給多套主機(jī)使用。此時(shí),,需要解決多個(gè)主機(jī)之間的顯示器,、鍵盤和鼠標(biāo)的動(dòng)態(tài)切換問題。
Abstract:
Key words :

  隨著電子設(shè)備技術(shù)不斷發(fā)展和產(chǎn)品功能不斷增加,,一般情況下,,產(chǎn)品功能通常需要多個(gè)計(jì)算機(jī)配合實(shí)現(xiàn)。另一方面,,在產(chǎn)品設(shè)計(jì)過程中,,為了提高產(chǎn)品的可靠性,計(jì)算機(jī)備份技術(shù)作為提高產(chǎn)品可靠性重要手段之一也越來越多被采用,。在這種情況下,,為了降低產(chǎn)品的復(fù)雜度,合理使用有限的空間,,在具體產(chǎn)品設(shè)計(jì)時(shí),往往只有單套計(jì)算機(jī)外設(shè)配給多套主機(jī)使用,。此時(shí),,需要解決多個(gè)主機(jī)之間的顯示器、鍵盤和鼠標(biāo)的動(dòng)態(tài)切換問題,。

  而這一問題可以通過外設(shè)共享來解決,,使用外設(shè)共享控制器,可實(shí)現(xiàn)雙主機(jī)或者多主機(jī)之間顯示器,、鍵盤和鼠標(biāo)的動(dòng)態(tài)切換,,從而實(shí)現(xiàn)有限資源的合理利用。

  1 設(shè)計(jì)原理

  1.1 外設(shè)共享控制器的功能介紹

  按下外設(shè)共享控制器的主機(jī)1按鍵,,外設(shè)顯示器和鍵盤,、鼠標(biāo)連接到主機(jī)1,同時(shí)主機(jī)1按鍵指示燈亮;按下主機(jī)2按鍵,,外設(shè)顯示器和鍵盤,、鼠標(biāo)連接到主機(jī)2,同時(shí)主機(jī)2按鍵指示燈亮,。外設(shè)共享控制器具有自動(dòng)掃描功能,,能夠監(jiān)測計(jì)算機(jī)的運(yùn)行。主機(jī)1先啟動(dòng),,則外設(shè)顯示器和鍵盤,、鼠標(biāo)連接到主機(jī)1,同時(shí)主機(jī)1按鍵指示燈亮;主機(jī)2先啟動(dòng),,則外設(shè)顯示器和鍵盤,、鼠標(biāo)連接到主機(jī)2,,同時(shí)主機(jī)2按鍵指示燈亮。另外,,也可通過鍵盤上設(shè)定的熱鍵(連續(xù)按兩次Ctrl鍵)來控制鍵盤,、鼠標(biāo)、顯示器信號的切換,。

  1.2 PS/2,、VGA接口介紹

  外設(shè)共享控制器涉及的外設(shè)是鍵盤、鼠標(biāo)和顯示器,,接口類型分別是PS/2口,、PS/2口和VGA口。PS/2鍵盤和鼠標(biāo)履行一種雙向步串行協(xié)議,。也就是說,,每次數(shù)據(jù)線上發(fā)送一位數(shù)據(jù)并且每在時(shí)鐘線上發(fā)一個(gè)脈沖就被讀入。鍵盤/鼠標(biāo)可以發(fā)送數(shù)據(jù)到主機(jī),,而主機(jī)也可以發(fā)送數(shù)據(jù)到設(shè)備,,但主機(jī)總是在總線上有優(yōu)先權(quán),它可以在任何時(shí)候抑制來自于鍵盤/鼠標(biāo)的通訊,,只要把時(shí)鐘拉低即可,。從鍵盤/鼠標(biāo)發(fā)送到主機(jī)的數(shù)據(jù)在時(shí)鐘的下降沿(CLK由高到低的時(shí)候)被讀取;從主機(jī)發(fā)送到鍵盤/鼠標(biāo)的數(shù)據(jù)在上升沿(當(dāng)時(shí)鐘從低變到高的時(shí)候)被讀取。不管通訊的方向怎樣,,鍵盤/鼠標(biāo)總是產(chǎn)生時(shí)鐘信號,。一個(gè)PS/2設(shè)備的工作頻率推薦值為15kHz左右,這意味著時(shí)鐘應(yīng)該是高40μs低40μs,。所有的數(shù)據(jù)位安排在一個(gè)字節(jié)中,,每個(gè)字節(jié)為一幀,包含11~12個(gè)位,。這些位為1個(gè)起始位0,、8個(gè)數(shù)據(jù)位、1個(gè)校驗(yàn)位,、1個(gè)停止位和1個(gè)應(yīng)答位,。常用的六芯插座布局及其定義見圖1。

  

 

  VGA接口是一種COMS/TTL接口,,15芯插座布局及其定義見圖2和表1,。VGA信號本身不需要初始化,可直接進(jìn)行切換,。

  

 

  

關(guān)鍵字:單片機(jī) 共享控制器

1.3 外設(shè)共享控制器的設(shè)計(jì)原理

 

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

  

 

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

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

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

  單片機(jī)U1的P1口接鍵盤K0,、鼠標(biāo)M0的時(shí)鐘,、數(shù)據(jù)線;P0口接計(jì)算機(jī)的鍵盤鼠標(biāo)信號線,即:PCI的時(shí)鐘線kbclk1,、mselk1,,數(shù)據(jù)線kbda-ta1、msdata1,,PC2的時(shí)鐘線kbclk2,、msclk2,數(shù)據(jù)線kbdata2,,msdata2;P2口用來控制計(jì)算機(jī)間的切換,。

  計(jì)算機(jī)啟動(dòng)時(shí),P0口的時(shí)鐘,、數(shù)據(jù)線被拉高和拉低,,單片機(jī)檢測這些狀態(tài),并根據(jù)PS/2協(xié)議讀出這些發(fā)來的命令,。然后把這些命令直接發(fā)送給鍵盤K0,。K0應(yīng)答計(jì)算機(jī)的命令,,單片機(jī)把這些應(yīng)答數(shù)據(jù)轉(zhuǎn)發(fā)給計(jì)算機(jī)。對于后臺計(jì)算機(jī),,單片機(jī)直接回應(yīng)這些計(jì)算機(jī)發(fā)來的命令,。鼠標(biāo)和計(jì)算機(jī)間的聯(lián)系和鍵盤相同。

  習(xí)慣上,,指定其中一臺計(jì)算機(jī)設(shè)為前臺計(jì)算機(jī),,單片機(jī)轉(zhuǎn)發(fā)這臺計(jì)算機(jī)的命令、數(shù)據(jù)給鍵盤,。當(dāng)這臺計(jì)算機(jī)沒有接入時(shí),,單片機(jī)自動(dòng)指定另一臺為前臺計(jì)算機(jī)。

  單片機(jī)的P2口外接一瞬態(tài)開關(guān),,當(dāng)開關(guān)按下時(shí),,單片機(jī)接受一個(gè)脈沖,于是就把當(dāng)前的前臺計(jì)算機(jī)和后臺計(jì)算機(jī)進(jìn)行互換,。并放置指示燈指示對應(yīng)計(jì)算機(jī)的狀態(tài),。

  顯示信號分R、G,、B信號,,H、V信號,。前三個(gè)信號為模擬信號,,用AD8183芯片控制,在這個(gè)片子的輸入輸出端要力175Ω的匹配電阻,,并且這個(gè)片子需要5V電源供電,。輸出選擇端在U2的223腳SEL,當(dāng)SEL端接地時(shí),,A路輸出,,否則B路輸出。H,、V信號由54LS157控制,,這是四組2選1的數(shù)據(jù)選擇器,它的選擇端在1腳,,1腳拉高B路輸出,,1腳拉低A路輸出。這兩個(gè)片子的選擇端接到一個(gè)雙刀雙擲繼電器,,對AD8183和154LS15 7進(jìn)行統(tǒng)一控制,。

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

  計(jì)算機(jī)啟動(dòng)時(shí),運(yùn)行BIOS,,檢測主板和各種外部硬件設(shè)備,,識別其設(shè)備類型,,并對它們進(jìn)行初始化。當(dāng)檢測鍵盤時(shí),,如果掃描不到,,且計(jì)算機(jī)在BIOS中設(shè)置PostBehavior->keyboard Errors->Report,計(jì)算機(jī)就會停止初始化,,顯示出錯(cuò)信息;否則,,認(rèn)為鍵盤不存在,跳過該設(shè)

  備,,計(jì)算機(jī)初始化結(jié)束后該設(shè)備不能用,。當(dāng)多臺計(jì)算機(jī)與一個(gè)鍵盤相連時(shí),必須給沒有與鍵盤物理連接的計(jì)算機(jī)建立虛擬的鍵盤,。這個(gè)虛擬外設(shè)能夠完成與計(jì)算機(jī)的數(shù)據(jù)交換,,幫助計(jì)算機(jī)順利通過BIOS檢測。同樣,,對于鼠標(biāo),,也必須建立虛擬鼠標(biāo)使計(jì)算機(jī)通過BIOS檢測。虛擬鍵盤和虛擬鼠標(biāo)這些虛擬外設(shè),,在計(jì)算機(jī)給出命令時(shí),,應(yīng)答命令,使計(jì)算機(jī)確信該外設(shè)存在,。

  BIOS檢測完成后,,計(jì)算機(jī)進(jìn)入系統(tǒng)初始化過程。在這個(gè)過程中,,操作系統(tǒng)要對外部設(shè)備的具體參數(shù)進(jìn)行設(shè)置,。鍵盤要設(shè)置機(jī)打速率/延遲(typematic rate/delay);鼠標(biāo)要設(shè)置采樣率(sample rate),讀取設(shè)備類型(不同類型的鼠標(biāo)有不同的ID),,設(shè)置分辨率(resolution,,設(shè)置為每mm多少個(gè)計(jì)數(shù)點(diǎn)counts/mm),,比例(scaling),,設(shè)置數(shù)據(jù)報(bào)告禁止/允許。同樣,,對于計(jì)算機(jī)必須建立虛擬外設(shè),,使系統(tǒng)確認(rèn)外設(shè)存在,以通過初始化,。

  當(dāng)上述過程完成后,,系統(tǒng)就順利通過了初始化。顯示器顯示一臺計(jì)算機(jī)的畫面,,該畫面對應(yīng)的計(jì)算機(jī)稱為前臺計(jì)算機(jī),,不被顯示畫面的計(jì)算機(jī)為后臺計(jì)算機(jī),。按下共享控制器上的切換按鈕,外設(shè)選擇一后臺計(jì)算機(jī),,把其置前成為前臺計(jì)算機(jī),,此時(shí),顯示器顯示該計(jì)算機(jī)的畫面,,鍵盤鼠標(biāo)響應(yīng)該計(jì)算機(jī),。原先的前臺計(jì)算機(jī)變?yōu)楹笈_工作。

  啟動(dòng)過程的程序流程圖見圖4,。

  

 

  本文用Keil C開發(fā),,它提供了豐富的數(shù)據(jù)類型,極大地增強(qiáng)了程序處理能力和靈活性,,它能夠自動(dòng)實(shí)現(xiàn)中斷服務(wù)程序的現(xiàn)場保護(hù)和恢復(fù),,目標(biāo)程序效率高、可移植性好,,是一種高級語言,,可讀性強(qiáng),維護(hù)使用方便靈活,。軟件由主程序和中斷服務(wù)子程序組成,。主程序完成系統(tǒng)的初始化和計(jì)算機(jī)命令的響應(yīng)、鍵盤鼠標(biāo)數(shù)據(jù)的發(fā)送,。中斷程序主要包括鍵盤熱鍵切換,、外部按鍵切換。軟件功能模塊結(jié)構(gòu)清晰可讀,。程序流程圖見圖4和圖5,。

  

 

  系統(tǒng)上電,外設(shè)共享控制器上電并開始對AT89S8252初始化,。包括對變量,、串口、定時(shí)器,、中斷控制,、看門狗進(jìn)行初始化操作。在這個(gè)過程中還需要對外部的計(jì)算機(jī)的PS/2外設(shè)進(jìn)行初始化應(yīng)答,。并且自動(dòng)掃描啟動(dòng)計(jì)算機(jī),,PS/2、VGA外設(shè)連接啟動(dòng)計(jì)算機(jī),,并顯示啟動(dòng)計(jì)算機(jī)的畫面,。

  當(dāng)完成BIOS檢測和操作系統(tǒng)檢測應(yīng)答后,單片機(jī)進(jìn)入主程序,執(zhí)行正常鍵盤鼠標(biāo)的操作功能,。讀取P1.1上鍵盤給主機(jī)的數(shù)據(jù)看是否有“切換前/后臺計(jì)算機(jī)”的熱鍵按下,,如果是,將切換;否則,,連接當(dāng)前計(jì)算機(jī),。

  3 設(shè)計(jì)小結(jié)

  本論文完成了主機(jī)1和主機(jī)2的鍵盤、鼠標(biāo),、顯示器幾種外設(shè)的共享,,解決了PS/2口、VGA接口共享時(shí)遇到的問題,。實(shí)物經(jīng)過篩選試驗(yàn),、環(huán)境適應(yīng)性試驗(yàn)、電磁兼容試驗(yàn),,性能良好,,安全可靠。

 

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。