任 雯
(三明學(xué)院物理與機(jī)電工程系,福建 三明 365004)
隨著計(jì)算機(jī)技術(shù)和通信技術(shù)的飛速發(fā)展,底層監(jiān)測(cè)設(shè)備(如數(shù)據(jù)采集模塊、智能儀表和數(shù)控機(jī)床等)與局域網(wǎng)或Internet實(shí)現(xiàn)了無縫連接。這就使遠(yuǎn)程監(jiān)測(cè)成為工業(yè)發(fā)展越來越迫切的需求。許多傳統(tǒng)的工業(yè)監(jiān)控設(shè)備基于RS-485、RS-232和CAN Bus等通信協(xié)議構(gòu)成輕量級(jí)串口網(wǎng)絡(luò),但由于設(shè)備自身的特點(diǎn)和協(xié)議無法接入更大的計(jì)算機(jī)網(wǎng)絡(luò)等原因,使得串行通信設(shè)備與TCP/IP網(wǎng)絡(luò)主機(jī)之間橋接設(shè)備的研究,以及通過Web實(shí)現(xiàn)嵌入式設(shè)備和控制中心的交互成為當(dāng)前嵌入式技術(shù)的熱點(diǎn)問題。
嵌入式Internet技術(shù)的出現(xiàn)是Internet發(fā)展歷史上的一個(gè)里程碑,它依托于Internet、Web和嵌入式三大技術(shù)。嵌入式Internet技術(shù)是一種設(shè)備接入技術(shù)和異構(gòu)網(wǎng)絡(luò)互連技術(shù)。它主要解決的問題是通過Web和嵌入式技術(shù),實(shí)現(xiàn)從不同子網(wǎng)和不同的物理區(qū)域?qū)尤氲絀nternet的設(shè)備和異類子網(wǎng)進(jìn)行監(jiān)控、診斷、測(cè)試、管理和維護(hù)等功能,從而使接入到Internet的各種設(shè)備或其他類型的子網(wǎng)具有遠(yuǎn)程監(jiān)控、診斷和管理的功能[1-2]。本文的總體設(shè)計(jì)目標(biāo)是開發(fā)出低成本、高性能、配置簡便靈活、可支持多種簡單的通信協(xié)議以及針對(duì)不同類型的工業(yè)現(xiàn)場監(jiān)控設(shè)備及其網(wǎng)絡(luò)的Internet解決方案。
網(wǎng)關(guān)又被稱為網(wǎng)間協(xié)議轉(zhuǎn)換器,用于連接采用不同通信協(xié)議的網(wǎng)絡(luò),實(shí)現(xiàn)網(wǎng)絡(luò)之間的數(shù)據(jù)傳輸和共享。如要將串行口的數(shù)據(jù)轉(zhuǎn)發(fā)到網(wǎng)絡(luò)上,實(shí)現(xiàn)數(shù)據(jù)的遠(yuǎn)程傳輸,就必須使用網(wǎng)關(guān)。
本文提出了一種基于嵌入式Internet技術(shù)的工業(yè)以太網(wǎng)網(wǎng)關(guān)設(shè)計(jì)方案,以實(shí)現(xiàn)串口和以太網(wǎng)之間的數(shù)據(jù)傳輸。該網(wǎng)關(guān)采用32位高性能的ARM9嵌入式處理器S3C2410,通過移植嵌入式操作系統(tǒng)Linux,實(shí)現(xiàn)TCP/IP協(xié)議和HTTP Server的運(yùn)行,形成一個(gè)用戶可以通過網(wǎng)絡(luò)瀏覽器進(jìn)行遠(yuǎn)程訪問的服務(wù)器。同時(shí),通過RS-485和CAN等輕量級(jí)網(wǎng)絡(luò),將眾多的嵌入式設(shè)備連接起來,使用戶可以利用IE網(wǎng)頁直觀地看到界面,且通過嵌入式網(wǎng)關(guān)對(duì)嵌入式設(shè)備進(jìn)行監(jiān)控和管理,可實(shí)現(xiàn)異構(gòu)系統(tǒng)的集成。
以工業(yè)以太網(wǎng)網(wǎng)關(guān)為基礎(chǔ)的現(xiàn)場監(jiān)控設(shè)備接入Internet的實(shí)現(xiàn)框圖如圖1所示。
圖1 設(shè)備接入Internet框圖Fig.1 Connection diagram of equipment to Internet
網(wǎng)關(guān)電路以Samsung公司生產(chǎn)的、內(nèi)含ARM920T核的S3C2410芯片為核心,采用系統(tǒng)核心板和系統(tǒng)接口底板分開設(shè)計(jì)的方法進(jìn)行設(shè)計(jì)。網(wǎng)關(guān)硬件系統(tǒng)結(jié)構(gòu)如圖2 所示[3]。
圖2 嵌入式網(wǎng)關(guān)硬件結(jié)構(gòu)圖Fig.2 Hardware structure of the embedded gateway
圖2中,核心電路板選用了北京博創(chuàng)興業(yè)科技公司生產(chǎn)的UP-NETARM2410系統(tǒng)核心板,包括S3C2410芯片;1片K29F2808,用來構(gòu)建64 MB的Flash存儲(chǔ)系統(tǒng);2片HY57561620BT-H,用來構(gòu)建64 MB的SDRAM存儲(chǔ)系統(tǒng)。系統(tǒng)接口底板電路為自行設(shè)計(jì),主要單元電路及接口說明如下。
①系統(tǒng)電源電路為系統(tǒng)提供5 V、3.3 V兩組電壓,并為S3C2410及外圍電路供電;
②20腳JTAG接口可對(duì)芯片內(nèi)部的所有部件進(jìn)行訪問,并對(duì)系統(tǒng)進(jìn)行軟硬件調(diào)試和編程等;
③復(fù)位電路采用74HC04,可完成系統(tǒng)上電復(fù)位和在系統(tǒng)工作時(shí)的用戶按鍵復(fù)位;
④9芯RS-232C串行接口,選用MAX232CSE芯片;
⑤ 以太網(wǎng)接口芯片選用AS88796芯片,10/100 Mbit/s自適應(yīng);
⑥CAN總線接口芯片選用MCP2510芯片;
⑦通用I/O接口電路,外接7個(gè)LED顯示器和4個(gè)按鍵,主要用于硬件調(diào)試、程序控制流程和中斷等。
RS-232C是目前較為通用的串行數(shù)據(jù)傳輸總線標(biāo)準(zhǔn),采用的接口為9芯或25芯的D型插頭。在實(shí)際使用中,要完成最基本的串行通信功能,只需RXD(數(shù)據(jù)接收)、TXD(數(shù)據(jù)發(fā)送)和 GND(地)三根線。由于RS-232C標(biāo)準(zhǔn)定義的邏輯電平信號(hào)與S3C2410系統(tǒng)的LVTTL電路定義的邏輯電平信號(hào)完全不同:LVTTL的邏輯“1”電平對(duì)應(yīng) 2~3.3 V,邏輯“0”電平對(duì)應(yīng) 0~0.4 V;而 RS-232C標(biāo)準(zhǔn)采用負(fù)邏輯方式,邏輯“1”電平對(duì)應(yīng)-15~-3 V,邏輯“0”電平對(duì)應(yīng)+3~+15 V。因此,兩者之間要通信就需要進(jìn)行電平和邏輯關(guān)系的變換。
本設(shè)計(jì)采用MAX232CSE芯片來實(shí)現(xiàn)RS-232C與S3C2410的邏輯電平轉(zhuǎn)換,并采用目前常用的9芯D型插頭為接口。相關(guān)的基本電路如圖3所示。同時(shí),根據(jù)需要,本系統(tǒng)設(shè)計(jì)了2個(gè)RS-232接口,一個(gè)用來和主機(jī)通信,另一個(gè)用來讀取掛接的工業(yè)采集設(shè)備數(shù)據(jù)。
圖3 RS-232接口電路圖Fig.3 Circuit of RS-232 interface
網(wǎng)絡(luò)控制器S3C2410內(nèi)嵌了1個(gè)可以以10/100 Mbit/s的速率工作在半雙工或全雙工模式下的以太網(wǎng)控制器。在半雙工模式下,控制器支持 IEEE 802.3的CSMA/CD協(xié)議;在全雙工模式下,控制器支持IEEE 802.3 MAC控制層協(xié)議。以太網(wǎng)控制器的MAC層支持媒體獨(dú)立接口(media independent interface,MII)和帶緩沖的DMA接口(buffered DMA interface,BDI)。由于S3C2410片內(nèi)帶有1個(gè)MAC層控制器,因此,本系統(tǒng)的以太網(wǎng)接口選擇了同時(shí)包含MAC層控制器和物理層接口的以太網(wǎng)接口芯片AX88796[4]。
S3C2410 的數(shù)據(jù)總線 XDATA[15,…,0]與 AX88796的數(shù)據(jù)總線SD[15,…,0]直接相連;IOCS16B腳通過一個(gè)電阻接高電平,使 AX88796工作在16位模式;AX88796的地址使能端與S3C2410的nECS<3>相連,提供AX88796作為外部I/O設(shè)備的片選信號(hào);IORB、IOWB分別為AX88796的讀、寫使能端,分別與S3C2410的nOE、nWBE<0>相連;為減少連線、降低成本,將JP腳接高電平,使AX88796工作在跳線模式。
S3C2410通過 AX88796收發(fā)數(shù)據(jù),即通過控制AX88796的32個(gè)端口寄存器來完成收發(fā)功能,所以,只用S3C2410的5條地址總線與AX88796的地址總線相連即可。又由于AX88796作為S3C2410的一個(gè)外部I/O設(shè)備,且工作在16位方式,因此,其地址線SA[0,...,4]與 ADDR[1,…,5]相連。AX88796 為高電平復(fù)位芯片,其復(fù)位端與系統(tǒng)復(fù)位電路的非門前一級(jí)相連。AX88796的媒體接口TPIN±、TPOUT±與自帶隔離變壓器的RJ45接口相連,實(shí)現(xiàn)與以太網(wǎng)的物理連接。AX88796與S3C2401接口框圖如圖4所示。
圖4 AX88796與S3C2410接口框圖Fig.4 Interfacing block diagram between AX88796 and S3C2410
系統(tǒng)的軟件設(shè)計(jì)主要包括嵌入式Linux操作系統(tǒng)的移植(Boot Loader、內(nèi)核和根文件系統(tǒng)的移植)、嵌入式Web服務(wù)器Boa的移植和設(shè)備驅(qū)動(dòng)程序編寫3部分[5-7]。由于前兩部分實(shí)現(xiàn)方法比較規(guī)范[8],參考資料較多,限于篇幅,其內(nèi)容不做說明,請(qǐng)參考文獻(xiàn)[8]。
許多企業(yè)在逐年的設(shè)備改造與升級(jí)過程中,由于沒有足夠的資金一次性投入購置同一品牌的設(shè)備,因此,往往是分階段采購設(shè)備。而各種設(shè)備自動(dòng)化水平參差不齊,就會(huì)出現(xiàn)多種設(shè)備和多種信息子系統(tǒng)并存的異構(gòu)環(huán)境。為了在企業(yè)升級(jí)的過程中降低成本,需要將以往的分散控制系統(tǒng)(distributed control system,DCS)與現(xiàn)場總線控制系統(tǒng)(fieldbus control system,F(xiàn)CS)整合起來。但這些子系統(tǒng)獨(dú)立性強(qiáng)、軟件封閉和互操作性差,導(dǎo)致系統(tǒng)集成難度較大。對(duì)此,本網(wǎng)關(guān)采取把特定工業(yè)監(jiān)控設(shè)備串口通信協(xié)議集成到網(wǎng)關(guān)軟件里的辦法,使這些被監(jiān)控的數(shù)據(jù)對(duì)象都能通過Internet/Intranet傳送,實(shí)現(xiàn)多總線異構(gòu)系統(tǒng)的集成。
為了實(shí)現(xiàn)在線測(cè)試,以廈門宇電AI808智能儀表為例,介紹其采集THJ-2型高級(jí)過程控制系統(tǒng)試驗(yàn)裝置提供的鍋爐液位值的過程。AI系列儀表使用異步串行通信接口,接口電平符合RS-232C或RS-485標(biāo)準(zhǔn)中的規(guī)定,數(shù)據(jù)格式為1個(gè)起始位、8位數(shù)據(jù)、無校驗(yàn)位、1個(gè)或2個(gè)停止位。所開發(fā)的網(wǎng)關(guān)中嵌入了廈門宇光自動(dòng)化公司生產(chǎn)的AI系列顯示控制儀表的專用串行通信協(xié)議——AIBUS。
AIBUS采用16進(jìn)制數(shù)據(jù)格式表示各種指令代碼和數(shù)據(jù),標(biāo)準(zhǔn)的通信指令有兩條,即讀指令和寫指令。兩條指令使得上位機(jī)軟件編寫更容易,且能完整地對(duì)儀表進(jìn)行操作。標(biāo)準(zhǔn)讀、寫指令格式如下。
讀:地址代號(hào)+52H(82)+要讀的參數(shù)代號(hào)+
寫:地址代號(hào)+43H(67)+要寫的參數(shù)代號(hào)+
為了在一個(gè)通信接口上連接多臺(tái)AI儀表,需要給每臺(tái)AI儀表編一個(gè)互不相同的通信地址,即地址代號(hào)。有效的地址代號(hào)為0~80(部分型號(hào)為0~100)。所以,一條通信線路上最多可連接81臺(tái)AI儀表,儀表的通信地址由參數(shù)ADDR決定。
儀表參數(shù)采用1個(gè)8位二進(jìn)制數(shù)(一個(gè)字節(jié),寫為16進(jìn)制數(shù))的參數(shù)代號(hào)來表示。它在指令中表示要讀/寫的參數(shù)名。
校驗(yàn)碼采用16位求和校驗(yàn)方式,其中讀指令的校驗(yàn)碼計(jì)算方法為:
寫指令的校驗(yàn)碼計(jì)算方法為以下公式做16位二進(jìn)制加法計(jì)算得出的余數(shù)(溢出部分不處理),即:
無論是讀還是寫,儀表都會(huì)返回以下10個(gè)字節(jié)數(shù)據(jù),即:測(cè)量值PV+給定值SV+輸出值MV及報(bào)警狀態(tài)+所讀/寫參數(shù)值+校驗(yàn)碼。
系統(tǒng)采用主從式多機(jī)通信結(jié)構(gòu),每向儀表發(fā)一個(gè)指令,儀表即返回一個(gè)數(shù)據(jù)。編寫客戶端(上位機(jī))軟件時(shí),注意每條有效指令儀表應(yīng)在0~150 ms內(nèi)作出應(yīng)答,而上位機(jī)也必須等儀表返回?cái)?shù)據(jù)后,才能發(fā)送新的指令,否則將引起錯(cuò)誤。如果儀表超過最大響應(yīng)時(shí)間(150 ms)仍沒有應(yīng)答,則原因可能是指令無效、通信線路故障、儀表沒有開機(jī)或通信地址不合等,此時(shí)上位機(jī)應(yīng)重發(fā)指令或跳過該地址儀表。
在本測(cè)試系統(tǒng)內(nèi)部,廈門宇電AI808智能儀表的通信協(xié)議以文件的形式在Linux下實(shí)現(xiàn),以便日后擴(kuò)展和集成更多的工業(yè)監(jiān)控設(shè)備的通信協(xié)議。
由于要通過客戶端的IE瀏覽器訪問網(wǎng)關(guān)內(nèi)嵌的Web服務(wù)器,因此,需要在網(wǎng)關(guān)網(wǎng)絡(luò)配置中添加網(wǎng)口的IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)地址和DNS(域名服務(wù)器)地址。這就需要修改Linux中的一部分網(wǎng)絡(luò)配置文件。修改的文件如下。
① /linux-dist/vendors/Samsung/2410/rc文件:rc文件主要定義了操作系統(tǒng)在啟動(dòng)過程中需要完成的一些初始化工作。網(wǎng)卡的IP地址、子網(wǎng)掩碼和網(wǎng)關(guān)地址都在此配置。
② 在/linux-dist/vendors/Samsung/2410/路徑下添加resolv.conf配置文件,用來配置DNS服務(wù)器地址。在這個(gè)文件中,可以配置最多3個(gè)DNS服務(wù)器地址,網(wǎng)口在進(jìn)行域名解析時(shí),依次查找服務(wù)器地址。
③ /linux-dist/vendors/Samsung/2410/Makefile,由于在下載的Linux源碼包中并沒有加入resole.conf文件,因此,如果要將該文件編譯進(jìn)文件系統(tǒng),還需要修改Makefile。在文件中添加 $(ROMFSINST)/etc/resolv.conf,再重新編譯 romfs文件系統(tǒng),即 make romfs,就可以在etc/文件夾中看到此DNS的配置文件。
以上文件修改好之后,重新編譯內(nèi)核,并下載啟動(dòng)Linux系統(tǒng),系統(tǒng)中以太網(wǎng)口的IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)地址和DNS服務(wù)器的地址就生效了。
試驗(yàn)結(jié)果表明,通過對(duì)客戶端IE網(wǎng)頁中tempr變量的刷新,能實(shí)現(xiàn)廈門宇電AI808智能儀表所采集的液位值的動(dòng)態(tài)實(shí)時(shí)刷新,實(shí)現(xiàn)在客戶端通過Web瀏覽器實(shí)時(shí)監(jiān)控宇電AI808智能儀表。
本文基于嵌入式Internet技術(shù),探索設(shè)計(jì)了工業(yè)以太網(wǎng)智能高速網(wǎng)關(guān)的方法,為工業(yè)現(xiàn)場大量實(shí)際使用中的監(jiān)控設(shè)備提供了上網(wǎng)解決方案,提高了系統(tǒng)的開放性和兼容性,實(shí)現(xiàn)了異構(gòu)網(wǎng)絡(luò)集成,使得遠(yuǎn)程用戶可隨時(shí)隨地通過Web瀏覽器的友好界面,瀏覽和管理現(xiàn)場監(jiān)控設(shè)備。本文提出的使用嵌入式網(wǎng)關(guān)實(shí)現(xiàn)異構(gòu)系統(tǒng)集成方案已成功應(yīng)用于某針織廠的信息化改造工程,通過將不同總線PLC控制器的通信協(xié)議集成到網(wǎng)關(guān),為該廠節(jié)約了大筆更換設(shè)備的費(fèi)用。實(shí)踐表明,本方案能為企業(yè)信息化系統(tǒng)的建立及自動(dòng)化改造提供高性能和低成本的解決途徑,具有廣闊的工業(yè)應(yīng)用前景。
[1]李麗娜,邵敏權(quán),馬慶峰.淺談嵌入式系統(tǒng)的現(xiàn)狀及發(fā)展[J].長春工業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2004,25(2):74-75.
[2]陳明.網(wǎng)絡(luò)設(shè)備教程[M].北京:清華大學(xué)出版社,2004:155-162.
[3]徐聯(lián)貴.基于嵌入式的工業(yè)以太網(wǎng)網(wǎng)關(guān)設(shè)計(jì)[D].烏魯木齊:新疆大學(xué),2007.
[4]熊茂華.基于AX88796的嵌入式網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)程序設(shè)計(jì)[J].自動(dòng)化儀表,2008,29(3):29 -34.
[5]田澤.ARM9嵌入式Linux開發(fā)實(shí)驗(yàn)與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2006:100-102.
[6]趙躍華,杜云海.嵌入式安全Web網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(4):565 -567.
[7]杜輝,舒蓮卿.基于嵌入式Web服務(wù)器的網(wǎng)絡(luò)設(shè)備測(cè)控系統(tǒng)設(shè)計(jì)[J].自動(dòng)化儀表,2006,27(3):7 -10.
[8]江崇科,黃智剛,張軍,等.嵌入式網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2006,27(1):43-46.