新聞中心

EEPW首頁(yè) > 電源與新能源 > 設(shè)計(jì)應(yīng)用 > 可實(shí)現(xiàn)多串口轉(zhuǎn)換的嵌入式串口網(wǎng)關(guān)的設(shè)計(jì)

可實(shí)現(xiàn)多串口轉(zhuǎn)換的嵌入式串口網(wǎng)關(guān)的設(shè)計(jì)

作者: 時(shí)間:2016-12-05 來(lái)源:網(wǎng)絡(luò) 收藏
引言

Internet 技術(shù)的廣泛普及,全球各個(gè)領(lǐng)域的不同企業(yè)已經(jīng)對(duì)“讓設(shè)備聯(lián)網(wǎng)”達(dá)成共識(shí),而在工業(yè)控制和通信設(shè)備中,更多的卻是符合RS232 標(biāo)準(zhǔn)的串行口設(shè)備。如何將多個(gè)串行口的數(shù)據(jù)轉(zhuǎn)發(fā)到網(wǎng)絡(luò)上,實(shí)現(xiàn)設(shè)備的遠(yuǎn)程控制、數(shù)據(jù)的遠(yuǎn)程傳輸便成了一個(gè)亟待解決的問(wèn)題。同時(shí),考慮到成本問(wèn)題,以往設(shè)備又不可能全部淘汰。因此,本文提出一種嵌入式網(wǎng)關(guān)可從根本上解決這一難題。多串口轉(zhuǎn)換網(wǎng)關(guān)使得串口數(shù)據(jù)流到以太網(wǎng)數(shù)據(jù)流的傳輸成為可能。它能連接多個(gè)RS232 串口設(shè)備,并將串口數(shù)據(jù)進(jìn)行選擇和處理,把RS232 接口的數(shù)據(jù)流轉(zhuǎn)化成以太網(wǎng)數(shù)據(jù)流,這樣就可以進(jìn)行網(wǎng)絡(luò)化的數(shù)據(jù)處理,實(shí)現(xiàn)串行數(shù)據(jù)的網(wǎng)絡(luò)化。采用此種方案,無(wú)需淘汰原有串口設(shè)備,多臺(tái)設(shè)備可同時(shí)入網(wǎng),既可以提高設(shè)備利用率,GM8142 可實(shí)現(xiàn)低成本、較高速度、控制簡(jiǎn)單的多串口方案。

本文引用地址:http://butianyuan.cn/article/201612/326188.htm

系統(tǒng)結(jié)構(gòu)

TCP/IP 協(xié)議由應(yīng)用層、UDP 層、IP 層和數(shù)據(jù)鏈路層組成。為了實(shí)現(xiàn)透明傳輸,增加應(yīng)用進(jìn)程協(xié)議層——串口層。串口層由串口鏈路層和串口網(wǎng)絡(luò)層構(gòu)成。網(wǎng)關(guān)在串口層構(gòu)建,同時(shí)解析RS232 數(shù)據(jù)包,并作為T(mén)CP/IP網(wǎng)絡(luò)應(yīng)用層的數(shù)據(jù)傳輸。多串口網(wǎng)關(guān)由TCP/IP協(xié)議轉(zhuǎn)換模塊和多串口收發(fā)控制模塊組成,結(jié)構(gòu)如圖1 所示。

又節(jié)約組網(wǎng)費(fèi)用,還可在已有的網(wǎng)絡(luò)基礎(chǔ)上簡(jiǎn)化布線復(fù)雜度。采用串口擴(kuò)展芯片

根據(jù)實(shí)現(xiàn)的功能,系統(tǒng)主要由以下兩部分組成:

(1)TCP/IP 協(xié)議轉(zhuǎn)換模塊:它是一個(gè)微型的以太網(wǎng)接入模塊,由微控制器、網(wǎng)絡(luò)隔離變壓器( HR601680 )、SDRAM ( HY57V561620T )、NOR-FLASH(AM29LV320DB)等組成。來(lái)自客戶端的數(shù)據(jù)信息通過(guò)RJ45 以太網(wǎng)接口,網(wǎng)路接口芯片傳送給微控制器,微控制器通過(guò)內(nèi)嵌的TCP/IP協(xié)議棧,實(shí)現(xiàn)地址解析協(xié)議(ARP)、Internet 控制報(bào)文協(xié)議(ICMP)、IP 協(xié)議、用戶數(shù)據(jù)報(bào)協(xié)議(UDP)等協(xié)議的解析和封包。在正常運(yùn)行時(shí),TCP/IP 協(xié)議轉(zhuǎn)換模塊的任務(wù)主要是將以太網(wǎng)發(fā)送緩沖區(qū)的串口幀封裝在UDP 包中,并傳給IP 層;同時(shí),接收以太網(wǎng)數(shù)據(jù)幀并向上層層解包,分離應(yīng)用層數(shù)據(jù),然后數(shù)據(jù)的解析處理交由多串口發(fā)送模塊完成,實(shí)現(xiàn)RS232 串口流與以太網(wǎng)端口流的透明轉(zhuǎn)換。

(2)串口數(shù)據(jù)處理模塊:它是一個(gè)多(最多32個(gè))RS232 串口數(shù)據(jù)流的收/發(fā)控制模塊,由微控制器、串口擴(kuò)展芯片(GM8142)、MAX232 等元件組成。微控制器與GM8142 共同完成對(duì)多串口數(shù)據(jù)收發(fā)的控制:一方面接收多個(gè)串口源數(shù)據(jù),封裝后寫(xiě)入以太網(wǎng)發(fā)送緩沖區(qū)打包傳輸;同時(shí),接收以太網(wǎng)應(yīng)用層的數(shù)據(jù),解析并從串口發(fā)出。對(duì)于串口處理模塊來(lái)說(shuō),通信數(shù)據(jù)的具體形式并不重要,它的任務(wù)主要是接收/發(fā)送,封裝/拆封串口幀,為網(wǎng)關(guān)提供通用接口。

設(shè)計(jì)方案

微控制器是網(wǎng)關(guān)的兩大模塊的中樞,通過(guò)微控制器,網(wǎng)關(guān)實(shí)現(xiàn)了通信協(xié)議的轉(zhuǎn)換。

(1)TCP/IP 協(xié)議轉(zhuǎn)換模塊:圖1 微控制器的左半部分:從RJ45 接頭輸入的10 M/100M以太網(wǎng)雙差分?jǐn)?shù)據(jù)信息通過(guò)網(wǎng)絡(luò)隔離變壓器很好的將模擬地與數(shù)字地隔離,從而保證了數(shù)據(jù)的有效性和外界復(fù)雜信號(hào)對(duì)微控制器的直接沖擊。

(2) 串口處理模塊:如圖1 微控制器的右半部分:串口數(shù)據(jù)從32 個(gè)串行端口獨(dú)立輸入或輸出,標(biāo)準(zhǔn)串口的RS232 電平與TTL 電平通MAX232 相互轉(zhuǎn)化。值得注意的是所有低速串行接口均采用RJ45 接口,而且為了保證數(shù)據(jù)的傳輸速度,在實(shí)際應(yīng)用中只使用了TXD,RXD,GND信號(hào),避免了其它握手信號(hào)。

對(duì)于多串口的設(shè)計(jì),采用串口擴(kuò)展芯片GM8142,結(jié)合強(qiáng)大的SPI性能,完成了32 個(gè)獨(dú)立于系統(tǒng)固有串口(DB9 接口) 的擴(kuò)展。每片GM8142 能提供4 個(gè)獨(dú)立的串行口,該網(wǎng)關(guān)設(shè)計(jì)中采用8 片GM8142,每片GM8142 的片選信號(hào)又通過(guò)3-8 譯碼器74LV138 連接到微控制器的3個(gè)獨(dú)立的SPI 接口上,另外,每片GM8142 所必需的中斷信號(hào)通過(guò)強(qiáng)上拉(4.7K)連接到微控制器的標(biāo)準(zhǔn)IO上,這樣,串口處理模塊搭建完成。

當(dāng)兩片或多片GM8142 所管理的串口同時(shí)產(chǎn)生數(shù)據(jù)請(qǐng)求時(shí),微控制器會(huì)根據(jù)事先設(shè)定好的MCU中斷機(jī)制判斷中斷請(qǐng)求的優(yōu)先級(jí),對(duì)優(yōu)先級(jí)高的中斷請(qǐng)求優(yōu)先響應(yīng)。當(dāng)同一片GM8142 的不同串行口同時(shí)產(chǎn)生中斷請(qǐng)求時(shí),在LINUX下,通過(guò)對(duì)該字符設(shè)備驅(qū)動(dòng)程序的編寫(xiě),可使微控制器在SPI 上得到相應(yīng)端口的編號(hào)并及時(shí)清除中斷,然后,再次根據(jù)用戶事先設(shè)定好的中斷優(yōu)先級(jí)處理中斷。這樣,所有的擴(kuò)展串行接口均能按用戶事先設(shè)定好的中斷優(yōu)先級(jí)完成對(duì)串口的控制。

系統(tǒng)的32 個(gè)擴(kuò)展串口均能工作在獨(dú)立波特率的獨(dú)立場(chǎng)合,在速率上,它們均能單獨(dú)穩(wěn)定運(yùn)行在115200BPS以內(nèi)的任何波特率上,但若32 個(gè)串口同時(shí)雙向并且以115200BPS 的速率運(yùn)行時(shí)應(yīng)考慮MCU 的處理能力。綜上所述,系統(tǒng)提供了32 個(gè)串口、可自定義優(yōu)先級(jí)控制、波特率配置方案的多串口實(shí)現(xiàn)方法。

(3)軟件設(shè)計(jì):系統(tǒng)要求用戶能夠在Windows 環(huán)境下(客戶端)通過(guò)以太網(wǎng)對(duì)遠(yuǎn)端串口設(shè)備進(jìn)行配置、狀態(tài)查詢并且發(fā)送和接收數(shù)據(jù)。這整個(gè)過(guò)程就像是直接對(duì)串口進(jìn)行操作,用戶無(wú)需感知是通過(guò)以太網(wǎng)進(jìn)行的數(shù)據(jù)傳輸。為了達(dá)到以上目的,網(wǎng)關(guān)依靠以PIC32處理器為核心的嵌入式系統(tǒng)平臺(tái),在其上運(yùn)行Linux 操作系統(tǒng),為各個(gè)串口設(shè)備提供獨(dú)立的打開(kāi),關(guān)閉,及監(jiān)聽(tīng)線程,使串口設(shè)備完全獨(dú)立運(yùn)行。在用戶端,用戶對(duì)串口的操作實(shí)際上是通過(guò)socket 編程發(fā)送命令或數(shù)據(jù)給PIC32處理器,供其解析并最終直接控制串口完成。以COMn(n<32)的監(jiān)聽(tīng)線程為例,給出串口層上數(shù)據(jù)流。如圖1所示。

結(jié)束語(yǔ)

本文介紹了基于TCP/IP 的多串口轉(zhuǎn)換網(wǎng)關(guān),采用GM8142芯片擴(kuò)展了串行口數(shù)目,較好的適應(yīng)了,低速,多串口的工業(yè)場(chǎng)合,實(shí)現(xiàn)了串口設(shè)備和監(jiān)控層透明數(shù)據(jù)傳輸,以及設(shè)備的網(wǎng)絡(luò)化控制及信息的分布式管理,能夠廣泛的應(yīng)用在基于以太網(wǎng)的分布式測(cè)控網(wǎng)絡(luò)中。



評(píng)論


技術(shù)專(zhuān)區(qū)

關(guān)閉