董航飛
(南通航運職業(yè)技術(shù)學(xué)院,南通226010)
近年,由于Internet技術(shù)的不斷完善和飛速發(fā)展,采用Internet通信已經(jīng)成為目前重要的通信手段之一;而基于MPU(微處理器)和MCU(微控制器)的嵌入式系統(tǒng)也已經(jīng)在各個領(lǐng)域得到廣泛的應(yīng)用。若能將兩者結(jié)合起來,既能實現(xiàn)通信的方便、高速和低廉又能實現(xiàn)設(shè)備的微型、簡單和可靠,將會推動社會的智能化和現(xiàn)代化。本文基于以上目的,設(shè)計了一款基于C/S和B/S結(jié)構(gòu)相結(jié)合的嵌入式Web服務(wù)器。該服務(wù)器能提供一個標(biāo)準(zhǔn)而且友好的界面給客戶訪問,并實現(xiàn)CAN 總線、RS-485、RS-232 與Internet的相互通信。該方案是將現(xiàn)場的設(shè)備組成一個底層的網(wǎng)絡(luò),通過該服務(wù)器,實現(xiàn)底層的設(shè)備網(wǎng)絡(luò)和Internet通信,避免了所有現(xiàn)場設(shè)備直接接入Internet,簡化了結(jié)構(gòu),便于控制。
整體設(shè)計如圖1所示。嵌入式Wed服務(wù)器采集現(xiàn)場設(shè)備的實時數(shù)據(jù),客戶可通過現(xiàn)有的公共通信網(wǎng)絡(luò)(如PSTN 等)和訪問標(biāo)準(zhǔn)的Wed瀏覽器,進行現(xiàn)場設(shè)備的訪問、設(shè)置和監(jiān)控等操作,進而實現(xiàn)不同結(jié)構(gòu)設(shè)備之間的跨平臺通信。該服務(wù)器主要分成3大部分。

圖1 整體設(shè)計
①網(wǎng)絡(luò)模塊。該模塊是服務(wù)器的核心部分,該部分要完成服務(wù)器的初始化,及時響應(yīng)客戶的不同的服務(wù)請求,通過發(fā)送郵件的形式實現(xiàn)故障報警和數(shù)據(jù)存儲。該模塊提供兩種網(wǎng)絡(luò)接入模式:通過Ethernet接入Internet和通過PSTN(公共交換電話網(wǎng))接入Internet。這樣,使服務(wù)器能適應(yīng)更多的場合,客戶可以不受地理空間的限制,隨時可以訪問現(xiàn)場設(shè)備。
②存儲空間。服務(wù)器的操作系統(tǒng)、Web瀏覽器網(wǎng)頁和運行的程序存放在外擴的串行Flash芯片中,作為一個獨立的文件系統(tǒng);各個現(xiàn)場設(shè)備采集到的數(shù)據(jù)存放在RAM 中,定時將數(shù)據(jù)通過郵件發(fā)送至上層固定郵箱,現(xiàn)場再次采集的數(shù)據(jù)將原有數(shù)據(jù)覆蓋。
③接口模塊。該服務(wù)器設(shè)計了常用的通信接口,如RS-232、RS-485、CAN、Modem、Ethernet,以實現(xiàn)和不同的通信標(biāo)準(zhǔn)的設(shè)備連接。
硬件總體設(shè)計如圖2所示。

圖2 硬件總體設(shè)計圖
本設(shè)計中主控制器采用MAXIM 公司生產(chǎn)的網(wǎng)絡(luò)微控制器DS80C400,該控制器兼容8051,具有以下特點:外設(shè)集成了10/100M 以太網(wǎng)MAC,三個全雙工串行端口,一個CAN 2.0B控制器,1-Wire,8個雙向8位I/O 端口,可以方便地實現(xiàn)網(wǎng)絡(luò)功能。
為更好地適應(yīng)DS80C400的網(wǎng)絡(luò)控制功能,采用Intel公司的生產(chǎn)芯片LXT972ALC,芯片功耗低,抗干擾能力強,支持10/100M 的雙絞線應(yīng)用,尤其自身集成的MII口正好符合10/100MACs。其與主控芯片的連接如圖3所示。圖中變壓器采用漢仁集團的HR61H40,完成數(shù)據(jù)傳輸和網(wǎng)絡(luò)隔離的功能。
該接口電路采用常見的芯片MAX213EAI,完成該服務(wù)器與電話網(wǎng)的連接實現(xiàn)遠距離數(shù)據(jù)傳輸,接口電路如圖4所示。

圖3 DS80C400與LXT972ALC連接圖

圖4 Modem 接口電路圖
軟件是完成一個系統(tǒng)設(shè)計至關(guān)重要的部分,軟件設(shè)計的好壞直接決定該設(shè)計的性能好壞。根據(jù)服務(wù)器的實際功能需求,該設(shè)計采用網(wǎng)絡(luò)功能強、跨平臺能力強的TINIOS操作系統(tǒng)和與之匹配的TINI軟件。
服務(wù)器作為橋梁,完成客戶對現(xiàn)場設(shè)備的訪問。該服務(wù)器采用TCP/IP協(xié)議來傳輸數(shù)據(jù),以HTTP 協(xié)議來進行客戶端與服務(wù)器之間的請求和響應(yīng),其體系結(jié)構(gòu)如圖5所示。本體系結(jié)構(gòu)采用C/S和B/S結(jié)構(gòu)相結(jié)合的方式:客戶的訪問采用B/S模式,通過瀏覽器網(wǎng)頁訪問嵌入式Web服務(wù)器,該模式界面友好,使用簡單,便于客戶操作;通信采用C/S 模式和Java Applet技術(shù)相結(jié)合,在Java Applet源程序中嵌入一個套接字,并將整個源程序編譯成Java碼嵌入到Web網(wǎng)頁中。當(dāng)客戶端訪問該網(wǎng)頁時Java碼會自動下載到網(wǎng)頁,隨后與服務(wù)器建立Socket通信,從而獲取實時數(shù)據(jù)。該方法讓瀏覽器分擔(dān)了服務(wù)器的部分工作,減少了服務(wù)器的運行負荷,提高了效率。

圖5 Web體系結(jié)構(gòu)圖
客戶端與服務(wù)器的通信過程如圖6所示:當(dāng)嵌入式Web服務(wù)器被啟動,自動開啟http服務(wù)線程和tini軟件服務(wù)線程,http服務(wù)線程開啟后啟動監(jiān)聽程序進入等待狀態(tài),等待80端口的連接請求。客戶端發(fā)出請求后,服務(wù)器發(fā)送包含Applet的主界面網(wǎng)頁給客戶端,客戶根據(jù)主界面的選擇按鈕選擇所需要訪問的接口(如CAN2.0),隨后主界面轉(zhuǎn)入該接口的網(wǎng)頁,網(wǎng)頁中的Applet會向服務(wù)器發(fā)送命令請求初始化,初始化完成后,客戶便可以對該網(wǎng)頁進行操作比如參數(shù)設(shè)置等。Web服務(wù)器發(fā)送的初始化數(shù)據(jù)主要是上一次的配置信息和采集的數(shù)據(jù)。隨后,客戶端進入監(jiān)聽模式監(jiān)聽9999端口,等待客戶的操作命令,當(dāng)服務(wù)器收到命令請求后,解析命令并根據(jù)協(xié)議采集控制設(shè)備的實時數(shù)據(jù)發(fā)送給客戶端網(wǎng)頁中的Applet,顯示在網(wǎng)頁中。

圖6 客戶端與服務(wù)器通信過程圖
完成了服務(wù)器的軟件和硬件設(shè)計后,以西門子PLCS7-200作為現(xiàn)場設(shè)備通過以太網(wǎng)進行通信測試。客戶首先登陸到Web服務(wù)器首頁選擇需要通信的接口,如圖7所示,進入該接口頁面后進行信息配置,Web服務(wù)器隨后將客戶的配置信息根據(jù)協(xié)議轉(zhuǎn)換成PLC可以識別的相應(yīng)代碼,再發(fā)送給PLC。PLC 收到代碼后進行解碼,然后完成相應(yīng)的操作比如采集實時數(shù)據(jù)。PLC將采集到的數(shù)據(jù)按照規(guī)定的數(shù)據(jù)幀發(fā)送給服務(wù)器。服務(wù)器收到數(shù)據(jù)后暫存在數(shù)據(jù)緩沖區(qū),并根據(jù)數(shù)據(jù)繪制折線圖,以便客戶登陸服務(wù)器時能更加直觀地查看數(shù)據(jù),如圖8所示。

圖7 服務(wù)器登陸界面

圖8 PLC實時數(shù)據(jù)圖
本設(shè)計采用DS80C400作為主控芯片完成了硬件設(shè)計,采用Java技術(shù)完成了軟件設(shè)計,并用PLC 作為現(xiàn)場設(shè)備通過以太網(wǎng)對其進行了控制和數(shù)據(jù)采集的驗證,結(jié)果表明該服務(wù)器能運行可靠,性能穩(wěn)定,能實時完成控制和數(shù)據(jù)采集任務(wù),具有很好的實用和推廣價值。C/S和B/S相結(jié)合的結(jié)構(gòu),不僅能提高服務(wù)器的工作效率,而且使客戶端只需要瀏覽器就可訪問,系統(tǒng)升級只在服務(wù)器端進行,簡化了客戶端的配置,使得服務(wù)器具有很強的可移植性和適應(yīng)性。本設(shè)計雖達到預(yù)期效果,但仍有不足,比如服務(wù)器在網(wǎng)絡(luò)上的安全性和遠距離傳輸?shù)膶崟r性等需要改進。
[1]彭金林.基于嵌入式Web服務(wù)器的PLC 通訊研究[J].武漢科技大學(xué)學(xué)報:自然科學(xué)版,2004,27(4):423-425.
[2]Dallas Semiconductor Corporation.High-Speed Microcontroller User's Guide:DS80C400Supplement,2012.
[3]吳玨,譚文學(xué).DS80C400在遠程數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].國外電子測量技術(shù),2003,22(3):40-41.
[4]萬靜華,丁亞軍.以太網(wǎng)控制器的嵌入式設(shè)備網(wǎng)絡(luò)互連[J].單片機與嵌入式系統(tǒng)應(yīng)用,2001(1):41-43.
[5]李桂權(quán).一種基于B/S結(jié)構(gòu)與C/S結(jié)構(gòu)結(jié)合的新體系結(jié)構(gòu)[J].電子技術(shù)應(yīng)用,2004,30(8):7-9.
[6]姜捷,王永紅.TINI的硬件結(jié)構(gòu)和軟件環(huán)境[J].單片機與嵌入式系統(tǒng)應(yīng)用,2002(9):53-55.
[7]郝金華.基于網(wǎng)絡(luò)微控制器的遠程監(jiān)控系統(tǒng)的設(shè)計與應(yīng)用[D].西安:西安電子科技大學(xué),2006.