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

主站蜘蛛池模板: 国产真实二区一区在线亚洲| 全午夜免费一级毛片| 老司机久久精品视频| 日韩人妻少妇一区二区| 国产亚洲精品资源在线26u| 在线视频亚洲欧美| 天天躁夜夜躁狠狠躁躁88| 19国产精品麻豆免费观看| 青青国产视频| 999国产精品| 波多野结衣无码中文字幕在线观看一区二区 | 亚洲欧美成人在线视频| 亚洲免费三区| 日韩最新中文字幕| 手机精品视频在线观看免费| 欧美视频在线第一页| 国产精品夜夜嗨视频免费视频| 亚洲天堂网在线播放| 黄色网站在线观看无码| 99爱视频精品免视看| 青青操视频在线| 亚洲成人播放| 日韩国产综合精选| 无码区日韩专区免费系列| 日韩欧美91| 久久久久夜色精品波多野结衣| 999精品视频在线| 久久久久夜色精品波多野结衣| 国产丝袜一区二区三区视频免下载| 99中文字幕亚洲一区二区| 女人18毛片一级毛片在线 | 欧美日韩亚洲国产| 久久夜色精品| 亚洲视频一区| 日韩美女福利视频| 黄色成年视频| av在线5g无码天天| 欧美另类精品一区二区三区| 国产香蕉国产精品偷在线观看| 午夜日b视频| 国内精品一区二区在线观看| 亚洲一区二区三区香蕉| 久久香蕉国产线看观| 久久亚洲精少妇毛片午夜无码| 伊人欧美在线| 黄色网址免费在线| 亚洲av色吊丝无码| 久久精品只有这里有| 色妞www精品视频一级下载| 欧洲亚洲欧美国产日本高清| 一级看片免费视频| 国产精品亚洲五月天高清| 99久久性生片| 无码精品一区二区久久久| 一本无码在线观看| 精品色综合| 国产91高清视频| 99re这里只有国产中文精品国产精品 | 亚洲精品国产精品乱码不卞| 青青国产在线| 国产久草视频| 国产成人永久免费视频| 日韩东京热无码人妻| 日韩麻豆小视频| 亚洲精品无码久久毛片波多野吉| 一级毛片在线播放| 国产一在线观看| 日韩不卡免费视频| 狠狠色婷婷丁香综合久久韩国| 四虎精品国产AV二区| 小说 亚洲 无码 精品| 国产成人亚洲综合a∨婷婷| 中国一级毛片免费观看| 一本大道东京热无码av| 精品国产免费观看一区| 91无码人妻精品一区| 一级毛片免费观看久| 日韩无码视频专区| 国产成人综合久久精品尤物| 日本黄网在线观看| 美女被操黄色视频网站| 精品国产一区二区三区在线观看|