亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于LwIP的嵌入式設備Web服務器設計與實現(xiàn)

        2018-06-11 11:05:54陳志星楊金孝
        電子設計工程 2018年11期
        關鍵詞:瀏覽器以太網(wǎng)網(wǎng)頁

        陳志星,楊金孝

        (西北工業(yè)大學電子信息學院,陜西西安710129)

        隨著物聯(lián)網(wǎng)技術的興起和智能家居的發(fā)展,嵌入式設備需要接入局域網(wǎng)或者因特網(wǎng)已成為一種趨勢,由于網(wǎng)口通信比其他模式通信速率高且抗干擾性強,在局域網(wǎng)中往往很多嵌入式設備只留有網(wǎng)口供于外部通信,此時對于嵌入式設備內部一些參數(shù)設置和內部程序升級只能由網(wǎng)口通信完成。

        當前大部分嵌入式設備已具有內部Web服務器的功能,不過許多都使用帶操作系統(tǒng)的高性能處理器和TCP/IP協(xié)議完成的[1]。這種實現(xiàn)方式對于硬件資源要求比較高,實現(xiàn)的過程比較復雜;而使用無操作系統(tǒng)的處理器和LwIP(light weight internet proto?col)輕量型網(wǎng)絡協(xié)議棧的實現(xiàn)方法,可以對硬件資源的要求減少許多[2],實現(xiàn)方式也比原來的簡單許多。本文研究實現(xiàn)了一種基于LwIP輕型協(xié)議棧和STM32處理器的嵌入式設備內部Web服務器。

        1 Web服務器和LwIP協(xié)議棧簡介

        1.1 Web服務器概述

        嵌入式設備Web服務器以在內部嵌入Web方式來實現(xiàn)[3]。通過程序中嵌入的網(wǎng)頁數(shù)據(jù),完成嵌入式設備和上位機瀏覽器之間的數(shù)據(jù)轉換與傳輸[4]。嵌入式設備內部數(shù)據(jù)在轉換成網(wǎng)頁數(shù)據(jù)后由網(wǎng)絡接口模塊用有線或無線方式傳輸?shù)缴衔粰C瀏覽器。用戶通過上位機瀏覽器可以實時查看嵌入式設備內部數(shù)據(jù),同時還可以對內部參數(shù)進行配置控制操作。

        硬件設計包括:服務器最小系統(tǒng)、電源模塊和網(wǎng)絡通訊模塊設計等。軟件設計的目的是完成數(shù)據(jù)的轉換與傳輸,實現(xiàn)上下行通信,參數(shù)配置、數(shù)據(jù)封包、數(shù)據(jù)緩沖和升級程序等。

        1.2 LwIP協(xié)議棧簡介

        LwIP協(xié)議是瑞典計算機科學院設計的一個小型的TCP/IP協(xié)議棧[5]。它的設計方式和TCP/IP協(xié)議是一樣的。LwIP協(xié)議的輕量型特點使其可以在無操作系統(tǒng)環(huán)境下運行。LwIP協(xié)議棧在保持TCP協(xié)議大部分功能的前提下減少了對RAM的占用量,它只需十幾KB的RAM和大約40 K的ROM就可以運行[6]。LwIP協(xié)議通過使用不復制任何數(shù)據(jù)的API函數(shù)減少數(shù)據(jù)處理和內存需求。因此LwIP協(xié)議很適用于資源受限的嵌入式系統(tǒng)。

        協(xié)議中的每一個子協(xié)議作為一個模塊來實現(xiàn),在每個子協(xié)議中用幾個函數(shù)作為協(xié)議的接入口[7]。雖然這些子協(xié)議是以獨立行使實現(xiàn)的,但是為了提高處理速度和內存占用率,有些層協(xié)議不是被獨立實現(xiàn)的。換言之,應用層的應用協(xié)議與協(xié)議底層之間沒有嚴格的分開來,可以共用相同的內存[8]。所以各個協(xié)議層之間可以使用共享內存的方式實現(xiàn)通訊,這和傳統(tǒng)TCP/IP協(xié)議是不一樣的。

        LwIP協(xié)議主要由IP模塊,ICMP模塊,UDP模塊,TCP模塊和相關支持模等幾個模塊組成。相關支持模塊包括:操作系統(tǒng)模擬層、緩沖與內存管理子系統(tǒng)、網(wǎng)絡接口函數(shù)及校驗和計算函數(shù)[9]。LwIP協(xié)議的主要特性如下:支持ARP以太網(wǎng)地址解析協(xié)議;支持IPv4和IPv6協(xié)議;支持IP分片與重裝;支持多網(wǎng)絡接口下數(shù)據(jù)轉發(fā);支持ICMP協(xié)議,用于網(wǎng)絡調試與維護;支持IGMP協(xié)議,用于網(wǎng)絡組管理;支持UDP協(xié)議,用戶數(shù)據(jù)報協(xié)議;支持TCP協(xié)議;具有TCP擁塞控制,RTT估計,快速恢復與重傳等功能;提 供 raw/callback API、sequential API、BSD-style socket API 3種用戶編程接口方式;支持DHCP,動態(tài)主機配置協(xié)議等;

        2 Web服務器硬件方案設計

        2.1 主控芯片選擇

        Web服務器的硬件電路模塊主要由處理器和網(wǎng)絡通信模塊組成。

        主控處理器選用意法半導體公司生產的STM32F103ZET6處理器。該處理器是一款基于Cortex-M3內核的具有高性能、低成本、低功耗的32位處理器[10]。它的主頻高達72MHz,完全滿足網(wǎng)口通信的需要。STM32F103ZET6處理器內置512KB的FLASH和64KB的SRAM[10]。

        STM32F103ZET6處理器內部具有符合IEEE 802.3-2002標準的以太網(wǎng)模塊。該以太網(wǎng)模塊支持獨立于介質的接口(MII)和簡化的獨立于介質的接口(RMII)兩種標準接口[11]。通過這兩種接口連接到外接的物理層(PHY)模塊就可以實現(xiàn)以太網(wǎng)通信。所以使用STM32F103ZET6處理器只需外接一個物理層(PHY)芯片就可以實現(xiàn)一個完整的以太網(wǎng)收發(fā)器。

        2.2 網(wǎng)絡通信芯片選擇

        網(wǎng)絡通信芯片使用SMSC公司生產的LAN8720A作為PHY芯片。LAN8720是低功耗的10/100M以太網(wǎng)PHY層芯片,I/O引腳電壓符合IEEE802.3-2005標準[10]。LAN8720A支持通過RMII接口與以太網(wǎng)MAC層通信,內置10-BAST-T/100BASETX全雙工傳輸模塊,支持10 Mbps和100 Mbps。通過自協(xié)商的功能LAN8720A可以實現(xiàn)與目的主機最佳的連接方式(速度和雙工模式)。LAN8720A還支持HP Auto-MDIX自動翻轉功能,所以無需更替網(wǎng)線就可以把連接方式變成直線或交叉連接。

        2.3 硬件電路設計

        硬件電路設計包括服務器最小系統(tǒng)電路設計、網(wǎng)口芯片電路設計和RJ45接口電路設計。服務器最小系統(tǒng)電路包含時鐘電路、復位電路、電源電路和下載程序電路。處理器采用精簡介質獨立接口(RMII)和PHY芯片連接。相對于采用介質獨立接口(MII)的連接方式可以減少一半的信號數(shù)量。上位機通過瀏覽器發(fā)送數(shù)據(jù)經(jīng)過網(wǎng)線差分信號傳輸給PHY芯片再轉換成MAC層使用的數(shù)據(jù)格式。處理器內部的LwIP協(xié)議把收到的數(shù)據(jù)轉換成需要的應用數(shù)據(jù)。而處理器發(fā)送數(shù)據(jù)是與接收數(shù)據(jù)相反的過程。圖1為Web服務器系統(tǒng)框圖。圖2為RJ45接口電路原理圖;圖3為LAN8720A硬件電路原理圖。

        圖1 Web服務器系統(tǒng)框圖

        3 Web服務器軟件方案設計

        3.1 LwIP協(xié)議棧移植

        圖2 RJ45接口電路

        圖3 LAN8720A硬件設計原理圖

        LwIP協(xié)議棧的移植工作主要是在嵌入式設備中把LwIP協(xié)議棧源碼添加到服務器代碼工程中。主要將LwIP協(xié)議棧源碼中LWIP-NETIF、LWIPCORE、LWIP-API文件夾內的.c文件添加到工程中。其中還需添加arch文件將以太網(wǎng)驅動和LWIP連接起來。在arch中有5個文件cc.h、cpu.h、perf.h、sys_arch.h和sys_arch.c。cc.h定義協(xié)議棧內部常用的數(shù)據(jù)類型[11];perf.h定義系統(tǒng)測量與統(tǒng)計相關的宏,用戶可以根據(jù)需要定義測試的對象和數(shù)據(jù)記錄;cpu.h定義字節(jié)排放次序即大小端模式,由于STM32是小端模式,所以定義BYTE_ORDER為小端模式。在沒有使用操作系統(tǒng)的時候不使用sys_arch.h和sys_arch.c文件。添加LWIP通用文件,主要有l(wèi)wip_comm.c、lwip_comm.h和 lwipopts.h 3個文件。LWIP源碼和以太網(wǎng)驅動庫由lwip_comm.c和lwip_comm.h結合起來,lwipopts.h是用來裁剪和配置LWIP的文件[12]。利用struct netif結構體實現(xiàn)對LwIP中不同網(wǎng)絡接口的操作[13]。網(wǎng)絡設備的驅動、網(wǎng)卡初始化、接收和發(fā)送網(wǎng)絡數(shù)據(jù)以及網(wǎng)絡中斷處理函數(shù)這幾部分功能都在stm32f103_eth_bsp.c文件中實現(xiàn)。

        3.2 網(wǎng)頁制作

        使用html語言編寫原始網(wǎng)頁,將原始網(wǎng)頁使用makefsdata.exe工具生成C語言格式的網(wǎng)頁數(shù)組數(shù)據(jù)。網(wǎng)頁數(shù)據(jù)和嵌入式設備交互采用公共網(wǎng)關接口(Common Gateway Interface,CGI)技術和服務器端嵌入(Server Side Include,SSI)技術實現(xiàn)[14]。

        Web服務器使用CGI技術執(zhí)行外部程序,并將輸出的結果發(fā)送給Web瀏覽器。在服務器上CGI是物理上一段程序,提供同客戶端網(wǎng)頁頁面的接口。當有來自瀏覽器表單的輸入信息時服務器調用CGI程序來解釋,并在產生相應的處理。

        在數(shù)據(jù)發(fā)送到瀏覽器前,服務器使用SSI指令把文本、圖形和應用程序信息包含在網(wǎng)頁中[15]。Web服務器根據(jù)指示將內容插入適當網(wǎng)頁,完成數(shù)據(jù)從嵌入式設備傳向瀏覽器。圖4為嵌入式設備配置頁面。

        圖4 嵌入式設備配置頁面

        3.3 Web服務器實現(xiàn)

        嵌入式設備程序開始運行時,首先對各個模塊進行初始化,初始化網(wǎng)卡參數(shù),申請內存,創(chuàng)建服務器控制塊,初始化Web服務器,在服務器上綁定本地地址與端口,建立網(wǎng)絡連接。在服務器進入監(jiān)聽狀態(tài)后,當有瀏覽器請求時,服務器采用回調函數(shù)機制調用數(shù)據(jù)接收函數(shù)處理接收的數(shù)據(jù),并返回查詢需要的數(shù)據(jù)。服務器軟件實現(xiàn)流程圖如圖5所示。

        圖5 服務器實現(xiàn)流程圖

        4 測試驗證

        以PC機的瀏覽器作為客戶端,嵌入式設備作為Web服務器端;服務器IP地址設為192.168.1.103,端口設為8080,本地PC機IP地址設為192.168.1.100;使用ping命令在PC機上測試網(wǎng)絡連通狀況,測試結果如圖6所示;從圖6可知,上位機發(fā)送的數(shù)據(jù)均成功返回,無數(shù)據(jù)丟失,通信狀況良好。

        圖6 ping通信測試結果

        將192.168.1.103地址輸入到瀏覽器地址欄中,可以看到嵌入式設備內部服務器返回數(shù)據(jù)頁面,如圖7所示。

        圖7 服務器返回數(shù)據(jù)

        由圖7可以看出嵌入式設備Web服務器通信正常,返回了設備內部參數(shù),并可以通過頁面配置設備內部參數(shù),修改設備IP地址、設備端口等。

        5 結束語

        文中設計并實現(xiàn)了一種基于LwIP協(xié)議棧的嵌入式設備Web服務器。該服務器系統(tǒng)所需的外圍器件較少,方便組網(wǎng),對處理器性能要求較低,易于實現(xiàn)。系統(tǒng)經(jīng)過實際測試和驗證,性能可靠,運行穩(wěn)定,能滿足一般嵌入式設備數(shù)據(jù)傳輸要求。

        猜你喜歡
        瀏覽器以太網(wǎng)網(wǎng)頁
        基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設計與實現(xiàn)
        反瀏覽器指紋追蹤
        電子制作(2019年10期)2019-06-17 11:45:14
        基于CSS的網(wǎng)頁導航欄的設計
        電子制作(2018年10期)2018-08-04 03:24:38
        基于URL和網(wǎng)頁類型的網(wǎng)頁信息采集研究
        電子制作(2017年2期)2017-05-17 03:54:56
        談實時以太網(wǎng)EtherCAT技術在變電站自動化中的應用
        電子制作(2017年24期)2017-02-02 07:14:44
        環(huán)球瀏覽器
        再見,那些年我們嘲笑過的IE瀏覽器
        英語學習(2015年6期)2016-01-30 00:37:23
        網(wǎng)頁制作在英語教學中的應用
        電子測試(2015年18期)2016-01-14 01:22:58
        一種90W高功率以太網(wǎng)供電系統(tǒng)的設計
        電源技術(2015年7期)2015-08-22 08:48:48
        淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應用
        最新国产av无码专区亚洲| 久久国产成人免费网站| AV中文码一区二区三区| 97人妻中文字幕总站| 97色伦图片97综合影院| 精品乱码久久久久久久| 中文字幕免费观看视频| 88久久精品无码一区二区毛片| 一级片久久| 国产美女高潮流的白浆久久| 少妇连续高潮爽到抽搐| 国精产品一区一区三区有限公司杨| 84pao强力打造免费视频34| 久久精品国产亚洲片| 熟女免费视频一区二区| 国产国产人免费人成免费视频| 亚洲精品国偷拍自产在线观看蜜臀| 亚洲中字幕永久在线观看| 日韩av一区二区三区精品久久| 国产精品无码一区二区在线观一 | 国产一区二区三区不卡在线观看| 国语对白做受xxxxx在| 可以免费观看的毛片| 精品国产亚洲一区二区三区演员表 | 波多野结衣的av一区二区三区| 久久香蕉免费国产天天看| 日韩在线精品视频观看| 亚洲国产中文字幕在线视频综合| 国产免费av片无码永久免费 | 久久洲Av无码西西人体| 91精品久久久中文字幕| 亚洲av日韩av在线观看| 日韩成人精品在线| 国产麻豆国精精品久久毛片| 国产精品久久久久久| 免费做爰猛烈吃奶摸视频在线观看| 日本岛国大片不卡人妻| 中文字日产幕码三区国产| 97久久精品亚洲中文字幕无码 | 天堂AV无码AV毛片毛| 男女调情视频在线观看|