第05章-2、以太網(wǎng)接口_第1頁(yè)
第05章-2、以太網(wǎng)接口_第2頁(yè)
第05章-2、以太網(wǎng)接口_第3頁(yè)
第05章-2、以太網(wǎng)接口_第4頁(yè)
第05章-2、以太網(wǎng)接口_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

實(shí)時(shí)嵌入式系統(tǒng)以太網(wǎng)接口及應(yīng)用網(wǎng)絡(luò)層次模型以太網(wǎng)層次模型以太網(wǎng)層次功能物理層:定義了數(shù)據(jù)傳輸與接收所需要的光與電信號(hào),線(xiàn)路狀態(tài),時(shí)鐘基準(zhǔn),數(shù)據(jù)編碼電路等。并向數(shù)據(jù)鏈路層設(shè)備提供標(biāo)準(zhǔn)接口。數(shù)據(jù)鏈路層:提供尋址機(jī)制,數(shù)據(jù)幀的構(gòu)建,數(shù)據(jù)差錯(cuò)檢查,傳輸控制。向網(wǎng)絡(luò)層提供標(biāo)準(zhǔn)的數(shù)據(jù)接口等功能。MAC幀物理層MAC層IP層以太網(wǎng)V2MAC幀目的地址源地址類(lèi)型數(shù)據(jù)FCS6624字節(jié)46~1500IP數(shù)據(jù)報(bào)以太網(wǎng)的MAC幀格式1010101010101010101010101010101011前同步碼幀開(kāi)始定界符7字節(jié)1字節(jié)…8字節(jié)插入在幀的前面插入的8字節(jié)中的第一個(gè)字段共7個(gè)字節(jié),是前同步碼,用來(lái)迅速實(shí)現(xiàn)MAC幀的比特同步。第二個(gè)字段是幀開(kāi)始定界符,表示后面的信息就是MAC幀。為了達(dá)到比特同步,在傳輸媒體上實(shí)際傳送的要比MAC幀還多8個(gè)字節(jié)以太網(wǎng)接口的構(gòu)成從硬件的角度看,以太網(wǎng)接口電路主要由MAC控制器和物理層接口(PhysicalLayer,PHY)兩大部分構(gòu)成。嵌入式網(wǎng)絡(luò)應(yīng)用的兩種方案處理器加以太網(wǎng)接口芯片。芯片如RTL8019、RTL8029、RTL8139、CS8900、DM9000等,其內(nèi)部結(jié)構(gòu)也主要包含這兩部分。自帶MAC控制器的處理器加物理層接口芯片。如DP83848、BCM5221、ICS1893等。物理層芯片DP83848系統(tǒng)框圖LPC1768的以太網(wǎng)接口LPC1700系列處理器的以太網(wǎng)模塊包含一個(gè)全特性的10Mbps或100Mbps的以太網(wǎng)介質(zhì)訪(fǎng)問(wèn)控制器(MAC),采用DMA硬件加速器可以提供最優(yōu)化的性能。在LPC1700系列處理器的以太網(wǎng)模塊中有16KB的專(zhuān)用SRAM數(shù)據(jù)緩存。用于保存收發(fā)的以太網(wǎng)數(shù)據(jù)幀。該緩沖區(qū)可由以太網(wǎng)DMA控制器使用。從而大大減輕了CPU對(duì)數(shù)據(jù)收發(fā)的開(kāi)銷(xiāo)。以太網(wǎng)模塊與片外以太網(wǎng)物理層接口采用MII(介質(zhì)獨(dú)立接口)或RMII(簡(jiǎn)化的MII)協(xié)議,和片上的MIIM(MII管理)串行總線(xiàn)。LPC1768的以太網(wǎng)接口LPC1768的以太網(wǎng)RMII引腳和MIIM引腳引腳名稱(chēng)類(lèi)型引腳描述ENET_TX_EN輸出發(fā)送數(shù)據(jù)使能ENET_TXD[1:0]輸出發(fā)送數(shù)據(jù),2位ENET_RXD[1:0]輸入接收數(shù)據(jù),2位ENET_RX_ER輸入接收錯(cuò)誤ENET_CRS輸入載波偵聽(tīng)/數(shù)據(jù)有效ENET_REF_CLK/ENET_RX_CLK輸入?yún)⒖紩r(shí)鐘引腳名稱(chēng)類(lèi)型引腳描述ENET_MDC輸出MIIM時(shí)鐘ENET_MDIO輸入/輸出MI數(shù)據(jù)輸入和輸出幀描述符與狀態(tài)字以太網(wǎng)DMA控制器將每個(gè)以太網(wǎng)幀用一對(duì)描述和狀態(tài)字來(lái)表示。描述符中包含了對(duì)應(yīng)幀的數(shù)據(jù)起始地址以及數(shù)據(jù)長(zhǎng)度。狀態(tài)字則保存了DMA控制器處理該幀后(發(fā)送或接收)的結(jié)果。針對(duì)發(fā)送和接收分別對(duì)應(yīng)有不同描述符與狀態(tài)字隊(duì)列。所以DMA控制器一共維護(hù)4個(gè)循環(huán)隊(duì)列。發(fā)送描述符及狀態(tài)字隊(duì)列,接收描述符及狀態(tài)字隊(duì)列。接收描述符與狀態(tài)字隊(duì)列接收描述符控制字段作用接收狀態(tài)字位段說(shuō)明發(fā)送描述符與狀態(tài)字隊(duì)列描述符與狀態(tài)字隊(duì)列描述符隊(duì)列是用戶(hù)程序和以太網(wǎng)DMA控制器間數(shù)據(jù)交換的橋梁。DMA控制器將描述符及狀態(tài)字隊(duì)列維護(hù)為循環(huán)隊(duì)列。隊(duì)列的狀態(tài)分為三種:滿(mǎn),半滿(mǎn),空。循環(huán)隊(duì)列的操作通過(guò)“隊(duì)頭”和“隊(duì)尾”實(shí)現(xiàn)。描述符與狀態(tài)字隊(duì)列以太網(wǎng)隊(duì)列中的“隊(duì)頭”稱(chēng)為生產(chǎn)者(producer),負(fù)責(zé)將數(shù)據(jù)裝入隊(duì)列,“隊(duì)尾”稱(chēng)為消費(fèi)者(consumer),負(fù)責(zé)將數(shù)據(jù)從隊(duì)列取出。發(fā)送隊(duì)列發(fā)送數(shù)據(jù)DMA控制器CONSUMER用戶(hù)程序PRODUCER接收隊(duì)列接收數(shù)據(jù)DMA控制器PRODUCER用戶(hù)程序CONSUMER循環(huán)隊(duì)列工作原理為了實(shí)現(xiàn)循環(huán)隊(duì)列的操作,以太網(wǎng)DMA控制器提供了4個(gè)描述符及狀態(tài)字索引寄存器。由DMA維護(hù)的TxConsumeIndex,RxProduceIndex和軟件驅(qū)動(dòng)維護(hù)的TxProduceIndex,RxConsumeIndex。復(fù)位值均為0。每操作一個(gè)元素,索引加1。發(fā)送隊(duì)列發(fā)送數(shù)據(jù)DMA控制器TxConsumeIndex用戶(hù)程序TxProduceIndex接收隊(duì)列接收數(shù)據(jù)DMA控制器RxProduceIndex用戶(hù)程序RxConsumeIndex循環(huán)隊(duì)列工作原理在以太網(wǎng)數(shù)據(jù)收發(fā)時(shí),軟件驅(qū)動(dòng)程序通過(guò)ConsumeIndex和ProduceIndex的關(guān)系就可以判斷循環(huán)隊(duì)列的狀態(tài)。當(dāng)ConsumeIndex=ProduceIndex時(shí),隊(duì)列為空。當(dāng)(ProduceIndex+1)%隊(duì)列長(zhǎng)度=ConsumeIndex時(shí),隊(duì)列滿(mǎn)。循環(huán)隊(duì)列索引的翻轉(zhuǎn)(WRAPAROUND)問(wèn)題:在兩個(gè)索引加1后,超出了隊(duì)列的范圍時(shí),索引應(yīng)該從隊(duì)頭重新開(kāi)始索引。由DMA硬件維護(hù)的兩個(gè)索引由硬件解決翻轉(zhuǎn),由軟件維護(hù)的兩個(gè)索引需要軟件解決翻轉(zhuǎn)問(wèn)題。循環(huán)隊(duì)列工作原理接收隊(duì)列接收數(shù)據(jù)DMA控制器RxProduceIndex用戶(hù)程序RxConsumeIndex接收數(shù)據(jù)接收數(shù)據(jù)接收數(shù)據(jù)隊(duì)列滿(mǎn)隊(duì)列空翻轉(zhuǎn)接收數(shù)據(jù)以太網(wǎng)接收數(shù)據(jù)舉例控制字PACKET0x7FE01411PACKET0x7FE01419PACKET0x7FE01409PACKET0x7FE01325狀態(tài)字描述符隊(duì)列狀態(tài)字隊(duì)列17控制字17控制字17控制字17數(shù)據(jù)包緩沖區(qū)RxProduceIndex=RxConsumeIndex=RxDescriptorNumber=30012312307狀態(tài)字07狀態(tài)字12狀態(tài)字07F0,共8字節(jié)F1,共8字節(jié)F2,共3字節(jié)F0,共8字節(jié)0隊(duì)列翻轉(zhuǎn)RxDescriptorRxStatusLPC1700以太網(wǎng)接口寄存器LPC1700系列處理器以太網(wǎng)模塊的寄存器分為4大類(lèi),包括MAC寄存器類(lèi)17個(gè)寄存器、控制寄存器類(lèi)17個(gè)寄存器、接收濾波器類(lèi)5個(gè)寄存器,以及模塊控制寄存器類(lèi)5個(gè)寄存器,共計(jì)44個(gè)寄存器。詳見(jiàn)表5.28應(yīng)用舉例本以太網(wǎng)接口實(shí)例實(shí)現(xiàn)LPC1700以太網(wǎng)接口的初始化,實(shí)現(xiàn)以太網(wǎng)接入及以太網(wǎng)數(shù)據(jù)收發(fā)。初始化內(nèi)容:DP83848芯片初始化,以太網(wǎng)接口初始化,以太網(wǎng)緩沖區(qū)初始化。以太網(wǎng)接口初始化流程1、使能以太網(wǎng)引腳,打開(kāi)EMAC控制器2、利用MAC_MAC1和MAC_COMMAND寄存器復(fù)位以太網(wǎng)模式3、初始化MAC控制寄存器,設(shè)置MAC_MAC1、MAC_MAC2、MAC_MAXF、MAC_CLRT、MAC_IPGR等寄存器4、使能RMII接口,復(fù)位RMII邏輯5、利用write_PHY()和read_PHY()函數(shù)操作DP83848:復(fù)位、檢查芯片和鏈路狀態(tài)、6、利用MAC_IPGT和MAC_SUPP寄存器配置速率和雙工模式7、利用MAC_SA寄存器設(shè)置MAC地址8、設(shè)置收發(fā)DMA描述符9、利用MAC_RXFILTERCTRL寄存器設(shè)置接收濾波10、利用MAC_INTENABLE和MAC_INTCLEAR寄存器使能EMAC中斷和清除中斷標(biāo)志11、接收和發(fā)送使能以太網(wǎng)接口接收發(fā)送緩沖區(qū)分配rx_descr_init()函數(shù)及tx_descr_init()函數(shù)用于接收與發(fā)送緩沖區(qū)的初始化。代碼如下。以太網(wǎng)接口接收發(fā)送緩沖區(qū)分配4×8字節(jié)0x7FE000004×8字節(jié)3×8字節(jié)3×4字節(jié)4×1500字節(jié)3×1500字節(jié)接收描述符接收狀態(tài)字發(fā)送描述符發(fā)送狀態(tài)字接收緩沖區(qū)發(fā)送緩沖區(qū)用戶(hù)程序的以太網(wǎng)幀表示以太網(wǎng)幀接收以太網(wǎng)幀發(fā)送LPC1768以太網(wǎng)驅(qū)動(dòng)程序的層次結(jié)構(gòu)硬件無(wú)關(guān)以太網(wǎng)功能:ethernet_init,ethernet_poll,ethernet_send幀操作:frame_send,frame

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論