關(guān)鍵字:嵌入式系統(tǒng) 以太網(wǎng) LPC2368 DP83848C
1 引言
隨著Internet技術(shù)的迅速發(fā)展,人們對(duì)信息共享的要求也不斷提高,。目前,,嵌入式系統(tǒng)已經(jīng)滲透到我們生活的每個(gè)角落,,它與網(wǎng)絡(luò)的完美結(jié)合,為我們共享信息提供了很大的便利,。PHILIPS公司的LPC2368是一款優(yōu)秀的微處理器,,基于它的嵌入式系統(tǒng)如果沒(méi)有以太網(wǎng)接口,那么其應(yīng)用價(jià)值也就會(huì)大打折扣。因此,,就整個(gè)系統(tǒng)而言,,以太網(wǎng)接口電路應(yīng)是必不可少的,但同時(shí)也是相對(duì)較復(fù)雜的,。
以太網(wǎng)接口電路主要由MAC控制器和物理層接口(Physical Layer,,PHY)兩大部分構(gòu)成。LPC2368內(nèi)嵌一個(gè)以太網(wǎng)控制器,,支持精簡(jiǎn)的媒體獨(dú)立接口(Reduced Media Independent Interface,,RMII)和帶緩沖DMA接口(Buffered DMA Interface,BDI),,可在半雙工和全雙工模式下提供10M/100Mbps的以太網(wǎng)接入,。因此,LPC2368內(nèi)部實(shí)際上己經(jīng)包含了以太網(wǎng)MAC控制,,但并未提供物理層接口,,所以,需要外接一片物理層芯片以提供以太網(wǎng)的接入通道,。在這里選用National Semiconductor公司的DP83848C作為以太網(wǎng)物理層接口芯片,,它提供了包括MII/RMII/SNI接口,可以很方便地與LPC2368連接,。
2 LPC2368和DP83848C的介紹
2.1 微處理器LPC2368
LPC2368是基于ARM7TDMI-S內(nèi)核的32位微控制器,,可在高達(dá)72MHz的頻率下操作,,其功能強(qiáng)大且成本效率高,,支持 10/100Ethernet、全速(12Mbps)USB 2.0 和 CAN 2.0B,;具有高達(dá)512KB的片內(nèi)Flash,、58KB的SRAM、10 位 A/D 和 D/A 轉(zhuǎn)換器和一個(gè) IRC 振蕩器,,還帶有 SD 存儲(chǔ)卡接口可供選擇,,100引腳LQFP封裝(14×14×1.4mm)。廣泛應(yīng)用于工業(yè)控制,、POS系統(tǒng),、協(xié)議轉(zhuǎn)換、加密系統(tǒng)等領(lǐng)域[1],。
2.2 物理層芯片DP83848C
DP83848C是一個(gè)10/100Mb/s單端低功耗物理層器件,,有幾種智能降功耗模式,包括有25MHz時(shí)鐘輸出,很容易通過(guò)外接變壓器和雙絞線(xiàn)媒體接口,;支持兩種IEEE 802.3u MII和RMII Rev 1.2,,方便了設(shè)計(jì);集成的亞層支持10BASE-T和100BASE-TX以太網(wǎng)協(xié)議;低功耗小于270mW,、3.3V MAC接口,;可配置的SNI接口;48引腳LQFP封裝(7x7mm),。DP83848C作為一種以太網(wǎng)物理層收發(fā)器,,廣泛應(yīng)用于高端外圍設(shè)備、工業(yè)控制和工廠(chǎng)自動(dòng)化操作,、通用的嵌入式應(yīng)用領(lǐng)域[2],。
3 硬件部分設(shè)計(jì)
3.1 電路框圖
LPC2368與DP83848C連接比較簡(jiǎn)單,直接通過(guò)RMII接口連接即可,。連接好后,,DP83848C再通過(guò)網(wǎng)絡(luò)隔離變壓器和RJ45接口接入傳輸媒體,其電路框圖如圖1所示,。
圖 1 微控制器LPC2368與PHY芯片DP83848C的以太網(wǎng)接口電路框圖
3.2 以太網(wǎng)接口實(shí)際電路原理圖設(shè)計(jì)
DP83848C支持幾種MAC接口方式:(1)MII,;(2)RMII (Reduced MII);(3)10 Mb 串行網(wǎng)絡(luò)接口(Serial Network Interface,,SNI),。在這里我們使用的是RMII接口方式,通過(guò)設(shè)置引腳pin39和pin6來(lái)確定,,如表1所示,。
表1:MII方式選擇
MII_MODE (pin39) |
SNI_MODE (pin6) |
MAC Interface Mode |
0 |
0或1 |
MII Mode |
1 |
0 |
RMII Mode |
1 |
1 |
10 Mb SNI Mode |
由表1可以看出,pin39應(yīng)接上高電平,,pin6應(yīng)接上低電平,。同時(shí)因?yàn)樵谛酒瑑?nèi)部pin6下拉,默認(rèn)為0,,所以只要設(shè)置pin39接上高電平即可,,這樣微處理器LPC2368就可以同PHY芯片DP83848C通過(guò)RMII接口方式連接。它們之間通過(guò)RMII接口連接,,芯片和控制器連接所使用的引腳數(shù)目會(huì)比較少,,且數(shù)據(jù)傳送速率是每次2位,即頻率50MHz,,所以需要一個(gè)50MHz的晶體振蕩器連接到pin34 X1腳,。
在RMII方式下,主要使用到的引腳有:1串行管理:MDC(pin31),、MDIO(pin30),; 2MAC數(shù)據(jù):TX_EN(pin2)、TXD[1:0](pin4 pin3),、RX_ER(pin41),、CRS_DV(pin40),、RXD[1:0](pin44 pin43); 3時(shí)鐘:X1(pin34 ,RMII 參考時(shí)鐘是50MHz),、X2(pin33),。
Pin27置高使得DP83848C以100Mbps的速率工作, LED顯示DP83848C的工作狀態(tài)。16ST8515為網(wǎng)絡(luò)隔離變壓器,,其主要是起信號(hào)傳輸,、阻抗匹配、波形修復(fù),、雜波抑制以及高電壓隔離等作用,,以保護(hù)系統(tǒng)的安全。通過(guò)protel 99 SE畫(huà)出電路原理圖如圖2所示,。

圖2 以太網(wǎng)接口實(shí)際電路原理圖
4 軟件實(shí)現(xiàn)過(guò)程
軟件的實(shí)現(xiàn)主要有三個(gè)部分:系統(tǒng)的初始化,、數(shù)據(jù)的發(fā)送和接收。
初始化部分完成以太網(wǎng)接口在使用之前的初始化工作,,主要包括設(shè)置相關(guān)的寄存器,、分配和初始化發(fā)送與接收緩沖區(qū)等。
4.1 以太網(wǎng)工作原理
在網(wǎng)絡(luò)接口層對(duì)應(yīng)的數(shù)據(jù)包是完整的以太網(wǎng)幀格式的,,因此要實(shí)現(xiàn)數(shù)據(jù)的發(fā)送和接收就必須按以太網(wǎng)IEEE802.3協(xié)議來(lái)進(jìn)行,,該協(xié)議所定義的幀結(jié)構(gòu)如表2所示。
表2:標(biāo)準(zhǔn)的以太幀格式
同步位 |
分隔位 |
目的地址 |
源地址 |
幀類(lèi)型 |
數(shù)據(jù)段 |
填充 |
校驗(yàn)位 |
56Bit |
8Bit |
48Bit |
48Bit |
16Bit |
<1500Byte |
可選 |
32Bit |
每個(gè)網(wǎng)卡在出廠(chǎng)的時(shí)候有個(gè)全球固定的物理地址(MAC地址),。當(dāng)總線(xiàn)上的一個(gè)節(jié)點(diǎn)發(fā)送一個(gè)數(shù)據(jù)幀,,總線(xiàn)上其他的網(wǎng)絡(luò)節(jié)點(diǎn)都拷貝該數(shù)據(jù)幀,每個(gè)節(jié)點(diǎn)檢查數(shù)據(jù)幀的目的物理地址,,如果和自己的物理地址匹配的話(huà),,該節(jié)點(diǎn)的網(wǎng)卡就接受該數(shù)據(jù)幀傳給上層協(xié)議處理,反之如果不匹配,,該節(jié)點(diǎn)就丟棄數(shù)據(jù)幀,。
4.2 發(fā)送與接收數(shù)據(jù)幀
采用中斷的方式發(fā)送和接收數(shù)據(jù),。
發(fā)送數(shù)據(jù)幀:將要發(fā)送的數(shù)據(jù)封裝成以太幀,,并寫(xiě)入發(fā)送緩沖區(qū);檢測(cè)網(wǎng)絡(luò)中有無(wú)數(shù)據(jù)在傳送,,即上一個(gè)幀是否發(fā)送完畢,,如果網(wǎng)絡(luò)中仍有數(shù)據(jù)在傳送,則暫時(shí)不能發(fā)送幀,,若網(wǎng)絡(luò)中沒(méi)有數(shù)據(jù),,則可以立即發(fā)送此幀;在發(fā)送該幀時(shí),,可同時(shí)封裝下一個(gè)數(shù)據(jù)幀,,并將其寫(xiě)入第二個(gè)發(fā)送緩沖區(qū),;當(dāng)中斷服務(wù)程序檢測(cè)到第一個(gè)數(shù)據(jù)幀發(fā)送完畢時(shí),則可發(fā)送下一個(gè)數(shù)據(jù)幀,。重復(fù)以上過(guò)程,,直到所有數(shù)據(jù)幀都發(fā)送完畢。發(fā)送數(shù)據(jù)幀的流程圖如圖3所示,。
接收數(shù)據(jù)幀:等待直到有數(shù)據(jù)幀到達(dá),,將此數(shù)據(jù)幀保存到FIFO緩存中,然后察看該數(shù)據(jù)幀的目的地址,,若為NIC的MAC地址或廣播地址,,并且經(jīng)檢驗(yàn)沒(méi)有出錯(cuò),則把此數(shù)據(jù)傳送到接收緩沖中,,并向處理器提出中斷,,將接收到的數(shù)據(jù)幀從 NIC本地緩存連續(xù)讀人到系統(tǒng)內(nèi)存中。
5 結(jié)束語(yǔ)
本文講到了利用微處理器LPC2368和PHY芯片DP83848C來(lái)設(shè)計(jì)以太網(wǎng)接口,。由于微控制器LPC2368和物理層芯片DP83848C的優(yōu)良性能,,使得該接口電路具有結(jié)構(gòu)簡(jiǎn)單、體積小,、功耗低等許多優(yōu)點(diǎn),,是實(shí)現(xiàn)嵌入式系統(tǒng)與網(wǎng)絡(luò)連接的不錯(cuò)選擇。
本文作者創(chuàng)新點(diǎn):使用功能強(qiáng)大的微處理器LPC2368,,通過(guò)精簡(jiǎn)的媒體獨(dú)立接口與物理層芯片進(jìn)行連接,,在保證同樣功能的情況下,使得布線(xiàn)更加簡(jiǎn)單,,可以大大減小設(shè)計(jì)時(shí)的出錯(cuò)率,。
參考文獻(xiàn)
[1]. LPC2364/6/8/78 User manual.
[2]. DP83848C User manual.
[3]. ARM微控制器基礎(chǔ)與實(shí)戰(zhàn)[M].北京:北京航空航天大學(xué)出版社, 2005.
[4]. 付沖,陳英,馬希敏,張永元.一種通用嵌入式系統(tǒng)以太網(wǎng)接口的設(shè)計(jì)與實(shí)現(xiàn)[J].山東大學(xué)學(xué)報(bào),2005.6,35(3):93- 97.
[5]. 呂昌泰,羅永剛.嵌入式以太網(wǎng)接口的研究與設(shè)計(jì)[J].微計(jì)算機(jī)信息.2006,22(8-2):68- 70.
[6]. 葛永明, 林繼寶.嵌入式系統(tǒng)以太網(wǎng)接口的設(shè)計(jì)[J].電子技術(shù)應(yīng)用.2002,3:25- 27.
[7].微計(jì)算機(jī)信息-嵌入式與SOC(中旬)