于春雪
(哈爾濱理工大學 無線通信系統實驗室,哈爾濱 150080)
隨著信息技術的快速發展,網絡技術的應用越來越廣泛。以太網接口是以太網中各節點的通信基礎,處于TCP/IP協議棧的數據鏈路層,是信息傳遞和管理的重要環節[1]。對于單片機來說,由于內部資源有限,既要完成主控任務,又要實現TCP/IP協議棧,難度較大,經綜合考慮采用意法半導體公司生產的STM32F103作為控制核心[2]。韓國WIZnet公司生產的W5300芯片內部集成了以太網協議,可以簡化軟件設計,減少調試時間,從而縮短開發周期;同時,能夠簡化系統布局,有利于系統升級。
STM32F103是基于ARM Cortex-M3核的32位處理器芯片。其最高工作頻率為72 MHz;內置高速存儲器(512 KB Flash、64 KB RAM);豐富的增強I/O 端口和外設資源,包括5路 USART、2個12通道DMA控制器、3路 SPI以及 12位的 ADC、DAC、FSMC、SDIO、USB、CAN、I2C等;具有標準和先進的通信接口;提供可編程電壓檢測器(PVD),保證整個系統的穩定工作,提高抗干擾能力;溫度傳感器直接與內部ADC相連,能夠對器件周圍環境的溫度進行監測;工作溫度為-40~85℃[3],能夠滿足設計的要求。
W5300是一款高性能以太網芯片,采用 0.18 μ m CMOS工藝,內部集成10/100M以太網控制器,MAC和TCP/IP協議棧。它支持固件 TCP/IP協議 TCP、UDP、ICMP、IPv4、ARP 、IGMP 、PPPoE、Ethernet;8 個獨立端口同時工作;高速網絡數據傳輸,速度可達到50 Mbps;支持混合網絡TCP/IP協議棧(軟件/硬件 TCP/IP協議棧);支持存儲器到存儲器的DMA功能(只有16位數據總線寬度才支持,從模式);內嵌10BaseT/100BaseTX的以太網物理層;自動握手功能(全雙工,半雙工);自動 MDI/MDIX(信號線極性交叉);LED網絡指示;第三方物理(PHY)接口;支持8/16位數據總線;支持2種主機接口模式(直接訪問模式和間接訪問模式)等[4-5]。
系統硬件結構框圖如圖1所示。該系統包括以下幾個模塊:
①電源模塊,為系統工作提供穩定的電源;
②晶振模塊,為系統提供時鐘;
③復位模塊,復位MCU;
④RS232接口模塊,輸出調試信息及部分網絡信息的設置;
⑤I2C存儲模塊,用于大量信息的存儲;
⑥JTAG接口模塊,下載程序;
⑦W5300模塊,實現以太網功能;
⑧RJ45接口模塊,以太網接口。

圖1 系統硬件結構框圖
STM32F103與W5300的接口電路如圖2所示。W5300的數據線DATA0~DATA15與 STM32F103的D0~D15相連;W5300的地址線 ADDR0~ADDR15與STM32F103的A0~A15相連;STM32F103的片選信號/CS與W5300的FSMC_NE4相連,使W5300映射到主機的地址范圍為0x6C000000~0x6C0003FF;STM32F103的讀使能信號/RD與W5300的 FSMC_NOE相連;STM32F103的寫使能信號/WR與W5300的FSMC_NWE相連;因為STM32F103需要供電電壓3.0 V以上才能夠正常工作,所以要求復位時間較長,采用軟件對其進行硬件復位,以保證正確復位。系統采用內部PHY模式,相應的TEST_MODE[3:0]引腳均拉低;采用16位數據總線傳輸,相應的BIT16EN引腳要接高電平;采用直接訪問模式。

圖2 W5300與STM32F103的接口電路
IAR EWARM(IAR Embedded Workbench for ARM)是一個針對ARM處理器的集成開發環境,它包含項目管理器、編輯器、C/C++編譯器和 ARM 匯編器、連接器XLINK和支持 RTOS的調試工具C-SPY。在 EWARM環境下,可以使用C/C++和匯編語言方便地開發嵌入式應用程序。較其他的ARM開發環境而言,IAR EWARM具有入門容易、使用方便和代碼緊湊等特點[6-7]。
J-Link是SEGGER公司為支持仿真ARM內核芯片推出的JTAG仿真器。配合 IAR EWARM、ADS、Keil、WinARM、RealView等集成開發環境,即可支持所有ARM7/ARM9內核芯片的仿真,仿真通過RDI接口和各集成開發環境進行無縫連接。它具有操作方便、連接方便、簡單易學的特點,是ARM處理器最實用的開發工具。
W5300的 Socket就可以配置為TCP、UDP、IPRAW、MACRAW模式進行數據的發送或接收?;谝话愎こ痰膽媚J?下面只討論TCP和UDP的通信流程。由于W5300固化了TCP/IP協議棧,只需創建Socket接口即可實現網絡通信,大大簡化了軟件設計流程。其主程序如下:


以UDP為例介紹Socket接口的設計。UDP是一種不可靠的、無連接的數據傳輸方式。它不需要建立連接就可以進行數據傳輸[2]。UDP通信流程如圖3所示[8]。

圖3 UDP通信流程


UDP服務器的測試方法是:打開 SocketTool,創建UDP客戶端模式,設置好對方IP、對方端口、本地端口后,在數據發送窗口中輸入字符串“Please send data”,點擊發送數據后,在數據接收與提示窗口中將顯示接收到的字符串“Hello Harbin!” 。
UDP客戶端的測試方法是:打開 SocketTool,創建UDP服務器模式,設置好本地端口后,在數據接收與提示窗口中將顯示以一定的時間間隔接收到的字符串“Hello Harbin!”。
測試結果表明,該系統運行穩定,實現了以太網的接口功能;沒有操作系統的支持實現單芯片與Internet的連接,可以為嵌入式網絡的開發提供硬件平臺[9]。
編者注:本文為期刊縮略版,全文見本刊網站www.mesnet.com.cn。
[1]王桂云,侯思祖.基于ARM7的以太網接口的設計與實現[J].微計算機信息,2009,25(2):124-204.
[2]桑淑麗.基于以太網的遠程監控改造[J].電腦知識與技術,2011,7(4):924-925.
[3]意法半導體(中國)投資有限公司.STM32F10xxx參考手冊[OL].[2011-05].http://www.st.com/mcu/.
[4]北京博控自動化技術有限公司.W5300用戶數據手冊[OL].(2009-09)[2011-05].http://www.bocon.com.cn.
[5]譚開洪.基于W5300的嵌入式以太網接口設計[J].中國西部科技,2010,9(9):31-49.
[6]萬利電子有限公司.IAR EWA RM快速入門[OL].[2011-05].http://www.manley.com.cn.
[7]徐愛鈞.IAR EWARM嵌入式系統編程與實踐[M].北京:北京航空航天大學出版社,2006.
[8]王鐵流,秦璐璐,李宗方,等.基于STM32嵌入式系統的智能控制網絡終端設計[J].電子元器件應用,2009(6):13-17.
[9]莫全力,李國義,苗壯壯,等.基于ARM平臺的嵌入式系統以太網接口的設計與實現[J].遼寧工業大學學報,2009,29(2):87-89.