基于Cortex-M3內(nèi)核處理器的嵌入式Web服務(wù)器設(shè)計(jì)
為減少PCB板面積和布線復(fù)雜性,考慮到系統(tǒng)的數(shù)據(jù)傳輸率要求不高,選擇SPI接口作為STM32F103RB和W5100的連接方式。STM32F103RB、W5100和RJ45接口構(gòu)成一個(gè)典型的嵌入式Web服務(wù)器。
本文引用地址:http://www.ex-cimer.com/article/106453.htm作為一個(gè)應(yīng)用實(shí)例,本設(shè)計(jì)利用STM32F103RB的片上ADC和GPIO,將服務(wù)器與LED和壓力傳感器相連,一旦服務(wù)器接收到來(lái)自瀏覽器端的連接請(qǐng)求,服務(wù)器將及時(shí)響應(yīng),將當(dāng)前的壓力參數(shù)、LED狀態(tài)和溫度等信息嵌入到Web頁(yè)面并發(fā)布到網(wǎng)上,這樣現(xiàn)場(chǎng)的各種信息就呈現(xiàn)在瀏覽器。此外,用戶通過(guò)網(wǎng)頁(yè)上的控制按鈕可以遠(yuǎn)程控制LED狀態(tài),操作結(jié)果能及時(shí)反饋在網(wǎng)頁(yè)上。
硬件設(shè)計(jì)
圖2為嵌入式Web服務(wù)器的簡(jiǎn)化電路圖,主要顯示了構(gòu)成服務(wù)器的三個(gè)核心器件的連接方式。RJ45接口是帶有網(wǎng)絡(luò)變壓器的物理層接口。在W5100中,通過(guò)將SEN引腳經(jīng)10KΩ電阻上拉到高電平以使能其處于SPI從模式。CS為片選,MISO和MOSI為兩條數(shù)據(jù)傳輸線。W5100的SPI工作時(shí)鐘由處于主模式的STM32F103RB提供。為方便STM32F103RB判斷W5100的工作狀態(tài),必須將W5100的中斷引腳INT與STM32F103RB的外部中斷線相連接。W5100的第5、6、8和9引腳是PHY信號(hào)線,用于與RJ45接口相連接。除電源相關(guān)引腳外,W5100的其它引腳可以選擇置空。
軟件設(shè)計(jì)
主程序
主程序流程圖如圖3所示。
當(dāng)程序開始啟動(dòng)時(shí),程序首先初始化STM32和W5100,配置STM32工作在SPI主模式,而W5100工作在從模式,啟動(dòng)STM32的A/D和片上的溫度傳感器,配置W5100工作于TCP服務(wù)器模式,在TCP服務(wù)器模式下,端口的狀態(tài)轉(zhuǎn)換如圖4所示。
在使用內(nèi)部溫度傳感器時(shí)要注意:溫度傳感器在從調(diào)電模式喚醒后到它能以正常水平輸出采樣電壓前有一段建立時(shí)間;ADC喚醒后同樣需要一段建立時(shí)間,為使延遲最小,ADON位(用于啟動(dòng)A/D轉(zhuǎn)換)和TSVREFE位(用于將溫度傳感器從調(diào)電模式中喚醒)應(yīng)該同時(shí)置位。另外,對(duì)溫度傳感器的采樣時(shí)間要大于2.2mS。
接下來(lái)是一個(gè)無(wú)限循環(huán)體,程序開始不斷檢查外部中斷狀態(tài)標(biāo)志(WInterFlag)和Socket接收數(shù)據(jù)狀態(tài)標(biāo)志(SockRecvFlag)是否改變,同時(shí)開始處理A/D轉(zhuǎn)換的數(shù)據(jù),以保證服務(wù)器在產(chǎn)生網(wǎng)頁(yè)時(shí)能得到當(dāng)前的各種數(shù)據(jù)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論