0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于STM32F103RB微處理器和W5100芯片實現(xiàn)嵌入式Web服務(wù)器的設(shè)計

牽手一起夢 ? 來源:電子產(chǎn)品世界 ? 作者:王鐵流,高嵩,袁 ? 2021-05-05 16:54 ? 次閱讀

作者:王鐵流,高嵩,袁海英,李宗方,秦璐璐

目前,網(wǎng)絡(luò)化控制己成為遠(yuǎn)程控制的主要研究方向,利用網(wǎng)絡(luò)實現(xiàn)對局域乃至全球范圍內(nèi)設(shè)備的監(jiān)控是工業(yè)控制系統(tǒng)的發(fā)展趨勢。嵌入式 Internet遠(yuǎn)程監(jiān)控技術(shù)作為網(wǎng)絡(luò)化控制的代表,它解決了工業(yè)控制領(lǐng)域中異構(gòu)網(wǎng)絡(luò)互聯(lián)問題,提高了傳統(tǒng)裝備的智能化水平,促進(jìn)了傳統(tǒng)產(chǎn)業(yè)結(jié)構(gòu)的調(diào)整。嵌入式Web服務(wù)器尤其適用于嵌入式Internet應(yīng)用,它通過Ethernet或Modem的連接可以輕松連接到任何網(wǎng)絡(luò),真正實現(xiàn)對設(shè)備的遠(yuǎn)程管理和控制。

實現(xiàn)方案

嵌入式Web服務(wù)器必須具備的基本功能包括:可控制與其連接的設(shè)備并獲取設(shè)備的狀態(tài)和數(shù)據(jù);現(xiàn)場信息可以網(wǎng)頁形式發(fā)布;可及時響應(yīng)遠(yuǎn)程用戶的控制命令。此外,嵌入式設(shè)備應(yīng)具有功能簡單、功耗低和便攜等特點。為此,設(shè)計的系統(tǒng)如圖1所示。

o4YBAGB9RduAHDF_AABRqsZdEhw057.png

本系統(tǒng)采用了ST公司的Cortex-M3內(nèi)核的STM32微處理器STM32F103RB。該芯片屬于STM32系列的增強(qiáng)型,提供多達(dá) 128KB的片內(nèi)Flah、20KB的RAM和豐富的外設(shè)接口。Cortex-M3內(nèi)核在設(shè)計上專門考慮了滿足集功耗低、實時性強(qiáng)的工業(yè)級嵌入式產(chǎn)品領(lǐng)域的特點。在性能相同的條件下,STM32產(chǎn)品功耗比同級別產(chǎn)品要低75%,工作環(huán)境溫度達(dá)105℃。因為集成度很高,除一個電源外,LQFP100封裝芯片的最小系統(tǒng)只需要外接7個電容即可。

TCP/IP協(xié)議棧由W5100來支持,它集TCP/IP協(xié)議棧、以太網(wǎng)MAC和PHY為一體,其內(nèi)部16KB的發(fā)送/接收緩沖區(qū)可快速進(jìn)行數(shù)據(jù)交換,最大通信速率達(dá)到25Mbps;內(nèi)嵌10BaseT/100BaseTX以太網(wǎng)物理層,支持自動應(yīng)答;提供多種總線接口方式,可以很方便地與各種 MCU連接,簡化了硬件電路設(shè)計,使嵌入式系統(tǒng)在沒有操作系統(tǒng)的支持下,真正實現(xiàn)單芯片接入因特網(wǎng)的理想。

為減少PCB板面積和布線復(fù)雜性,考慮到系統(tǒng)的數(shù)據(jù)傳輸率要求不高,選擇SPI接口作為STM32F103RB和W5100的連接方式。STM32F103RB、W5100和RJ45接口構(gòu)成一個典型的嵌入式Web服務(wù)器。

作為一個應(yīng)用實例,本設(shè)計利用STM32F103RB的片上ADC和GPIO,將服務(wù)器與LED壓力傳感器相連,一旦服務(wù)器接收到來自瀏覽器端的連接請求,服務(wù)器將及時響應(yīng),將當(dāng)前的壓力參數(shù)、LED狀態(tài)和溫度等信息嵌入到Web頁面并發(fā)布到網(wǎng)上,這樣現(xiàn)場的各種信息就呈現(xiàn)在瀏覽器。此外,用戶通過網(wǎng)頁上的控制按鈕可以遠(yuǎn)程控制LED狀態(tài),操作結(jié)果能及時反饋在網(wǎng)頁上。

硬件設(shè)計

圖2為嵌入式Web服務(wù)器的簡化電路圖,主要顯示了構(gòu)成服務(wù)器的三個核心器件的連接方式。RJ45接口是帶有網(wǎng)絡(luò)變壓器的物理層接口。在W5100中,通過將SEN引腳經(jīng)10KΩ電阻上拉到高電平以使能其處于SPI從模式。CS為片選,MISO和MOSI為兩條數(shù)據(jù)傳輸線。W5100的SPI工作時鐘由處于主模式的 STM32F103RB提供。為方便STM32F103RB判斷W5100的工作狀態(tài),必須將W5100的中斷引腳INT與STM32F103RB的外部中斷線相連接。W5100的第5、6、8和9引腳是PHY信號線,用于與RJ45接口相連接。除電源相關(guān)引腳外,W5100的其它引腳可以選擇置空。

pIYBAGB9ReWABLMMAACuwEdUN2Q091.png

軟件設(shè)計

主程序

主程序流程圖如圖3所示。

pIYBAGB9RfGAFgyOAABeLQPztYU739.png

當(dāng)程序開始啟動時,程序首先初始化STM32和W5100,配置STM32工作在SPI主模式,而W5100工作在從模式,啟動STM32的A/D和片上的溫度傳感器,配置W5100工作于TCP服務(wù)器模式,在TCP服務(wù)器模式下,端口的狀態(tài)轉(zhuǎn)換如圖4所示。在使用內(nèi)部溫度傳感器時要注意:溫度傳感器在從調(diào)電模式喚醒后到它能以正常水平輸出采樣電壓前有一段建立時間;ADC喚醒后同樣需要一段建立時間,為使延遲最小,ADON位(用于啟動A/D轉(zhuǎn)換)和TSVREFE位(用于將溫度傳感器從調(diào)電模式中喚醒)應(yīng)該同時置位。另外,對溫度傳感器的采樣時間要大于2.2μs。

pIYBAGB9RfyAUBgxAACfOQYvoYw635.png

接下來是一個無限循環(huán)體,程序開始不斷檢查外部中斷狀態(tài)標(biāo)志(WInterFlag)和Socket接收數(shù)據(jù)狀態(tài)標(biāo)志(SockRecvFlag)是否改變,同時開始處理A/D轉(zhuǎn)換的數(shù)據(jù),以保證服務(wù)器在產(chǎn)生網(wǎng)頁時能得到當(dāng)前的各種數(shù)據(jù)。

一旦W5100的Socket端口有中斷事件產(chǎn)生時,W5100將通過其中斷引腳INT觸發(fā)STM32的外部中斷,使STM32進(jìn)入外部中斷處理函數(shù)改變WInterFlag,程序接著進(jìn)入處理W5100中斷事件函數(shù),在此函數(shù)中,STM32通過訪問W5100的中斷寄存器(IR)和端口0中斷寄存器(S0_IR)判斷出W5100的端口0產(chǎn)生何種中斷事件,若Socket接收到數(shù)據(jù),則改變SockRecvFlag。

程序檢測到SockRecvFlag發(fā)生改變,立即進(jìn)入處理接收數(shù)據(jù)函數(shù)。處理接收數(shù)據(jù)函數(shù)是整個程序的核心,它主要負(fù)責(zé)收發(fā)數(shù)據(jù)、解析HTTP協(xié)議和響應(yīng)用戶的不同請求。圖5為該過程的程序流程圖。

數(shù)據(jù)處理程序

HTTP協(xié)議是一種請求/響應(yīng)協(xié)議。在基于HTTP的客戶/服務(wù)器數(shù)據(jù)交換時,當(dāng)HTTP請求產(chǎn)生時,就開始一次HTTP通信。過程如下:瀏覽器提取出URL中的主機(jī)后,向DNS發(fā)出請求,解析主機(jī)名的IP地址;DNS解析地址并將結(jié)果返回給瀏覽器;瀏覽器向該地址請求建立TCP連接;瀏覽器發(fā)出請求報文;服務(wù)器向瀏覽器發(fā)送響應(yīng)報文,并將指定數(shù)據(jù)發(fā)送給瀏覽器;斷開連接。

根據(jù)HTTP協(xié)議規(guī)定,如果客戶端沒有發(fā)出請求,則服務(wù)器不會自動發(fā)送頁面。因此通過在網(wǎng)頁程序中加入標(biāo)記,使瀏覽器在無用戶干預(yù)下周期性地刷新頁面,從而保證用戶及時地獲得遠(yuǎn)程現(xiàn)場的信息。

HTTP消息包括一個起始行、零個或多個消息頭域、一個標(biāo)示頭域結(jié)束的實體行和一個可能存在的消息體。本程序主要解析消息的起始行,而忽略其它內(nèi)容,這種處理思路也符合嵌入式系統(tǒng)硬件對軟件實現(xiàn)的復(fù)雜度要求。請求方法決定了對請求URI所指定的資源進(jìn)行操作的方式,GET方法讀取URL指定的資源,一般用來向服務(wù)器傳輸少量且透明的數(shù)據(jù),數(shù)據(jù)總量被限制在255個字符以內(nèi),而POST方法可傳輸大量數(shù)據(jù),與HTML的表單特性相配合以實現(xiàn)遠(yuǎn)程動態(tài)交互控制。

當(dāng)連接開始時,客戶端發(fā)送GET方法請求給服務(wù)器,以訪問服務(wù)器網(wǎng)頁,為限定特定用戶訪問,增加數(shù)據(jù)安全性,在網(wǎng)頁中加入基本認(rèn)證機(jī)制。當(dāng)客戶端請求受基本認(rèn)證機(jī)制保護(hù)的網(wǎng)頁時,服務(wù)器即要求用戶認(rèn)證,服務(wù)器端對用戶的登陸信息按Base64碼解碼,只有認(rèn)證成功,瀏覽器才能獲得正確的網(wǎng)頁數(shù)據(jù)。正確的控制網(wǎng)頁如圖6所示,若用戶信息有誤,服務(wù)器返回以狀態(tài)碼401為起始行的響應(yīng)消息。

o4YBAGB9RgOAekRcAAC_O-FCZGQ406.png

由于服務(wù)器端檢測的數(shù)據(jù)處在不停的變化之中,為使網(wǎng)頁的數(shù)據(jù)也能及時地更新,網(wǎng)頁程序初始化時,要顯示的數(shù)據(jù)都使用字符串標(biāo)記暫時表示,在每次發(fā)送響應(yīng)消息到端口前,再將網(wǎng)頁中定義字符串標(biāo)記用當(dāng)前設(shè)備的實際值替換。

對LED的控制,網(wǎng)頁程序采用HTML語言的表單,HTTP協(xié)議請求方法采用POST。POST作為請求方法時,首先和Web服務(wù)器建立連接,成功后瀏覽器將HTML表單中的值發(fā)送給Web服務(wù)器。這種方式?jīng)]有字符長度的限制,表單數(shù)據(jù)是作為附加的文檔發(fā)送而不是作為URL的一部分發(fā)送。服務(wù)器程序通過判斷客戶的不同控制命令即時做出LED燈的開關(guān)響應(yīng)。

在每次連接成功后,服務(wù)器端程序會返回以狀態(tài)碼200開頭的響應(yīng)消息,消息的起始行為:HTTP/1.1 200 OK。當(dāng)用戶請求一個服務(wù)器端不存在的文件時,服務(wù)器返回以狀態(tài)碼404開頭的響應(yīng)消息。

pIYBAGB9RguAZHcqAAC82gbSQBQ852.png

結(jié)語

這種利用硬件實現(xiàn)TCP/IP協(xié)議的網(wǎng)絡(luò)芯片W5100及具有Cotex-M3內(nèi)核的STM32處理器構(gòu)成嵌入式Web服務(wù)器的方案性價比高。通過網(wǎng)絡(luò),用戶在瀏覽器端可及時收到遠(yuǎn)程現(xiàn)場傳感器采集的數(shù)據(jù),遠(yuǎn)程現(xiàn)場的開關(guān)狀態(tài)指示燈可實時地響應(yīng)用戶的開關(guān)信號操作請求。測試表明該系統(tǒng)傳輸大塊數(shù)據(jù)文件的速率可達(dá)到100KBPS。為提高網(wǎng)絡(luò)資源的安全性,可采用AES(Advanced Encryption Standard,先進(jìn)加密標(biāo)準(zhǔn))等編碼機(jī)制來加密必須保護(hù)的私有數(shù)據(jù)。

責(zé)任編輯:gt

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 芯片
    +關(guān)注

    關(guān)注

    459

    文章

    51600

    瀏覽量

    429913
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9432

    瀏覽量

    86508
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2314

    瀏覽量

    83074
收藏 人收藏

    評論

    相關(guān)推薦

    STM32F103RB

    哪位大神能給出用STM32F103RB芯片處理的1024道的程序?要求是使用inject模式交替觸發(fā)。
    發(fā)表于 06-19 17:35

    采用嵌入式處理器PXA270與ARM-Linux相結(jié)合的Web服務(wù)器構(gòu)建

    HOST、1個USB SLAVE、2個SSP接口等。因處理器的高性能、低成本、高效率等特點,廣泛應(yīng)用于PDA、智能電器、儀器儀表、監(jiān)測控制等領(lǐng)域。3.2 軟件設(shè)計嵌入式Web服務(wù)器
    發(fā)表于 04-11 07:00

    怎么實現(xiàn)基于嵌入式WEB的視頻服務(wù)器的設(shè)計?

    嵌入式WEB的網(wǎng)絡(luò)視頻監(jiān)控系統(tǒng)的主要原理是什么?怎么實現(xiàn)基于嵌入式WEB的視頻服務(wù)器的設(shè)計?
    發(fā)表于 06-07 06:21

    基于ARM和Linux的嵌入式Web服務(wù)器的構(gòu)建及應(yīng)用

    摘要:本文主要研究了基于ARM和Linux的嵌入式Web服務(wù)器的構(gòu)建及應(yīng)用.隨著互聯(lián)網(wǎng)的飛速發(fā)展,越來越多的信息化產(chǎn)品需要接入互聯(lián)網(wǎng)并通過Web頁面進(jìn)行遠(yuǎn)程訪問和控制,
    發(fā)表于 11-05 06:07

    如何實現(xiàn)嵌入式WEB服務(wù)器系統(tǒng)的控制設(shè)計

    簡單設(shè)計。本設(shè)計利用ARM 自帶的WEB服務(wù)器技術(shù),來實現(xiàn)嵌入式WEB服務(wù)器系統(tǒng)的控制設(shè)計。該
    發(fā)表于 11-09 08:47

    嵌入式Web服務(wù)器的設(shè)計與實現(xiàn)

    摘要:嵌入式Web服務(wù)器嵌入式系統(tǒng)應(yīng)用的一個重要組成部分.以其簡單,廉價,功能完善和通用性強(qiáng)等特點,在遠(yuǎn)程監(jiān)控,智能家電和資源共享等多種場合得到廣泛應(yīng)用.本文以
    發(fā)表于 11-09 08:41

    嵌入式Web 服務(wù)器的分析與研究

    首先介紹嵌入式Web 服務(wù)器的發(fā)展背景。然后,詳細(xì)討論嵌入式Web 服務(wù)器的支撐技術(shù),并提出瘦
    發(fā)表于 05-14 14:35 ?20次下載

    嵌入式Web服務(wù)器Boa的移植及其應(yīng)用

    嵌入式Web服務(wù)器Boa的移植及其應(yīng)用:鑒于目前監(jiān)控系統(tǒng)對實時性和多連接處理能力的要求,介紹一款單任務(wù)的嵌入式
    發(fā)表于 09-20 18:00 ?56次下載

    嵌入式Web服務(wù)器實現(xiàn)及其CGI應(yīng)用

    嵌入式設(shè)備資源有限,在這種情況下實現(xiàn)Web服務(wù)功能比較困難。針對嵌入式設(shè)備這種特點,本文通過比較幾種We
    發(fā)表于 11-15 10:15 ?79次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>Web</b><b class='flag-5'>服務(wù)器</b>的<b class='flag-5'>實現(xiàn)</b>及其CGI應(yīng)用

    嵌入式微處理器STM32F103有什么特點和應(yīng)用?怎樣去開發(fā)?

    作為嵌入式ARM 處理器, 它為實現(xiàn)MCU 的需要提供了低成本的平臺、縮減的引腳數(shù)目、降低的系統(tǒng)功耗, 同時提供了卓越的計算性能和先進(jìn)的中斷響應(yīng)系統(tǒng)。豐富的片上資源使得STM32F103
    發(fā)表于 07-27 07:01 ?5.8w次閱讀
    <b class='flag-5'>嵌入式微處理器</b><b class='flag-5'>STM32F103</b>有什么特點和應(yīng)用?怎樣去開發(fā)?

    使用STM32F103RB單片機(jī)實現(xiàn)串口實驗的詳細(xì)資料說明

    使用STM32F103RB單片機(jī)實現(xiàn)串口實驗的詳細(xì)資料說明。
    發(fā)表于 04-07 08:00 ?7次下載
    使用<b class='flag-5'>STM32F103RB</b>單片機(jī)<b class='flag-5'>實現(xiàn)</b>串口實驗的詳細(xì)資料說明

    嵌入式web服務(wù)器

    常見的嵌入式web服務(wù)器有:Lighttpd, Shttpd, Thttpd, Boa, Mini_httpd, Appweb, Goahead, luaopenwrt用的就是lua。當(dāng)然還有python
    發(fā)表于 10-20 18:51 ?9次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>web</b><b class='flag-5'>服務(wù)器</b>

    嵌入式web服務(wù)器系統(tǒng)設(shè)計,基于-ARM簡單嵌入式WEB服務(wù)器系統(tǒng)設(shè)計.doc

    進(jìn)行了簡單設(shè)計。本設(shè)計利用ARM 自帶的WEB服務(wù)器技術(shù),來實現(xiàn)嵌入式WEB服務(wù)器系統(tǒng)的控制設(shè)
    發(fā)表于 11-03 20:06 ?21次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>web</b><b class='flag-5'>服務(wù)器</b>系統(tǒng)設(shè)計,基于-ARM簡單<b class='flag-5'>嵌入式</b><b class='flag-5'>WEB</b><b class='flag-5'>服務(wù)器</b>系統(tǒng)設(shè)計.doc

    嵌入式web服務(wù)器系統(tǒng),嵌入式Web服務(wù)器的設(shè)計與實現(xiàn)

    摘要:嵌入式Web服務(wù)器嵌入式系統(tǒng)應(yīng)用的一個重要組成部分.以其簡單,廉價,功能完善和通用性強(qiáng)等特點,在遠(yuǎn)程監(jiān)控,智能家電和資源共享等多種場合得到廣泛應(yīng)用.本文以
    發(fā)表于 11-04 11:06 ?27次下載
    <b class='flag-5'>嵌入式</b><b class='flag-5'>web</b><b class='flag-5'>服務(wù)器</b>系統(tǒng),<b class='flag-5'>嵌入式</b><b class='flag-5'>Web</b><b class='flag-5'>服務(wù)器</b>的設(shè)計與<b class='flag-5'>實現(xiàn)</b>

    基于ARM處理器嵌入式WEB服務(wù)器設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于ARM處理器嵌入式WEB服務(wù)器設(shè)計.pdf》資料免費下載
    發(fā)表于 10-11 11:38 ?0次下載
    基于ARM<b class='flag-5'>處理器</b>的<b class='flag-5'>嵌入式</b><b class='flag-5'>WEB</b><b class='flag-5'>服務(wù)器</b>設(shè)計