<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于Cortex-M3內(nèi)核處理器的嵌入式Web服務(wù)器設(shè)計

          基于Cortex-M3內(nèi)核處理器的嵌入式Web服務(wù)器設(shè)計

          作者:王鐵流 高嵩 袁海英 李宗方 秦璐璐 北京工業(yè)大學(xué)電子信息與控制工程學(xué)院 時間:2010-03-02 來源:電子產(chǎn)品世界 收藏

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

          本文引用地址:http://www.ex-cimer.com/article/106453.htm

            作為一個應(yīng)用實例,本設(shè)計利用STM32F103RB的片上ADC和GPIO,將與LED和壓力傳感器相連,一旦接收到來自瀏覽器端的連接請求,服務(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的其它引腳可以選擇置空。

            軟件設(shè)計

            主程序

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

            當(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.2mS。

            接下來是一個無限循環(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ù)。

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();