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