楊振昊,李漢兵,王軼楷
(1.武漢郵電科學研究院 湖北 武漢 430074;2.烽火科技集團 湖北 武漢 430074)
塔桅動力環境監控單元是為通信行業基站、一體化機房等無人值守現場內的環境狀況、動力設備等進行信息采集、管理和監控的網絡一體化嵌入式主機;可實時采集并顯示各智能設備的狀態信息、報警信息及控制命令。要實現其功能,必須要設計一個完善的基于以太網的Web服務器。通過嵌入式Internet技術將嵌入式系統與Internet結合起來實現網絡互連,完成對接入到Internet的設備進行監控、測試、管理及維護等功能。
要實現將嵌入式系統接入以太網,其中最關鍵的部分就是要實現TCP/IP協議。在此設計中,我們采取了最常用的連接方式,即通過以太網來連接Internet,同時利用網絡接口控制器來完成數據鏈路層協議的實現。美國國家半導體公司的以太網控制芯片DP83848C支持10/100 M的以太網通信,同時也支持MII和RMII接口模式,集成度高,具有全功能、低功耗等性能,在嵌入式應用領域中廣泛采用。因此以太網控制器選擇DP83848C芯片。
嵌入式Web服務器的硬件框圖如圖1所示。
在該監控單元中,嵌入式Web服務器的硬件包括微控制器、以太網控制器、I/O接口、存儲器和外接設備等。為了滿足網絡傳輸的需求,嵌入式微控制器不僅要能執行基本的控制功能,還要能實現與Internet相連接的功能。
微控制器采用ST公司的STM32F207,是一款基于ARM內核32位高性能微控制器,片上集成了多個外圍接口(A/D和 D/A 模塊、JTAG、I2C、SPI、CAN 等), 具有 ISP 及 IAP 編程功能,STM32F207工作頻率最高達120 MHz,具有150 DMIPs的執行速率,存儲空間高達1 MB的Flash程序存儲器,可擴展支持片外Flash,適合用于處理比較復雜的TCP/IP協議,故將其選為微控制器。

圖1 嵌入式Web服務器硬件框圖Fig.1 Hardware block diagram of the embedded web server
微控制器STM32F207與以太網控制器之間以MII方式連接,DP83848C通過RJ45接口接入到以太網,存儲器采用24LC256,存儲容量256 kbit,它是I2C接口串行 EEPROM,可以存儲瀏覽器的網頁信息。MAX232可完成RS232電平與TTL電平的轉換,同時提供了本地接口,供設備進行串口連接。數據可以從串口輸入到微控制器,微控制器處理后再把數據送到DP83848C傳送出去。
嵌入式Web服務器中數據的流向為:以太網中的請求和控制信息通過RJ45被送到以太網控制芯片DP83848C,DP83848C則負責將以太網幀的首尾部信息剝離,然后將處理后的數據包送到STM32F207的TCP/IP協議棧中,在TCP/IP協議棧中解析接收到的數據包,解析后得到數據最基本的控制信息。這些原始控制信息通過外部總線接口(RS232C)和其他外部設備完成通信。回復信息到以太網的過程與以上順序相反。
要實現將Web服務器接入以太網,就需要對以太網控制芯片DP83848C進行編程,以此來完成以太網幀的數據接收與發送。這和計算機中實現網卡驅動程序的功能很相似。以太網控制器的驅動程序用來設置其工作狀態,通過對地址和數據端口的讀寫來完成以太網幀的收發。工作方式如下:先將以太網控制芯片進行復位,然后開始設置其工作參數,接下來對DP83848C的RAM進行讀寫操作來完成數據幀的接收和發送。工作流程圖如圖2所示。

圖2 DP83848C工作流程Fig.2 Working process of the DP83848C
DP83848C包含物理接口收發器 (PHY),其工作在OSI參考模型的物理層。物理層定義了數據的傳送與接收所需要的線路狀態、數據編碼及時鐘基準等,并給數據鏈路層設備提供一些標準接口;而數據鏈路層則提供了數據幀的構建、數據幀的差錯檢查、尋址機構、傳送控制以及向網絡層提供標準的數據接口等功能。數據鏈路層的芯片稱為MAC。
媒體訪問控制子層(MAC)協議位于OSI參考模型協議中數據鏈路層的下半部分,其主要負責與物理層介質的連接與控制。在發送數據幀時,MAC協議要首先判斷是否可以發送數據,如果判斷結果為可以發送,就將控制信息加到要發送的數據上,最終發送到物理層的數據幀包含相應的控制信息;而在接收數據幀時,MAC協議首先判斷輸入的信息是否產生了傳輸失誤,如果沒有失誤,則丟掉控制信息然后將其發送給邏輯鏈路控制子層(LLC)。
實現嵌入式Web Server的關鍵在于串口數據與TCP/IP數據之間的轉換,也即要實現TCP/IP協議。嵌入式Web服務器采用精簡的TCP/IP協議棧,在該協議棧中實現了ARP、IP、ICMP、TCP和HTTP協議。
以太網與嵌入式設備之間傳遞數據是通過MAC地址來辨別的,而在發送數據前ARP協議能夠將目標IP地址轉換成為目標的MAC地址。所以要完成系統在以太網間的通信,ARP協議是首先要實現的。嵌入式Web服務器在網絡層除了要實現IP協議,同時報告數據傳送差錯與控制信息的ICMP協議也要滿足才可實現在Internet上的通信。在應用層,遠端主機通過瀏覽器來訪問和控制服務器,所以HTTP協議是必須要滿足的。由于HTTP協議是基于TCP協議實現傳輸的,而TCP協議是面向連接的可靠數據傳輸,考慮到可靠性的需求,因此在傳輸層采用簡化了的TCP協議。
嵌入式TCP/IP協議棧處理數據的流程如圖3所示。
系統首先進行初始化,然后進入主程序循環部分。詳細過程為:先檢查是否收到以太網數據幀,若已收到則檢測以太網數據幀首部,判斷其所載數據的類型,接著進行相應處理。若接收到的以太網數據幀中包含ARP數據,則調用ARP處理程序;若接收到的以太網數據幀中包含IP數據報,則針對其是否為TCP、ICMP等協議而分別進行相應的解包處理。若不包含IP數據報,則丟掉此數據幀。
若未接收到以太網數據幀,此時如果要發送數據,則先對數據進行封裝,然后把數據以以太網數據幀的格式發送;如果沒有數據要發送,則回到主程序繼續下一輪循環。
塔桅動力環境監控所獲得的數據通過嵌入式Web服務器上傳到以太網上才能被遠端的用戶使用,因此網絡用戶和Web服務器之間應用程序的開發也是很關鍵的一步。本設計里嵌入式Web服務器主要實現現場數據的收發功能。現場實時數據包括設備的實時狀態、通信狀態等。Web服務器將實時數據以網頁形式發布到Internet上,遠端的客戶通過接入Internet即可瀏覽該服務器發布的實時數據信息。
目前Web服務器比較通用的架構有 C/S(Client/Server)模式和B/S(Brower/Server)模式。C/S訪問模式需要同時開發客戶端和服務器端的應用程序,在客戶端還必須安裝客戶機軟件才能保證其正常工作;而且C/S架構投資大且需高昂的維護成本。B/S模式則統一了客戶端,將系統功能實現的核心部分集中到服務器上,簡化了系統的開發、維護和使用。故本設計采用B/S訪問模式。B/S訪問模式是服務器和瀏覽器之間的直接訪問。該結構的系統只需安裝一個瀏覽器,如Internet Explorer;瀏覽器就可以通過Web Server同數據庫進行數據交互。
相比C/S結構,B/S結構具有分布式的特點,共享性強。B/S結構中的客戶端可以處于Internet的任何一個端點,只要接入網絡都可以訪問權限允許內的相關服務器。維護方便,開發簡單,花費成本大大降低。

圖3 嵌入式TCP/IP協議棧流程圖Fig.3 Flow chart of the embedded TCP/IP protocol stack
要在瀏覽器端瀏覽網頁,就需要在瀏覽器的地址欄中輸入該網頁的 URL(Uniform Resource Locator)地址,或者是通過超鏈接鏈接到該網頁。瀏覽器會向該網頁所在的服務器發送一個HTTP請求,服務器會對接收到的請求信息進行處理,然后將處理的結果返回給瀏覽器,最終將瀏覽器處理后的結果呈現給用戶。
本設計中將Web服務器上擴展的EEPROM與單片機相連,用來存儲瀏覽的Web文件,EEPROM里的Web內容采用原始數據的形式存儲,外文使用ASCII碼形式存儲,圖像使用二進制數據形式存儲。
文中所設計的基于以太網的Web服務器,可以取代傳統的接口卡,實現現場設備與Internet的直接連接。該Web服務器性能優越,設計簡單,不僅可以應用于動力環境監控領域,實現基站動環實時監控;還可以應用于其他工業控制領域。隨著網絡通信技術、嵌入式控制技術和數據采集技術的快速發展,此種基于以太網的Web[10-11]服務器具有很好的應用空間及發展前景。
[1]李朝青.單片機原理及接口技術[M].3版.北京:北京航空航天大學出版社,2005.
[2]習博.基于工業以太網的嵌入式數據監控技術的研究[D].武漢:武漢大學控制理論與控制工程,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:協議[M].北京:機械工業出版社,2000.
[8]張萍.基于以太網的嵌入式Web Server的研究及實現[D].西安:西安科技大學控制理論與控制工程,2008.
[9]許海燕,付炎.嵌入式系統技術與應用[M].北京:機械工業出版社,2002.
[10]張乾,吳宏春,曹良志,等.嵌入式自屏方法研究[J].現代應用物理,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嵌入式通信系統設計[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.