任 雯
(三明學院物理與機電工程系,福建 三明 365004)
隨著計算機技術和通信技術的飛速發展,底層監測設備(如數據采集模塊、智能儀表和數控機床等)與局域網或Internet實現了無縫連接。這就使遠程監測成為工業發展越來越迫切的需求。許多傳統的工業監控設備基于RS-485、RS-232和CAN Bus等通信協議構成輕量級串口網絡,但由于設備自身的特點和協議無法接入更大的計算機網絡等原因,使得串行通信設備與TCP/IP網絡主機之間橋接設備的研究,以及通過Web實現嵌入式設備和控制中心的交互成為當前嵌入式技術的熱點問題。
嵌入式Internet技術的出現是Internet發展歷史上的一個里程碑,它依托于Internet、Web和嵌入式三大技術。嵌入式Internet技術是一種設備接入技術和異構網絡互連技術。它主要解決的問題是通過Web和嵌入式技術,實現從不同子網和不同的物理區域對接入到Internet的設備和異類子網進行監控、診斷、測試、管理和維護等功能,從而使接入到Internet的各種設備或其他類型的子網具有遠程監控、診斷和管理的功能[1-2]。本文的總體設計目標是開發出低成本、高性能、配置簡便靈活、可支持多種簡單的通信協議以及針對不同類型的工業現場監控設備及其網絡的Internet解決方案。
網關又被稱為網間協議轉換器,用于連接采用不同通信協議的網絡,實現網絡之間的數據傳輸和共享。如要將串行口的數據轉發到網絡上,實現數據的遠程傳輸,就必須使用網關。
本文提出了一種基于嵌入式Internet技術的工業以太網網關設計方案,以實現串口和以太網之間的數據傳輸。該網關采用32位高性能的ARM9嵌入式處理器S3C2410,通過移植嵌入式操作系統Linux,實現TCP/IP協議和HTTP Server的運行,形成一個用戶可以通過網絡瀏覽器進行遠程訪問的服務器。同時,通過RS-485和CAN等輕量級網絡,將眾多的嵌入式設備連接起來,使用戶可以利用IE網頁直觀地看到界面,且通過嵌入式網關對嵌入式設備進行監控和管理,可實現異構系統的集成。
以工業以太網網關為基礎的現場監控設備接入Internet的實現框圖如圖1所示。

圖1 設備接入Internet框圖Fig.1 Connection diagram of equipment to Internet
網關電路以Samsung公司生產的、內含ARM920T核的S3C2410芯片為核心,采用系統核心板和系統接口底板分開設計的方法進行設計。網關硬件系統結構如圖2 所示[3]。

圖2 嵌入式網關硬件結構圖Fig.2 Hardware structure of the embedded gateway
圖2中,核心電路板選用了北京博創興業科技公司生產的UP-NETARM2410系統核心板,包括S3C2410芯片;1片K29F2808,用來構建64 MB的Flash存儲系統;2片HY57561620BT-H,用來構建64 MB的SDRAM存儲系統。系統接口底板電路為自行設計,主要單元電路及接口說明如下。
①系統電源電路為系統提供5 V、3.3 V兩組電壓,并為S3C2410及外圍電路供電;
②20腳JTAG接口可對芯片內部的所有部件進行訪問,并對系統進行軟硬件調試和編程等;
③復位電路采用74HC04,可完成系統上電復位和在系統工作時的用戶按鍵復位;
④9芯RS-232C串行接口,選用MAX232CSE芯片;
⑤ 以太網接口芯片選用AS88796芯片,10/100 Mbit/s自適應;
⑥CAN總線接口芯片選用MCP2510芯片;
⑦通用I/O接口電路,外接7個LED顯示器和4個按鍵,主要用于硬件調試、程序控制流程和中斷等。
RS-232C是目前較為通用的串行數據傳輸總線標準,采用的接口為9芯或25芯的D型插頭。在實際使用中,要完成最基本的串行通信功能,只需RXD(數據接收)、TXD(數據發送)和 GND(地)三根線。由于RS-232C標準定義的邏輯電平信號與S3C2410系統的LVTTL電路定義的邏輯電平信號完全不同:LVTTL的邏輯“1”電平對應 2~3.3 V,邏輯“0”電平對應 0~0.4 V;而 RS-232C標準采用負邏輯方式,邏輯“1”電平對應-15~-3 V,邏輯“0”電平對應+3~+15 V。因此,兩者之間要通信就需要進行電平和邏輯關系的變換。
本設計采用MAX232CSE芯片來實現RS-232C與S3C2410的邏輯電平轉換,并采用目前常用的9芯D型插頭為接口。相關的基本電路如圖3所示。同時,根據需要,本系統設計了2個RS-232接口,一個用來和主機通信,另一個用來讀取掛接的工業采集設備數據。

圖3 RS-232接口電路圖Fig.3 Circuit of RS-232 interface
網絡控制器S3C2410內嵌了1個可以以10/100 Mbit/s的速率工作在半雙工或全雙工模式下的以太網控制器。在半雙工模式下,控制器支持 IEEE 802.3的CSMA/CD協議;在全雙工模式下,控制器支持IEEE 802.3 MAC控制層協議。以太網控制器的MAC層支持媒體獨立接口(media independent interface,MII)和帶緩沖的DMA接口(buffered DMA interface,BDI)。由于S3C2410片內帶有1個MAC層控制器,因此,本系統的以太網接口選擇了同時包含MAC層控制器和物理層接口的以太網接口芯片AX88796[4]。
S3C2410 的數據總線 XDATA[15,…,0]與 AX88796的數據總線SD[15,…,0]直接相連;IOCS16B腳通過一個電阻接高電平,使 AX88796工作在16位模式;AX88796的地址使能端與S3C2410的nECS<3>相連,提供AX88796作為外部I/O設備的片選信號;IORB、IOWB分別為AX88796的讀、寫使能端,分別與S3C2410的nOE、nWBE<0>相連;為減少連線、降低成本,將JP腳接高電平,使AX88796工作在跳線模式。
S3C2410通過 AX88796收發數據,即通過控制AX88796的32個端口寄存器來完成收發功能,所以,只用S3C2410的5條地址總線與AX88796的地址總線相連即可。又由于AX88796作為S3C2410的一個外部I/O設備,且工作在16位方式,因此,其地址線SA[0,...,4]與 ADDR[1,…,5]相連。AX88796 為高電平復位芯片,其復位端與系統復位電路的非門前一級相連。AX88796的媒體接口TPIN±、TPOUT±與自帶隔離變壓器的RJ45接口相連,實現與以太網的物理連接。AX88796與S3C2401接口框圖如圖4所示。

圖4 AX88796與S3C2410接口框圖Fig.4 Interfacing block diagram between AX88796 and S3C2410
系統的軟件設計主要包括嵌入式Linux操作系統的移植(Boot Loader、內核和根文件系統的移植)、嵌入式Web服務器Boa的移植和設備驅動程序編寫3部分[5-7]。由于前兩部分實現方法比較規范[8],參考資料較多,限于篇幅,其內容不做說明,請參考文獻[8]。
許多企業在逐年的設備改造與升級過程中,由于沒有足夠的資金一次性投入購置同一品牌的設備,因此,往往是分階段采購設備。而各種設備自動化水平參差不齊,就會出現多種設備和多種信息子系統并存的異構環境。為了在企業升級的過程中降低成本,需要將以往的分散控制系統(distributed control system,DCS)與現場總線控制系統(fieldbus control system,FCS)整合起來。但這些子系統獨立性強、軟件封閉和互操作性差,導致系統集成難度較大。對此,本網關采取把特定工業監控設備串口通信協議集成到網關軟件里的辦法,使這些被監控的數據對象都能通過Internet/Intranet傳送,實現多總線異構系統的集成。
為了實現在線測試,以廈門宇電AI808智能儀表為例,介紹其采集THJ-2型高級過程控制系統試驗裝置提供的鍋爐液位值的過程。AI系列儀表使用異步串行通信接口,接口電平符合RS-232C或RS-485標準中的規定,數據格式為1個起始位、8位數據、無校驗位、1個或2個停止位。所開發的網關中嵌入了廈門宇光自動化公司生產的AI系列顯示控制儀表的專用串行通信協議——AIBUS。
AIBUS采用16進制數據格式表示各種指令代碼和數據,標準的通信指令有兩條,即讀指令和寫指令。兩條指令使得上位機軟件編寫更容易,且能完整地對儀表進行操作。標準讀、寫指令格式如下。
讀:地址代號+52H(82)+要讀的參數代號+

寫:地址代號+43H(67)+要寫的參數代號+

為了在一個通信接口上連接多臺AI儀表,需要給每臺AI儀表編一個互不相同的通信地址,即地址代號。有效的地址代號為0~80(部分型號為0~100)。所以,一條通信線路上最多可連接81臺AI儀表,儀表的通信地址由參數ADDR決定。
儀表參數采用1個8位二進制數(一個字節,寫為16進制數)的參數代號來表示。它在指令中表示要讀/寫的參數名。
校驗碼采用16位求和校驗方式,其中讀指令的校驗碼計算方法為:

寫指令的校驗碼計算方法為以下公式做16位二進制加法計算得出的余數(溢出部分不處理),即:

無論是讀還是寫,儀表都會返回以下10個字節數據,即:測量值PV+給定值SV+輸出值MV及報警狀態+所讀/寫參數值+校驗碼。
系統采用主從式多機通信結構,每向儀表發一個指令,儀表即返回一個數據。編寫客戶端(上位機)軟件時,注意每條有效指令儀表應在0~150 ms內作出應答,而上位機也必須等儀表返回數據后,才能發送新的指令,否則將引起錯誤。如果儀表超過最大響應時間(150 ms)仍沒有應答,則原因可能是指令無效、通信線路故障、儀表沒有開機或通信地址不合等,此時上位機應重發指令或跳過該地址儀表。
在本測試系統內部,廈門宇電AI808智能儀表的通信協議以文件的形式在Linux下實現,以便日后擴展和集成更多的工業監控設備的通信協議。
由于要通過客戶端的IE瀏覽器訪問網關內嵌的Web服務器,因此,需要在網關網絡配置中添加網口的IP地址、子網掩碼、網關地址和DNS(域名服務器)地址。這就需要修改Linux中的一部分網絡配置文件。修改的文件如下。
① /linux-dist/vendors/Samsung/2410/rc文件:rc文件主要定義了操作系統在啟動過程中需要完成的一些初始化工作。網卡的IP地址、子網掩碼和網關地址都在此配置。
② 在/linux-dist/vendors/Samsung/2410/路徑下添加resolv.conf配置文件,用來配置DNS服務器地址。在這個文件中,可以配置最多3個DNS服務器地址,網口在進行域名解析時,依次查找服務器地址。
③ /linux-dist/vendors/Samsung/2410/Makefile,由于在下載的Linux源碼包中并沒有加入resole.conf文件,因此,如果要將該文件編譯進文件系統,還需要修改Makefile。在文件中添加 $(ROMFSINST)/etc/resolv.conf,再重新編譯 romfs文件系統,即 make romfs,就可以在etc/文件夾中看到此DNS的配置文件。
以上文件修改好之后,重新編譯內核,并下載啟動Linux系統,系統中以太網口的IP地址、子網掩碼、網關地址和DNS服務器的地址就生效了。
試驗結果表明,通過對客戶端IE網頁中tempr變量的刷新,能實現廈門宇電AI808智能儀表所采集的液位值的動態實時刷新,實現在客戶端通過Web瀏覽器實時監控宇電AI808智能儀表。
本文基于嵌入式Internet技術,探索設計了工業以太網智能高速網關的方法,為工業現場大量實際使用中的監控設備提供了上網解決方案,提高了系統的開放性和兼容性,實現了異構網絡集成,使得遠程用戶可隨時隨地通過Web瀏覽器的友好界面,瀏覽和管理現場監控設備。本文提出的使用嵌入式網關實現異構系統集成方案已成功應用于某針織廠的信息化改造工程,通過將不同總線PLC控制器的通信協議集成到網關,為該廠節約了大筆更換設備的費用。實踐表明,本方案能為企業信息化系統的建立及自動化改造提供高性能和低成本的解決途徑,具有廣闊的工業應用前景。
[1]李麗娜,邵敏權,馬慶峰.淺談嵌入式系統的現狀及發展[J].長春工業大學學報:自然科學版,2004,25(2):74-75.
[2]陳明.網絡設備教程[M].北京:清華大學出版社,2004:155-162.
[3]徐聯貴.基于嵌入式的工業以太網網關設計[D].烏魯木齊:新疆大學,2007.
[4]熊茂華.基于AX88796的嵌入式網絡設備驅動程序設計[J].自動化儀表,2008,29(3):29 -34.
[5]田澤.ARM9嵌入式Linux開發實驗與實踐[M].北京:北京航空航天大學出版社,2006:100-102.
[6]趙躍華,杜云海.嵌入式安全Web網關的設計與實現[J].計算機工程與設計,2006,27(4):565 -567.
[7]杜輝,舒蓮卿.基于嵌入式Web服務器的網絡設備測控系統設計[J].自動化儀表,2006,27(3):7 -10.
[8]江崇科,黃智剛,張軍,等.嵌入式網關的設計與實現[J].計算機工程與設計,2006,27(1):43-46.