于春雪
(哈爾濱理工大學(xué) 無(wú)線通信系統(tǒng)實(shí)驗(yàn)室,哈爾濱 150080)
隨著信息技術(shù)的快速發(fā)展,網(wǎng)絡(luò)技術(shù)的應(yīng)用越來(lái)越廣泛。以太網(wǎng)接口是以太網(wǎng)中各節(jié)點(diǎn)的通信基礎(chǔ),處于TCP/IP協(xié)議棧的數(shù)據(jù)鏈路層,是信息傳遞和管理的重要環(huán)節(jié)[1]。對(duì)于單片機(jī)來(lái)說(shuō),由于內(nèi)部資源有限,既要完成主控任務(wù),又要實(shí)現(xiàn)TCP/IP協(xié)議棧,難度較大,經(jīng)綜合考慮采用意法半導(dǎo)體公司生產(chǎn)的STM32F103作為控制核心[2]。韓國(guó)WIZnet公司生產(chǎn)的W5300芯片內(nèi)部集成了以太網(wǎng)協(xié)議,可以簡(jiǎn)化軟件設(shè)計(jì),減少調(diào)試時(shí)間,從而縮短開(kāi)發(fā)周期;同時(shí),能夠簡(jiǎn)化系統(tǒng)布局,有利于系統(tǒng)升級(jí)。
STM32F103是基于ARM Cortex-M3核的32位處理器芯片。其最高工作頻率為72 MHz;內(nèi)置高速存儲(chǔ)器(512 KB Flash、64 KB RAM);豐富的增強(qiáng)I/O 端口和外設(shè)資源,包括5路 USART、2個(gè)12通道DMA控制器、3路 SPI以及 12位的 ADC、DAC、FSMC、SDIO、USB、CAN、I2C等;具有標(biāo)準(zhǔn)和先進(jìn)的通信接口;提供可編程電壓檢測(cè)器(PVD),保證整個(gè)系統(tǒng)的穩(wěn)定工作,提高抗干擾能力;溫度傳感器直接與內(nèi)部ADC相連,能夠?qū)ζ骷車h(huán)境的溫度進(jìn)行監(jiān)測(cè);工作溫度為-40~85℃[3],能夠滿足設(shè)計(jì)的要求。
W5300是一款高性能以太網(wǎng)芯片,采用 0.18 μ m CMOS工藝,內(nèi)部集成10/100M以太網(wǎng)控制器,MAC和TCP/IP協(xié)議棧。它支持固件 TCP/IP協(xié)議 TCP、UDP、ICMP、IPv4、ARP 、IGMP 、PPPoE、Ethernet;8 個(gè)獨(dú)立端口同時(shí)工作;高速網(wǎng)絡(luò)數(shù)據(jù)傳輸,速度可達(dá)到50 Mbps;支持混合網(wǎng)絡(luò)TCP/IP協(xié)議棧(軟件/硬件 TCP/IP協(xié)議棧);支持存儲(chǔ)器到存儲(chǔ)器的DMA功能(只有16位數(shù)據(jù)總線寬度才支持,從模式);內(nèi)嵌10BaseT/100BaseTX的以太網(wǎng)物理層;自動(dòng)握手功能(全雙工,半雙工);自動(dòng) MDI/MDIX(信號(hào)線極性交叉);LED網(wǎng)絡(luò)指示;第三方物理(PHY)接口;支持8/16位數(shù)據(jù)總線;支持2種主機(jī)接口模式(直接訪問(wèn)模式和間接訪問(wèn)模式)等[4-5]。
系統(tǒng)硬件結(jié)構(gòu)框圖如圖1所示。該系統(tǒng)包括以下幾個(gè)模塊:
①電源模塊,為系統(tǒng)工作提供穩(wěn)定的電源;
②晶振模塊,為系統(tǒng)提供時(shí)鐘;
③復(fù)位模塊,復(fù)位MCU;
④RS232接口模塊,輸出調(diào)試信息及部分網(wǎng)絡(luò)信息的設(shè)置;
⑤I2C存儲(chǔ)模塊,用于大量信息的存儲(chǔ);
⑥JTAG接口模塊,下載程序;
⑦W5300模塊,實(shí)現(xiàn)以太網(wǎng)功能;
⑧RJ45接口模塊,以太網(wǎng)接口。
圖1 系統(tǒng)硬件結(jié)構(gòu)框圖
STM32F103與W5300的接口電路如圖2所示。W5300的數(shù)據(jù)線DATA0~DATA15與 STM32F103的D0~D15相連;W5300的地址線 ADDR0~ADDR15與STM32F103的A0~A15相連;STM32F103的片選信號(hào)/CS與W5300的FSMC_NE4相連,使W5300映射到主機(jī)的地址范圍為0x6C000000~0x6C0003FF;STM32F103的讀使能信號(hào)/RD與W5300的 FSMC_NOE相連;STM32F103的寫使能信號(hào)/WR與W5300的FSMC_NWE相連;因?yàn)镾TM32F103需要供電電壓3.0 V以上才能夠正常工作,所以要求復(fù)位時(shí)間較長(zhǎng),采用軟件對(duì)其進(jìn)行硬件復(fù)位,以保證正確復(fù)位。系統(tǒng)采用內(nèi)部PHY模式,相應(yīng)的TEST_MODE[3:0]引腳均拉低;采用16位數(shù)據(jù)總線傳輸,相應(yīng)的BIT16EN引腳要接高電平;采用直接訪問(wèn)模式。
圖2 W5300與STM32F103的接口電路
IAR EWARM(IAR Embedded Workbench for ARM)是一個(gè)針對(duì)ARM處理器的集成開(kāi)發(fā)環(huán)境,它包含項(xiàng)目管理器、編輯器、C/C++編譯器和 ARM 匯編器、連接器XLINK和支持 RTOS的調(diào)試工具C-SPY。在 EWARM環(huán)境下,可以使用C/C++和匯編語(yǔ)言方便地開(kāi)發(fā)嵌入式應(yīng)用程序。較其他的ARM開(kāi)發(fā)環(huán)境而言,IAR EWARM具有入門容易、使用方便和代碼緊湊等特點(diǎn)[6-7]。
J-Link是SEGGER公司為支持仿真ARM內(nèi)核芯片推出的JTAG仿真器。配合 IAR EWARM、ADS、Keil、WinARM、RealView等集成開(kāi)發(fā)環(huán)境,即可支持所有ARM7/ARM9內(nèi)核芯片的仿真,仿真通過(guò)RDI接口和各集成開(kāi)發(fā)環(huán)境進(jìn)行無(wú)縫連接。它具有操作方便、連接方便、簡(jiǎn)單易學(xué)的特點(diǎn),是ARM處理器最實(shí)用的開(kāi)發(fā)工具。
W5300的 Socket就可以配置為TCP、UDP、IPRAW、MACRAW模式進(jìn)行數(shù)據(jù)的發(fā)送或接收?;谝话愎こ痰膽?yīng)用模式,下面只討論TCP和UDP的通信流程。由于W5300固化了TCP/IP協(xié)議棧,只需創(chuàng)建Socket接口即可實(shí)現(xiàn)網(wǎng)絡(luò)通信,大大簡(jiǎn)化了軟件設(shè)計(jì)流程。其主程序如下:
以UDP為例介紹Socket接口的設(shè)計(jì)。UDP是一種不可靠的、無(wú)連接的數(shù)據(jù)傳輸方式。它不需要建立連接就可以進(jìn)行數(shù)據(jù)傳輸[2]。UDP通信流程如圖3所示[8]。
圖3 UDP通信流程
UDP服務(wù)器的測(cè)試方法是:打開(kāi) SocketTool,創(chuàng)建UDP客戶端模式,設(shè)置好對(duì)方IP、對(duì)方端口、本地端口后,在數(shù)據(jù)發(fā)送窗口中輸入字符串“Please send data”,點(diǎn)擊發(fā)送數(shù)據(jù)后,在數(shù)據(jù)接收與提示窗口中將顯示接收到的字符串“Hello Harbin!” 。
UDP客戶端的測(cè)試方法是:打開(kāi) SocketTool,創(chuàng)建UDP服務(wù)器模式,設(shè)置好本地端口后,在數(shù)據(jù)接收與提示窗口中將顯示以一定的時(shí)間間隔接收到的字符串“Hello Harbin!”。
測(cè)試結(jié)果表明,該系統(tǒng)運(yùn)行穩(wěn)定,實(shí)現(xiàn)了以太網(wǎng)的接口功能;沒(méi)有操作系統(tǒng)的支持實(shí)現(xiàn)單芯片與Internet的連接,可以為嵌入式網(wǎng)絡(luò)的開(kāi)發(fā)提供硬件平臺(tái)[9]。
編者注:本文為期刊縮略版,全文見(jiàn)本刊網(wǎng)站www.mesnet.com.cn。
[1]王桂云,侯思祖.基于ARM7的以太網(wǎng)接口的設(shè)計(jì)與實(shí)現(xiàn)[J].微計(jì)算機(jī)信息,2009,25(2):124-204.
[2]桑淑麗.基于以太網(wǎng)的遠(yuǎn)程監(jiān)控改造[J].電腦知識(shí)與技術(shù),2011,7(4):924-925.
[3]意法半導(dǎo)體(中國(guó))投資有限公司.STM32F10xxx參考手冊(cè)[OL].[2011-05].http://www.st.com/mcu/.
[4]北京博控自動(dòng)化技術(shù)有限公司.W5300用戶數(shù)據(jù)手冊(cè)[OL].(2009-09)[2011-05].http://www.bocon.com.cn.
[5]譚開(kāi)洪.基于W5300的嵌入式以太網(wǎng)接口設(shè)計(jì)[J].中國(guó)西部科技,2010,9(9):31-49.
[6]萬(wàn)利電子有限公司.IAR EWA RM快速入門[OL].[2011-05].http://www.manley.com.cn.
[7]徐愛(ài)鈞.IAR EWARM嵌入式系統(tǒng)編程與實(shí)踐[M].北京:北京航空航天大學(xué)出版社,2006.
[8]王鐵流,秦璐璐,李宗方,等.基于STM32嵌入式系統(tǒng)的智能控制網(wǎng)絡(luò)終端設(shè)計(jì)[J].電子元器件應(yīng)用,2009(6):13-17.
[9]莫全力,李國(guó)義,苗壯壯,等.基于ARM平臺(tái)的嵌入式系統(tǒng)以太網(wǎng)接口的設(shè)計(jì)與實(shí)現(xiàn)[J].遼寧工業(yè)大學(xué)學(xué)報(bào),2009,29(2):87-89.
單片機(jī)與嵌入式系統(tǒng)應(yīng)用2011年9期