著Internet的廣泛普及,“讓全部設備連接網絡”已經成為全世界企業的共識。為了能跟上網絡自動化的潮流,不至于失去競爭優勢,必須建立高品位的數據采集、生產監控、即時成本管理的聯網系統。利用基于TCP/IP的串口數據流傳輸的實現來控制管理的設備硬件,無需投資大量的人力、物力來進行管理、更換或者升級。
串口服務器就使得基于TCP/IP的串口數據流傳輸成為了可能,它能將多個串口設備連接并能將串口數據流進行選擇和處理,把現有的RS 232接口的數據轉化成IP端口的數據,然后進行IP化的管理,IP化的數據存取,這樣就能將傳統的串行數據送上流行的IP通道,而無需過早淘汰原有的設備,從而提高了現有設備的利用率,節約了投資,還可在既有的網絡基礎上簡化布線復雜度。串口服務器完成的是一個面向連接的RS 232鏈路和面向無連接以太網之間的通信數據的存儲控制,系統對各種數據進行處理,處理來自串口設備的串口數據流,并進行格式轉換,使之成為可以在以太網中傳播的數據幀;對來自以太網的數據幀進行判斷,并轉換成串行數據送達響應的串口設備。
1 硬件系統
硬件系統是實現整個系統功能的基礎,是整個設計實現的關鍵。
整個串口服務器的關鍵在于串口數據包與TCP/IP數據報之間的轉換以及雙方數據因為速率不同而存在的速率匹配問題,在對串口服務器的實現過程中,也必須著重考慮所做的設計和所選擇的器件是否能夠完成這些功能。
1.1 硬件系統組成模塊
在制定設計方案和選定器件時遇到的技術難點是如何利用處理器對串口數據信息進行TCP/IP協議處理,使之變成可以在互聯網上傳輸的IP數據包。目前解決這個問題很多時候采用32位MCU + RTOS方案,這種方案是采用32位高檔單片機,在RTOS(實時多任務操作系統)的平臺上進行軟件開發,在嵌入式系統中實現TCP/IP的協議處理。它的缺點是:單片機價格較高,開發周期較長;需要購買昂貴的RTOS開發軟件,對開發人員的開發能力要求較高。
借鑒上述方案的優缺點,我們決定把串口服務器的硬件部分分為幾個模塊設計,這就是主處理模塊、串口數據處理模塊和以太網接口及控制模塊等幾大模塊來共同完成串口服務器的功能。
在器件的選擇上,選用Intel公司的801086芯片作為主處理模塊的處理器芯片,它是一種非常適合于嵌入式應用的高性能、高集成度的16位微處理器,功耗低。由于考慮到串口數據速率較低而以太網的數據傳輸速率高所造成的兩邊速率不匹配的問題,我們決定采用符合總線規范的大容量存儲器來作為數據存儲器;由于主處理模塊還涉及到數據線/地址線復用、串并轉換、器件中斷信號譯碼、時鐘信號生成、控制信號接入等功能,若是選用不同的器件來完成,勢必會造成許多諸如時延不均等問題,我們選用了一片大容量的高性能可編程邏輯器件來完成上述所提到的功能,這樣的優點在于,我們保證了穩定性和高可靠性,并且可編程邏輯器件的可編程功能使得對于信號的處理的空間更大,且具有升級的優勢。
以太網接口及控制模塊在串口服務器的硬件里面起著很重要的作用,它所處理的是來自于以太網的IP數據包,考慮到通用性的原則,我們采用一片以太網控制芯片來完成這些功能,并在主處理模塊中添加了一片AT24C01來存儲以太網控制芯片狀態。通過主處理模塊對于以太網控制芯片數據及寄存器的讀/寫,我們可以完成對IP數據包的分析、解/壓包的工作。
串口數據處理模塊主要完成的是對于串口數據流的電平轉換和數據格式的處理,判斷串行數據的起始位及停止位,完成對數據和校驗位的提取。一般的設計采用的是MAX232和一片UART的設計思想,這里我們也是遵從這種設計理念,不過我們采用的是集成了MAX232+UART功能的芯片,小尺寸、低成本、低功耗,而且采用與SPITM/QS-PITM/MICROWIRETM兼容的串行接口,節省線路板尺寸與微控制器的I/O端口。
這種模塊化的方案的優點在于:采用高速度的16位微控制器,外圍器件少,系統成本低;并且采用Intel公司的開發平臺,可以大幅度地縮短開發周期并降低開發成本。
1.2 硬件工作流程及應用架構
主處理器首先初始化網絡及串口設備,當有數據從以太網傳過來,處理器對數據報進行分析,如果是ARP(物理地址解析)數據包,則程序轉入ARP處理程序;如果是IP數據包且傳輸層使用UDP,端口正確,則認為數據報正確,數據解包后,將數據部分通過端口所對應的串口輸出。反之,如果從串口收到數據,則將數據按照UDP格式打包,送入以太網控制芯片,由其將數據輸出到以太網中。可以知道,主處理模塊主要處理TCP/IP的網絡層和傳輸層,鏈路層部分由以太網控制芯片完成。應用層交付軟件系統來處理,用戶可以根據需求對收到的數據進行處理。
2 硬件系統模塊
根據硬件系統的具體結構和不同功能,我們可以將硬件系統劃分為下述的幾大模塊。
2.1 主處理器模塊
該模塊是串口服務器的核心部分,主要由主處理器、可編程邏輯器件、數據及程序存儲器等器件構成。
主處理模塊完成的功能主要有:在串口數據和以太網IP數據之間建立數據鏈路;通過對以太網控制芯片的控制讀寫來實現對IP數據包的接收與發送;判別串行數據流的格式,完成對串口設備的選擇以及對串行數據流格式的指定;控制串口數據流與IP數據包之間的速率控制,對數據進行緩沖處理;對UART和以太網控制芯片的寄存器進行讀寫操作,并存儲轉發器件狀態;完成16位總線數據的串并行轉換;完成總線地址鎖存功能;完成對各個串口以及各個存儲器件的片選功能;完成對各個串口的中斷口的狀態判別等功能。
2.2 以太網接口及控制模塊
這個模塊主要由以太網接口部分和以太網控制部分構成。
以太網接口部分完成的是串口服務器與以太網接口電路的功能,控制器對所有模塊均有控制作用,使整個接口電路能協調地配合后續電路完成以太網的收發功能。
以太網控制部分由收端和發端組成,在他們之間還有以太網狀態檢測和控制單元,以及收發協調控制器,見圖5。由于以太網是半雙工工作的,所以這個部分必須隨時地監視以太網的狀態,并且要根據需要對以太網進行控制,同時還要協調好內部收發端電路的工作狀態。以太網檢測單元和收發協調控制器就是完成這樣的功能的。以太網狀態檢測單元與以太網接口的控制器接口,將接口的狀態送到收發協調控制器,同時將協調控制器的控制信號進行處理,并送到以太網接口的控制器,以控制接口的狀態。
在收端,接收到的串行數據流信號通過主處理模塊進行串并轉換和編碼,以太網控制單元控制各部分協調,將產生的地址、數據、寫信號送到RAM讀寫控制單元進行處理。相應的,發端的工作流程和收端相反。
2.3 串口數據處理模塊
該模塊主要完成串口設備的狀態收集、串行數據流的接收和數據格式的解/封包工作,由8片UART和對應的串口接口構成。前面我們已經說明了各個端口的尋址方式,當主處理模塊尋址某個端口時,由主處理模塊讀寫相應的UART的寄存器,判定相連接的串口設備的空閑狀態,并與之建立通信連接,發回控制數據幀給主處理器,主處理器收到控制信號后,再決定是否發送和接收數據流。
3 硬件系統流程
在串口服務器中,硬件部分與軟件部分相結合完成整個系統的功能,用戶通過軟件部分的可視化界面和C/S架構的監控模式來完成對串口設備的控制與管理;硬件部分完成串行數據與IP數據包之間的格式轉換以及控制信號的處理。
顯示的是串口服務器硬件在系統流程的內部數據流向圖。因為在整個串口服務器的系統中,硬件完成數據格式轉換以及控制信號處理等主要功能,軟件系統與硬件系統遵循一個標準的接口,在這個接口之上來傳遞數據信號和控制信號,串口服務器的狀態信息主要由中央服務器來處理和收集,由于服務器完成的只是一些狀態存儲和轉發,所以與原來的串口設備—前置機模式有很大區別,中央服務器也不需要負擔太多的工作。
下面對串口服務器硬件的具體實現方案作流程說明,這樣會對串口服務器有更深的了解,限于篇幅,只對主要流程作分析和介紹。
3.1 TCP/IP數據包傳送至串口設備
(1)上電初始化以太網控制芯片,并從狀態存儲器中讀取狀態字寫入相應的寄存器中;
(2)采用中斷機制而不是輪詢機制來處理以太網來的數據,當RTL8019AS接收到IP數據包時,判斷數據包格式寫相應寄存器,并發送中斷INT0給80C186處理器,請求系統處理;
(3)80C186接收到中斷,保存目前工作狀態來響應中斷,然后判別總線空閑狀態,若忙,則置AEN高位,若空閑,則置AEN低位。同時置某些控制腳狀態,使RTL8019AS地址使能;
(4)由于80C186的數據線AD0~AD15與地址線A0~A15共線,所以必須通過EPM7128S可編程邏輯器件地址鎖存,80C 186送出地址信號并置ALE地址鎖存使能;
(5)80C186通過數據總線讀取RTL8019AS寄存器信息,判別RTL8019AS的目前狀態;
(6)通過AD0~AD15讀取數據包,置A19為1,使能數據存儲器,將數據送至數據存儲器緩存;
(7)獲取IP數據包目的端口號,用以確定選通的相應器件,在這里我們認定端口號選擇的是某MAX3110E,并對應相應的端口地址;
(8)置A19為0,通過A18~A16送出端口地址信號,選通該片MAX3110E,在這里我們先假設該片MAX3110E空閑;
(9)選通之后,先送出10000010××××××××,請求與串口設備建立連接,通過讀取送來的16位信息的第9位判別連接是否建立;
(10)將IP數據包的數據部分通過A0~A7,而A8~A15則由系統根據系統狀態加入狀態字(在本流程中,我們設定加入的為10000010),一起送至EPM7128S可編程邏輯器件,通過其內部的串并轉換成串行數據流送至MAX3110E;
(11)由MAX3110E將該串行數據流轉換成標準異步串行數據傳送給串口設備,至此,一個簡要的由IP數據包傳送至串口設備的流程基本上如此,在這里限于篇幅,我們只介紹了一個單向的通路情況,沒有對各個旁支情況作介紹。
3.2 串口設備數據傳送至以太網
由于有些步驟與上一個流程基本相似,這里略去不提。
(1)系統接收到某MAX3110E送來的中斷IRQx,判別目前系統狀態,響應中斷;
(2)發送控制字給MAX3110E,建立連接;
(3)讀取AD0~AD15,由A8~A15判別數據流的大小、格式、奇偶校驗位等信息。由A0~A7接收數據送至數據存取器;
(4)選通RTL8019AS,將目前數據打包,加入TCP頭和IP頭送入,并由以太網接口模塊送出。
3.3 可編程邏輯器件電路
EPM7128S在整個系統里面完成很重要的功能,主要完成16位地址鎖存,16位數據串并轉換,通過INT1~INT3來對MAX3110E芯片的中斷響應,對AT24C01的工作等功能。
4 應用領域
串口服務器可以將各企事業單位的串口設備接入以太局域網實現資源共享,在通信、交通、學校、金融、稅務、保險等行業都有廣泛的用途。該系統有較好的市場前景,成本小,見效快,能產生一定的經濟效益。
此設計作品獲第八屆“挑戰杯”全國大學生課外學術科技作品競賽重慶賽區特等獎,目前已經進入在華南理工大學舉行的第八屆“挑戰杯”全國大學生課外學術科技作品競賽決賽。
責任編輯:gt
-
接口
+關注
關注
33文章
8575瀏覽量
151021 -
服務器
+關注
關注
12文章
9123瀏覽量
85328 -
串口
+關注
關注
14文章
1551瀏覽量
76428
發布評論請先 登錄
相關推薦
評論