董航飛
(南通航運(yùn)職業(yè)技術(shù)學(xué)院,南通226010)
近年,由于Internet技術(shù)的不斷完善和飛速發(fā)展,采用Internet通信已經(jīng)成為目前重要的通信手段之一;而基于MPU(微處理器)和MCU(微控制器)的嵌入式系統(tǒng)也已經(jīng)在各個(gè)領(lǐng)域得到廣泛的應(yīng)用。若能將兩者結(jié)合起來,既能實(shí)現(xiàn)通信的方便、高速和低廉又能實(shí)現(xiàn)設(shè)備的微型、簡單和可靠,將會(huì)推動(dòng)社會(huì)的智能化和現(xiàn)代化。本文基于以上目的,設(shè)計(jì)了一款基于C/S和B/S結(jié)構(gòu)相結(jié)合的嵌入式Web服務(wù)器。該服務(wù)器能提供一個(gè)標(biāo)準(zhǔn)而且友好的界面給客戶訪問,并實(shí)現(xiàn)CAN 總線、RS-485、RS-232 與Internet的相互通信。該方案是將現(xiàn)場的設(shè)備組成一個(gè)底層的網(wǎng)絡(luò),通過該服務(wù)器,實(shí)現(xiàn)底層的設(shè)備網(wǎng)絡(luò)和Internet通信,避免了所有現(xiàn)場設(shè)備直接接入Internet,簡化了結(jié)構(gòu),便于控制。
整體設(shè)計(jì)如圖1所示。嵌入式Wed服務(wù)器采集現(xiàn)場設(shè)備的實(shí)時(shí)數(shù)據(jù),客戶可通過現(xiàn)有的公共通信網(wǎng)絡(luò)(如PSTN 等)和訪問標(biāo)準(zhǔn)的Wed瀏覽器,進(jìn)行現(xiàn)場設(shè)備的訪問、設(shè)置和監(jiān)控等操作,進(jìn)而實(shí)現(xiàn)不同結(jié)構(gòu)設(shè)備之間的跨平臺(tái)通信。該服務(wù)器主要分成3大部分。
圖1 整體設(shè)計(jì)
①網(wǎng)絡(luò)模塊。該模塊是服務(wù)器的核心部分,該部分要完成服務(wù)器的初始化,及時(shí)響應(yīng)客戶的不同的服務(wù)請(qǐng)求,通過發(fā)送郵件的形式實(shí)現(xiàn)故障報(bào)警和數(shù)據(jù)存儲(chǔ)。該模塊提供兩種網(wǎng)絡(luò)接入模式:通過Ethernet接入Internet和通過PSTN(公共交換電話網(wǎng))接入Internet。這樣,使服務(wù)器能適應(yīng)更多的場合,客戶可以不受地理空間的限制,隨時(shí)可以訪問現(xiàn)場設(shè)備。
②存儲(chǔ)空間。服務(wù)器的操作系統(tǒng)、Web瀏覽器網(wǎng)頁和運(yùn)行的程序存放在外擴(kuò)的串行Flash芯片中,作為一個(gè)獨(dú)立的文件系統(tǒng);各個(gè)現(xiàn)場設(shè)備采集到的數(shù)據(jù)存放在RAM 中,定時(shí)將數(shù)據(jù)通過郵件發(fā)送至上層固定郵箱,現(xiàn)場再次采集的數(shù)據(jù)將原有數(shù)據(jù)覆蓋。
③接口模塊。該服務(wù)器設(shè)計(jì)了常用的通信接口,如RS-232、RS-485、CAN、Modem、Ethernet,以實(shí)現(xiàn)和不同的通信標(biāo)準(zhǔn)的設(shè)備連接。
硬件總體設(shè)計(jì)如圖2所示。
圖2 硬件總體設(shè)計(jì)圖
本設(shè)計(jì)中主控制器采用MAXIM 公司生產(chǎn)的網(wǎng)絡(luò)微控制器DS80C400,該控制器兼容8051,具有以下特點(diǎn):外設(shè)集成了10/100M 以太網(wǎng)MAC,三個(gè)全雙工串行端口,一個(gè)CAN 2.0B控制器,1-Wire,8個(gè)雙向8位I/O 端口,可以方便地實(shí)現(xiàn)網(wǎng)絡(luò)功能。
為更好地適應(yīng)DS80C400的網(wǎng)絡(luò)控制功能,采用Intel公司的生產(chǎn)芯片LXT972ALC,芯片功耗低,抗干擾能力強(qiáng),支持10/100M 的雙絞線應(yīng)用,尤其自身集成的MII口正好符合10/100MACs。其與主控芯片的連接如圖3所示。圖中變壓器采用漢仁集團(tuán)的HR61H40,完成數(shù)據(jù)傳輸和網(wǎng)絡(luò)隔離的功能。
該接口電路采用常見的芯片MAX213EAI,完成該服務(wù)器與電話網(wǎng)的連接實(shí)現(xiàn)遠(yuǎn)距離數(shù)據(jù)傳輸,接口電路如圖4所示。
圖3 DS80C400與LXT972ALC連接圖
圖4 Modem 接口電路圖
軟件是完成一個(gè)系統(tǒng)設(shè)計(jì)至關(guān)重要的部分,軟件設(shè)計(jì)的好壞直接決定該設(shè)計(jì)的性能好壞。根據(jù)服務(wù)器的實(shí)際功能需求,該設(shè)計(jì)采用網(wǎng)絡(luò)功能強(qiáng)、跨平臺(tái)能力強(qiáng)的TINIOS操作系統(tǒng)和與之匹配的TINI軟件。
服務(wù)器作為橋梁,完成客戶對(duì)現(xiàn)場設(shè)備的訪問。該服務(wù)器采用TCP/IP協(xié)議來傳輸數(shù)據(jù),以HTTP 協(xié)議來進(jìn)行客戶端與服務(wù)器之間的請(qǐng)求和響應(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源程序中嵌入一個(gè)套接字,并將整個(gè)源程序編譯成Java碼嵌入到Web網(wǎng)頁中。當(dāng)客戶端訪問該網(wǎng)頁時(shí)Java碼會(huì)自動(dòng)下載到網(wǎng)頁,隨后與服務(wù)器建立Socket通信,從而獲取實(shí)時(shí)數(shù)據(jù)。該方法讓瀏覽器分擔(dān)了服務(wù)器的部分工作,減少了服務(wù)器的運(yùn)行負(fù)荷,提高了效率。
圖5 Web體系結(jié)構(gòu)圖
客戶端與服務(wù)器的通信過程如圖6所示:當(dāng)嵌入式Web服務(wù)器被啟動(dòng),自動(dòng)開啟http服務(wù)線程和tini軟件服務(wù)線程,http服務(wù)線程開啟后啟動(dòng)監(jiān)聽程序進(jìn)入等待狀態(tài),等待80端口的連接請(qǐng)求。客戶端發(fā)出請(qǐng)求后,服務(wù)器發(fā)送包含Applet的主界面網(wǎng)頁給客戶端,客戶根據(jù)主界面的選擇按鈕選擇所需要訪問的接口(如CAN2.0),隨后主界面轉(zhuǎn)入該接口的網(wǎng)頁,網(wǎng)頁中的Applet會(huì)向服務(wù)器發(fā)送命令請(qǐng)求初始化,初始化完成后,客戶便可以對(duì)該網(wǎng)頁進(jìn)行操作比如參數(shù)設(shè)置等。Web服務(wù)器發(fā)送的初始化數(shù)據(jù)主要是上一次的配置信息和采集的數(shù)據(jù)。隨后,客戶端進(jìn)入監(jiān)聽模式監(jiān)聽9999端口,等待客戶的操作命令,當(dāng)服務(wù)器收到命令請(qǐng)求后,解析命令并根據(jù)協(xié)議采集控制設(shè)備的實(shí)時(shí)數(shù)據(jù)發(fā)送給客戶端網(wǎng)頁中的Applet,顯示在網(wǎng)頁中。
圖6 客戶端與服務(wù)器通信過程圖
完成了服務(wù)器的軟件和硬件設(shè)計(jì)后,以西門子PLCS7-200作為現(xiàn)場設(shè)備通過以太網(wǎng)進(jìn)行通信測(cè)試??蛻羰紫鹊顷懙絎eb服務(wù)器首頁選擇需要通信的接口,如圖7所示,進(jìn)入該接口頁面后進(jìn)行信息配置,Web服務(wù)器隨后將客戶的配置信息根據(jù)協(xié)議轉(zhuǎn)換成PLC可以識(shí)別的相應(yīng)代碼,再發(fā)送給PLC。PLC 收到代碼后進(jìn)行解碼,然后完成相應(yīng)的操作比如采集實(shí)時(shí)數(shù)據(jù)。PLC將采集到的數(shù)據(jù)按照規(guī)定的數(shù)據(jù)幀發(fā)送給服務(wù)器。服務(wù)器收到數(shù)據(jù)后暫存在數(shù)據(jù)緩沖區(qū),并根據(jù)數(shù)據(jù)繪制折線圖,以便客戶登陸服務(wù)器時(shí)能更加直觀地查看數(shù)據(jù),如圖8所示。
圖7 服務(wù)器登陸界面
圖8 PLC實(shí)時(shí)數(shù)據(jù)圖
本設(shè)計(jì)采用DS80C400作為主控芯片完成了硬件設(shè)計(jì),采用Java技術(shù)完成了軟件設(shè)計(jì),并用PLC 作為現(xiàn)場設(shè)備通過以太網(wǎng)對(duì)其進(jìn)行了控制和數(shù)據(jù)采集的驗(yàn)證,結(jié)果表明該服務(wù)器能運(yùn)行可靠,性能穩(wěn)定,能實(shí)時(shí)完成控制和數(shù)據(jù)采集任務(wù),具有很好的實(shí)用和推廣價(jià)值。C/S和B/S相結(jié)合的結(jié)構(gòu),不僅能提高服務(wù)器的工作效率,而且使客戶端只需要瀏覽器就可訪問,系統(tǒng)升級(jí)只在服務(wù)器端進(jìn)行,簡化了客戶端的配置,使得服務(wù)器具有很強(qiáng)的可移植性和適應(yīng)性。本設(shè)計(jì)雖達(dá)到預(yù)期效果,但仍有不足,比如服務(wù)器在網(wǎng)絡(luò)上的安全性和遠(yuǎn)距離傳輸?shù)膶?shí)時(shí)性等需要改進(jìn)。
[1]彭金林.基于嵌入式Web服務(wù)器的PLC 通訊研究[J].武漢科技大學(xué)學(xué)報(bào):自然科學(xué)版,2004,27(4):423-425.
[2]Dallas Semiconductor Corporation.High-Speed Microcontroller User's Guide:DS80C400Supplement,2012.
[3]吳玨,譚文學(xué).DS80C400在遠(yuǎn)程數(shù)據(jù)采集系統(tǒng)中的應(yīng)用[J].國外電子測(cè)量技術(shù),2003,22(3):40-41.
[4]萬靜華,丁亞軍.以太網(wǎng)控制器的嵌入式設(shè)備網(wǎng)絡(luò)互連[J].單片機(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].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2002(9):53-55.
[7]郝金華.基于網(wǎng)絡(luò)微控制器的遠(yuǎn)程監(jiān)控系統(tǒng)的設(shè)計(jì)與應(yīng)用[D].西安:西安電子科技大學(xué),2006.