• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 手機與無線通信 > 設計應用 > 基于TL16C554的水情中心站多路數據接收

    基于TL16C554的水情中心站多路數據接收

    作者: 時間:2005-07-27 來源:網絡 收藏
    摘要:自動測報系統中,常常要求和各路終端共享遙測,為此使用了TI公司的4通道異步收發器集成芯片對AT89S8252進行串口擴展,實現和各終端的多路與發送。

    關鍵詞: 多路 異步串行通信

    1 引 言

    自動測報系統一般由中心站、中繼站和遙測站組成。自動測報系統的中心站用來遙測站(或經中繼站轉發)的數據并進行解調、存儲和處理,通過數據庫和應用軟件實現防汛調度需求。其中中心站一般由天線、饋線、避雷器、無線接收機(電臺)、解碼器、工業控制計算機(或PC)組成。

    為了滿足水情、城市防洪計算機監控等遙測遙控系統中心站的數據交換的需要,常常要求幾個終端共享遙測數據,即要求把中心站獲取的數據資料通過無線或有線信道,傳送到各個共享數據的終端,而各個終端也可以與中心站進行數據交換。最為常用的是采用異步串行通信方式,實現中心站與各終端的多路數據的接收與發送。

    2 系統設計

    2.1

    在異步串行通信中,一般都要求設備的串行口要符合RS-232、RS-485等串行通信標準,并按該標準定義的信號進行信息控制和數據傳輸,能夠實現該功能的集成電路通常稱為UART,即通用異步接收器/發送器。利用At89s8252構成主從式多機串行通信系統時發現,主機At89s8252一方面要和從機通訊,另一方面還要和終端機通訊,此時便有必要進行串口擴展,同時多臺從機有可能同時與主機傳送數據,此時采用4通道異步收發器TL16C554顯然是一種較好的選擇。

    TL16C554是TI公司生產的4通道異步收發器集成芯片,它的每個通道能從外圍設備或MODEM接收數據,實現串-并轉換;同時它也可從CPU端接受數據,實現并-串轉換。在FIFO模式下,傳輸和接收前將數據緩沖為16字節數據包,減少了CPU的中斷數量。內部包含4片改良的16C550異步傳輸器件,使得串行I/O更加可靠,每個信道可實現串行和并行兩種連接方式的轉換,每個信道的狀態可以通過CPU的操作讀取,可以獲取操作情況或任何的錯誤狀態。三態輸出為雙向數據總線和控制總線提供TTL驅動能力、優先級中斷系統控制、可編程的串行接口特性。

    TL16C554的主要特點如下:(1)由4個帶有邏輯控制的TL16C550異步通信單元組成;(2)最高可達1 Mbps的波特率,具有可編程的波特率發生器,便于靈活選擇數據收發頻率;(3)具有16字節的收發FIFO 緩沖器;(4)具有可獨立控制的發送、接收、線路狀態和MODEM 狀態中斷;(5)具有全雙工的接收發送線路,可獨立進行接收發送控制;(6)全面的線路狀態報告功能;(7)充分分級的中斷系統控制;(8)三態TTL電平輸出。

    TL16C554有68引腳PLCC和80引腳TQFP兩種封裝形式,各個引腳的功能為:A0~A2為片內寄存器的選擇信號端;D0~D7為雙向8位數據線;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為發送準備好信號端(低電平有效)。

    2.2 系統框圖

    利用TL16C554實現中心站與各終端之間多路數據接收的系統框圖如圖1所示,數據采集器將采集到的水文數據存儲在單片機里,這里的主控MCU使用的是ATMEL公司的AT89S8252。主控MCU要完成的工作是將收集到的水文信息存儲到本地計算機,同時通過TL16C554的4個異步串行口向各個電臺發送,另外也可以通Internet向遠程計算機發送。四個電臺也能通過四個Modem向本地PC發送信息。

    2.3 硬件電路圖

    下面介紹一下中心站多路數據接收的硬件電路圖。圖3中,TL16C554的數據線D0~D7直接與AT89S8252的P0口相連;TL16C554的片內寄存器選擇線A2~A0經過地址鎖存器74HC373接AT89S8252的低位地址P0.2~P0.0,此時AT89S8252對TL16C554片內寄存器的讀寫操作同對外部RAM讀寫一樣。TL16C554 的片選CSA~CSD 分別接P1.0~P1.3,這樣可以通過對P1.0~P1.3的清零來選通通道A~D。TL16C554 的中斷線INTA~INTD 分與AT89S8252的P1.4~P1.7相連,并經過一個四輸入或非門接AT89S8252的INT0。這樣當多個串口同時使用時,任一個指定通信事件的出現都將使UART產生一次通信中斷,并觸發外部INT0中斷。在中斷服務子程序中,通過對P1.4~P1.7的檢測來確定中斷到底來自于哪個口,并完成相應的數據處理。TL16C554的IOR、IOW和RESET直接與AT89S8252的RD、WR和RESET相連,串行輸出口A通過調制解調器MC145442與電臺J1相連,由于B、C、D口與電臺連接方式雷同,故省略未畫出。

    3 軟件設計

    系統軟件設計的重要部分就是TL16C554 的初始化。系統上電后,應分別初始化要使用的每一個通道,并對其內部13個寄存器的讀寫、波特率、數據幀格式以及FIFO 控制等進行設置。下面是TL16C554 的初始化程序:

    ini16554 :

    mov dptr , # 0fffbh ;指向線性控制寄存器

    mov a , # 80h

    movx @dptr ,a

    anl dpl , # 0f8h

    mov a , # 0ch

    movx @dptr ,a ;送波特率常數9600

    inc dpl

    clr a

    movx dptr ,a ;送波特率常數高位00

    inc dpl

    inc dpl

    mov dptr , # 0fffbh

    mov a , # 03h ;設置數據幀格式,數據位8 位,1個停止位

    movx @dptr ,a

    inc dpl ;modem 控制器bit3 控制中斷

    正確產生

    mov a , # 02bh

    movx @dptr ,a anl dpl , # 0f8h

    orl dpl , # 02h

    mov a , # 083h

    movx @dptr ,a ;接收FIFO 有效, 8個字節一次中斷

    anl dpl , # 0f8h

    orl dpl , # 01h ; IER 中斷允許控制器

    mov a , # 001h

    movx @dptr ,a ;接收緩沖區有數中斷

    ret

    4 結束語

    實驗表明,上述軟硬件設計可以實現四路串行信號的可靠及時異步收發服務。而且利用TL16C554及AT89S8252構成的串口擴展系統,硬件接口簡單,使用經濟,并且數據傳輸距離可遠可近。這種主從式多機串行通信系統已被應用到實際系統中,該電路穩定可靠,具有一定的應用價值。



    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 西青区| 娄底市| 望江县| 五台县| 柳州市| 共和县| 武安市| 清徐县| 磐石市| 敖汉旗| 阿瓦提县| 隆林| 苏尼特左旗| 正阳县| 南陵县| 藁城市| 泰宁县| 江华| 山阴县| 鄂伦春自治旗| 竹溪县| 涟水县| 芜湖县| 台山市| 邵东县| 宾川县| 白银市| 明星| 平舆县| 三河市| 株洲县| 当涂县| 和硕县| 鹰潭市| 启东市| 玛曲县| 怀宁县| 富蕴县| 汉川市| 沾化县| 马鞍山市|