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