《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 基于C/S結(jié)構(gòu)的數(shù)據(jù)協(xié)議轉(zhuǎn)發(fā)系統(tǒng)服務(wù)器的實現(xiàn)

基于C/S結(jié)構(gòu)的數(shù)據(jù)協(xié)議轉(zhuǎn)發(fā)系統(tǒng)服務(wù)器的實現(xiàn)

2009-05-19
作者:朱其慎1,楊軍霞2,田 巍2

??? 摘 要:根據(jù)電力企業(yè)現(xiàn)場總線的特點以及企業(yè)對設(shè)備運行數(shù)據(jù)進行遠(yuǎn)程采集管理的需求,實現(xiàn)了一種在嵌入式軟硬件平臺下開發(fā)的系統(tǒng)——數(shù)據(jù)采集協(xié)議轉(zhuǎn)發(fā)管理系統(tǒng)。
??? 關(guān)鍵詞:總線協(xié)議;數(shù)據(jù)轉(zhuǎn)發(fā);服務(wù)器

?

??? 嵌入式系統(tǒng)技術(shù)是目前電子設(shè)計領(lǐng)域最為熱門的技術(shù)之一,目前已經(jīng)廣泛地應(yīng)用于軍事國防、消費電子、網(wǎng)絡(luò)通信、工業(yè)控制等各個領(lǐng)域。根據(jù)對電力工業(yè)現(xiàn)場總線控制信息數(shù)據(jù)交互系統(tǒng)的研究,其現(xiàn)場總線非常多,如RS485、CAN和工業(yè)以太網(wǎng)等,總線上的數(shù)據(jù)協(xié)議也很多,最常見的有RS232、Modbus、CAN、TCP/IP等等,但這些協(xié)議數(shù)據(jù)之間不能進行直接的交互,而且隨著工業(yè)控制服務(wù)器以及企業(yè)管理信息系統(tǒng)的發(fā)展,需要將這些數(shù)據(jù)進行遠(yuǎn)程傳輸,并能進行遠(yuǎn)程控制,這就需要能夠完成這種任務(wù)需求的設(shè)備。本設(shè)計就是針對上述情況,滿足企業(yè)的數(shù)據(jù)控制需求而進行設(shè)計開發(fā)的嵌入式網(wǎng)關(guān)設(shè)備。該嵌入式網(wǎng)關(guān)能夠接收RS232、RS485總線協(xié)議的數(shù)據(jù)并能實現(xiàn)對TCP/IP協(xié)議的數(shù)據(jù)包的轉(zhuǎn)發(fā),實現(xiàn)數(shù)據(jù)的雙向傳輸。
1 系統(tǒng)方案
??? 根據(jù)數(shù)據(jù)采集協(xié)議轉(zhuǎn)發(fā)管理系統(tǒng)所要實現(xiàn)的不同總線協(xié)議之間進行數(shù)據(jù)轉(zhuǎn)換的任務(wù),需要實現(xiàn)如下的幾個功能:
??? (1) 串行通信接口RS232的通信功能;
??? (2) RS485接口的通信功能;
??? (3) TCP/IP協(xié)議網(wǎng)絡(luò)接口的通信功能;
??? (4) 串口和TCP/IP協(xié)議數(shù)據(jù)協(xié)議轉(zhuǎn)發(fā)功能。
2 實現(xiàn)原理
??? 嵌入式系統(tǒng)處理器采用ARM處理器—S3C2410,嵌入式操作系統(tǒng)為Linux。其硬件組成如圖1所示。

?


??? 該協(xié)議轉(zhuǎn)換管理系統(tǒng)能夠接收RS232、RS485總線協(xié)議的數(shù)據(jù)和TCP/IP協(xié)議的數(shù)據(jù)包,實現(xiàn)RS232、RS485和TCP/IP的雙向數(shù)據(jù)轉(zhuǎn)換。當(dāng)接收到來自于以太網(wǎng)的控制信息時,協(xié)議轉(zhuǎn)換器對其解包提取原始信息,并以RS232、RS485總線可以接收的格式發(fā)出;當(dāng)接收到來自于RS232、RS485總線的1報文時,提取信息后加上IP幀頭,以以太網(wǎng)幀格式發(fā)出,其系統(tǒng)模型如圖2所示。

?


3 軟件系統(tǒng)設(shè)計
3.1 串口通信編程

??? Linux中對于每一個串行端口,內(nèi)核有一個設(shè)備驅(qū)動程序來負(fù)責(zé)端口的輸入輸出。該串口的驅(qū)動在Linux內(nèi)核中已經(jīng)完成,因此,對串口的操作是通過對串口設(shè)備文件的操作來實現(xiàn)的。訪問串口只需要打開相應(yīng)的設(shè)備文件。在Linux下,串行口COM1和COM2對應(yīng)的設(shè)備文件分別為/dev/ttyS0和/dev/ttyS1。串口編程的一般步驟如圖3所示。

?

?

??? RS485接口通信通過RS232轉(zhuǎn)RS485通信接口硬件實現(xiàn),其程序開發(fā)流程與上文所述類似,這里不再贅述。
3.2 網(wǎng)絡(luò)通信編程
??? 網(wǎng)絡(luò)通信程序設(shè)計分為服務(wù)器端和客戶端,本文利用面向連接的TCP/IP協(xié)議進行程序設(shè)計,完成數(shù)據(jù)交互。服務(wù)器/客戶機模式是網(wǎng)絡(luò)通信交互的最常用模式,基于TCP/IP數(shù)據(jù)流的socket網(wǎng)絡(luò)編程流程如圖4所示。

?


3.3 系統(tǒng)完成功能
??? 客戶端通過以太網(wǎng)與數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)器連接,現(xiàn)場Modbus、CAN、DNP總線協(xié)議儀表通過接口與數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)器連接,用戶通過客戶端發(fā)送儀表報文,報文經(jīng)過數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)器轉(zhuǎn)發(fā)給儀表,儀表接收到報文后,進行相應(yīng)處理,并把數(shù)據(jù)通過數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)器轉(zhuǎn)發(fā)給客戶端,其結(jié)構(gòu)如圖5所示。

?

?

4 系統(tǒng)測試
??? 數(shù)據(jù)發(fā)送測試:在客戶機A上通過青云ComMax通信調(diào)試軟件,設(shè)定系統(tǒng)數(shù)據(jù)轉(zhuǎn)發(fā)服務(wù)器參數(shù),連接服務(wù)器,并發(fā)送正確Modbus報文,如圖6所示。

?

?

??? 發(fā)送的報文通過轉(zhuǎn)發(fā)服務(wù)器轉(zhuǎn)發(fā)到現(xiàn)場儀表中,現(xiàn)場儀表根據(jù)報文中的指令,返回遠(yuǎn)程Modbus儀表數(shù)據(jù)報文,如圖7所示。

?


??? 返回的Modbus報文中包含了儀表采集的現(xiàn)場數(shù)據(jù),可以根據(jù)這些數(shù)據(jù)進行分析,也可以把數(shù)據(jù)保存在企業(yè)現(xiàn)場儀表數(shù)據(jù)庫中,滿足企業(yè)運行的分析、決策。
??? 通過以上對數(shù)據(jù)交互管理平臺Modbus協(xié)議的嚴(yán)格測試表明:數(shù)據(jù)交互管理對Modbus協(xié)議能夠及時快速地響應(yīng),能夠響應(yīng)多客戶機的訪問,響應(yīng)時間能夠在項目要求的范圍內(nèi),響應(yīng)數(shù)據(jù)無錯誤。多臺客戶機可以同時對數(shù)據(jù)交互管理平臺進行訪問,數(shù)據(jù)交互管理平臺能夠及時響應(yīng)多臺客戶機的訪問。
參考文獻
[1]?劉震,徐學(xué)洲.一種基于多級分布式管理的數(shù)據(jù)采集軟件模型[J].現(xiàn)代電子技術(shù),2003,26(19):75-77,80.
[2]?汪奇,朱煜華.基于B/S結(jié)構(gòu)的數(shù)字視頻監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程,2006,32(19):251-252,272.
[3]?李善平,劉文峰,王煥龍.Linux與嵌入式系統(tǒng)[M].北京:清華大學(xué)出版社,2003.
[4]?陳賾.ARM9嵌入式技術(shù)及Linux高級實踐教程[M].北京:北京航空航天大學(xué)出版社,2005.
[5]?鄒思軼.嵌入式Linux設(shè)計與應(yīng)用[M].北京:清華大學(xué)出版社,2002.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。