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

用W5500構成的低成本嵌入式Web服務

2016-08-31 09:46:16茅勝榮肖家文喬東海
單片機與嵌入式系統應用 2016年4期

茅勝榮,肖家文,喬東海

(蘇州大學 電子信息學院,蘇州215006)

?

茅勝榮,肖家文,喬東海

(蘇州大學 電子信息學院,蘇州215006)

在HTML5的時代下,隨著Web服務器的數量與日俱增,B/S(Browser/Server)模型得到了更加廣泛的應用。在嵌入式領域,客戶端可以實現遠程監控服務器的功能,這不僅需要服務器解析用戶請求,而且需要對用戶指令作出快速準確的響應。本文在OSI互聯參考模型的基礎上,深入研究HTTP通信機制,拋棄了現有復雜的Web服務器框架,自主搭建了一個在單片機上運行的Web服務器,它能即時響應HTML網頁、JavaScript腳本和CSS樣式的請求,且具有占用資源少、運行效率高、安全性好、低功耗、低成本的特點。

Web服務器;W5500;嵌入式以太網;DHCP協議;HTTP協議

引 言

在PC上搭建Web服務器的主流做法是LAMP(Linux+Apache+MySQL+PHP)或者LNMP(Linux+Nginx+MySQL+PHP),這兩種方式都需要底層操作系統的支持。而在一些點對點通信的物聯網情境中,如果用戶想通過瀏覽器或者App向節點發送請求,那么前面兩種框架就顯得冗余、復雜且成本高。本文通過對HTTP通信機制的研究,在MSP430單片機和W5500以太網芯片上搭建了一個精簡、安全的Web服務器。

1 W5500芯片介紹

傳統的以太網芯片例如ENC28J60、DM9000,僅封裝了PHY(物理層)和MAC(介質訪問控制層),從網絡層開始都需要軟件實現,如LwIP協議棧。軟件協議棧占用的系統資源是非常可觀的,如果運行在低性能的處理器上,處理器將無法及時響應用戶的請求。而本文采用的W5500芯片不僅集成了PHY和MAC層,內部的邏輯門電路還實現了TCP/IP協議棧里的傳輸層和網絡層,如TCP、UDP、ICMP、IPv4、IGMP等協議[1],這樣主控芯片只需要承擔TCP/IP應用層控制信息的邏輯任務,大大提高了系統效率。此外硬件TCP/IP的不可攻擊性,保證了在此基礎上搭建的Web服務器的安全性。W5500對外接口為通用的80 MHz高速SPI,但是高速信號在受電磁串擾和長信號線的影響下會失真,所以本文采用具有穩定波形的10 MHz同步時鐘。圖1展示了W5500內部結構圖。

圖1 W5500內部結構圖

1.1PHY

W5500的物理層支持全/半雙工的10BaseT和100BaseTX的標準,支持自動協商,不支持Auto MDI/MDIX(自動極性變換),因此用戶需要使用直通線與交換機或路由器連接,使用交叉線與終端設備相連接,如果對方設備支持自動極性變換,則可選用任何一種網線。配置W5500的PHYCFGR寄存器來設置網卡的工作模式,在默認情況下,W5500執行100BaseTX標準的全雙工通信。

1.2MAC

數據鏈路層實際上由兩個獨立的部分組成:介質存取控制(MAC)和邏輯鏈路控制(LLC)。其中MAC確保信息跨鏈路的可靠傳輸、同步數據傳輸、識別錯誤和控制數據流方向。以太網數據幀必須獲取接收方的MAC地址才能成功發送,通過讀/寫W5500的SHAR寄存器,可以獲取/修改MAC地址信息。W5500內部集成MAC,能夠自動實現以太網數據幀的解析和打包并以廣播的方式發送幀,數據鏈路層便能在多個網絡節點間傳送數據。

1.3網絡層

網絡層負責在源和終點之間建立連接、網絡尋址、流量控制、錯誤檢查等。相同MAC標準的不同網段之間的數據傳輸一般只涉及到數據鏈路層,而不同的MAC標準之間的數據傳輸則涉及到網絡層。W5500內部集成IPv4,其中GAR、SUBR、SIPR寄存器分別用來配置網關、子網掩碼和本地IP地址的信息。

1.4傳輸層

傳輸層向高層提供可靠的端到端網絡數據流服務,包括流控、多路傳輸、虛電路管理以及差錯校驗和恢復。數據包中必須包含端口信息才能實現端到端的通信,典型的傳輸層協議有UDP和TCP協議。UDP是最簡單的傳輸層協議,綁定端口號便能發送請求,而TCP需要經過三次握手后才能建立可靠穩定的連接。W5500內部集成了這兩種傳輸層協議,可以通過配置Sn_MR寄存器來進行選擇。不同的上層應用需要綁定不同的端口號,配置W5500的Sn_PORT和Sn_DPORT寄存器可以分別指定源與目標的端口號。

2 系統硬件電路

基于W5500的Web服務器的硬件電路圖略——編者注。為了降低系統功耗,本文采用低功耗主控芯片MSP430。RJ45插座需要連接以太網變壓器,但是實際采用的HR911105A已經將兩者封裝在一起。W5500與MSP430采用四線制的SPI通信,同步時鐘速率為10 MHz。

3 動態IP地址分配

為了實現即插即用,物聯網中每個節點的IP地址是動態分配的,即節點需要實現DHCP協議的功能。DHCP是建立在UDP協議之上的應用層協議,客戶端與服務器的端口號分別是68和67,協議的具體細節參考RCF2131[2]。W5500作為DHCP的客戶端,向DHCP服務器發出請求,請求的過程主要分4個階段:發現階段、提供階段、選擇階段和確認階段。圖2為W5500上電后通過DHCP協議獲取IP地址的軟件流程圖。

圖2 DHCP軟件流程圖

W5500廣播發送DHCPDISCOVER消息(IP地址租賃申請),DHCP服務器收到后廣播回應DHCPOFFER消息(IP地址租賃提供),W5500接收后向該服務器發送DHCPREQUEST消息以確認分配到的IP地址,最后DHCP服務器將會發送DHCPACK消息來通知客戶端可以使用該IP地址。

4 Web服務器搭建

Web服務器是遵循HTTP協議標準的上層應用軟件,傳輸層采用TCP協議,可靠性高,通信端口為80。

4.1報文格式

HTTP消息是由客戶端請求和服務器響應組成的,圖3為HTTP報文的格式。其中,請求方法主要有兩種:GET和POST。GET是向服務器索取數據的一種請求,POST是向服務器提交數據的一種請求,提交的數據位于請求頭后面的數據實體中。報文中具體字段的含義與取值參考RFC2616[3]。

4.2HTTP Server軟件流程

HTTP Server軟件流程略——編者注。主程序首先為HTTP Server分配socket,socket數越多,服務器處理并發情況的能力越強,W5500最多支持8個socket同時運行。而后服務器端底層的操作(如軟件重啟、關看門狗等)將以回調函數的形式注冊在HTTP Server中。請求訪問的網頁數據以字符串的形式保存在Flash中,并把地址注冊至服務器。啟動某一個HTTP Server進程,監聽客戶端對80端口的TCP連接請求,經過“三次握手”,服務器與客戶端建立可靠的端到端連接。當服務器接收到來自客戶端的數據請求后,會根據URI地址信息判斷請求內容的類型,并解析出其請求方式,主要可以分為GET方式的CGI請求、POST方式的CGI請求和GET方式的其他請求。

服務器若收到GET方式的CGI請求,則返回一段包含服務器當前的信息的JavaScript代碼。若收到GET方式的普通請求,則返回客戶端請求的文本內容。若收到POST方式的CGI請求,其請求中通常包含客戶端提交的表單數據,服務器須接收、解析并保存用戶提交的信息。

4.3網頁設計

在網頁三要素中,HTML用來構建網頁的框架,CSS樣式表在框架的基礎上豐富網頁的表現力,JavaScript腳本讓整個網頁實現了動態的效果[4]。本文設計的網頁能夠動態顯示W5500服務器的基本信息,并能夠對服務器進行一些簡單的配置。在index.html中,為body注冊onload監聽函數,指向getNetinfo()函數:""。getNetinfo函數創建一個AJAX(Asynchronous JavaScript And XML)對象,設置好該對象的監聽事件以及監聽函數,然后以GET的方式發送請求:"oUpdate=new AJAX('get_netinfo.cgi', function (responseText))”,"oUpdate.doGet();"。由function去執行AJAX對象接收到的JavaScript腳本:"eval(responseText) "。AJAX能夠讓阻塞UI的任務在后臺運行,提高了網頁瀏覽的流暢度。

Mao Shengrong,Xiao Jiawen,Qiao Donghai

(School of Electronic Information,Soochow University,Suzhou 215006,China)

In the era of HTML5,the B/S(Browser/Server) model has been applied in many applications with the number of Web server increasing.In the embedded field,if the client wants to realize the function of the remote monitoring server,the Web server not only need to parse the user requests,but also need to make a quick and accurate response to the commands.Based on the OSI reference model and the HTTP communication,a Web server is established,which can run in a microcontroller,without any complex web server framework.It can give a real-time response to the traditional requests like HTML,JavaScript and CSS,and has the characteristics such as low resource consumption,high efficiency,good security,low power consumption and low cost.

Web server;W5500;embedded Ethernet;DHCP protocol;HTTP protocol

圖3 HTTP報文格式

TP393.1

A

主站蜘蛛池模板: 亚洲国产日韩欧美在线| 91成人试看福利体验区| 亚洲毛片在线看| 国产欧美精品午夜在线播放| 国产一级二级三级毛片| 午夜a视频| 午夜国产精品视频黄| 伊在人亚洲香蕉精品播放| 99热这里只有精品2| 男人天堂亚洲天堂| 国内精品久久人妻无码大片高| 97国产精品视频人人做人人爱| 国产特级毛片aaaaaa| 免费无码AV片在线观看中文| 婷婷在线网站| 日韩 欧美 小说 综合网 另类 | 成人午夜免费视频| 日韩国产综合精选| 午夜久久影院| 国产又色又刺激高潮免费看| 台湾AV国片精品女同性| 国内自拍久第一页| 伊人大杳蕉中文无码| 久久精品只有这里有| 伊人无码视屏| 风韵丰满熟妇啪啪区老熟熟女| 国产日韩精品欧美一区灰| 亚洲综合激情另类专区| 久久久国产精品无码专区| 99精品福利视频| 亚洲中文字幕精品| 1769国产精品免费视频| WWW丫丫国产成人精品| 国产一级二级三级毛片| 久久人体视频| 国产精品精品视频| 狠狠久久综合伊人不卡| 久久综合九九亚洲一区| 一区二区三区精品视频在线观看| 国产在线欧美| 人人爽人人爽人人片| 九九九久久国产精品| 2021天堂在线亚洲精品专区| 久久久精品无码一二三区| 亚洲区欧美区| 国产第一页免费浮力影院| 美女潮喷出白浆在线观看视频| 久久天天躁狠狠躁夜夜躁| 国产黑人在线| 国产v欧美v日韩v综合精品| 内射人妻无套中出无码| 免费一级全黄少妇性色生活片| 中文字幕日韩欧美| 无码电影在线观看| 国产一区二区三区夜色| 亚洲精品无码高潮喷水A| 国产全黄a一级毛片| 久久人妻xunleige无码| 野花国产精品入口| 国产91小视频在线观看| 丰满人妻被猛烈进入无码| 日本免费福利视频| 国产三级韩国三级理| 午夜毛片免费看| 99中文字幕亚洲一区二区| 亚洲视频免费播放| 国产成人高清在线精品| 白浆视频在线观看| 91po国产在线精品免费观看| 久久99国产综合精品女同| 91在线日韩在线播放| 青青操国产视频| 欧美啪啪一区| 亚洲国产精品日韩专区AV| 亚洲人成网站观看在线观看| 亚洲精品在线影院| 久久久久亚洲av成人网人人软件| 亚洲欧美成人在线视频| 精品国产成人a在线观看| 一本一道波多野结衣一区二区| 亚洲国产看片基地久久1024| 91啦中文字幕|