實(shí)現(xiàn)基于TCP/IP的多串口轉(zhuǎn)換網(wǎng)關(guān)
GM8123工作在多道模式,各子串口必須設(shè)置統(tǒng)一波特率,不適用于各串口設(shè)備工作波特率不一致、又要求同時(shí)工作的場(chǎng)合,這也是該芯片的不足之處。實(shí)際應(yīng)用中,COM1、COM2和COM3應(yīng)該連接類型、速率相同的設(shè)備。COM4的波特率可以根據(jù)需求具體配置,這樣,系統(tǒng)的4個(gè)串口從速率上可以形成兩種應(yīng)用方案:一是4個(gè)串口配置相同波特率;二是每l組配置1個(gè)波特率值。
綜上所述,系統(tǒng)提供了由2組4個(gè)串口、兩級(jí)優(yōu)先級(jí)控制、2種波特率配置方案構(gòu)成的多串口實(shí)現(xiàn)方法。
4 工作原理
4.1 幀的統(tǒng)一化
系統(tǒng)4個(gè)串口源的數(shù)據(jù)要作為以太網(wǎng)幀的一部分,為了向設(shè)備提供透明的接口和區(qū)分?jǐn)?shù)據(jù)源,需要制定統(tǒng)一的幀格式。幀格式如圖2所示,其中串口號(hào)字段用來(lái)區(qū)分?jǐn)?shù)據(jù)源;幀頭、幀尾作為一個(gè)串口幀的起始分界(可自定義);數(shù)據(jù)部分是來(lái)自串口的原始數(shù)據(jù)流。同樣,網(wǎng)口發(fā)送數(shù)據(jù)也要有一致的幀格式,如圖3所示。顯然,串口幀是作為UDP層的協(xié)議數(shù)據(jù)進(jìn)行傳輸?shù)摹?p>
4.2系統(tǒng)數(shù)據(jù)流向分析
多串口轉(zhuǎn)換網(wǎng)關(guān),實(shí)現(xiàn)多個(gè)串口和一個(gè)網(wǎng)口間的數(shù)據(jù)轉(zhuǎn)換,關(guān)鍵是多個(gè)串口數(shù)據(jù)如何送到網(wǎng)絡(luò)上、網(wǎng)絡(luò)數(shù)據(jù)又怎樣轉(zhuǎn)到多個(gè)串口。其中,串口鏈路層完成串口數(shù)據(jù)收發(fā)功能,串口網(wǎng)絡(luò)層作為TCP/IP應(yīng)用層的一部分,實(shí)現(xiàn)串口幀的封裝。發(fā)送是入?yún)f(xié)議棧的過(guò)程,如圖4所示,接收是出協(xié)議棧的過(guò)程(圖略),不同之處在于對(duì)數(shù)據(jù)的收/發(fā)處理。
多串口到網(wǎng)口的數(shù)據(jù)轉(zhuǎn)換傳輸:串口鏈路層,接收來(lái)自測(cè)控設(shè)備的數(shù)據(jù),交給串口網(wǎng)絡(luò)層,該層完成串口數(shù)據(jù)幀的封裝并放入以太網(wǎng)的發(fā)送緩沖區(qū)。當(dāng)系統(tǒng)規(guī)定的UDP打包時(shí)間到或已經(jīng)有4個(gè)串口數(shù)據(jù)幀時(shí),打UDP包,并逐層下送,直到把數(shù)據(jù)送上物理介質(zhì),完成比特流的傳輸。
為了能一次傳輸盡量多的數(shù)據(jù),系統(tǒng)對(duì)數(shù)據(jù)長(zhǎng)度作了嚴(yán)格定義:串口數(shù)據(jù)幀的數(shù)據(jù)段最大長(zhǎng)度為300個(gè)字節(jié);網(wǎng)口發(fā)送幀的數(shù)據(jù)段最多允許4個(gè)串口數(shù)據(jù)幀。同時(shí),還要滿足具體應(yīng)用對(duì)實(shí)時(shí)性的要求:對(duì)每一個(gè)串口規(guī)定一個(gè)最長(zhǎng)響應(yīng)時(shí)間。時(shí)間到時(shí),不管是否已接收:300個(gè)字節(jié)都要對(duì)串口數(shù)據(jù)進(jìn)行封裝,并放人以太網(wǎng)發(fā)送緩沖區(qū);同時(shí),為了避免系統(tǒng)由于等待以太網(wǎng)發(fā)送緩沖區(qū)串口幀數(shù)達(dá)到4,而造成串口數(shù)據(jù)不能實(shí)時(shí)發(fā)送,要求在一定的時(shí)間內(nèi)進(jìn)行一次以太網(wǎng)通信,而不必等待4個(gè)串口幀到齊才打包傳輸。
這樣,系統(tǒng)對(duì)數(shù)據(jù)容量和時(shí)間的雙重規(guī)定,能保證具體應(yīng)用對(duì)實(shí)時(shí)性的要求,并能一次傳輸盡量多的數(shù)據(jù),降低了由于時(shí)間上的“空等”造成系統(tǒng)實(shí)時(shí)性差的可能性。4個(gè)串口在串口層完成的功能是相同的,僅以COMl為例,給出串口層上數(shù)據(jù)
流,如圖5所示。
圖6說(shuō)明了多串口數(shù)據(jù)幀等待打包傳輸?shù)倪^(guò)程。
網(wǎng)口數(shù)據(jù)到多串口的數(shù)據(jù)流向,是對(duì)以太網(wǎng)鏈路層的數(shù)據(jù)幀向上逐層解包的過(guò)程。如圖7所示,將收到的以太網(wǎng)幀,依次去掉每層的協(xié)議頭分解出應(yīng)用層數(shù)據(jù),再以0x24和OxOa為分界分離,根據(jù)串口號(hào)字段的值,將信息發(fā)送到相應(yīng)的設(shè)備,完成預(yù)定的控制。
結(jié)語(yǔ)
本文介紹基于TCP/IP的多串口轉(zhuǎn)換網(wǎng)關(guān),采用GM8123芯片增加了串行口數(shù)目,適合要求入網(wǎng)串口設(shè)備多的場(chǎng)合。借助于該多串口網(wǎng)關(guān),可方便的實(shí)現(xiàn)串口設(shè)備和監(jiān)控層的透明數(shù)據(jù)通信,實(shí)現(xiàn)設(shè)備的網(wǎng)絡(luò)化控制與信息的分布式管理,必能廣泛的應(yīng)用在基于以太網(wǎng)的分布式測(cè)控網(wǎng)絡(luò)中。和它類似的還有GM8125串口擴(kuò)展芯片,不過(guò)GM8125是一擴(kuò)五的串口擴(kuò)展芯片。
tcp/ip相關(guān)文章:tcp/ip是什么
評(píng)論