一種嵌入式Web伺服器的設計方案

2021-01-17 電子產品世界

本文引用地址:http://www.eepw.com.cn/article/256975.htm

隨著計算機技術和通訊技術的不斷發展,網際網路和嵌入式智能儀器得到越來越廣泛的應用,人類社會進入後PC時代。本文主要介紹了嵌入式Web伺服器設計方案,以及實現和主要應用。

1.引言

嵌入式Web伺服器(Embedded Web Server,EWS)是指將Web伺服器嵌入到現場測試和控制設備中,在相應的硬體平臺和軟體系統的支持下,使傳統的測試和控制設備轉變為具備了以TCP/IP為底層通信協議,Web技術為核心的基於網際網路的網絡測試和控制設備。

嵌入式Web伺服器簡化了傳統伺服器的系統結構,在嵌入式設備上它同時實現信息傳輸和網絡接口的功能。嵌入式Web伺服器基於HTTP協議運作,有標準的接口形式和通信協議。它可以向任何接入它所在網絡的合法用戶提供統一的基於瀏覽器方式的操作和控制界面。Web技術的開放性和平臺獨立特性能夠降低開發難度,減少軟體系統和通信系統的設計維護工作量,提高了現場測試和控制設備的管理水平。

2.嵌入式WEB伺服器總體設計方案

接入Internet有很多種接入方式:電話撥號接入、ISDN,ADSL、乙太網接入等,其中乙太網作為一種廉價、高效的Internet接入方式,已經得到了非常廣泛的應用,本文的Internet接入採用乙太網方式。

將TCP/IP協議棧嵌入到單片機中,使用網絡控制晶片實現單片機的上網和數據傳輸。利用網絡單片機(嵌入了TCP/IP協議棧的單片機)可以實現很多功能,嵌入式Web伺服器就是其中的一種。通過Web伺服器,客戶端瀏覽器可以瀏覽這些設備的動態信息,並且還可以實現與系統的交互功能。

(1)嵌入式Web伺服器的一般結構

嵌入式Web伺服器的設計通常以通用Web伺服器系統結構為藍本,根據嵌入式系統的特性進行優化。嵌入式Web伺服器的硬體系統包含了Web通信功能的微處理器或者微控制器系統,它可以和前端的應用系統直接集成在一起,也可以通過現場總線與應用系統相連。

一個完整的硬體系統由微型處理器、FLASH存儲器、DRAM存儲器、網絡接口和前端應用系統硬體所組成。微型處理器負責全局的運行和管理,FLASH存儲器用來存儲實時作業系統的系統內核、TCP/IP協議棧、各種Web文檔;DRAM存儲器在系統運行時使用;網絡接口實現與Internet的連接;前端應用系統的硬體完成傳統意義上的應用功能。

由於嵌入式系統硬體資源有限,嵌入式Web伺服器的硬體結構不能很複雜,實時作業系統的系統內核、TCP/IP協議棧、各種Web文檔都必須存儲在FLASH中,這對軟體系統設計提出了較高的要求。嵌入式Web伺服器應用系統的硬體結構如圖1所示。



(2)系統的硬體設計方案

LPC2132微控制器是所設計的嵌入式Web伺服器的核心,一方面LPC2132微控制器內部要實現TCP/IP協議棧,並驅動網絡接口控制器ENC28J60,經耦合隔離變壓器H1102和乙太網以實現Internet接入;另一方面,LPC2132微控制器又是相應控制系統的控制單元。

由於乙太網的廣泛使用,本文選擇了最為常用的Internet接入方式,即通過乙太網接入Internet.由美國Microchip公司生產的乙太網控制晶片ENC28J60是本設計所選擇的網絡接口控制器,它集成了介質訪問控制子層和物理層的功能,主要完成網絡接口層中數據幀的發送和接收。

H1102是一款耦合隔離變壓器,用來對網絡上的脈衝進行轉換和濾波。H1102聯接RJ45接頭,可以直接接入乙太網。

串行電平轉換模塊選用了Maxim公司出品的MAXSP3232E晶片。該晶片內部含有倍增電路和轉換電路,只需+5V電源供電即可實現TTL電平到RS232C電平的轉換。RS232串口一方面是作為開發調試用的,一方面可以作為相應的通信應用。

I/O口擴展包括系統的LED顯示電路、JTAG調試電路以及其他測試電路等。

(3)系統的軟體設計方案

Web伺服器是在嵌入式TCP/IP協議棧的基礎上實現的一種應用程式。從系統軟體工作過程來看,可將系統分三部分:第一部分,乙太網控制器驅動程序的實現;第二部分:嵌入式TCP/IP協議的實現,這部分內容在第一部分的基礎上,結合系統具體環境,對標準TCP/IP協議進行簡化並在ARM7單片機上進行移植;第三部分:應用層部分,通過嵌入式TCP/IP協議對用戶數據進行收發處理。這裡是在應用層實現HTTP協議來完成Web伺服器功能的。

所以系統軟體設計部分主要包括了乙太網控制器的驅動程序、嵌入式TCP/IP協議棧以及動態web網頁的實現等幾個模塊:

1)乙太網控制器驅動程序是指LPC2132微控制器對ENC28J60晶片的驅動、控制過程。

2)在LPC2132微控制器內部嵌入TCP/IP協議棧是系統實現的關鍵,它主要包括了ARP,ICMP,IP,TCP和HTTP協議的設計與實現。

3)動態網頁的實現。使用CGI技術,可以實現動態信息的交換,從而達到遠程監視、控制的目的。

軟體設計中的另一任務是確定開發語言。對於嵌入式系統來說,掌握彙編語言的編程是至關重要的,即使使用高級語言來進行編程,通過閱讀編譯出來的彙編代碼,也可以發現高級語言編程時需要優化的地方,從而提高高級語言所編寫代碼的執行效率。

同時嵌入式系統的資源緊張,要合理利用資源,提高運行效率,關鍵部分、時間要求嚴格的部分還是需要使用彙編語言來完成。但彙編語言在代碼編寫和維護上效率較低,通用性不強,在複雜的項目上還是選用高級語言比較合理。在本設計中,採用彙編語言編寫ARM7內核的啟動代碼(boot loader),其它的程序採用C語言作為設計語言。它有很明顯的優勢:C語言是一種編譯型程序設計語言,它兼顧了多種高級語言的特點,有豐富的庫函數、運算速度快,而且可以直接實現對系統硬體的控制,較彙編語言有更好的可讀性。

3.嵌入式Web伺服器設計的實現

(1)主程序流程

在主程序流程中,主要設計實現包括兩大部分:第一是對接收到的乙太網數據幀進行解包:第二則是對要發送的數據進行封裝並發送。

系統初始化模塊主要包括了LPC2I32微控制器的初始化、網絡接口晶片ENC28J60的初始化、TCP/IP協議棧中各標誌的初始化等:

ARP處理模塊主要完成接收ARP請求並發送ARP響應;ICMP處理模塊主要完成接收ICMP回顯請求並發送ICMP回顯響應;TCP數據處理模塊主要完成對TCP數據報及HTTP數據的處理。

當程序運行時,首先對系統初始化,這時系統處於等待狀態,直到有數據幀到達。ENC28J60接收完數據幀以後,首先去除幀頭,然後判斷該數據幀的報文是否為ARP包,若是,則進行ARP數據包處理,若不是,則檢查數據報頭,看IP數據包的報文是否為ICMP數據包,若是ICMP數據包,則轉到ICMP數據處理子程序。若不是ICMP數據包,就繼續進行判斷,看是否為TCP數據包,若為TCP數據包則轉入TCP數據處理子程序,若此時即不是ICMP數據包也不是TCP數據包,則將該包丟棄。

子程序的設計是為了完成TCP/IP協議體系的每一層的功能的,TCP/IP協議的每一層都是相互聯繫的,但也是相對獨立的,具體由下面7個部分實現:乙太網驅動程序、乙太網層程序、ARP協議處理程序、IP協議處理程序、ICMP協議處理程序、TCP協議處理程序、HTTP協議處理程序。


相關焦點

  • 基於Android的嵌入式Web伺服器設計
    本文主要論述了基於Android系統環境,在家庭網關中實現嵌入式Web伺服器的設計方法,介紹了i-jetty嵌入式Web伺服器,及其Web應用功能的實現。本文的主要內容是研究基於家庭網關的嵌入式系統,實現簡單實用的Web伺服器功能,為外部網絡提供一個方便快捷地訪問和控制家庭內部資源的平臺。由於Android作業系統能方便地將各種應用程式嵌入網絡,以及開放性好、支持硬體豐富的特點,本文選擇Android作業系統作為家庭網關設計的軟體平臺來建立Web伺服器。
  • 深入研究嵌入式web伺服器視頻監控的應用
    據分析,嵌入式Internet系統在Internet電話、遊戲裝置和手持式通信裝置的推動下將會有突飛猛進的發展。由於Internet技術的滲透,嵌入式系統正變得越來越智能化並具有越來越多的網絡友好特性;又由於Web技術的飛速發展,給嵌入式系統帶入Internet提供了絕佳的途徑。嵌入式web技術是視頻監控系統設計應用最廣泛的技術之一。
  • 嵌入式WEB伺服器中TCP/IP協議棧的設計與實現
    由於Web技術的開放性和獨立平臺特性,大大降低了軟體系統和通信系統的設計、維護工作量,節省了人員培訓費用,提高了現場測試和控制設備的管理水平。而嵌入式Web伺服器將Web伺服器引入到現場測試和控制設備中,在相應的硬體平臺和軟體系統的支持下,使傳統的測試和控制設備轉變為具備了以TCP/IP為底層通信協議,Web技術為核心的基於網際網路的網絡測試和控制設備,有著一般Web伺服器所不具有優勢。
  • 基於嵌入式Web網頁控制的遠程監控模塊
    在ZLSN2000之後,上海卓嵐科技依託其自身的ZLWeb嵌入式Web伺服器技術,推出了專門針對嵌入式網頁控制的模塊——ZLSN2030.基於Web的(也就是B/S架構的)物聯網監控方案,比基於客戶端(也就是C/S的架構)要優越,這是因為監控用戶端無需安裝專用的軟體
  • 基於PIC32的嵌入式Web伺服器的物聯網實現
    而且現在流行的智能家居系統的實現也需要網絡的接入來提供遠程控制,,因此開發基於MCU的嵌入式Web伺服器是非常有意義和挑戰性的。2需求與功能分析系統目標最終目的是實現一個基於PIC32位單片機的可移植並且高度可配置嵌入式Web伺服器。
  • 嵌入式Web伺服器GoAhead在電力系統通信中應用
    簡單介紹GoAhead嵌入式Web伺服器的基本特點,接著講解了嵌入式Web配置管理功能在電力系統通信中應用的工作原理及設計方法。以工業乙太網交換機為實例,介紹了軟體系統功能,並詳細討論了軟體系統工作流程。
  • 基於嵌入式Web的遠程可控電源插座設計
    摘要:為了實現對電器的遠程控制,運用嵌入式Web技術,設計了一個可通過網際網路進行遠程訪問和控制的電源插座系統。該系統採用開源Boa作為嵌入式Web伺服器,選用光電耦合器與可控矽設計控制模塊電路。
  • 嵌入式Web伺服器技術及其在電力系統中的應用綜述
    在傳統的Web應用中,Web伺服器往往與資料庫系統或者文件系統並存在一臺高性能的計算機系統中,資料庫伺服器是Web伺服器的信息來源,Web伺服器則是系統的信息發布中心,它接收來自瀏覽器的請求,並根據請求生成新的頁面發送給Web瀏覽器,完成信息在網絡範圍內的傳輸。Web伺服器檢索的信息來自資料庫系統,實時性要求不高,可以滿足常規的查詢和檢索系統的要求。
  • 嵌入式Web伺服器暴露企業機密
    聯網的掃描儀、印表機、VoIP系統等設備使用的嵌入式伺服器都有可能暴露企業機密。
  • USS協議變頻器Web控制方法的設計方案
    本文引用地址:http://www.eepw.com.cn/article/151984.htm基於TCP/IP協議的乙太網已成為工業標準,隨著乙太網的發展,以及嵌入式Web伺服器發展為網絡中的越來越小的網絡節點,為嵌人式web在工業中的應用提供了機會。
  • 基於USS協議變頻器Web控制方法的設計方案
    本文引用地址:http://www.eepw.com.cn/article/149814.htm基於TCP/IP協議的乙太網已成為工業標準,隨著乙太網的發展,以及嵌入式Web伺服器發展為網絡中的越來越小的網絡節點,為嵌人式web在工業中的應用提供了機會。
  • WindowServer2003伺服器搭建WEB伺服器
    首先選擇伺服器硬體品牌和伺服器作業系統,一、下面首先介紹一下伺服器作業系統。 WindowsServer2003是微軟於2003年4月底上市發行的伺服器作業系統,分為幾個不同的版本,具有不同的功能和用途。
  • Goahead 3.1.0 發布,嵌入式 Web 伺服器
    GoAhead WebServer 採用開放原始碼方式,任何人都可以下載、評估並修改代碼,目的是為了使GoAhead WebServer成為市場上最領先的嵌入式Web伺服器。重要特性:        支持虛擬伺服器        可使用SNMP代理        支持SSL v3        具有搜尋引擎        支持ASP、JavaScript、CGI、DHTML        容易移植和系統集成        可不使用文件系統
  • 如何配置web伺服器
    如何配置web伺服器?在伺服器上配置Web服務,首先需要安裝網絡環境,然後上傳web項目文件,在配置web服務時,有一些安全策略也要注意。1 啟用日誌記錄功能Web伺服器應配置日誌功能,對用戶登錄進行記錄,記錄內容包括用戶登錄使用的帳號、登錄是否成功、登錄時間以及遠程登錄時用戶使用的IP位址。
  • web伺服器性能對比
    Nginx才短短幾年,就拿下了Web伺服器大壁江山,眾所周知,Nginx在處理大並發靜態請求方面,效率明顯高於Httpd,甚至能輕鬆解決C10K問題。在高並發連接的情況下,Nginx是Apache伺服器不錯的替代品。Nginx同時也可以作為7層負載均衡伺服器來使用。
  • 對常見的WEB伺服器和應用伺服器的介紹
    在UNIX和LINUX平臺下使用最廣泛的免費HTTP伺服器是W3C、NCSA和APACHE伺服器,而Windows平臺NT/2000/2003使用IIS的WEB伺服器。
  • 你知道網際網路有哪些常用的web伺服器嗎?看有沒有你的常用的
    說到做網站你知道的web伺服器有哪些呢?一般網際網路上的網站都是採用哪些web伺服器呢?首先我們來了解下什麼是web伺服器, 顧名思義Web 伺服器就是提供web服務的伺服器,也可以叫 web server 比如我們經常用到的搜尋引擎百度就是一個典型的web伺服器例子。
  • 應用伺服器是什麼_應用伺服器有哪些
    Web應用程式駐留在應用伺服器(Application Server)上。應用伺服器為Web應用程式提供一種簡單的和可管理的對系統資源的訪問機制。它也提供低級的服務,如HTTP協議的實現和資料庫連接管理。Servlet容器僅僅是應用伺服器的一部分。
  • 科普應用伺服器,與Web伺服器有啥區別?
    【IT168 資訊】它位於網絡和資料庫之間,那麼應用伺服器實際上是做什麼的?應用程式伺服器是為應用程式提供業務邏輯的代碼。它是基於組件的,位於以伺服器為中心的架構的中間層。這個架構主要基於Web。中間層是業務邏輯所在的應用伺服器。而第三層,則是事務伺服器的資料庫。
  • 國產開源web伺服器kangle 穩定版2.6.1
    kangle web伺服器是一款國產開源的高性能web伺服器和反向代理伺服器軟體;帶有簡單操作的web控制臺。