基于雙向透明串口擴(kuò)展技術(shù)的多參數(shù)監(jiān)護(hù)儀設(shè)計(jì)方案
1.2硬件設(shè)計(jì)方案
串口擴(kuò)展模塊主要由2部分組成:?jiǎn)纹瑱C(jī)AT89C2051及模擬開(kāi)關(guān)CD4052、雙4通道模擬開(kāi)關(guān)。
串口擴(kuò)展模塊拓?fù)浣Y(jié)構(gòu)圖如圖2所示,其中虛線框內(nèi)為串口擴(kuò)展模塊的主要部分。
2 通信協(xié)議設(shè)計(jì)
2.1數(shù)據(jù)由用戶設(shè)備發(fā)送到HOST端
由于各模塊是分時(shí)復(fù)用的,為了避免用戶設(shè)備之間發(fā)生競(jìng)爭(zhēng),需要AT89C2051對(duì)4個(gè)用戶設(shè)備通道進(jìn)行仲裁,本文采用以下方案。
4個(gè)用戶設(shè)備各用一根I/O口線分別與AT89C2051的P1.0~P1.3引腳相連,同時(shí)還與一個(gè)4輸入或非門相連,將某根或某幾根I/O口線置高電平并經(jīng)過(guò)該4輸入或非門來(lái)觸發(fā)中斷,通知AT89C2051有用戶設(shè)備請(qǐng)求向HOST終端發(fā)送數(shù)據(jù),同時(shí)AT89C2051進(jìn)行用戶設(shè)備號(hào)查詢。AT89C2051收到請(qǐng)求信號(hào)后,首先判斷 HOST端與其他用戶設(shè)備之間的數(shù)據(jù)發(fā)送是否結(jié)束,若結(jié)束,則根據(jù)仲裁機(jī)制通過(guò)與各用戶設(shè)備相連的P1.4~P1.7引腳置高給出應(yīng)答響應(yīng)信號(hào),同時(shí) AT89C2051根據(jù)中斷查詢到的用戶設(shè)備號(hào)對(duì)P3.4和P3.5引腳進(jìn)行設(shè)置來(lái)控制CD4052模擬開(kāi)關(guān)選通對(duì)應(yīng)通道,用戶設(shè)備收到應(yīng)答響應(yīng)信號(hào)后就開(kāi)始發(fā)送數(shù)據(jù);若未結(jié)束,則屏蔽此次中斷,直到數(shù)據(jù)發(fā)送結(jié)束才開(kāi)中斷。用戶設(shè)備數(shù)據(jù)發(fā)送結(jié)束時(shí)則將通過(guò)一個(gè)4輸入或非門來(lái)觸發(fā)中斷,通知AT89C2051此次數(shù)據(jù)發(fā)送結(jié)束。在響應(yīng)數(shù)據(jù)發(fā)送請(qǐng)求時(shí)會(huì)涉及到多個(gè)用戶設(shè)備請(qǐng)求,從而需要AT89C2051進(jìn)行仲裁。仲裁機(jī)制如下:心電和血氧模塊是50 ms定時(shí)發(fā)送數(shù)據(jù),而血壓模塊需要HOST端發(fā)來(lái)啟動(dòng)測(cè)量命令后才向HOST端發(fā)送血壓數(shù)據(jù),因此需要將血壓模塊發(fā)送數(shù)據(jù)的請(qǐng)求設(shè)置為較高優(yōu)先級(jí),才能保證血壓數(shù)據(jù)正確及時(shí)地發(fā)送到HOST端,而心電和血氧模塊設(shè)置為低優(yōu)先級(jí)輪流發(fā)送。
2.2數(shù)據(jù)由HOST端發(fā)送到用戶設(shè)備
為了使HOST端的數(shù)據(jù)能夠及時(shí)準(zhǔn)確地發(fā)送到各個(gè)用戶設(shè)備,就需要和AT89C2051之間定義好通信協(xié)議。其協(xié)議如下。
AT89C2051始終監(jiān)視HOST終端發(fā)出的信息,一旦收到HOST終端發(fā)出的串口選擇命令,如表1所示,立即對(duì)P3.4和P3.5引腳進(jìn)行設(shè)置來(lái)控制 CD4052模擬開(kāi)關(guān)選通對(duì)應(yīng)通道并控制相應(yīng)的LED燈以作指示。串口選擇后, HOST終端需要根據(jù)AT89C2051指令執(zhí)行和模擬開(kāi)關(guān)切換時(shí)間延遲一定時(shí)間后再開(kāi)始向?qū)?yīng)用戶設(shè)備發(fā)送數(shù)據(jù)/命令。HOST端數(shù)據(jù)發(fā)送結(jié)束則由接收端的用戶設(shè)備向AT89C2051發(fā)送中斷結(jié)束信號(hào),其結(jié)束處理與數(shù)據(jù)由用戶設(shè)備發(fā)送到HOST端的結(jié)束處理相同。如果同時(shí)有用戶設(shè)備向 AT89C2051請(qǐng)求發(fā)送數(shù)據(jù)到HOST端,則優(yōu)先響應(yīng)HOST端的發(fā)送數(shù)據(jù)/命令請(qǐng)求,即HOST端的發(fā)送數(shù)據(jù)/命令請(qǐng)求的優(yōu)先級(jí)最高。
評(píng)論