新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 微型嵌入式Web服務器的設計與實現

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

        作者:劉盼盼,夏路易 時間:2008-09-03 來源:中電網 收藏

          1 引言

        本文引用地址:http://www.104case.com/article/87673.htm

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

          以其成本低、速度快、應用普遍、有廣泛的硬件和軟件支持等優點為實現管理控制網絡一體化提供可能,在現場設備內置WEB服務器,使現場設備具有網頁發布功能,將Internet技術直接引入現場設備。

          本設計是基于的微型嵌入式。目前市場上大部分控制器的封裝均超過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主機、路由器之間傳遞控制消息??刂葡⑹侵妇W絡是否暢通、主機是否可達、路由是否可用等網絡本身消息。圖3所示是ping命令測試遠程用戶和設計的微型嵌人式后的響應情況。

          3.2.3 TCP、HTTP協議的實現

          傳輸控制協議(TCP)負責收集信息包,并且將其按適當的次序傳輸,接收端接收后再將其正確還原。傳輸協議同時保證了數據包在傳送中準確無誤。而HTTP是基于TCP協議的超文本傳輸協議,嵌人式在與遠程用戶端建立TCP連接后發送網頁數據,在HTTP協議發送流程中,由于TCP報文數據字段有長度限制,網頁資源一股被分成若干段進行分段傳送。在遠程用戶端打開IE瀏覽器,在地址欄輸入嵌人式Web服務器的地址。

        linux操作系統文章專題:linux操作系統詳解(linux不再難懂)

        tcp/ip相關文章:tcp/ip是什么




        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 阿拉善盟| 白银市| 封丘县| 太湖县| 武义县| 正镶白旗| 郓城县| 福州市| 宝清县| 乌苏市| 东阳市| 广安市| 三河市| 廊坊市| 万安县| 昌都县| 巴彦县| 延津县| 文山县| 兴城市| 顺义区| 成都市| 建始县| 延长县| 靖边县| 叙永县| 栾川县| 东丽区| 东丰县| 富源县| 共和县| 宜宾市| 邯郸市| 新昌县| 象山县| 康马县| 青州市| 南陵县| 元朗区| 永丰县| 连州市|