王海民, 王宏志
(長春工業(yè)大學計算機科學與工程學院,吉林長春 130012)
STM32以太網(wǎng)控制系統(tǒng)
王海民, 王宏志
(長春工業(yè)大學計算機科學與工程學院,吉林長春 130012)
基于STM32微控制器和以太網(wǎng)ENC28J60搭建了網(wǎng)絡控制系統(tǒng),詳細闡述了系統(tǒng)的硬件和軟件設計,實現(xiàn)Web服務器遠程控制。
STM32;ENC28J60;以太網(wǎng);Web
隨著信息技術的發(fā)展,以PC為代表的計算機網(wǎng)絡技術發(fā)展到一個更高階段,以嵌入式智能設備為核心的后PC時代已經(jīng)來臨[1]。在面向慢速網(wǎng)絡應用系統(tǒng)和網(wǎng)絡設備中,對數(shù)據(jù)傳輸?shù)乃俣纫蟛桓撸ǔV恍枰瓿涩F(xiàn)場傳感數(shù)據(jù)采集與傳輸、遠程設備控制等功能,可選擇內(nèi)部不帶以太網(wǎng)的MAC控制器的微處理器,使用外加一個專用的以太網(wǎng)模塊來實現(xiàn),這些模塊常見的有ENC28J60,CP2200,W5100等,成本低、接口簡單、使用方便。
1.1 STM32F103xx芯片
STM32F103xx增強型系列使用高性能的ARM Cortex-M3 32位的RISC內(nèi)核,Cortex-M3處理器內(nèi)核采用ARMv7-M架構,工作頻率為72MHz,內(nèi)置高速存儲器(高達128K字節(jié)的閃存和20K字節(jié)的SRAM),豐富的增強I/O端口和聯(lián)接到兩條APB總線的外設。所有型號的器件都包含2個12位的ADC,3個通用16位定時器和1個PWM定時器,還包含標準和先進的通信接口:多達2個I2C和SPI,3個USART,1個USB和1個CAN[2]。STM32F103xx增強型系列工作于-40~+105℃的溫度范圍,供電電壓2.0~3.6V,一系列的省電模式保證低功耗應用的要求。這些豐富的外設配置,使得STM32F103xx增強型微控制器適合用于醫(yī)療和手持設備、PC外設和GPS平臺、汽車電子、數(shù)據(jù)通信、工業(yè)控制、消費類產(chǎn)品等多種應用場合[3-4]。
1.2 ENC28J60芯片
ENC28J60以太網(wǎng)控制器適合于創(chuàng)建占用空間小、成本低、精簡的嵌入式網(wǎng)絡應用。目前市場上大部分以太網(wǎng)控制器采用的封裝均超過80引腳,接線復雜,占用電路板空間大[5]。而符合IEEE802.3協(xié)議的ENC28J60只有28引腳,既能提供以太網(wǎng)相應的功能,又大大簡化相關設計,并減小占板空間。此外ENC28J60以太網(wǎng)控制器采用業(yè)界標準的SPI串行接口,只需4條連線即可與主控單片機連接,與主控制器的通信是通過兩個中斷引腳和SPI實現(xiàn),兩個專用的引腳用于連接LED,進行網(wǎng)絡活動狀態(tài)指示。它還提供了一個內(nèi)部DMA模塊,以實現(xiàn)快速數(shù)據(jù)吞吐和硬件支持的IP校驗和計算。這些功能加上免費的TCP/IP軟件協(xié)議棧,使之成為目前市面上最小的嵌入式應用以太網(wǎng)解決方案[6]。
系統(tǒng)硬件結構框圖如圖1所示。
圖1 系統(tǒng)硬件結構圖
該系統(tǒng)包括以下幾點。
1)電源模塊,為系統(tǒng)提供穩(wěn)定的電源;
2)晶振模塊,為系統(tǒng)提供時鐘;
3)復位模塊,復位MCU;
4)JTAG接口模塊,下載程序;
5)啟動模式選擇模塊,選擇不同的啟動模式;
6)ENC28J60模塊,實現(xiàn)以太網(wǎng)功能;
7)RJ45接口模塊,以太網(wǎng)接口。
網(wǎng)絡變壓器HR911105A外圍電路接法如圖2所示。以太網(wǎng)ENC28J60與STM32F103x的接法
圖2 網(wǎng)絡變壓器HR911105A外圍電路接法
如圖3所示。
3.1 開發(fā)環(huán)境RVMDK和仿真器J-Link簡介
RealView MDK開發(fā)套件源自德國Keil公司,被全球超過10萬的嵌入式開發(fā)工程師驗證和使用,是ARM公司目前最新推出的針對各種嵌入式處理器的軟件開發(fā)工具。RealView MDK集成了業(yè)內(nèi)最領先的技術,融合了中國多數(shù)軟件開發(fā)工程師所需的特點和功能。包括μVision3集成開發(fā)環(huán)境與RealView編譯器,支持ARM7,ARM9和最新的Cortex-M3核處理器,自動配置啟動代碼,集成Flash燒寫模塊,強大的Simulation設備模擬,性能分析等功能,與ARM之前的工具包ADS等相比,RealView編譯器的最新版本可將性能改善超過20%[7]。RealView MDK出眾的價格優(yōu)勢和功能優(yōu)勢將成為ARM軟件開發(fā)工具的標準。
J-Link是SEGGER公司為支持仿真ARM內(nèi)核芯片推出的JTAG仿真器。配合IAR EWARM,WinARM,ADS,Keil,RealView等集成開發(fā)環(huán)境,即可支持所有ARM7/ARM9/ARM11和Cortex-M0/M1/M3核內(nèi)核芯片的仿真,仿真通過RDI接口和各集成開發(fā)環(huán)境進行無縫連接,具有操作方便、連接方便、簡單易學的特點,是ARM處理器最實用的開發(fā)工具[8-9]。
圖3 以太網(wǎng)ENC28J60與STM32F103x的接法
3.2 主程序
#include"stm32f10x.h"
#include"led.h"
#include"spi_enc28j60.h"
#include"web_server.h"
int main(void)
{ SystemInit(); /*配置系統(tǒng)時鐘為72M*/
LED_GPIO_Config(); /*配置LED*/
SPI_Enc28j60_Init();/*ENC28J60SPI接口初始化,調(diào)用庫函數(shù)*/
Web_Server();/*ENC28J60WEB服務程序,在瀏覽器上創(chuàng)建一個web服務器,通過web里面的命令來控制開發(fā)板*/
return 0;
}
在配置ENC28J60SPI接口初始化時,有兩個重要的配置是CPOL(時鐘極性)和CPHA(時鐘相位),ENC28J60SPI的時序圖如圖4所示。
圖4 ENC28J60的SPI時序圖
知其應配置為SPI_InitStructure.SPI_CPOL=SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA=SPI_CPHA_1Edge;
Web_Server主要是生成HTML格式的數(shù)據(jù)。構建一個交互式的網(wǎng)頁,通過HTML提供“<ahref=”形式的代碼,可以在網(wǎng)頁中添加需要的連接,同時HTML還允許實現(xiàn)其它復雜的窗口效果。很關鍵的問題是,描述HTML窗口結構的代碼相當復雜,難以解讀。一個非常簡單的解決方法是實現(xiàn)一個虛擬的文件夾和文件。而密碼實際上就是需要訪問的文件夾。需要輸入:http://IP_or_HOST/Password,通過這個超級鏈接,實現(xiàn)一個虛擬的文件,而這個文件也就代表了用戶請求所需要的指令。
程序的大體流程如圖5所示。
圖5 軟件簡要框圖
IP地址和端口配置:一般把ENC28J60的IP地址配置成與測試電腦同一個IP段,例如PC機的IP是192.168.1.102,下面為了方便測試把ENC28J60的IP地址配置成192.168.1.42。Web Server默認的端口號是80,這樣可以采用這個默認值。在web_server.c文件里完成如下配置:
static unsigned char myip[4]={192,168,1,42};
/*tcp/www監(jiān)聽端口號,范圍為:1-254*/static unsigned int mywwwport=80;
密碼設置:在Web Server里設置一個密碼。如果不需要密碼,也可以把設置密碼這部分代碼注釋掉。密碼設置在password數(shù)據(jù)組里,不超過9個字符:
PC機上用瀏覽器測試:運行上述程序之后,如果ENC28J60正常工作,RJ-45上的LED將亮。LED由ENC28J60通過軟件配置控制,因此,如果LED亮,則說明SPI可正常通信,也說明ENC28J60已經(jīng)處于工作狀態(tài),不過只是LED亮還不能說明ENC28J60完全正常工作,還需要進行ping測試,ping命令利用ICMP協(xié)議包來偵測另一個主機是否可達。原理是用類型碼為0的ICMP發(fā)請求,收到請求的主機則用類型碼為8的ICMP回應。可以用ping命令來計算間隔時間,并計算有多少個包被發(fā)送。用戶可以判斷網(wǎng)絡大致的情況。可以看到,ping給出來了傳送的時間和TTL的數(shù)據(jù)。
ping測試結果如圖6所示。
圖6 ping測試結果
Web測試:用ping命令測試完全成功之后,說明ENC28J60已經(jīng)完全正常工作,在進行TCP通信部分和Web Server是否正常工作。在PC機的瀏覽器地址欄輸入STM32板的Web Server網(wǎng)頁地址http://192.168.1.42/201105,其中201105為密碼,正常情況下可以看到Web測試界面,如圖7所示。
鼠標單擊“點亮LED”,可以控制STM32板上的LED亮。
測試結果表明,該系統(tǒng)運行穩(wěn)定,實現(xiàn)了以太網(wǎng)的接口功能;沒有操作系統(tǒng)的支持實現(xiàn)單芯片與Internet的連接,可以為嵌入式網(wǎng)絡的開發(fā)提供硬件平臺[10]。
圖7 Web測試界面
[1]張冬泉,譚南林.Windows CE實用開發(fā)技術[M].北京:電子工業(yè)出版社,2006.
[2]意法半導體(中國)投資有限公司.STM32F10xxx參考手冊[EB/OL].[2011-05-05].http://www.st.com/mcu/.
[3]Joseph Yiu.ARM Cortex-M3權威指南[M].宋巖,譯.北京:北京航空航天大學出版社,2009.
[4]王志軍.工業(yè)控制專用嵌入式以太網(wǎng)模塊的開發(fā)[J].長春工業(yè)大學學報:自然科學版,2005,26(2):117-119.
[5]廖義奎.Cortex-M3之STM32嵌入式系統(tǒng)設計[M].北京:中國電力出版社,2013.
[6]劉瓊,朱志偉,周志光.基于ENC28J60的嵌入式網(wǎng)絡接口的設計[J].微計算機信息,2008,24:306-308.
[7]劉軍.例說STM32[M].北京:北京航空航天大學出版社,2011.
[8]于春雪.STM32F1 03的高速以太網(wǎng)接口設計[J].新器件新技術,2011(9):44.
[9]莫全力,李國義,茁壯壯,等.基于ARM平臺的嵌入式系統(tǒng):以太網(wǎng)接口的設計與實現(xiàn)[J].遼寧工業(yè)大學學報,2009,29(2):87-89.
[10]尤文,王宏志,柳青蘊.具有非線性切換函數(shù)的變結構控制器設計[J].長春工業(yè)大學學報:自然科學版,1993,24(4):60-69.
STM32based ethenet control system
WANG Hai-min, WANG Hong-zhi
(School of Computer Science &Engineering,Changchun University of Technology,Changchun 130012,China)
Based on STM32microcontroller and Ethernet ENC28J60,a network control system is established.Both the hardware and software are introduced,by which web remote control is realized.Key words:STM32;ENC28J60;ethernet;Web.
TP 316
A
1674-1374(2014)04-0060-06
2013-10-14
教育部“春暉計劃”項目(403-004077003)
王海民(1987-),男,漢族,河南周口人,長春工業(yè)大學碩士研究生,主要從事數(shù)字信號處理和嵌入式技術方向研究,E-mail:whaimin12@sina.com.