關 閉

        新聞中心

        EEPW首頁 > 工控自動化 > 設計應用 > 實現(xiàn)基于TCP/IP的多串口轉換網關

        實現(xiàn)基于TCP/IP的多串口轉換網關

        ——
        作者:東華理工學院 劉通良 周建勇 潘仕彬 何為民 時間:2007-01-26 來源:《單片機與嵌入式系統(tǒng)應用》 收藏

        隨著企業(yè)規(guī)模的擴大和internet技術的廣泛普及,全國各個領域的不同企業(yè)已經對"上設備聯(lián)網"達到共識,而在工業(yè)控制和通信設備中,更多的卻是符合rs232標準的串口設備,如何將多個串行口的數(shù)據(jù)轉發(fā)到網絡上,實現(xiàn)設備的遠程控制,數(shù)據(jù)的遠程傳輸便成了一個亟待解決的問題,同時,考慮到成本問題,以往設備又不安可能全部淘汰,因此,本文提出了一種基于tcp/ip的多串口轉換網關,可以從根本上解決這一難題。
        多串口轉換網關使得串口數(shù)據(jù)流到以太網數(shù)據(jù)流的傳輸成為可能,它能連接多個rs232串口設備,并串口數(shù)據(jù)進行選擇和處理,把rs323借口子數(shù)據(jù)流轉化成以太網數(shù)據(jù)流,這樣就可以進行網絡化的數(shù)據(jù)處理,實現(xiàn)串行數(shù)據(jù)的網絡化,采用此種方案,無需淘汰原有串口設備,多臺設備可同時入網,既可以提高設備利用率,又節(jié)約組網費用,還可以在已有的網絡基礎上簡化布線復雜度,采用串口擴展芯片gm8123可實現(xiàn)低成本、較高速度、控制簡單的多串口方案。
        1 系統(tǒng)應用方案
        在企業(yè)自動化系統(tǒng)中,上層企業(yè)管理層和生產監(jiān)控層一般都采用以太網和pc機,而下層車間現(xiàn)場多是cs232串口的測控設備,本文提出的多串口轉換網關,能夠方便實現(xiàn)上下兩層的溝道。
        可連接多臺串口設備是本系統(tǒng)最大的特點,避免了為每臺設備配置一個網關帶來的成本高、組網復雜的弊端。
        2 系統(tǒng)結構
        tcp/ip協(xié)議由應用層、udp層、ip層和數(shù)據(jù)鏈路層組成,為了實現(xiàn)透明傳輸,增加應用進程協(xié)議層--串口層,串口層由串口鏈路層和串口網絡層構成,網關在串口層構建,同時解析rs232數(shù)據(jù)包,并作為tcp/ip網絡應用層的數(shù)據(jù)傳輸,多串口網關由tcp/ip協(xié)議轉換模塊和多串口收發(fā)控制模塊組成,結構如圖1所示。

        本文引用地址:http://www.104case.com/article/21222.htm

        (1)tcp/ip協(xié)議轉換模塊

        它是一個模型的以太網接入模塊,由微控制器(mcu)、網卡接口芯片,eeprom 93c46、片外512kb sram芯片is61lv5128以及輔助元件構成,微控制器控制網卡接口芯片進行網絡通信,實現(xiàn)地址解析協(xié)議(arp)、internet控制報文協(xié)議(icmp)、ip協(xié)議、用戶數(shù)據(jù)報協(xié)議(udp)等協(xié)議的解析和封包。將以太網發(fā)送緩沖區(qū)的串口幀裝在udp包中,并傳給ip層;同時,接收以太網數(shù)據(jù)幀并向上層層解包。分離應用層數(shù)據(jù),然后數(shù)據(jù)的解析處理交由多串口發(fā)送模塊完成,實現(xiàn)rs232串口流與以太網端口流的透明轉換。

        (2)多串口收發(fā)控制模塊

        實現(xiàn)多個rs232串口數(shù)據(jù)流的收/發(fā)控制,包括微控制器,串口擴展芯片(gm1823),max232等元件,微控制器控制gm8123完成多串口數(shù)據(jù)收發(fā),接收多個串口源數(shù)據(jù),封裝后寫入以太網發(fā)送緩沖區(qū)打包傳輸;同時,接收以太網應用層的數(shù)據(jù),解析并發(fā)送給測控設備,它不關心通信數(shù)據(jù)的具體意義,只負責接收/發(fā)送,封裝/拆封串口幀,提供通用接口。

        3 多串口實現(xiàn)

        3.1 實現(xiàn)方案--采用串口擴展芯片

        在微控制器中有2個uart的基礎上,采用gm8123,系統(tǒng)能提供2組(uart0,uart1)共4個串行口(com1,com2,com3,com4)利用兩級優(yōu)先級控制uart0和uart1的中斷請求且允許嵌套。在uart0的中斷例程內部,通過查詢方式確定數(shù)據(jù)源是哪個子串口。

        當兩組串口同時有數(shù)據(jù)請求時,首先,mcu的中斷機制判斷中斷請求的優(yōu)先級,對優(yōu)先級高的中斷請求優(yōu)先響應。系統(tǒng)對優(yōu)先級分配:uart0為2,uart1為1,即mcu優(yōu)先響應uart0的中斷請求。當uart0的3個子口同時有數(shù)據(jù)請求時,通過輪詢方式,對各個子口予以響應,即按照子口號的地址由小到大進行響應。這樣,就形成了2級中斷和4個串口的多串口實現(xiàn)方案。

        3.2 多串口擴展芯片--gm8123

        gm8123可將一個全雙工的標準串口擴展成3個標準串口,并能通過外部引腳控制,選用該芯片是基于它的自身特點:

        (1)采用寫控制字的方式對芯片進行控制,控制簡單;
        (2)數(shù)據(jù)格式10位或11位可選;
        (3)擁有3個子串口,且各子串口波特率可調(統(tǒng)一調節(jié));
        (4)兩種模式(單道模式和多道模式)可通過1根引腳控制;
        (5)在多通道工作模式下,各子串口的波特率等于母串口波特率的4分頻;
        (6)在多通道的工作模式下,接收時地址線sradd1-0向mcu返回接收子通道的地址,mcu接收到母串口送來的數(shù)據(jù)后,就可根據(jù)sradd1-0狀態(tài)判斷數(shù)據(jù)是哪一個子串口送來的,發(fā)送時先由mcu選擇子串口再向母串口發(fā)送數(shù)據(jù);
        (7)與標準串口通信格式兼容,ttl電平輸出;
        (8)每位采樣16次,提高數(shù)據(jù)正確性;
        (9)寬工作電壓為2.3-6.7v。
        (10)輸入地址引腳有50-80kω下拉電阻,其他輸入引腳有50-80kω上拉電阻(osci除外)。

        3.3 各串口的特點及應用分析

        系統(tǒng)中兩組串口利用的資源不同,在速率上它們之間存在差異,串口com1,com2和com3通過gm8123擴展微控制器的uart0得到,適合傳輸速率較慢,數(shù)據(jù)量小的設備;com4是微控制器的uart1,相對于第一組串口能很好的適應傳輸速率較快的設備。

        gm8123工作在多道模式,各子串口必須設置統(tǒng)一波特率,不使用于各串口設備工作波特率不一致,又要求同時工作的場合,這也是該芯片的不足之處,實際應用中,com1,com2和com3應該連接類型、速率相同的設備,com4的波特率可以根據(jù)需求具體配置,這樣,系統(tǒng)的4個串口從速率上可以形成兩種應用方案:一是4個串口配置相同波特率;二是每1組配置1個波特率值。

        綜上所述,系統(tǒng)提供了由2組4個串口、兩級優(yōu)先級控制,2種波特率配置方案構成的多串口實現(xiàn)方法。

        4 工作原理

        4.1 幀的統(tǒng)一化

        系統(tǒng)4個串口源的數(shù)據(jù)要作為以太網幀的一部分,為了向設備提供透明的接口和區(qū)分數(shù)據(jù)源,需要制定統(tǒng)一的幀格式,幀格式如圖2所示,其中串口號字段用來區(qū)分數(shù)據(jù)源;幀頭、幀尾作為一個串口幀的起始分界(可自定義);數(shù)據(jù)部分是來自串口的原始數(shù)據(jù)流,同樣,網口發(fā)送數(shù)據(jù)也要有一致的幀格式,如圖3所示,顯然,串口幀是作為udp層的協(xié)議數(shù)據(jù)進行傳輸?shù)摹?br>

        4.2 系統(tǒng)數(shù)據(jù)流向分析

        多串口轉換網關,實現(xiàn)多個串口和一個網口間的數(shù)據(jù)轉換,關緊是多個串口數(shù)據(jù)如何送到網絡上,網絡數(shù)據(jù)又怎樣轉到多個串口,其中,串口鏈路層完成串口數(shù)據(jù)收發(fā)功能,串口網絡層作為tcp/ip應用層的一部分,實現(xiàn)串口幀的封裝,發(fā)送是入協(xié)議棧的過程,如圖4所示,接收是出協(xié)議棧的過程(圖略),不同之處在于對數(shù)據(jù)的收/發(fā)處理。

        多串口到網口的數(shù)據(jù)轉換傳輸:串口鏈路層,接收來自測控設備的數(shù)據(jù),交給串口網絡層,該層完成串口數(shù)據(jù)幀的封裝并放入以太網的發(fā)送緩沖區(qū),當系統(tǒng)規(guī)定的udp打包時間到或已經有4個串口數(shù)據(jù)幀時,打udp包,并逐層下送,直到把數(shù)據(jù)送上物理介質,完成比特流的傳輸。

        為了能一次傳輸盡量多的數(shù)據(jù),系統(tǒng)對數(shù)據(jù)長度作了嚴格定義:串口數(shù)據(jù)幀的數(shù)據(jù)段最大長度為300個字節(jié),網口發(fā)送幀的數(shù)據(jù)段最多允許4個串口數(shù)據(jù)幀。同時,還有滿足具體應用對實時性的要求,對每一個串口規(guī)定一個最長響應時間,時間到時,不管是否已接收300個字節(jié)都要對串口數(shù)據(jù)進行封裝,并放入以太網發(fā)送緩沖區(qū);同時,為了避免系統(tǒng)由于等待以太網發(fā)送緩沖區(qū)串口幀數(shù)達到4,而造成串口數(shù)據(jù)不能實時發(fā)送,要求在一定的時間內進行一次以太網通信,而不必等待4個串口幀到齊才打包傳輸。

        這樣系統(tǒng)對數(shù)據(jù)容量和時間的雙重規(guī)定,能夠保證具體應用對實時性的要求,并能一次傳輸盡量多的數(shù)據(jù),降低了由于時間上的"空等"造成系統(tǒng)實時性差的可能性,4個串口在串口層完成的功能是相同的,僅以com1為例,給出串口層上數(shù)據(jù)流,如圖5所示。

        圖6說明了多串口數(shù)據(jù)幀等待打包傳輸?shù)倪^程。

        網口數(shù)據(jù)多到多串口的數(shù)據(jù)流向,是對以太網鏈路層的數(shù)據(jù)幀向上逐層解包的過程,如圖7所示,將收到的以太網幀,依次去掉每層的協(xié)議頭分解出應用層數(shù)據(jù),再以0x24和0x0a為分界分離,根據(jù)串口號字段的值,將信息發(fā)送到相應的設備,完成預定的控制。

        結語

        本文介紹基于tcp/ip的多串口轉換網關,采用gm8123芯片增加了串行口數(shù)目,適合要求入網串口設備多的場合,借助于該多串口網關,可方便地實現(xiàn)串口設備和監(jiān)控層的透明數(shù)據(jù)通信,實現(xiàn)設備的網絡化控制與信息的分布式管理,比能廣泛的應用在基于以太網的分布式測控網絡中。

        tcp/ip相關文章:tcp/ip是什么




        關鍵詞:

        評論


        相關推薦

        技術專區(qū)

        關閉
        主站蜘蛛池模板: 全南县| 禹城市| 开原市| 钟山县| 武平县| 西吉县| 洞头县| 邵阳市| 德格县| 买车| 平度市| 田东县| 名山县| 青铜峡市| 高安市| 山东省| 安达市| 大同县| 中西区| 略阳县| 泾阳县| 南乐县| 盘山县| 蒙自县| 奉新县| 通道| 定南县| 永登县| 武夷山市| 沙河市| 光山县| 新源县| 赤壁市| 延长县| 乌兰浩特市| 普兰县| 无锡市| 广昌县| 阳谷县| 封丘县| 红河县|