摘要:論述了在STM32系列的MCU上移植TCP/IP協(xié)議棧LwIP,并利用新型以太網(wǎng)控制器ENC24J600實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)傳輸功能。該系統(tǒng)主要完成的功能是接收上位機(jī)發(fā)送的數(shù)據(jù),并將這些數(shù)據(jù)轉(zhuǎn)換成通用串行接口輸出。ENC424J600是Microchip新推出的一款以太網(wǎng)控制器,其速度優(yōu)于ENC28J60,同時(shí)為用戶提供兩種接口模式。本文介紹了其基于SPI接口模式下的實(shí)現(xiàn)過程,詳細(xì)描述了該網(wǎng)卡驅(qū)動(dòng)的硬件電路和軟件流程。
關(guān)鍵詞:以太網(wǎng)控制器;STM32;LwIP串口輸出
引言
隨著Internet的發(fā)展和應(yīng)用,越來越多的設(shè)備需要接入網(wǎng)絡(luò)以實(shí)現(xiàn)遠(yuǎn)程控制或資源共享。以太網(wǎng)接口布線方便,通信帶寬較寬,可達(dá)100 Mb/s甚至1000Mb/s。嵌入式系統(tǒng)由于具有體積小、價(jià)格低、專用性能高的優(yōu)勢(shì),被廣泛應(yīng)用于各種電子大功率電感貼片電感器設(shè)備和工業(yè)測(cè)試設(shè)備中。隨著嵌入式系統(tǒng)與網(wǎng)絡(luò)的日益緊密電感價(jià)格結(jié)合,在嵌入式系統(tǒng)中引入TCP/IP協(xié)議棧已成為嵌入式系統(tǒng)領(lǐng)域的重要研究方向。
本義在以太網(wǎng)接口實(shí)現(xiàn)基本數(shù)據(jù)傳輸?shù)幕A(chǔ)上將其轉(zhuǎn)換成其他通用串行接口(如SPI、UART、CAN),更利于應(yīng)用在廣泛的工業(yè)控制領(lǐng)域中。目前市面上的以太網(wǎng)控制芯片大多功耗高、功能復(fù)雜,不適合用在中低端的嵌入式系統(tǒng)中。之前Microchip推出的芯片ENC28J60的網(wǎng)絡(luò)接口速度只能達(dá)到10 Mb功率電感ps,其SRAM buffer也不大容易造成接收溢出,而ENC424J600速度可達(dá)100 Mbps,功能將更加完善,并提供兩種接口給嵌入式開發(fā)者選擇,是一款很好的網(wǎng)絡(luò)接口芯片。STM32F103RET6是一款A(yù)RM處理器,它的功耗低、價(jià)格低廉、功能強(qiáng)大、具備豐富的串行接口,具有512 KB的Flash,在一般的應(yīng)用中可以不用外擴(kuò)Flash,是中低端嵌入式開發(fā)系統(tǒng)的最佳選擇之一。將兩者結(jié)合不但能實(shí)現(xiàn)網(wǎng)絡(luò)通信,而且可以靈活轉(zhuǎn)換成其他串行接口,用途廣泛。
1 ENC424J600簡(jiǎn)介
ENC424J600是Microchip公司推出的單獨(dú)可用的快速以太網(wǎng)控制器。其與MCU的連接方式可采用具有工業(yè)標(biāo)準(zhǔn)的串行總線SPI或靈活的并行接口。SPI接口數(shù)據(jù)速率可達(dá)14 Mb/s、并行接口速率可達(dá)140 Mb/s。ENC424J600滿足10 basc-TX全雙工、半雙工模式、100base-TX全雙工、半雙工模式,4種模式均符合IEEE802.3協(xié)議。芯片內(nèi)置PHY物理層及MAC媒體訪問控制層。引擎具有RSA、DiffieHelman、AES、MD5、和SHA-1算法。芯片具有44引腳TQFP和QFN兩種封裝形式。該芯片另一個(gè)突出特點(diǎn)是具有24 KB的SRAM Buffer,基本不需要外接SRAM。芯片SRAM Buffer的分配如圖1所示。
SRAM Buffer被分為兩個(gè)區(qū)域,一般將General Purpose Buffer設(shè)為發(fā)送區(qū),RX FIFO Burfer設(shè)為接收區(qū),通過指針ERXST區(qū)分兩個(gè)區(qū)域,通常將一體電感接收區(qū)設(shè)置較大以防止接收幀溢出。
2 系統(tǒng)硬件電路設(shè)計(jì)
2.1 網(wǎng)絡(luò)控制器外圍硬件電路
ENC424J600網(wǎng)絡(luò)控制器外圍硬件電路設(shè)計(jì)需要注意的幾點(diǎn)有:ENC424J600的SPISEL引腳需要通過100kΩ電阻上拉至電源,這樣系統(tǒng)上電時(shí)就能進(jìn)入SPI模式,同時(shí)引出INT引腳作為接收中斷使用;每個(gè)電源引腳與地之間都應(yīng)連接一個(gè)電容,為更好地防止干擾在設(shè)計(jì)時(shí)加了兩個(gè)電容,布線時(shí)使0.01μF電容更靠近電源引腳;RBIAS引腳需接一個(gè)12.4 kΩ的電阻到地;另外RD+、RD-差分信號(hào)處的接法與一般的網(wǎng)絡(luò)控制器不同,它不是直接通過電阻接到電源上,需要特別注意。以太網(wǎng)接口則采用HR961160C,該插座集成以太網(wǎng)隔離變壓器、LED燈于一體,同時(shí)是貼片式的,節(jié)約PCB制板空間。在PCB布線時(shí)需要注意的是RD+、RD-和TD+、TD共模電感器-兩對(duì)高頻差分線的走線應(yīng)對(duì)稱并盡可能短。
ENC424J600外圍硬件電路及HANRUN以太網(wǎng)變壓器插座外圍電路圖如圖2、圖3所示。
2.2 系統(tǒng)硬件結(jié)構(gòu)
網(wǎng)絡(luò)轉(zhuǎn)串行通信接口的系統(tǒng)結(jié)構(gòu)框圖如圖4所示。STM32F103RET6通過SPI1串行通信接口、一個(gè)GPIO引腳作為中斷引腳與網(wǎng)絡(luò)控制器相連,系統(tǒng)再引出SPI2、CAN總線通信接口的引腳。將UART1串行接口作為控制臺(tái)供調(diào)試使用。STM32F103RET6具有串口ISP下載功能,將BOOT0接高電平,BOOT1接低電平即可進(jìn)入ISP下載模式。該系統(tǒng)可以通過跳線選擇ISP下載功能。