<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設(shè)計應(yīng)用 > 基于ARM-LPC2368的網(wǎng)絡(luò)接口的設(shè)計與實現(xiàn)

          基于ARM-LPC2368的網(wǎng)絡(luò)接口的設(shè)計與實現(xiàn)

          作者: 時間:2008-06-27 來源:網(wǎng)絡(luò) 收藏
          摘 要: 本文以微處理器LPC為核心、DP83848C為以太網(wǎng)物理層接口芯片,詳細地介紹了嵌入式以太網(wǎng)接口的實現(xiàn)方法?!∈紫葘ξ⑻幚砥鱈PC和物理層芯片DP83848C作了簡單的介紹,然后給出了基于LPC的以太網(wǎng)接口的硬件設(shè)計,最后簡述了其軟件的實現(xiàn)過程。
          關(guān)鍵詞: 嵌入式系統(tǒng),以太網(wǎng),LPC2368,DP83848C

          1 引言

          隨著Internet技術(shù)的迅速發(fā)展,人們對信息共享的要求也不斷提高。目前,嵌入式系統(tǒng)已經(jīng)滲透到我們生活的每個角落,它與的完美結(jié)合,為我們共享信息提供了很大的便利。PHILIPS公司的LPC2368是一款優(yōu)秀的微處理器,基于它的嵌入式系統(tǒng)如果沒有以太網(wǎng)接口,那么其應(yīng)用價值也就會大打折扣。因此,就整個系統(tǒng)而言,以太網(wǎng)接口電路應(yīng)是必不可少的,但同時也是相對較復(fù)雜的。

          以太網(wǎng)接口電路主要由MAC控制器和物理層接口(Physical Layer,PHY)兩大部分構(gòu)成。LPC2368內(nèi)嵌一個以太網(wǎng)控制器,支持精簡的媒體獨立接口(Reduced Media Independent Interface,RMII)和帶緩沖DMA接口(Buffered DMA Interface,BDI),可在半雙工和全雙工模式下提供10M/100Mbps的以太網(wǎng)接入。因此,LPC2368內(nèi)部實際上己經(jīng)包含了以太網(wǎng)MAC控制,但并未提供物理層接口,所以,需要外接一片物理層芯片以提供以太網(wǎng)的接入通道。在這里選用National Semiconductor公司的DP83848C作為以太網(wǎng)物理層接口芯片,它提供了包括MII/RMII/SNI接口,可以很方便地與LPC2368連接。

          LPC2368DP83848C的介紹

          2.1 微處理器LPC2368

          LPC2368是基于ARM7TDMI-S內(nèi)核的32位微控制器,可在高達72MHz的頻率下操作,其功能強大且成本效率高,支持 10/100Ethernet、全速(12Mbps)USB 2.0 和 CAN 2.0B;具有高達512KB的片內(nèi)Flash、58KB的SRAM、10 位 A/D 和 D/A 轉(zhuǎn)換器和一個 IRC 振蕩器,還帶有 SD 存儲卡接口可供選擇,100引腳LQFP封裝(14141.4mm)。廣泛應(yīng)用于工業(yè)控制、POS系統(tǒng)、協(xié)議轉(zhuǎn)換、加密系統(tǒng)等領(lǐng)域[1]。

          2.2 物理層芯片DP83848C

          DP83848C是一個10/100Mb/s單端低功耗物理層器件,有幾種智能降功耗模式,包括有25MHz時鐘輸出,很容易通過外接變壓器和雙絞線媒體接口;支持兩種IEEE 802.3u MII和RMII Rev 1.2,方便了設(shè)計;集成的亞層支持10BASE-T和100BASE-TX以太網(wǎng)協(xié)議;低功耗小于270mW、3.3V MAC接口;可配置的SNI接口;48引腳LQFP封裝(7x7mm)。DP83848C作為一種以太網(wǎng)物理層收發(fā)器,廣泛應(yīng)用于高端外圍設(shè)備、工業(yè)控制和工廠自動化操作、通用的嵌入式應(yīng)用領(lǐng)域[2]。

          硬件部分設(shè)計

          3.1 電路框圖

           LPC2368與DP83848C連接比較簡單,直接通過RMII接口連接即可。連接好后,DP83848C再通過隔離變壓器和RJ45接口接入傳輸媒體,其電路框圖如圖1所示。

          圖 1  微控制器LPC2368與PHY芯片DP83848C的以太網(wǎng)接口電路框圖

          3.2 以太網(wǎng)接口實際電路原理圖設(shè)計

          DP83848C支持幾種MAC接口方式:(1)MII;(2)RMII (Reduced MII);(3)10 Mb 串行接口(Serial Network Interface,SNI)。在這里我們使用的是RMII接口方式,通過設(shè)置引腳pin39和pin6來確定,如表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)接上低電平。同時因為在芯片內(nèi)部pin6下拉,默認為0,所以只要設(shè)置pin39接上高電平即可,這樣微處理器LPC2368就可以同PHY芯片DP83848C通過RMII接口方式連接。它們之間通過RMII接口連接,芯片和控制器連接所使用的引腳數(shù)目會比較少,且數(shù)據(jù)傳送速率是每次2位,即頻率50MHz,所以需要一個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時鐘:X1(pin34 ,RMII 參考時鐘是50MHz)、X2(pin33)。

          Pin27置高使得DP83848C以100Mbps的速率工作, LED顯示DP83848C的工作狀態(tài)。16ST8515為網(wǎng)絡(luò)隔離變壓器,其主要是起信號傳輸、阻抗匹配、波形修復(fù)、雜波抑制以及高電壓隔離等作用,以保護系統(tǒng)的安全。通過protel 99 SE畫出電路原理圖如圖2所示。



          圖2 以太網(wǎng)接口實際電路原理圖


          4 軟件實現(xiàn)過程

          軟件的實現(xiàn)主要有三個部分:系統(tǒng)的初始化、數(shù)據(jù)的發(fā)送和接收。

          初始化部分完成以太網(wǎng)接口在使用之前的初始化工作,主要包括設(shè)置相關(guān)的寄存器、分配和初始化發(fā)送與接收緩沖區(qū)等。

          4.1 以太網(wǎng)工作原理

          在網(wǎng)絡(luò)接口層對應(yīng)的數(shù)據(jù)包是完整的以太網(wǎng)幀格式的,因此要實現(xiàn)數(shù)據(jù)的發(fā)送和接收就必須按以太網(wǎng)IEEE802.3協(xié)議來進行,該協(xié)議所定義的幀結(jié)構(gòu)如表2所示。

          2:標準的以太幀格式

          同步位

          分隔位

          目的地址

          源地址

          幀類型

          數(shù)據(jù)段

          填充

          校驗位

          56Bit

          8Bit

          48Bit

          48Bit

          16Bit

          1500Byte

          可選

          32Bit

          每個網(wǎng)卡在出廠的時候有個全球固定的物理地址(MAC地址)。當總線上的一個節(jié)點發(fā)送一個數(shù)據(jù)幀,總線上其他的網(wǎng)絡(luò)節(jié)點都拷貝該數(shù)據(jù)幀,每個節(jié)點檢查數(shù)據(jù)幀的目的物理地址,如果和自己的物理地址匹配的話,該節(jié)點的網(wǎng)卡就接受該數(shù)據(jù)幀傳給上層協(xié)議處理,反之如果不匹配,該節(jié)點就丟棄數(shù)據(jù)幀。

          4.2 發(fā)送與接收數(shù)據(jù)幀

          采用中斷的方式發(fā)送和接收數(shù)據(jù)。

          發(fā)送數(shù)據(jù)幀:將要發(fā)送的數(shù)據(jù)封裝成以太幀,并寫入發(fā)送緩沖區(qū);檢測網(wǎng)絡(luò)中有無數(shù)據(jù)在傳送,即上一個幀是否發(fā)送完畢,如果網(wǎng)絡(luò)中仍有數(shù)據(jù)在傳送,則暫時不能發(fā)送幀,若網(wǎng)絡(luò)中沒有數(shù)據(jù),則可以立即發(fā)送此幀;在發(fā)送該幀時,可同時封裝下一個數(shù)據(jù)幀,并將其寫入第二個發(fā)送緩沖區(qū);當中斷服務(wù)程序檢測到第一個數(shù)據(jù)幀發(fā)送完畢時,則可發(fā)送下一個數(shù)據(jù)幀。重復(fù)以上過程,直到所有數(shù)據(jù)幀都發(fā)送完畢。發(fā)送數(shù)據(jù)幀的流程圖如圖3所示。

          接收數(shù)據(jù)幀:等待直到有數(shù)據(jù)幀到達,將此數(shù)據(jù)幀保存到FIFO緩存中,然后察看該數(shù)據(jù)幀的目的地址,若為NIC的MAC地址或廣播地址,并且經(jīng)檢驗沒有出錯,則把此數(shù)據(jù)傳送到接收緩沖中,并向處理器提出中斷,將接收到的數(shù)據(jù)幀從 NIC本地緩存連續(xù)讀人到系統(tǒng)內(nèi)存中。接收數(shù)據(jù)幀的流程圖如圖4所示。

          圖3 發(fā)送數(shù)據(jù)幀流程圖

          圖4 接收數(shù)據(jù)幀流程圖

          5 結(jié)束語

          本文講到了利用微處理器LPC2368和PHY芯片DP83848C來設(shè)計以太網(wǎng)接口。由于微控制器LPC2368和物理層芯片DP83848C的優(yōu)良性能,使得該接口電路具有結(jié)構(gòu)簡單、體積小、功耗低等許多優(yōu)點,是實現(xiàn)嵌入式系統(tǒng)與網(wǎng)絡(luò)連接的不錯選擇。

          本文作者創(chuàng)新點:使用功能強大的微處理器LPC2368,通過精簡的媒體獨立接口與物理層芯片進行連接,在保證同樣功能的情況下,使得布線更加簡單,可以大大減小設(shè)計時的出錯率。

          參考文獻

          [1]. LPC2364/6/8/78 User manual.

          [2]. DP83848C User manual.

          [3]. ARM微控制器基礎(chǔ)與實戰(zhàn)[M].北京:北京航空航天大學(xué)出版社, 2005.

          [4]. 付沖,陳英,馬希敏,張永元.一種通用嵌入式系統(tǒng)以太網(wǎng)與實現(xiàn)[J].山東大學(xué)學(xué)報,2005.6,35(3):93- 97.

          [5]. 呂昌泰,羅永剛.嵌入式以太網(wǎng)接口的研究與設(shè)計[J].微計算機信息.2006,22(8-2):68- 70.

          [6]. 葛永明, 林繼寶.嵌入式系統(tǒng)以太網(wǎng)[J].電子技術(shù)應(yīng)用.2002,3:25- 27.

          [7].微計算機信息-嵌入式與SOC(中旬)



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();