基于TL16C554的水情中心站多路數(shù)據(jù)接收
關(guān)鍵詞:中心站 多路數(shù)據(jù) TL16C554 異步串行通信
1 引 言
水情自動(dòng)測(cè)報(bào)系統(tǒng)一般由中心站、中繼站和遙測(cè)站組成。水情自動(dòng)測(cè)報(bào)系統(tǒng)的中心站用來(lái)接收遙測(cè)站(或經(jīng)中繼站轉(zhuǎn)發(fā))的數(shù)據(jù)并進(jìn)行解調(diào)、存儲(chǔ)和處理,通過(guò)數(shù)據(jù)庫(kù)和應(yīng)用軟件實(shí)現(xiàn)防汛調(diào)度需求。其中中心站一般由接收天線、饋線、避雷器、無(wú)線接收機(jī)(電臺(tái))、解碼器、工業(yè)控制計(jì)算機(jī)(或PC)組成。
為了滿(mǎn)足水情、城市防洪計(jì)算機(jī)監(jiān)控等遙測(cè)遙控系統(tǒng)中心站的數(shù)據(jù)交換的需要,常常要求幾個(gè)終端共享遙測(cè)數(shù)據(jù),即要求把中心站獲取的數(shù)據(jù)資料通過(guò)無(wú)線或有線信道,傳送到各個(gè)共享數(shù)據(jù)的終端,而各個(gè)終端也可以與中心站進(jìn)行數(shù)據(jù)交換。最為常用的是采用異步串行通信方式,實(shí)現(xiàn)中心站與各終端的多路數(shù)據(jù)的接收與發(fā)送。
2 系統(tǒng)設(shè)計(jì)
2.1 TL16C554
在異步串行通信中,一般都要求設(shè)備的串行口要符合RS-232、RS-485等串行通信標(biāo)準(zhǔn),并按該標(biāo)準(zhǔn)定義的信號(hào)進(jìn)行信息控制和數(shù)據(jù)傳輸,能夠?qū)崿F(xiàn)該功能的集成電路通常稱(chēng)為UART,即通用異步接收器/發(fā)送器。利用At89s8252構(gòu)成主從式多機(jī)串行通信系統(tǒng)時(shí)發(fā)現(xiàn),主機(jī)At89s8252一方面要和從機(jī)通訊,另一方面還要和終端機(jī)通訊,此時(shí)便有必要進(jìn)行串口擴(kuò)展,同時(shí)多臺(tái)從機(jī)有可能同時(shí)與主機(jī)傳送數(shù)據(jù),此時(shí)采用4通道異步收發(fā)器TL16C554顯然是一種較好的選擇。
TL16C554是TI公司生產(chǎn)的4通道異步收發(fā)器集成芯片,它的每個(gè)通道能從外圍設(shè)備或MODEM接收數(shù)據(jù),實(shí)現(xiàn)串-并轉(zhuǎn)換;同時(shí)它也可從CPU端接受數(shù)據(jù),實(shí)現(xiàn)并-串轉(zhuǎn)換。在FIFO模式下,傳輸和接收前將數(shù)據(jù)緩沖為16字節(jié)數(shù)據(jù)包,減少了CPU的中斷數(shù)量。內(nèi)部包含4片改良的16C550異步傳輸器件,使得串行I/O更加可靠,每個(gè)信道可實(shí)現(xiàn)串行和并行兩種連接方式的轉(zhuǎn)換,每個(gè)信道的狀態(tài)可以通過(guò)CPU的操作讀取,可以獲取操作情況或任何的錯(cuò)誤狀態(tài)。三態(tài)輸出為雙向數(shù)據(jù)總線和控制總線提供TTL驅(qū)動(dòng)能力、優(yōu)先級(jí)中斷系統(tǒng)控制、可編程的串行接口特性。
TL16C554的主要特點(diǎn)如下:(1)由4個(gè)帶有邏輯控制的TL16C550異步通信單元組成;(2)最高可達(dá)1 Mbps的波特率,具有可編程的波特率發(fā)生器,便于靈活選擇數(shù)據(jù)收發(fā)頻率;(3)具有16字節(jié)的收發(fā)FIFO 緩沖器;(4)具有可獨(dú)立控制的發(fā)送、接收、線路狀態(tài)和MODEM 狀態(tài)中斷;(5)具有全雙工的接收發(fā)送線路,可獨(dú)立進(jìn)行接收發(fā)送控制;(6)全面的線路狀態(tài)報(bào)告功能;(7)充分分級(jí)的中斷系統(tǒng)控制;(8)三態(tài)TTL電平輸出。
TL16C554有68引腳PLCC和80引腳TQFP兩種封裝形式,各個(gè)引腳的功能為:A0~A2為片內(nèi)寄存器的選擇信號(hào)端;D0~D7為雙向8位數(shù)據(jù)線;IOR為讀選通端(低電平有效);IOW為寫(xiě)選通端(低電平有效);INTA~I(xiàn)NTD為中斷A、B、C、D(高電平有效);CSA~CSD為片選A、B、C、D(低電平有效);XTAL1、XTAL2為外部時(shí)鐘端,該兩腳可接晶振或外部時(shí)鐘信號(hào);RXA~RXD為串行輸入A、B、C、D端;TXA~TXD為串行輸出A、B、C、D端;RXRDY為接收準(zhǔn)備好信號(hào)端(低電平有效);TXRDY為發(fā)送準(zhǔn)備好信號(hào)端(低電平有效)。
2.2 系統(tǒng)框圖
利用TL16C554實(shí)現(xiàn)中心站與各終端之間多路數(shù)據(jù)接收的系統(tǒng)框圖如圖1所示,數(shù)據(jù)采集器將采集到的水文數(shù)據(jù)存儲(chǔ)在單片機(jī)里,這里的主控MCU使用的是ATMEL公司的AT89S8252。主控MCU要完成的工作是將收集到的水文信息存儲(chǔ)到本地計(jì)算機(jī),同時(shí)通過(guò)TL16C554的4個(gè)異步串行口向各個(gè)電臺(tái)發(fā)送,另外也可以通Internet向遠(yuǎn)程計(jì)算機(jī)發(fā)送。四個(gè)電臺(tái)也能通過(guò)四個(gè)Modem向本地PC發(fā)送信息。
2.3 硬件電路圖
下面介紹一下中心站多路數(shù)據(jù)接收的硬件電路圖。圖3中,TL16C554的數(shù)據(jù)線D0~D7直接與AT89S8252的P0口相連;TL16C554的片內(nèi)寄存器選擇線A2~A0經(jīng)過(guò)地址鎖存器74HC373接AT89S8252的低位地址P0.2~P0.0,此時(shí)AT89S8252對(duì)TL16C554片內(nèi)寄存器的讀寫(xiě)操作同對(duì)外部RAM讀寫(xiě)一樣。TL16C554 的片選CSA~CSD 分別接P1.0~P1.3,這樣可以通過(guò)對(duì)P1.0~P1.3的清零來(lái)選通通道A~D。TL16C554 的中斷線INTA~I(xiàn)NTD 分與AT89S8252的P1.4~P1.7相連,并經(jīng)過(guò)一個(gè)四輸入或非門(mén)接AT89S8252的INT0。這樣當(dāng)多個(gè)串口同時(shí)使用時(shí),任一個(gè)指定通信事件的出現(xiàn)都將使UART產(chǎn)生一次通信中斷,并觸發(fā)外部INT0中斷。在中斷服務(wù)子程序中,通過(guò)對(duì)P1.4~P1.7的檢測(cè)來(lái)確定中斷到底來(lái)自于哪個(gè)口,并完成相應(yīng)的數(shù)據(jù)處理。TL16C554的IOR、IOW和RESET直接與AT89S8252的RD、WR和RESET相連,串行輸出口A通過(guò)調(diào)制解調(diào)器MC145442與電臺(tái)J1相連,由于B、C、D口與電臺(tái)連接方式雷同,故省略未畫(huà)出。
3 軟件設(shè)計(jì)
系統(tǒng)軟件設(shè)計(jì)的重要部分就是TL16C554 的初始化。系統(tǒng)上電后,應(yīng)分別初始化要使用的每一個(gè)通道,并對(duì)其內(nèi)部13個(gè)寄存器的讀寫(xiě)、波特率、數(shù)據(jù)幀格式以及FIFO 控制等進(jìn)行設(shè)置。下面是TL16C554 的初始化程序:
ini16554 :
mov dptr , # 0fffbh ;指向線性控制寄存器
mov a , # 80h
movx @dptr ,a
anl dpl , # 0f8h
mov a , # 0ch
movx @dptr ,a ;送波特率常數(shù)9600
inc dpl
clr a
movx dptr ,a ;送波特率常數(shù)高位00
inc dpl
inc dpl
mov dptr , # 0fffbh
mov a , # 03h ;設(shè)置數(shù)據(jù)幀格式,數(shù)據(jù)位8 位,1個(gè)停止位
movx @dptr ,a
inc dpl ;modem 控制器bit3 控制中斷
正確產(chǎn)生
mov a , # 02bh
movx @dptr ,a anl dpl , # 0f8h
orl dpl , # 02h
mov a , # 083h
movx @dptr ,a ;接收FIFO 有效, 8個(gè)字節(jié)一次中斷
anl dpl , # 0f8h
orl dpl , # 01h ; IER 中斷允許控制器
mov a , # 001h
movx @dptr ,a ;接收緩沖區(qū)有數(shù)中斷
ret
4 結(jié)束語(yǔ)
實(shí)驗(yàn)表明,上述軟硬件設(shè)計(jì)可以實(shí)現(xiàn)四路串行信號(hào)的可靠及時(shí)異步收發(fā)服務(wù)。而且利用TL16C554及AT89S8252構(gòu)成的串口擴(kuò)展系統(tǒng),硬件接口簡(jiǎn)單,使用經(jīng)濟(jì),并且數(shù)據(jù)傳輸距離可遠(yuǎn)可近。這種主從式多機(jī)串行通信系統(tǒng)已被應(yīng)用到實(shí)際系統(tǒng)中,該電路穩(wěn)定可靠,具有一定的應(yīng)用價(jià)值。
評(píng)論