微型嵌入式Web伺服器的設計與實現

2021-04-19 23:50:57 字數 2342 閱讀 9198

[日期:2008-9-2]

[字型:大

中 小]

1 引言

隨著計算機、網路通訊和internet技術的飛速發展和不斷進步,嵌入式系統在家庭和工業應用廣泛。如何將嵌入式系統和工業控制系統接人internet,綜合利用嵌入式系統資源,實現嵌入式系統的遠端管理和控制,已成為關注的研究課題,而實現嵌入式系統的網路化則成為嵌入式系統的發展趨勢。

乙太網以其成本低、速度快、應用普遍、有廣泛的硬體和軟體支援等優點為實現管理控制網路一體化提供可能,在現場裝置內建web伺服器,使現場裝置具有網頁發布功能,將internet技術直接引入現場裝置。

本設計是基於arm7的微型嵌入式web伺服器。目前市場上大部分乙太網控制器的封裝均超過80引腳,而enc28j60是業界最小的乙太網控制器,只有28引腳,這樣既能提供相應功能,又大大簡化相關設計,減小空間,其標準的spi序列介面只需4條匯流排即可實現與微控制器連線,有利於在小型系統上實現乙太網功能。在研究和分析tcp/ip協議的基礎上,合理簡化tcp/ip協議,選擇實現arp、ip、icmp、tcp和http協議。

2 系統硬體設計

enc28j60的硬體連線如圖1所示。enc28j60的硬體設計包括復位電路、時鐘振盪器、網路變壓器和其他外部元件以及led配置單元模組。

2.1復位電路

當enc28j60的reset引腳為低電平時enc28j60工作在復位模式。reset引腳內部有弱上拉電阻,應外接乙隻10 kω的上拉電阻。

2.2 時鐘振盪器

enc28j60工作頻率為25 mhz。在osc1和osc2引腳之間連線無源晶體振盪器。enc28j60要求使用平行切割的晶體。本設計採用連線至osc1引腳的外部25 mhz有源晶體振盪器驅動,此時3.3v的外部時鐘連線osc1引腳,osc2引腳可使用乙隻接地電阻或斷開osc2引腳以減少系統雜訊。

2.3 網路變壓器和其他外部元件

實現乙太網介面控制,還需多個標準外部元件:網路變壓器、偏置電阻、儲能電容和去耦電容。

差分輸入引腳(tpin+/tpin-)需用乙個變比為1:1的網路變壓器實現10baset。差分輸出引腳(tpout+/tpout-)需用乙個變比為1:1、帶中心抽頭的脈衝變壓器實現。變壓器需具有2 kv或更高的隔離能力,以防止靜電干擾。本設計採用pulse公司的整合乙太網隔離變壓器h1102。

差分輸入/輸出引腳都需串聯2只49.7 ω、精度為1%的電阻和1只0.01μf的電容,本設計採用併聯兩隻100 ω電阻獲得49.7 ω、精度為1%的電阻。

所有的電源電壓引腳必須連線至外部同乙個33 v電源。同理,所有的接地必須連線至同一外部地。每個電源電壓引腳和地之間應連線1只0.1μf的陶瓷去耦電容,該電容應盡可能地靠近電源電壓引腳放置。

2.4 led配置

leda引腳和ledb引腳在復位時支援極性自動檢測,既可直接驅動led,又可灌電流驅動。復位時enc28j60檢測led的連線,並按照phlcon暫存器的預設設定驅動。本設計ledb採用拉電流的方式點亮led。復位時該位清零且phy預設在半雙工模式下工作。

3 系統軟體設計

3.1 spi介面

enc28j60與微控制器mcu的連線通過spi介面實現,支援10 mb/s。但enc28j60只支援spi模式00,即cpol=0和cpha=0。另外,在空閒狀態時spi埠要求sck為低電平,且不支援時鐘極性選擇。以下為spi介面初始化的源**:

3.2 tcp/ip協議棧的實現

考慮到微控制器ram儲存空間的限制和具體應用要求,合理簡化tcp/ip協議棧,選擇實現arp、ip、icmp、tcp和http協議。圖2所示為精簡的tcp/ip協議棧。

3.2.1 物理層介面的實現

物理層介面為enc28j60的驅動程式,硬體方面是用enc28j60的電路實現電纜的物理鏈結、介質訪問控制、幀的傳送與接收等功能,而與上層協議介面即為驅動程式,實現傳送與接收資料幀。以下是其兩個函式原型:

3.2.2 網路層協議的實現

網路層的協議包括arp、ip、icmp協議。網路間連線需知雙方實體地址,而arp協議是位址解析協議,實現ip位址到實體地址的轉化。網際協議(ip)負責將訊息從乙個主機傳送到另乙個主機。icmp協議是internet控制訊息協議,用於ip主機、路由器之間傳遞控制訊息。控制訊息是指網路是否暢通、主機是否可達、路由是否可用等網路本身訊息。圖3所示是ping命令測試遠端使用者和設計的微型嵌人式web伺服器後的響應情況。

3.2.3 tcp、http協議的實現

傳輸控制協議(tcp)負責收集資訊包,並且將其按適當的次序傳輸,接收端接收後再將其正確還原。傳輸協議同時保證了資料報在傳送中準確無誤。而http是基於tcp協議的超文字傳輸協議,嵌人式web伺服器在與遠端使用者端建立tcp連線後傳送網頁資料,在http協議傳送流程中,由於tcp報文資料字段有長度限制,網頁資源一股被分成若干段進行分段傳送。在遠端使用者端開啟ie瀏覽器,在位址列輸入嵌人式web伺服器的位址。

簡單的嵌入式web伺服器設計

web瀏覽器 瀏覽器是個顯示網頁伺服器或檔案系統內的html檔案,並讓使用者與此些檔案互動的一種軟體。個人電腦上常見的網頁瀏覽器包括internet explorer firefox safari。瀏覽器是最經常使用到的客戶端程式。web伺服器 通俗的講,web服務傳送頁面使得瀏覽器可以瀏覽,它專門...

嵌入式Web伺服器移植

或者 最新發行版本 0.94.13 解壓 tar xzf boa 0.94.13.tar.gz 直接執行src configure檔案 a 修改 cc gcc 為 cc usr local arm 2.95.3 bin arm linux gcc b 修改 cpp gcc e 為 cpp usr l...

嵌入式Web伺服器移植

文章一僅供個人學習之用,請勿用於他途。n printf n printf n printf n printf n exit 0 交叉編譯生成helloworld.cgi arm softfloat linux gnu gcc o helloworld.cgi helloworld.c 將hellow...