閆鵬
【摘要】 采用STM32F103系列RAM微控制器和以太網(wǎng)控制器芯片ENC28J60為核心來搭建網(wǎng)絡(luò)接口。文中首先闡明接口的硬件架構(gòu)的實(shí)現(xiàn)方法,詳細(xì)分析了軟件與驅(qū)動程序開發(fā),明確系統(tǒng)的通信過程。該設(shè)計(jì)能夠進(jìn)行信息的穩(wěn)定、有效的傳輸,實(shí)現(xiàn)網(wǎng)絡(luò)接口功能。
【關(guān)鍵詞】 STM32F103 ENC28J60 以太網(wǎng)
以太網(wǎng)是目前應(yīng)用廣泛的網(wǎng)絡(luò)通信技術(shù),借助此技術(shù)可以實(shí)現(xiàn)微控制器之間長距離、高速率的傳輸。
一、接口的硬件架構(gòu)
1.1 硬件模塊介紹
ENC28J60是美國微芯科技公司推出的符合IEEE 802.3協(xié)議規(guī)范的一款28引腳獨(dú)立以太網(wǎng)控制器芯片,帶有行業(yè)標(biāo)準(zhǔn)的SPI接口,集成了媒體訪問控制器和10BASE—T以太網(wǎng)物理層器件,支持全雙工和半雙工模式,可編程填充和CRC生成,可編程8 kbyte雙端口SRAM緩沖器,可配置發(fā)送/接收緩沖器的大小,具有硬件管理的循環(huán)接受FIFO。在它內(nèi)部還提供了一個(gè)DMA模塊,可以實(shí)現(xiàn)數(shù)據(jù)的快速吞吐,數(shù)據(jù)傳輸速率高達(dá)10 Mbit/s。ENC28J60和主控制器的通信通過SPI接口實(shí)現(xiàn),使得實(shí)現(xiàn)以太網(wǎng)接口變得靈活簡單。
1.2 電路設(shè)計(jì)實(shí)現(xiàn)
NC28J60采用標(biāo)準(zhǔn)的SPI串行接口,4條線與STM32F103的SPI接口連接。當(dāng)SCK為上升沿時(shí)命令和數(shù)據(jù)可通過SI引腳送入器件。在SCK的下降沿從SO引腳輸出數(shù)據(jù)。當(dāng)執(zhí)行操作/CS引腳始終保持低電平,操作完成時(shí)恢復(fù)高電平。如圖1以太網(wǎng)電路控制圖所示。
圖1 以太網(wǎng)電路控制圖
如圖1所示,差分接收引腳(TPIN+/TPIN-)以及差分發(fā)送引腳(TPOUT+/TPOUT-)與集成變壓器帶中心抽頭的腳45插座HR911105A連接,ENC28J60的內(nèi)部模擬電路需要在RBIAS引腳與地之間外接一個(gè)2 K(精度為1%)電阻。為降低功耗,ENC28J60中的一些數(shù)字電路工作在2.5V標(biāo)稱電壓下,該電壓有其內(nèi)部一個(gè)2.5 V穩(wěn)壓器以產(chǎn)生,為使之工作穩(wěn)定,需在VCAP引腳與地之間連接一個(gè)10μ的電容。
以太網(wǎng)接口選用帶有網(wǎng)絡(luò)隔離變壓器功能的HR911105A來實(shí)現(xiàn)。LEDA和LEDB引腳支持復(fù)位時(shí)的自動極性檢測。可以在這兩個(gè)引腳上,以拉電流或灌電流點(diǎn)亮LED的兩種方式連接LED。系統(tǒng)復(fù)位時(shí),ENC28J60將檢測LED的連接方式,并將LED驅(qū)動為PHLCON寄存器配置的默認(rèn)狀態(tài)。如果在ENC28J60運(yùn)行時(shí)改變LED的極性,新極性將在下一次系統(tǒng)復(fù)位時(shí)才能被檢測到。復(fù)位時(shí)會自動讀取LEDB上LED的連接狀態(tài),并確定如何初始化PHCONl.PDPXMD位。如果引腳采用拉電流的方式點(diǎn)亮LED,則復(fù)位時(shí)此位清零且PHY默認(rèn)為在半雙工模式下運(yùn)行。
二、軟件設(shè)計(jì)
2.1 ENC28J60初始化
在使用ENC28J60發(fā)送和接收數(shù)據(jù)包時(shí),必須先對器件進(jìn)行初始化設(shè)置。根據(jù)不同的應(yīng)用,配置選項(xiàng)可能需要更改。ENC28J60初始化主要是對其接收和發(fā)送緩沖器、接收過濾器、晶振啟動時(shí)間、MAC寄存器、PHY寄存器進(jìn)行設(shè)置。
2.2數(shù)據(jù)的接收
接收過程主要包括接收設(shè)置與啟動,內(nèi)部接收與過濾,數(shù)據(jù)包讀取與處理。接收啟動后,內(nèi)部自動進(jìn)行接收和過濾,未濾除的數(shù)據(jù)包寫人循環(huán)接收緩沖器(其存儲結(jié)構(gòu)包括一個(gè)報(bào)頭、實(shí)際包數(shù)據(jù)、可能的填充字節(jié))并產(chǎn)生中斷;通過中斷服務(wù)分析報(bào)頭,讀取實(shí)際包數(shù)據(jù)。發(fā)送過程主要包括:發(fā)送準(zhǔn)備,發(fā)送,發(fā)送異常處理。ENC28J60自動生成前導(dǎo)符和幀起始定界符、最小包的填充和有效CRC追加。在發(fā)送準(zhǔn)備過程中需要進(jìn)行最小包填充設(shè)置,CRC追加設(shè)置,包控制字節(jié)輸人,以及MAC幀有效字段輸人。發(fā)送過程是內(nèi)部過程。當(dāng)發(fā)送異常中止時(shí),需要根據(jù)MAC模塊自動產(chǎn)生的7 byte發(fā)送狀態(tài)向量進(jìn)行相應(yīng)處理。
三、測試及結(jié)果
用網(wǎng)線連接測試板與計(jì)算機(jī),通過Ping 命令來測試計(jì)算每幀數(shù)據(jù)間隔時(shí)間,并計(jì)算有多少個(gè)包被發(fā)送,可以判斷網(wǎng)絡(luò)大致的情況。測試結(jié)果表明,微控制器接收到了PC機(jī)發(fā)送的4個(gè)數(shù)據(jù)包,通信效果良好。該網(wǎng)絡(luò)接口可以實(shí)現(xiàn)微控制器、微控制器與計(jì)算機(jī)之間網(wǎng)絡(luò)通信。
參 考 文 獻(xiàn)
[1] 肖廣兵,萬茂松.基于STM32的系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2013:74—75.
[2] 王海民,王宏志.STM32以太網(wǎng)控制系統(tǒng) [J].長春工業(yè)大學(xué)學(xué)報(bào).2014(01):64endprint
【摘要】 采用STM32F103系列RAM微控制器和以太網(wǎng)控制器芯片ENC28J60為核心來搭建網(wǎng)絡(luò)接口。文中首先闡明接口的硬件架構(gòu)的實(shí)現(xiàn)方法,詳細(xì)分析了軟件與驅(qū)動程序開發(fā),明確系統(tǒng)的通信過程。該設(shè)計(jì)能夠進(jìn)行信息的穩(wěn)定、有效的傳輸,實(shí)現(xiàn)網(wǎng)絡(luò)接口功能。
【關(guān)鍵詞】 STM32F103 ENC28J60 以太網(wǎng)
以太網(wǎng)是目前應(yīng)用廣泛的網(wǎng)絡(luò)通信技術(shù),借助此技術(shù)可以實(shí)現(xiàn)微控制器之間長距離、高速率的傳輸。
一、接口的硬件架構(gòu)
1.1 硬件模塊介紹
ENC28J60是美國微芯科技公司推出的符合IEEE 802.3協(xié)議規(guī)范的一款28引腳獨(dú)立以太網(wǎng)控制器芯片,帶有行業(yè)標(biāo)準(zhǔn)的SPI接口,集成了媒體訪問控制器和10BASE—T以太網(wǎng)物理層器件,支持全雙工和半雙工模式,可編程填充和CRC生成,可編程8 kbyte雙端口SRAM緩沖器,可配置發(fā)送/接收緩沖器的大小,具有硬件管理的循環(huán)接受FIFO。在它內(nèi)部還提供了一個(gè)DMA模塊,可以實(shí)現(xiàn)數(shù)據(jù)的快速吞吐,數(shù)據(jù)傳輸速率高達(dá)10 Mbit/s。ENC28J60和主控制器的通信通過SPI接口實(shí)現(xiàn),使得實(shí)現(xiàn)以太網(wǎng)接口變得靈活簡單。
1.2 電路設(shè)計(jì)實(shí)現(xiàn)
NC28J60采用標(biāo)準(zhǔn)的SPI串行接口,4條線與STM32F103的SPI接口連接。當(dāng)SCK為上升沿時(shí)命令和數(shù)據(jù)可通過SI引腳送入器件。在SCK的下降沿從SO引腳輸出數(shù)據(jù)。當(dāng)執(zhí)行操作/CS引腳始終保持低電平,操作完成時(shí)恢復(fù)高電平。如圖1以太網(wǎng)電路控制圖所示。
圖1 以太網(wǎng)電路控制圖
如圖1所示,差分接收引腳(TPIN+/TPIN-)以及差分發(fā)送引腳(TPOUT+/TPOUT-)與集成變壓器帶中心抽頭的腳45插座HR911105A連接,ENC28J60的內(nèi)部模擬電路需要在RBIAS引腳與地之間外接一個(gè)2 K(精度為1%)電阻。為降低功耗,ENC28J60中的一些數(shù)字電路工作在2.5V標(biāo)稱電壓下,該電壓有其內(nèi)部一個(gè)2.5 V穩(wěn)壓器以產(chǎn)生,為使之工作穩(wěn)定,需在VCAP引腳與地之間連接一個(gè)10μ的電容。
以太網(wǎng)接口選用帶有網(wǎng)絡(luò)隔離變壓器功能的HR911105A來實(shí)現(xiàn)。LEDA和LEDB引腳支持復(fù)位時(shí)的自動極性檢測??梢栽谶@兩個(gè)引腳上,以拉電流或灌電流點(diǎn)亮LED的兩種方式連接LED。系統(tǒng)復(fù)位時(shí),ENC28J60將檢測LED的連接方式,并將LED驅(qū)動為PHLCON寄存器配置的默認(rèn)狀態(tài)。如果在ENC28J60運(yùn)行時(shí)改變LED的極性,新極性將在下一次系統(tǒng)復(fù)位時(shí)才能被檢測到。復(fù)位時(shí)會自動讀取LEDB上LED的連接狀態(tài),并確定如何初始化PHCONl.PDPXMD位。如果引腳采用拉電流的方式點(diǎn)亮LED,則復(fù)位時(shí)此位清零且PHY默認(rèn)為在半雙工模式下運(yùn)行。
二、軟件設(shè)計(jì)
2.1 ENC28J60初始化
在使用ENC28J60發(fā)送和接收數(shù)據(jù)包時(shí),必須先對器件進(jìn)行初始化設(shè)置。根據(jù)不同的應(yīng)用,配置選項(xiàng)可能需要更改。ENC28J60初始化主要是對其接收和發(fā)送緩沖器、接收過濾器、晶振啟動時(shí)間、MAC寄存器、PHY寄存器進(jìn)行設(shè)置。
2.2數(shù)據(jù)的接收
接收過程主要包括接收設(shè)置與啟動,內(nèi)部接收與過濾,數(shù)據(jù)包讀取與處理。接收啟動后,內(nèi)部自動進(jìn)行接收和過濾,未濾除的數(shù)據(jù)包寫人循環(huán)接收緩沖器(其存儲結(jié)構(gòu)包括一個(gè)報(bào)頭、實(shí)際包數(shù)據(jù)、可能的填充字節(jié))并產(chǎn)生中斷;通過中斷服務(wù)分析報(bào)頭,讀取實(shí)際包數(shù)據(jù)。發(fā)送過程主要包括:發(fā)送準(zhǔn)備,發(fā)送,發(fā)送異常處理。ENC28J60自動生成前導(dǎo)符和幀起始定界符、最小包的填充和有效CRC追加。在發(fā)送準(zhǔn)備過程中需要進(jìn)行最小包填充設(shè)置,CRC追加設(shè)置,包控制字節(jié)輸人,以及MAC幀有效字段輸人。發(fā)送過程是內(nèi)部過程。當(dāng)發(fā)送異常中止時(shí),需要根據(jù)MAC模塊自動產(chǎn)生的7 byte發(fā)送狀態(tài)向量進(jìn)行相應(yīng)處理。
三、測試及結(jié)果
用網(wǎng)線連接測試板與計(jì)算機(jī),通過Ping 命令來測試計(jì)算每幀數(shù)據(jù)間隔時(shí)間,并計(jì)算有多少個(gè)包被發(fā)送,可以判斷網(wǎng)絡(luò)大致的情況。測試結(jié)果表明,微控制器接收到了PC機(jī)發(fā)送的4個(gè)數(shù)據(jù)包,通信效果良好。該網(wǎng)絡(luò)接口可以實(shí)現(xiàn)微控制器、微控制器與計(jì)算機(jī)之間網(wǎng)絡(luò)通信。
參 考 文 獻(xiàn)
[1] 肖廣兵,萬茂松.基于STM32的系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2013:74—75.
[2] 王海民,王宏志.STM32以太網(wǎng)控制系統(tǒng) [J].長春工業(yè)大學(xué)學(xué)報(bào).2014(01):64endprint
【摘要】 采用STM32F103系列RAM微控制器和以太網(wǎng)控制器芯片ENC28J60為核心來搭建網(wǎng)絡(luò)接口。文中首先闡明接口的硬件架構(gòu)的實(shí)現(xiàn)方法,詳細(xì)分析了軟件與驅(qū)動程序開發(fā),明確系統(tǒng)的通信過程。該設(shè)計(jì)能夠進(jìn)行信息的穩(wěn)定、有效的傳輸,實(shí)現(xiàn)網(wǎng)絡(luò)接口功能。
【關(guān)鍵詞】 STM32F103 ENC28J60 以太網(wǎng)
以太網(wǎng)是目前應(yīng)用廣泛的網(wǎng)絡(luò)通信技術(shù),借助此技術(shù)可以實(shí)現(xiàn)微控制器之間長距離、高速率的傳輸。
一、接口的硬件架構(gòu)
1.1 硬件模塊介紹
ENC28J60是美國微芯科技公司推出的符合IEEE 802.3協(xié)議規(guī)范的一款28引腳獨(dú)立以太網(wǎng)控制器芯片,帶有行業(yè)標(biāo)準(zhǔn)的SPI接口,集成了媒體訪問控制器和10BASE—T以太網(wǎng)物理層器件,支持全雙工和半雙工模式,可編程填充和CRC生成,可編程8 kbyte雙端口SRAM緩沖器,可配置發(fā)送/接收緩沖器的大小,具有硬件管理的循環(huán)接受FIFO。在它內(nèi)部還提供了一個(gè)DMA模塊,可以實(shí)現(xiàn)數(shù)據(jù)的快速吞吐,數(shù)據(jù)傳輸速率高達(dá)10 Mbit/s。ENC28J60和主控制器的通信通過SPI接口實(shí)現(xiàn),使得實(shí)現(xiàn)以太網(wǎng)接口變得靈活簡單。
1.2 電路設(shè)計(jì)實(shí)現(xiàn)
NC28J60采用標(biāo)準(zhǔn)的SPI串行接口,4條線與STM32F103的SPI接口連接。當(dāng)SCK為上升沿時(shí)命令和數(shù)據(jù)可通過SI引腳送入器件。在SCK的下降沿從SO引腳輸出數(shù)據(jù)。當(dāng)執(zhí)行操作/CS引腳始終保持低電平,操作完成時(shí)恢復(fù)高電平。如圖1以太網(wǎng)電路控制圖所示。
圖1 以太網(wǎng)電路控制圖
如圖1所示,差分接收引腳(TPIN+/TPIN-)以及差分發(fā)送引腳(TPOUT+/TPOUT-)與集成變壓器帶中心抽頭的腳45插座HR911105A連接,ENC28J60的內(nèi)部模擬電路需要在RBIAS引腳與地之間外接一個(gè)2 K(精度為1%)電阻。為降低功耗,ENC28J60中的一些數(shù)字電路工作在2.5V標(biāo)稱電壓下,該電壓有其內(nèi)部一個(gè)2.5 V穩(wěn)壓器以產(chǎn)生,為使之工作穩(wěn)定,需在VCAP引腳與地之間連接一個(gè)10μ的電容。
以太網(wǎng)接口選用帶有網(wǎng)絡(luò)隔離變壓器功能的HR911105A來實(shí)現(xiàn)。LEDA和LEDB引腳支持復(fù)位時(shí)的自動極性檢測??梢栽谶@兩個(gè)引腳上,以拉電流或灌電流點(diǎn)亮LED的兩種方式連接LED。系統(tǒng)復(fù)位時(shí),ENC28J60將檢測LED的連接方式,并將LED驅(qū)動為PHLCON寄存器配置的默認(rèn)狀態(tài)。如果在ENC28J60運(yùn)行時(shí)改變LED的極性,新極性將在下一次系統(tǒng)復(fù)位時(shí)才能被檢測到。復(fù)位時(shí)會自動讀取LEDB上LED的連接狀態(tài),并確定如何初始化PHCONl.PDPXMD位。如果引腳采用拉電流的方式點(diǎn)亮LED,則復(fù)位時(shí)此位清零且PHY默認(rèn)為在半雙工模式下運(yùn)行。
二、軟件設(shè)計(jì)
2.1 ENC28J60初始化
在使用ENC28J60發(fā)送和接收數(shù)據(jù)包時(shí),必須先對器件進(jìn)行初始化設(shè)置。根據(jù)不同的應(yīng)用,配置選項(xiàng)可能需要更改。ENC28J60初始化主要是對其接收和發(fā)送緩沖器、接收過濾器、晶振啟動時(shí)間、MAC寄存器、PHY寄存器進(jìn)行設(shè)置。
2.2數(shù)據(jù)的接收
接收過程主要包括接收設(shè)置與啟動,內(nèi)部接收與過濾,數(shù)據(jù)包讀取與處理。接收啟動后,內(nèi)部自動進(jìn)行接收和過濾,未濾除的數(shù)據(jù)包寫人循環(huán)接收緩沖器(其存儲結(jié)構(gòu)包括一個(gè)報(bào)頭、實(shí)際包數(shù)據(jù)、可能的填充字節(jié))并產(chǎn)生中斷;通過中斷服務(wù)分析報(bào)頭,讀取實(shí)際包數(shù)據(jù)。發(fā)送過程主要包括:發(fā)送準(zhǔn)備,發(fā)送,發(fā)送異常處理。ENC28J60自動生成前導(dǎo)符和幀起始定界符、最小包的填充和有效CRC追加。在發(fā)送準(zhǔn)備過程中需要進(jìn)行最小包填充設(shè)置,CRC追加設(shè)置,包控制字節(jié)輸人,以及MAC幀有效字段輸人。發(fā)送過程是內(nèi)部過程。當(dāng)發(fā)送異常中止時(shí),需要根據(jù)MAC模塊自動產(chǎn)生的7 byte發(fā)送狀態(tài)向量進(jìn)行相應(yīng)處理。
三、測試及結(jié)果
用網(wǎng)線連接測試板與計(jì)算機(jī),通過Ping 命令來測試計(jì)算每幀數(shù)據(jù)間隔時(shí)間,并計(jì)算有多少個(gè)包被發(fā)送,可以判斷網(wǎng)絡(luò)大致的情況。測試結(jié)果表明,微控制器接收到了PC機(jī)發(fā)送的4個(gè)數(shù)據(jù)包,通信效果良好。該網(wǎng)絡(luò)接口可以實(shí)現(xiàn)微控制器、微控制器與計(jì)算機(jī)之間網(wǎng)絡(luò)通信。
參 考 文 獻(xiàn)
[1] 肖廣兵,萬茂松.基于STM32的系統(tǒng)設(shè)計(jì)[M].北京:電子工業(yè)出版社,2013:74—75.
[2] 王海民,王宏志.STM32以太網(wǎng)控制系統(tǒng) [J].長春工業(yè)大學(xué)學(xué)報(bào).2014(01):64endprint