久久久久久久麻豆,中日韩av在线,麻豆av在线免费,中文字幕二区三区,欧美日韩视频一区二区,亚洲欧美日韩在线一区,国产无毒不卡

RS 232串口多方控制的實(shí)現(xiàn)


RS 232串行通訊是各類工程應(yīng)用中經(jīng)常使用的通訊方式之一,但其點(diǎn)對(duì)點(diǎn)的通訊方式經(jīng)常會(huì)在使用中帶來(lái)不便。

       一般的RS 232通訊應(yīng)用,經(jīng)常由一個(gè)控制方控制一臺(tái)設(shè)備,或采用菊花鏈方式連接,根據(jù)通訊地址的不同,由一個(gè)控制方控制多臺(tái)設(shè)備。但在工程應(yīng)用中卻經(jīng)常會(huì)遇到2臺(tái)或2臺(tái)以上的PC機(jī)需要控制同一臺(tái)設(shè)備,即由多個(gè)控制方控制一臺(tái)設(shè)備的情況,而為受控設(shè)備僅具備1個(gè)RS 232串口,這時(shí)需要有一臺(tái)能夠?qū)崿F(xiàn)RS 232串口多方控制的設(shè)備,本文針對(duì)這種設(shè)備的其中一種比較先進(jìn)的設(shè)計(jì)方法進(jìn)行說(shuō)明。該設(shè)備不僅成本低,實(shí)現(xiàn)方法簡(jiǎn)單,而且功能可擴(kuò)展,在工程中具有較強(qiáng)的適用性,能滿足多種復(fù)雜控制的需要。

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

       在控制系統(tǒng)中,控制方和被控設(shè)備的通訊協(xié)議和控制程序是固定的,在設(shè)計(jì)中不能改變,只能通過(guò)一臺(tái)中間設(shè)備,即串口擴(kuò)展設(shè)備,對(duì)控制方的命令進(jìn)行一定的解析處理,從而實(shí)現(xiàn)控制方和被控方之間的協(xié)調(diào)應(yīng)答。本文選用AT89S52單片機(jī)作為串口擴(kuò)展設(shè)備的核心控制器,系統(tǒng)的硬件原理圖如圖1所示。

       系統(tǒng)中的AT89S52單片機(jī)全兼容Intel公司MCS51系列單片機(jī)的結(jié)構(gòu)和指令,片上具有8 kB的可擦除在線可編程存儲(chǔ)器[1]。串口擴(kuò)展部分采用TI公司的TL16C554[2],可擴(kuò)展4個(gè)串口;該芯片直接與單片機(jī)連接,根據(jù)設(shè)定可自動(dòng)接收來(lái)自4個(gè)串口的數(shù)據(jù)并將其存儲(chǔ)在內(nèi)置的FIFO中,并給出中斷信號(hào),可使單片機(jī)通過(guò)外部中斷進(jìn)行處理;同時(shí),可將單片機(jī)寫入的數(shù)據(jù)通過(guò)指定的串口發(fā)送。注:通過(guò)對(duì)其寄存器的設(shè)置可實(shí)現(xiàn)更多的功能。使用MAX202進(jìn)行TTL電平到RS 232電平的轉(zhuǎn)換。若考慮設(shè)備間不共地的問(wèn)題,可在MAX202與TL16C554之間,以及MAX202與單片機(jī)之間加光隔進(jìn)行保護(hù)。

       系統(tǒng)中把單片機(jī)本身的串口作為主串口,用于連接被控設(shè)備,另外4個(gè)擴(kuò)展串口,用于連接4個(gè)控制方。當(dāng)多個(gè)控制方同時(shí)連續(xù)發(fā)送較多的命令數(shù)據(jù)時(shí),為了保證對(duì)所有數(shù)據(jù)的完整接收,需要將沒有來(lái)得及處理的數(shù)據(jù)做暫時(shí)的存儲(chǔ)。AT89S52單片機(jī)本身帶有256 B內(nèi)置的RAM,在很多情況下并不能滿足使用需要。DALLAS公司的DSl225含8 k×8 b非易失性SRAM,可作為外置的擴(kuò)展存儲(chǔ)器件。該器件的讀寫速度達(dá)到70 ns,完全能夠滿足對(duì)數(shù)據(jù)的即時(shí)讀寫[3]。

       2程序設(shè)計(jì)

       2.1數(shù)據(jù)存儲(chǔ)空間的分配

       程序設(shè)計(jì)時(shí),首先應(yīng)對(duì)數(shù)據(jù)空間進(jìn)行規(guī)劃。在該系統(tǒng)中,根據(jù)需要,從AT89S52內(nèi)部8 k的數(shù)據(jù)存儲(chǔ)器中劃分出5塊區(qū)域,做5個(gè)FIFO數(shù)據(jù)隊(duì)列,每個(gè)FIFO隊(duì)列l(wèi) 536 B空間,分別用于存儲(chǔ)來(lái)自5個(gè)端口的數(shù)據(jù)。剩下的512 B作數(shù)據(jù)存儲(chǔ)的備用空間。

       2.2 程序模塊

       程序采用模塊化的設(shè)計(jì)思想,以方便修改、移植和檢錯(cuò)。整個(gè)控制程序由主程序、中斷、命令處理模塊、回送處理模塊4部分組成,實(shí)現(xiàn)原理如下:

      (1)中斷

       串行口中斷和外部中斷,用于接收來(lái)自5個(gè)端口的數(shù)據(jù),分端口將接收到的數(shù)據(jù)存入對(duì)應(yīng)的FIFO,這里對(duì)數(shù)據(jù)不做其他的判斷或處理,盡量用最少的指令完成,減少中斷時(shí)間。以避免多個(gè)串口同時(shí)受到大量數(shù)據(jù)時(shí),發(fā)生數(shù)據(jù)丟失。

       (2)命令處理模塊

       針對(duì)控制方端口FIFO,若控制方FIFO中存在數(shù)據(jù),根據(jù)協(xié)議對(duì)數(shù)據(jù)進(jìn)行判斷,直接清除不符合協(xié)議的數(shù)據(jù);對(duì)符合協(xié)議的命令數(shù)據(jù),判斷完整條命令后,通過(guò)受控方端口向受控設(shè)備轉(zhuǎn)發(fā)整條命令,然后清掉FIFO中此條命令,如此逐步清空FIFO。

        (3)回送處理模塊

       針對(duì)受控方端口FIFO,若受控方FIFO中存在數(shù)據(jù),與"命令處理模塊"類似,根據(jù)協(xié)議對(duì)數(shù)據(jù)進(jìn)行判斷,清除不符合協(xié)議的數(shù)據(jù),對(duì)符合協(xié)議的回送數(shù)據(jù),判斷完整后,同時(shí)通過(guò)4個(gè)控制方端口向控制設(shè)備回送數(shù)據(jù),然后清掉FIFO中此條命令,如此逐步清空FIFO。

        (4)主程序模塊

        在主程序中,循環(huán)判斷5個(gè)FIFO中是否有數(shù)據(jù)。若控制方FIFO存在數(shù)據(jù),進(jìn)入命令處理模塊,清空FIFO后返回主程序,繼續(xù)循環(huán);若受控方FIFO存在數(shù)據(jù),進(jìn)入回送處理模塊,清空FIFO后返回主程序,繼續(xù)循環(huán)。這樣,每個(gè)控制方發(fā)送的命令,都會(huì)在FIFO中有短暫的緩沖,在多控制方同時(shí)發(fā)送命令時(shí),本設(shè)備可分先后將所有收到的命令逐個(gè)發(fā)送到受控設(shè)備,不會(huì)因發(fā)生沖突而造成數(shù)據(jù)丟失。對(duì)于受控設(shè)備回送的數(shù)據(jù),一般包含了工作狀態(tài)及配置等信息,需要同時(shí)回送到各個(gè)控制設(shè)備,使各個(gè)控制設(shè)備能夠及時(shí)做相應(yīng)的調(diào)整。

        3功能擴(kuò)展

        按照上述方法設(shè)計(jì)的該系統(tǒng)不僅適用于多控制方控制一個(gè)串口情況,還可根據(jù)工程中遇到的各種需求進(jìn)行功能擴(kuò)展。

        (1)一個(gè)控制設(shè)備和多個(gè)受控設(shè)備

        雖然,若被控的受控設(shè)備提供的通訊協(xié)議包含地址,可通過(guò)菊花鏈方式分別控制,但在工程應(yīng)用中有相當(dāng)多的設(shè)備協(xié)議中并不包含地址。如果要實(shí)現(xiàn)分別控制,可使用本設(shè)備,對(duì)每個(gè)下位端口分別分配一個(gè)虛擬地址,在命令處理模塊中加入地址判斷,使收到的命令僅向?qū)?yīng)地址的下位端口發(fā)送。

        (2)多個(gè)控制設(shè)備和多個(gè)受控設(shè)備

       在這種情況下,普通的連接方法不能滿足多設(shè)備之間協(xié)調(diào)通訊的需要。若使用本設(shè)備,只需在命令處理模塊和回送處理模塊中,修改相應(yīng)的端口數(shù)目即可。控制方和受控方的功能不變。

        (3)在控制設(shè)備和受控設(shè)備中存在著多種不同的通訊協(xié)議。此時(shí),可利用本設(shè)備,添加協(xié)議轉(zhuǎn)換模塊,使之具備多種協(xié)議的解析功能,在收和發(fā)之間進(jìn)行對(duì)應(yīng)的協(xié)議轉(zhuǎn)換,這種方法,比工程中通常采用更改控制設(shè)備的控制程序的方法更簡(jiǎn)單、方便。

       (4)上述幾種情況并存。尤其是控制設(shè)備與受控設(shè)備協(xié)議不同,而多個(gè)受控設(shè)備協(xié)議沒有地址,且需要分別控制時(shí)。本設(shè)備也可對(duì)每個(gè)受控方端口分別分配一個(gè)虛擬地址來(lái)實(shí)現(xiàn)分控,并在收發(fā)中間進(jìn)行通訊協(xié)議的轉(zhuǎn)換。

       4 結(jié) 語(yǔ)

       本文設(shè)計(jì)的串口擴(kuò)展設(shè)備,不但成本低、設(shè)計(jì)簡(jiǎn)單,而且可滿足工程上串口應(yīng)用的多種不同需要,具有較高的使用價(jià)值,對(duì)工程技術(shù)人員具有一定的參考意義。

COPYRIGHT(C) 2011 廈門永宏亞得機(jī)電科技有限公司版權(quán)所有(閩ICP備05025945號(hào)) ALL RIGHTS RESERVED?

電話: 0592-5190891 傳真: 0592-5190720 E-Mail: E-mail:yade8895@163.com
地址: 廈門市海滄區(qū)興港六里17號(hào)2607室 郵編:361009 聯(lián)系人:翟先生