999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于LwIP的嵌入式設備Web服務器設計與實現

2018-06-11 11:05:54陳志星楊金孝
電子設計工程 2018年11期
關鍵詞:嵌入式設備

陳志星,楊金孝

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

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

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

1 Web服務器和LwIP協議棧簡介

1.1 Web服務器概述

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

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

1.2 LwIP協議棧簡介

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

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

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

2 Web服務器硬件方案設計

2.1 主控芯片選擇

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

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

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

2.2 網絡通信芯片選擇

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

2.3 硬件電路設計

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

圖1 Web服務器系統框圖

3 Web服務器軟件方案設計

3.1 LwIP協議棧移植

圖2 RJ45接口電路

圖3 LAN8720A硬件設計原理圖

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

3.2 網頁制作

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

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

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

圖4 嵌入式設備配置頁面

3.3 Web服務器實現

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

圖5 服務器實現流程圖

4 測試驗證

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

圖6 ping通信測試結果

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

圖7 服務器返回數據

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

5 結束語

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

猜你喜歡
嵌入式設備
諧響應分析在設備減振中的應用
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
基于VB6.0+Access2010開發的設備管理信息系統
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
基于MPU6050簡單控制設備
電子制作(2018年11期)2018-08-04 03:26:08
搭建基于Qt的嵌入式開發平臺
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
500kV輸變電設備運行維護探討
工業設計(2016年12期)2016-04-16 02:52:00
如何在設備采購中節省成本
原來他們都是可穿戴設備
消費者報道(2014年7期)2014-07-31 11:23:57
主站蜘蛛池模板: 美女一级免费毛片| 91精品情国产情侣高潮对白蜜| 成人国产小视频| 国产又爽又黄无遮挡免费观看 | 国产午夜看片| 色偷偷av男人的天堂不卡| 最新亚洲人成网站在线观看| 精品久久人人爽人人玩人人妻| www.国产福利| 国产男女免费视频| 欧美午夜网| 一本大道香蕉高清久久| 久久久久亚洲AV成人人电影软件| 久久精品亚洲专区| 偷拍久久网| 日韩欧美在线观看| 这里只有精品在线| 欧美a在线看| 国产激情无码一区二区APP | 国产一级毛片在线| 91视频免费观看网站| 国产欧美日本在线观看| 国产特级毛片aaaaaaa高清| 国产人人乐人人爱| 日本午夜精品一本在线观看 | 91视频首页| 秘书高跟黑色丝袜国产91在线| 精品国产美女福到在线直播| 亚洲人成在线精品| 国产精品xxx| 亚洲国模精品一区| av一区二区人妻无码| 色噜噜中文网| 欧美中出一区二区| 无码人妻免费| 一区二区日韩国产精久久| 夜夜拍夜夜爽| 熟女视频91| 久久亚洲国产最新网站| 亚洲成a人在线播放www| 激情综合网激情综合| 五月婷婷欧美| 小13箩利洗澡无码视频免费网站| 91偷拍一区| 福利在线一区| 亚洲欧美不卡| 直接黄91麻豆网站| a天堂视频| 亚洲精选无码久久久| 欧美www在线观看| 国产午夜无码专区喷水| 一区二区三区四区精品视频| 国产区精品高清在线观看| 国产成人一区二区| 黄色网站在线观看无码| 国产黄色视频综合| 欧美a网站| 亚洲国产欧美国产综合久久 | 99re在线免费视频| 97亚洲色综久久精品| 亚洲无码高清免费视频亚洲| 久久性妇女精品免费| 国产美女自慰在线观看| 91色综合综合热五月激情| 成人综合在线观看| 亚洲精品自拍区在线观看| 欧美午夜精品| 欧美精品1区| 中文字幕有乳无码| 久久精品人妻中文系列| 91视频精品| 丰满人妻久久中文字幕| 四虎永久在线精品国产免费| 日韩天堂在线观看| 992Tv视频国产精品| 亚洲有码在线播放| 一区二区理伦视频| 亚洲成年人片| 久久精品国产精品青草app| 精品一区二区三区水蜜桃| 久久夜色精品| 呦系列视频一区二区三区|