楊振昊,李漢兵,王軼楷
(1.武漢郵電科學(xué)研究院 湖北 武漢 430074;2.烽火科技集團(tuán) 湖北 武漢 430074)
塔桅動(dòng)力環(huán)境監(jiān)控單元是為通信行業(yè)基站、一體化機(jī)房等無人值守現(xiàn)場(chǎng)內(nèi)的環(huán)境狀況、動(dòng)力設(shè)備等進(jìn)行信息采集、管理和監(jiān)控的網(wǎng)絡(luò)一體化嵌入式主機(jī);可實(shí)時(shí)采集并顯示各智能設(shè)備的狀態(tài)信息、報(bào)警信息及控制命令。要實(shí)現(xiàn)其功能,必須要設(shè)計(jì)一個(gè)完善的基于以太網(wǎng)的Web服務(wù)器。通過嵌入式Internet技術(shù)將嵌入式系統(tǒng)與Internet結(jié)合起來實(shí)現(xiàn)網(wǎng)絡(luò)互連,完成對(duì)接入到Internet的設(shè)備進(jìn)行監(jiān)控、測(cè)試、管理及維護(hù)等功能。
要實(shí)現(xiàn)將嵌入式系統(tǒng)接入以太網(wǎng),其中最關(guān)鍵的部分就是要實(shí)現(xiàn)TCP/IP協(xié)議。在此設(shè)計(jì)中,我們采取了最常用的連接方式,即通過以太網(wǎng)來連接Internet,同時(shí)利用網(wǎng)絡(luò)接口控制器來完成數(shù)據(jù)鏈路層協(xié)議的實(shí)現(xiàn)。美國(guó)國(guó)家半導(dǎo)體公司的以太網(wǎng)控制芯片DP83848C支持10/100 M的以太網(wǎng)通信,同時(shí)也支持MII和RMII接口模式,集成度高,具有全功能、低功耗等性能,在嵌入式應(yīng)用領(lǐng)域中廣泛采用。因此以太網(wǎng)控制器選擇DP83848C芯片。
嵌入式Web服務(wù)器的硬件框圖如圖1所示。
在該監(jiān)控單元中,嵌入式Web服務(wù)器的硬件包括微控制器、以太網(wǎng)控制器、I/O接口、存儲(chǔ)器和外接設(shè)備等。為了滿足網(wǎng)絡(luò)傳輸?shù)男枨?,嵌入式微控制器不僅要能執(zhí)行基本的控制功能,還要能實(shí)現(xiàn)與Internet相連接的功能。
微控制器采用ST公司的STM32F207,是一款基于ARM內(nèi)核32位高性能微控制器,片上集成了多個(gè)外圍接口(A/D和 D/A 模塊、JTAG、I2C、SPI、CAN 等), 具有 ISP 及 IAP 編程功能,STM32F207工作頻率最高達(dá)120 MHz,具有150 DMIPs的執(zhí)行速率,存儲(chǔ)空間高達(dá)1 MB的Flash程序存儲(chǔ)器,可擴(kuò)展支持片外Flash,適合用于處理比較復(fù)雜的TCP/IP協(xié)議,故將其選為微控制器。
圖1 嵌入式Web服務(wù)器硬件框圖Fig.1 Hardware block diagram of the embedded web server
微控制器STM32F207與以太網(wǎng)控制器之間以MII方式連接,DP83848C通過RJ45接口接入到以太網(wǎng),存儲(chǔ)器采用24LC256,存儲(chǔ)容量256 kbit,它是I2C接口串行 EEPROM,可以存儲(chǔ)瀏覽器的網(wǎng)頁信息。MAX232可完成RS232電平與TTL電平的轉(zhuǎn)換,同時(shí)提供了本地接口,供設(shè)備進(jìn)行串口連接。數(shù)據(jù)可以從串口輸入到微控制器,微控制器處理后再把數(shù)據(jù)送到DP83848C傳送出去。
嵌入式Web服務(wù)器中數(shù)據(jù)的流向?yàn)椋阂蕴W(wǎng)中的請(qǐng)求和控制信息通過RJ45被送到以太網(wǎng)控制芯片DP83848C,DP83848C則負(fù)責(zé)將以太網(wǎng)幀的首尾部信息剝離,然后將處理后的數(shù)據(jù)包送到STM32F207的TCP/IP協(xié)議棧中,在TCP/IP協(xié)議棧中解析接收到的數(shù)據(jù)包,解析后得到數(shù)據(jù)最基本的控制信息。這些原始控制信息通過外部總線接口(RS232C)和其他外部設(shè)備完成通信?;貜?fù)信息到以太網(wǎng)的過程與以上順序相反。
要實(shí)現(xiàn)將Web服務(wù)器接入以太網(wǎng),就需要對(duì)以太網(wǎng)控制芯片DP83848C進(jìn)行編程,以此來完成以太網(wǎng)幀的數(shù)據(jù)接收與發(fā)送。這和計(jì)算機(jī)中實(shí)現(xiàn)網(wǎng)卡驅(qū)動(dòng)程序的功能很相似。以太網(wǎng)控制器的驅(qū)動(dòng)程序用來設(shè)置其工作狀態(tài),通過對(duì)地址和數(shù)據(jù)端口的讀寫來完成以太網(wǎng)幀的收發(fā)。工作方式如下:先將以太網(wǎng)控制芯片進(jìn)行復(fù)位,然后開始設(shè)置其工作參數(shù),接下來對(duì)DP83848C的RAM進(jìn)行讀寫操作來完成數(shù)據(jù)幀的接收和發(fā)送。工作流程圖如圖2所示。
圖2 DP83848C工作流程Fig.2 Working process of the DP83848C
DP83848C包含物理接口收發(fā)器 (PHY),其工作在OSI參考模型的物理層。物理層定義了數(shù)據(jù)的傳送與接收所需要的線路狀態(tài)、數(shù)據(jù)編碼及時(shí)鐘基準(zhǔn)等,并給數(shù)據(jù)鏈路層設(shè)備提供一些標(biāo)準(zhǔn)接口;而數(shù)據(jù)鏈路層則提供了數(shù)據(jù)幀的構(gòu)建、數(shù)據(jù)幀的差錯(cuò)檢查、尋址機(jī)構(gòu)、傳送控制以及向網(wǎng)絡(luò)層提供標(biāo)準(zhǔn)的數(shù)據(jù)接口等功能。數(shù)據(jù)鏈路層的芯片稱為MAC。
媒體訪問控制子層(MAC)協(xié)議位于OSI參考模型協(xié)議中數(shù)據(jù)鏈路層的下半部分,其主要負(fù)責(zé)與物理層介質(zhì)的連接與控制。在發(fā)送數(shù)據(jù)幀時(shí),MAC協(xié)議要首先判斷是否可以發(fā)送數(shù)據(jù),如果判斷結(jié)果為可以發(fā)送,就將控制信息加到要發(fā)送的數(shù)據(jù)上,最終發(fā)送到物理層的數(shù)據(jù)幀包含相應(yīng)的控制信息;而在接收數(shù)據(jù)幀時(shí),MAC協(xié)議首先判斷輸入的信息是否產(chǎn)生了傳輸失誤,如果沒有失誤,則丟掉控制信息然后將其發(fā)送給邏輯鏈路控制子層(LLC)。
實(shí)現(xiàn)嵌入式Web Server的關(guān)鍵在于串口數(shù)據(jù)與TCP/IP數(shù)據(jù)之間的轉(zhuǎn)換,也即要實(shí)現(xiàn)TCP/IP協(xié)議。嵌入式Web服務(wù)器采用精簡(jiǎn)的TCP/IP協(xié)議棧,在該協(xié)議棧中實(shí)現(xiàn)了ARP、IP、ICMP、TCP和HTTP協(xié)議。
以太網(wǎng)與嵌入式設(shè)備之間傳遞數(shù)據(jù)是通過MAC地址來辨別的,而在發(fā)送數(shù)據(jù)前ARP協(xié)議能夠?qū)⒛繕?biāo)IP地址轉(zhuǎn)換成為目標(biāo)的MAC地址。所以要完成系統(tǒng)在以太網(wǎng)間的通信,ARP協(xié)議是首先要實(shí)現(xiàn)的。嵌入式Web服務(wù)器在網(wǎng)絡(luò)層除了要實(shí)現(xiàn)IP協(xié)議,同時(shí)報(bào)告數(shù)據(jù)傳送差錯(cuò)與控制信息的ICMP協(xié)議也要滿足才可實(shí)現(xiàn)在Internet上的通信。在應(yīng)用層,遠(yuǎn)端主機(jī)通過瀏覽器來訪問和控制服務(wù)器,所以HTTP協(xié)議是必須要滿足的。由于HTTP協(xié)議是基于TCP協(xié)議實(shí)現(xiàn)傳輸?shù)?,而TCP協(xié)議是面向連接的可靠數(shù)據(jù)傳輸,考慮到可靠性的需求,因此在傳輸層采用簡(jiǎn)化了的TCP協(xié)議。
嵌入式TCP/IP協(xié)議棧處理數(shù)據(jù)的流程如圖3所示。
系統(tǒng)首先進(jìn)行初始化,然后進(jìn)入主程序循環(huán)部分。詳細(xì)過程為:先檢查是否收到以太網(wǎng)數(shù)據(jù)幀,若已收到則檢測(cè)以太網(wǎng)數(shù)據(jù)幀首部,判斷其所載數(shù)據(jù)的類型,接著進(jìn)行相應(yīng)處理。若接收到的以太網(wǎng)數(shù)據(jù)幀中包含ARP數(shù)據(jù),則調(diào)用ARP處理程序;若接收到的以太網(wǎng)數(shù)據(jù)幀中包含IP數(shù)據(jù)報(bào),則針對(duì)其是否為TCP、ICMP等協(xié)議而分別進(jìn)行相應(yīng)的解包處理。若不包含IP數(shù)據(jù)報(bào),則丟掉此數(shù)據(jù)幀。
若未接收到以太網(wǎng)數(shù)據(jù)幀,此時(shí)如果要發(fā)送數(shù)據(jù),則先對(duì)數(shù)據(jù)進(jìn)行封裝,然后把數(shù)據(jù)以以太網(wǎng)數(shù)據(jù)幀的格式發(fā)送;如果沒有數(shù)據(jù)要發(fā)送,則回到主程序繼續(xù)下一輪循環(huán)。
塔桅動(dòng)力環(huán)境監(jiān)控所獲得的數(shù)據(jù)通過嵌入式Web服務(wù)器上傳到以太網(wǎng)上才能被遠(yuǎn)端的用戶使用,因此網(wǎng)絡(luò)用戶和Web服務(wù)器之間應(yīng)用程序的開發(fā)也是很關(guān)鍵的一步。本設(shè)計(jì)里嵌入式Web服務(wù)器主要實(shí)現(xiàn)現(xiàn)場(chǎng)數(shù)據(jù)的收發(fā)功能?,F(xiàn)場(chǎng)實(shí)時(shí)數(shù)據(jù)包括設(shè)備的實(shí)時(shí)狀態(tài)、通信狀態(tài)等。Web服務(wù)器將實(shí)時(shí)數(shù)據(jù)以網(wǎng)頁形式發(fā)布到Internet上,遠(yuǎn)端的客戶通過接入Internet即可瀏覽該服務(wù)器發(fā)布的實(shí)時(shí)數(shù)據(jù)信息。
目前Web服務(wù)器比較通用的架構(gòu)有 C/S(Client/Server)模式和B/S(Brower/Server)模式。C/S訪問模式需要同時(shí)開發(fā)客戶端和服務(wù)器端的應(yīng)用程序,在客戶端還必須安裝客戶機(jī)軟件才能保證其正常工作;而且C/S架構(gòu)投資大且需高昂的維護(hù)成本。B/S模式則統(tǒng)一了客戶端,將系統(tǒng)功能實(shí)現(xiàn)的核心部分集中到服務(wù)器上,簡(jiǎn)化了系統(tǒng)的開發(fā)、維護(hù)和使用。故本設(shè)計(jì)采用B/S訪問模式。B/S訪問模式是服務(wù)器和瀏覽器之間的直接訪問。該結(jié)構(gòu)的系統(tǒng)只需安裝一個(gè)瀏覽器,如Internet Explorer;瀏覽器就可以通過Web Server同數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互。
相比C/S結(jié)構(gòu),B/S結(jié)構(gòu)具有分布式的特點(diǎn),共享性強(qiáng)。B/S結(jié)構(gòu)中的客戶端可以處于Internet的任何一個(gè)端點(diǎn),只要接入網(wǎng)絡(luò)都可以訪問權(quán)限允許內(nèi)的相關(guān)服務(wù)器。維護(hù)方便,開發(fā)簡(jiǎn)單,花費(fèi)成本大大降低。
圖3 嵌入式TCP/IP協(xié)議棧流程圖Fig.3 Flow chart of the embedded TCP/IP protocol stack
要在瀏覽器端瀏覽網(wǎng)頁,就需要在瀏覽器的地址欄中輸入該網(wǎng)頁的 URL(Uniform Resource Locator)地址,或者是通過超鏈接鏈接到該網(wǎng)頁。瀏覽器會(huì)向該網(wǎng)頁所在的服務(wù)器發(fā)送一個(gè)HTTP請(qǐng)求,服務(wù)器會(huì)對(duì)接收到的請(qǐng)求信息進(jìn)行處理,然后將處理的結(jié)果返回給瀏覽器,最終將瀏覽器處理后的結(jié)果呈現(xiàn)給用戶。
本設(shè)計(jì)中將Web服務(wù)器上擴(kuò)展的EEPROM與單片機(jī)相連,用來存儲(chǔ)瀏覽的Web文件,EEPROM里的Web內(nèi)容采用原始數(shù)據(jù)的形式存儲(chǔ),外文使用ASCII碼形式存儲(chǔ),圖像使用二進(jìn)制數(shù)據(jù)形式存儲(chǔ)。
文中所設(shè)計(jì)的基于以太網(wǎng)的Web服務(wù)器,可以取代傳統(tǒng)的接口卡,實(shí)現(xiàn)現(xiàn)場(chǎng)設(shè)備與Internet的直接連接。該Web服務(wù)器性能優(yōu)越,設(shè)計(jì)簡(jiǎn)單,不僅可以應(yīng)用于動(dòng)力環(huán)境監(jiān)控領(lǐng)域,實(shí)現(xiàn)基站動(dòng)環(huán)實(shí)時(shí)監(jiān)控;還可以應(yīng)用于其他工業(yè)控制領(lǐng)域。隨著網(wǎng)絡(luò)通信技術(shù)、嵌入式控制技術(shù)和數(shù)據(jù)采集技術(shù)的快速發(fā)展,此種基于以太網(wǎng)的Web[10-11]服務(wù)器具有很好的應(yīng)用空間及發(fā)展前景。
[1]李朝青.單片機(jī)原理及接口技術(shù)[M].3版.北京:北京航空航天大學(xué)出版社,2005.
[2]習(xí)博.基于工業(yè)以太網(wǎng)的嵌入式數(shù)據(jù)監(jiān)控技術(shù)的研究[D].武漢:武漢大學(xué)控制理論與控制工程,2005.
[3]JINANG Jian-ming,NI Tong-guang.The electrical ethernet monitoring system based on embedded Web server[J].Computer and Automation Engineering,2010(3):300-303.
[4]WANG Lu-feng.The embedded ethernet gateway software design on web server[J].Computer and Automation Engineering,2010(4):530-534.
[5]Deepak C.Karia,Vispi Adajania.Embedded Web server application based automation and monitoring system[J].Signal Processing,Communication,Computing and Networking Technologies,2011:634-637.
[6]Yongzhe Shi.Remote Control System of Classroom Based on Embedded Web Server[M].Informatics and Management Science,2013,209:165-171.
[7]Richard Stebens W.TCP/IP詳解 卷1:協(xié)議[M].北京:機(jī)械工業(yè)出版社,2000.
[8]張萍.基于以太網(wǎng)的嵌入式Web Server的研究及實(shí)現(xiàn)[D].西安:西安科技大學(xué)控制理論與控制工程,2008.
[9]許海燕,付炎.嵌入式系統(tǒng)技術(shù)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2002.
[10]張乾,吳宏春,曹良志,等.嵌入式自屏方法研究[J].現(xiàn)代應(yīng)用物理,2014(4):290-293.ZHANG Qian,WU Hong-chun,CAO Liang-zhi,et al.Study on embedded self-shielding method[J].Modern Applied Physics,2014(4):290-293.
[11]張坤.基于FPGA的PicoBlaze嵌入式通信系統(tǒng)設(shè)計(jì)[J].電子科技,2013(5):53-56.ZHANG Kun.Design and implementation of embedded communication system based on FPGA picoblaze[J].Electronic Science and Technology,2013(5):53-56.