• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      用W5500構(gòu)成的低成本嵌入式Web服務(wù)

      2016-08-31 09:46:16茅勝榮肖家文喬?hào)|海
      關(guān)鍵詞:網(wǎng)絡(luò)層傳輸層IP地址

      茅勝榮,肖家文,喬?hào)|海

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

      ?

      茅勝榮,肖家文,喬?hào)|海

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

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

      Web服務(wù)器;W5500;嵌入式以太網(wǎng);DHCP協(xié)議;HTTP協(xié)議

      引 言

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

      1 W5500芯片介紹

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

      圖1 W5500內(nèi)部結(jié)構(gòu)圖

      1.1PHY

      W5500的物理層支持全/半雙工的10BaseT和100BaseTX的標(biāo)準(zhǔn),支持自動(dòng)協(xié)商,不支持Auto MDI/MDIX(自動(dòng)極性變換),因此用戶需要使用直通線與交換機(jī)或路由器連接,使用交叉線與終端設(shè)備相連接,如果對(duì)方設(shè)備支持自動(dòng)極性變換,則可選用任何一種網(wǎng)線。配置W5500的PHYCFGR寄存器來(lái)設(shè)置網(wǎng)卡的工作模式,在默認(rèn)情況下,W5500執(zhí)行100BaseTX標(biāo)準(zhǔn)的全雙工通信。

      1.2MAC

      數(shù)據(jù)鏈路層實(shí)際上由兩個(gè)獨(dú)立的部分組成:介質(zhì)存取控制(MAC)和邏輯鏈路控制(LLC)。其中MAC確保信息跨鏈路的可靠傳輸、同步數(shù)據(jù)傳輸、識(shí)別錯(cuò)誤和控制數(shù)據(jù)流方向。以太網(wǎng)數(shù)據(jù)幀必須獲取接收方的MAC地址才能成功發(fā)送,通過(guò)讀/寫W5500的SHAR寄存器,可以獲取/修改MAC地址信息。W5500內(nèi)部集成MAC,能夠自動(dòng)實(shí)現(xiàn)以太網(wǎng)數(shù)據(jù)幀的解析和打包并以廣播的方式發(fā)送幀,數(shù)據(jù)鏈路層便能在多個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)間傳送數(shù)據(jù)。

      1.3網(wǎng)絡(luò)層

      網(wǎng)絡(luò)層負(fù)責(zé)在源和終點(diǎn)之間建立連接、網(wǎng)絡(luò)尋址、流量控制、錯(cuò)誤檢查等。相同MAC標(biāo)準(zhǔn)的不同網(wǎng)段之間的數(shù)據(jù)傳輸一般只涉及到數(shù)據(jù)鏈路層,而不同的MAC標(biāo)準(zhǔn)之間的數(shù)據(jù)傳輸則涉及到網(wǎng)絡(luò)層。W5500內(nèi)部集成IPv4,其中GAR、SUBR、SIPR寄存器分別用來(lái)配置網(wǎng)關(guān)、子網(wǎng)掩碼和本地IP地址的信息。

      1.4傳輸層

      傳輸層向高層提供可靠的端到端網(wǎng)絡(luò)數(shù)據(jù)流服務(wù),包括流控、多路傳輸、虛電路管理以及差錯(cuò)校驗(yàn)和恢復(fù)。數(shù)據(jù)包中必須包含端口信息才能實(shí)現(xiàn)端到端的通信,典型的傳輸層協(xié)議有UDP和TCP協(xié)議。UDP是最簡(jiǎn)單的傳輸層協(xié)議,綁定端口號(hào)便能發(fā)送請(qǐng)求,而TCP需要經(jīng)過(guò)三次握手后才能建立可靠穩(wěn)定的連接。W5500內(nèi)部集成了這兩種傳輸層協(xié)議,可以通過(guò)配置Sn_MR寄存器來(lái)進(jìn)行選擇。不同的上層應(yīng)用需要綁定不同的端口號(hào),配置W5500的Sn_PORT和Sn_DPORT寄存器可以分別指定源與目標(biāo)的端口號(hào)。

      2 系統(tǒng)硬件電路

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

      3 動(dòng)態(tài)IP地址分配

      為了實(shí)現(xiàn)即插即用,物聯(lián)網(wǎng)中每個(gè)節(jié)點(diǎn)的IP地址是動(dòng)態(tài)分配的,即節(jié)點(diǎn)需要實(shí)現(xiàn)DHCP協(xié)議的功能。DHCP是建立在UDP協(xié)議之上的應(yīng)用層協(xié)議,客戶端與服務(wù)器的端口號(hào)分別是68和67,協(xié)議的具體細(xì)節(jié)參考RCF2131[2]。W5500作為DHCP的客戶端,向DHCP服務(wù)器發(fā)出請(qǐng)求,請(qǐng)求的過(guò)程主要分4個(gè)階段:發(fā)現(xiàn)階段、提供階段、選擇階段和確認(rèn)階段。圖2為W5500上電后通過(guò)DHCP協(xié)議獲取IP地址的軟件流程圖。

      圖2 DHCP軟件流程圖

      W5500廣播發(fā)送DHCPDISCOVER消息(IP地址租賃申請(qǐng)),DHCP服務(wù)器收到后廣播回應(yīng)DHCPOFFER消息(IP地址租賃提供),W5500接收后向該服務(wù)器發(fā)送DHCPREQUEST消息以確認(rèn)分配到的IP地址,最后DHCP服務(wù)器將會(huì)發(fā)送DHCPACK消息來(lái)通知客戶端可以使用該IP地址。

      4 Web服務(wù)器搭建

      Web服務(wù)器是遵循HTTP協(xié)議標(biāo)準(zhǔn)的上層應(yīng)用軟件,傳輸層采用TCP協(xié)議,可靠性高,通信端口為80。

      4.1報(bào)文格式

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

      4.2HTTP Server軟件流程

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

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

      4.3網(wǎng)頁(yè)設(shè)計(jì)

      在網(wǎng)頁(yè)三要素中,HTML用來(lái)構(gòu)建網(wǎng)頁(yè)的框架,CSS樣式表在框架的基礎(chǔ)上豐富網(wǎng)頁(yè)的表現(xiàn)力,JavaScript腳本讓整個(gè)網(wǎng)頁(yè)實(shí)現(xiàn)了動(dòng)態(tài)的效果[4]。本文設(shè)計(jì)的網(wǎng)頁(yè)能夠動(dòng)態(tài)顯示W(wǎng)5500服務(wù)器的基本信息,并能夠?qū)Ψ?wù)器進(jìn)行一些簡(jiǎn)單的配置。在index.html中,為body注冊(cè)onload監(jiān)聽(tīng)函數(shù),指向getNetinfo()函數(shù):""。getNetinfo函數(shù)創(chuàng)建一個(gè)AJAX(Asynchronous JavaScript And XML)對(duì)象,設(shè)置好該對(duì)象的監(jiān)聽(tīng)事件以及監(jiān)聽(tīng)函數(shù),然后以GET的方式發(fā)送請(qǐng)求:"oUpdate=new AJAX('get_netinfo.cgi', function (responseText))”,"oUpdate.doGet();"。由function去執(zhí)行AJAX對(duì)象接收到的JavaScript腳本:"eval(responseText) "。AJAX能夠讓阻塞UI的任務(wù)在后臺(tái)運(yùn)行,提高了網(wǎng)頁(yè)瀏覽的流暢度。

      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報(bào)文格式

      TP393.1

      A

      猜你喜歡
      網(wǎng)絡(luò)層傳輸層IP地址
      Noise-Tolerant ZNN-Based Data-Driven Iterative Learning Control for Discrete Nonaffine Nonlinear MIMO Repetitive Systems
      基于Python語(yǔ)言的網(wǎng)絡(luò)傳輸層UDP協(xié)議攻擊性行為研究
      ZnO電子傳輸層在有機(jī)無(wú)機(jī)雜化鈣鈦礦太陽(yáng)能電池中的應(yīng)用
      鐵路遠(yuǎn)動(dòng)系統(tǒng)幾種組網(wǎng)方式IP地址的申請(qǐng)和設(shè)置
      物聯(lián)網(wǎng)無(wú)線通信傳輸層動(dòng)態(tài)通道保障機(jī)制
      基于物聯(lián)網(wǎng)GIS的消防智能巡檢系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
      基于SNMP的IP地址管理系統(tǒng)開(kāi)發(fā)與應(yīng)用
      黑龍江電力(2017年1期)2017-05-17 04:25:16
      基于WPA的物聯(lián)網(wǎng)網(wǎng)絡(luò)層安全的研究
      Current advances in neurotrauma research: diagnosis, neuroprotection, and neurorepair
      物聯(lián)網(wǎng)網(wǎng)絡(luò)層安全
      益阳市| 秀山| 东乌珠穆沁旗| 宁远县| 佛教| 太和县| 鹤峰县| 黑水县| 蕲春县| 仁怀市| 民乐县| 耿马| 沁源县| 鱼台县| 凤冈县| 高密市| 黄石市| 海盐县| 梅河口市| 陵川县| 西藏| 新丰县| 威海市| 宜兰县| 宕昌县| 纳雍县| 庆安县| 顺平县| 宜宾市| 瑞金市| 临猗县| 共和县| 舞钢市| 巴彦淖尔市| 宁强县| 揭东县| 万荣县| 鸡西市| 西林县| 平山县| 上饶县|