嵌入式以太網(wǎng)接口PPT_第1頁(yè)
嵌入式以太網(wǎng)接口PPT_第2頁(yè)
嵌入式以太網(wǎng)接口PPT_第3頁(yè)
嵌入式以太網(wǎng)接口PPT_第4頁(yè)
嵌入式以太網(wǎng)接口PPT_第5頁(yè)
已閱讀5頁(yè),還剩38頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

以太網(wǎng)控制器(EthernetController)LPC1700系列Cortex-M3微控制器胡宏澤目錄簡(jiǎn)介1硬件連接2內(nèi)部結(jié)構(gòu)3基本操作4小結(jié)5簡(jiǎn)介

以太網(wǎng)(Ethernet)是目前應(yīng)用最廣泛的局域網(wǎng)通訊方式,同時(shí)也是一種協(xié)議。以太網(wǎng)協(xié)議定義了一系列軟件和硬件標(biāo)準(zhǔn),從而將不同的計(jì)算機(jī)設(shè)備連接在一起。以太網(wǎng)簡(jiǎn)介|以太網(wǎng)的基本組成以太網(wǎng)(Ethernet)設(shè)備組網(wǎng)的基本元素:光纖和普通網(wǎng)線集線器路由器交換機(jī)以太網(wǎng)協(xié)議,通訊規(guī)則

簡(jiǎn)介|背景

在現(xiàn)實(shí)的工業(yè)控制領(lǐng)域系統(tǒng)中,各廠家產(chǎn)品兼容性差、價(jià)格昂貴、底層通信速度慢是現(xiàn)場(chǎng)總線技術(shù)一直沒(méi)有得到大力推廣的原因。工業(yè)以太網(wǎng)技術(shù)的出現(xiàn)和快速發(fā)展,不但很好的解決了這些問(wèn)題,同時(shí)也為現(xiàn)場(chǎng)總線技術(shù)的發(fā)展開辟了一個(gè)更為廣闊的空間。另外,嵌入式技術(shù)應(yīng)用于智能測(cè)控系統(tǒng)中,具有以下特點(diǎn):可以完成數(shù)據(jù)測(cè)量、數(shù)據(jù)處理、過(guò)程控制等多種任務(wù);能確保一些任務(wù)的實(shí)時(shí)性;具有一定自診斷、自校正的功能;便于連接工業(yè)以太網(wǎng),利用工業(yè)以太網(wǎng)實(shí)現(xiàn)遠(yuǎn)程監(jiān)控和數(shù)據(jù)通信。這些都大大提高了測(cè)控系統(tǒng)的性能。簡(jiǎn)介|以太網(wǎng)控制器

以太網(wǎng)控制器是專門用于以太網(wǎng)連接的控制器,由以太網(wǎng)媒體接入控制器(MAC)和物理接口收發(fā)器(PHY)組成。MAC與PHY通訊采用MII接口(媒體獨(dú)立接口)或者RMII接口(簡(jiǎn)化的MII)。

LPC1700系列單片機(jī)包含一個(gè)功能齊全的10/100Mbps以太網(wǎng)MAC,可以通過(guò)RMII與PHY組成一個(gè)完整的以太網(wǎng)控制器。

LPC1700

MACPHYRMII接口網(wǎng)絡(luò)變壓器簡(jiǎn)介|通訊系統(tǒng)OSI模型與TCP/IPISO定義的OSI(OpenSystemsInterconnection)模型。物理層數(shù)據(jù)鏈路層表示層會(huì)話層傳輸層網(wǎng)絡(luò)層應(yīng)用層物理層數(shù)據(jù)鏈路層表示層會(huì)話層傳輸層網(wǎng)絡(luò)層應(yīng)用層EthernetMACEthernetPHYTCP/UDP…IP/ICMP…HTTP/FTP/DHCP…未定義硬件軟件TCP/IP協(xié)議簡(jiǎn)介|LPC1700系列單片機(jī)以太網(wǎng)特性支持10/100MbpsPHY器件,如10Base-T、100Base-TX、100Base-FX、100Base-T4;完全兼容IEEE802.3標(biāo)準(zhǔn);支持VLAN幀;支持發(fā)送超長(zhǎng)幀和接收任意長(zhǎng)度的幀;自動(dòng)沖突檢測(cè)和重發(fā);局域網(wǎng)喚醒;通過(guò)RMII(ReducedMediaIndependentInterface)連接外部PHY,MIIM管理PHY;映射到共享SRAM的接收和發(fā)送緩沖區(qū);具有通過(guò)幀描述符數(shù)組分散/聚集以太網(wǎng)幀的DMA引擎;通過(guò)緩沖和預(yù)取數(shù)據(jù)優(yōu)化內(nèi)存管理;支持使用任何通訊介質(zhì)的外部PHY。目錄硬件連接2簡(jiǎn)介1內(nèi)部結(jié)構(gòu)3基本操作4小結(jié)5硬件連接PHYRMIIMIIMREF_CLKTX_ENTXD1RXD0RX_ERCRSMDIO以太網(wǎng)MACMDCTXD0RXD1以太網(wǎng)模塊使用RMII(簡(jiǎn)化的媒體獨(dú)立接口)協(xié)議和片上MIMM(媒體獨(dú)立接口)串行總線、還有MDIO(管理數(shù)據(jù)輸入/輸出)來(lái)實(shí)現(xiàn)與片外以太網(wǎng)PHY之間的連接注意:LPC1700系列Cortex-M3的以太網(wǎng)MAC只具有RMII接口目錄內(nèi)部結(jié)構(gòu)3簡(jiǎn)介1硬件連接2基本操作4小結(jié)5MAC寄存器說(shuō)明MAC寄存器說(shuō)明控制寄存器說(shuō)明控制寄存器說(shuō)明控制寄存器說(shuō)明接收過(guò)濾寄存器說(shuō)明以太網(wǎng)模塊控制寄存器說(shuō)明內(nèi)部結(jié)構(gòu)|整體組成中斷MIIM控制MCFGMCMDMADRMWTDMRDDMIND模塊控制IntStatusIntEnableIntClearIntSetPowerDown接收過(guò)濾RxFilterCtrlRxFilterWoLStatusRxFilterWoLClearHashFilterLHashFilterH接收控制RSVRxDescriptorRxStatusRxDescriptorNumberRxProduceIndexRxConsumeIndex發(fā)送控制TSV0,TSV1TxDescriptorTxStatusTxDescriptorNumberTxProduceIndexTxConsumeIndexMAC地址SA0SA1SA2全局控制MAC1,MAC2IPGT,IPGRCLRTMAXFSUPP,TESTCommandStatusFlowControlCounterFlowControlStatusMIIMRMIIMAC層PHY發(fā)送FIFO接收FIFO由DMA引擎創(chuàng)建于SRAM內(nèi)部結(jié)構(gòu)|MIIM操作MACMII管理控制器AHBPHY相關(guān)寄存器MDC時(shí)鐘MDIO數(shù)據(jù)MCFGMCMDMADRMWDTMRDDMIND1MCFG[5:2]選擇時(shí)鐘MCMD[0]寫/讀寫PHY/寄存器地址等待“busy”清零寫數(shù)據(jù)配置命令地址寫數(shù)據(jù)讀數(shù)據(jù)狀態(tài)讀數(shù)據(jù)等待“busy”清零254354內(nèi)部結(jié)構(gòu)|以太網(wǎng)包格式前導(dǎo)碼SFD目標(biāo)地址源地址長(zhǎng)度/類型數(shù)據(jù)FCS7個(gè)字節(jié)1個(gè)字節(jié)6個(gè)字節(jié)6個(gè)字節(jié)2個(gè)字節(jié)46-1500個(gè)字節(jié)4個(gè)字節(jié)前導(dǎo)碼SFD目標(biāo)地址源地址長(zhǎng)度/類型數(shù)據(jù)FCS

前導(dǎo)碼為連續(xù)7個(gè)字節(jié)的10101010序列,用于實(shí)現(xiàn)物理層幀接收的時(shí)序同步。

起始幀分界符用于指示幀的開始,其值為10101011。

目標(biāo)地址指定數(shù)據(jù)幀的最終目標(biāo)的地址,長(zhǎng)度為48bit,其LSB可用于指定一個(gè)幀是一個(gè)地址(0)還是組/多播地址(1)。

源地址識(shí)別幀啟動(dòng)的站點(diǎn)。

這個(gè)字段的意義由它的數(shù)值來(lái)決定,當(dāng)值不大于1500(十進(jìn)制),表示MAC客戶數(shù)據(jù)的字節(jié)數(shù),當(dāng)值大于1536(十進(jìn)制),表示數(shù)據(jù)的類型,比如ARP協(xié)議的數(shù)值為0x0806。FCS是循環(huán)冗余校驗(yàn)(CRC)值,使用CRC-32算法通過(guò)目標(biāo)地址、源地址、長(zhǎng)度/類型、數(shù)據(jù)和填充字段計(jì)算得到,可由硬件自動(dòng)生成。幀接收時(shí),若CRC校驗(yàn)失敗,可選擇硬件自動(dòng)過(guò)濾。

數(shù)據(jù)字段是一個(gè)0~1500字節(jié)的序列。在以太網(wǎng)協(xié)議中,規(guī)定這個(gè)字段最小值為46,最大值為1500,少了要填充,多了要分幀。

內(nèi)部結(jié)構(gòu)|SRAM中FIFO創(chuàng)建

LPC1700系列單片機(jī)的以太網(wǎng)無(wú)獨(dú)立的FIFO,而是在共享SRAM中創(chuàng)建環(huán)形緩沖代替收發(fā)FIFO。發(fā)送控制TSV0,TSV1TxDescriptorTxStatusTxDescriptorNumberTxProduceIndexTxConsumeIndexTxProduceIndexTxConsumeIndexPACKETCONTROLDATABUFFERPACKETCONTROLDATABUFFERPACKETCONTROLDATABUFFERPACKETCONTROLDATABUFFERTxDescriptorTxDescriptorNumber-1012TxConsumeIndex=TxProduceIndex;FIFO空TxProduceIndex=TxDescriptorNumber-1;緩沖尾,返回緩沖頭TxProduceIndex=TxConsumeIndex-1;FIFO滿描述符的數(shù)目存放描述符首地址數(shù)據(jù)緩沖的首地址內(nèi)部結(jié)構(gòu)|收發(fā)控制Command[10]FullDuplex使能雙工模式TxProduceIndex填充數(shù)據(jù)MAC2[5]PAD/CRCENABLE使能PAD/CRCRxDescriptor建立接收FIFOCommand[7]PassRxFilter使能接收過(guò)濾Command[0]RxEnable使能接收RxProduceIndex接收緩沖標(biāo)簽RxFilterCtrl[1]AcceptBroadcastEn使能接收廣播幀MAC2[4]CRCENABLE使能CRC寫操作發(fā)送FIFO接收FIFO讀操作任意深度雙工器發(fā)送器接收器TxDescriptor建立發(fā)送FIFO前導(dǎo)碼SFD目標(biāo)地址源地址長(zhǎng)度/類型數(shù)據(jù)FCS前導(dǎo)碼SFD目標(biāo)地址源地址長(zhǎng)度/類型數(shù)據(jù)FCS前導(dǎo)碼SFD目標(biāo)地址源地址長(zhǎng)度/類型數(shù)據(jù)FCS0使能發(fā)送Command[1]TxEnable4512364351DMA引擎RxFilterCtrl[5]AcceptPerfectEn使能接收地址匹配幀2RxConsumeIndex12012內(nèi)部結(jié)構(gòu)|接收過(guò)濾接收過(guò)濾RxFilterCtrlRxFilterWoLStatusRxFilterWoLClearHashFilterLHashFilterH

接收過(guò)濾模塊可以對(duì)接收到的數(shù)據(jù)包進(jìn)行過(guò)濾,丟掉無(wú)用數(shù)據(jù)包,降低CPU的負(fù)荷和內(nèi)存消耗。地址匹配過(guò)濾單播/多播/廣播過(guò)濾魔法包過(guò)濾哈希表過(guò)濾前導(dǎo)碼SFD目標(biāo)地址源地址長(zhǎng)度/類型數(shù)據(jù)FCSb7:b1b00:單播1:多播目標(biāo)地址目標(biāo)地址假設(shè)為48CRC32查找HashFilterHHashFilterL100101011001000110010101001110011001010110100001101101011001010131:063:32前導(dǎo)碼SFD目標(biāo)地址源地址長(zhǎng)度/類型數(shù)據(jù)FCS前導(dǎo)碼SFD目標(biāo)地址源地址長(zhǎng)度/類型數(shù)據(jù)FCS廣播:目標(biāo)地址位全為1目標(biāo)地址=本機(jī)MAC地址?相等則通過(guò)。由AMD定義,用于喚醒主機(jī)哈希表對(duì)應(yīng)位值為1則通過(guò)。內(nèi)部結(jié)構(gòu)|模塊控制模塊控制IntStatusIntEnableIntClearIntSetPowerDown模塊控制包含了中斷控制和整個(gè)模塊電源控制。IntClearIntSetIntEnable……中斷狀態(tài)……輸出中斷

接收溢出中斷;接收錯(cuò)誤;接收FIFO為空;處理完一個(gè)描述符的數(shù)據(jù)緩沖;發(fā)送FIFO空棧錯(cuò)誤;發(fā)送錯(cuò)誤;發(fā)送FIFO空;發(fā)送一個(gè)描述符緩沖完成;軟件中斷;喚醒中斷。以太網(wǎng)中斷源清中斷狀態(tài)中斷設(shè)置中斷使能目錄基本操作4簡(jiǎn)介1硬件連接2內(nèi)部結(jié)構(gòu)3小結(jié)5

DMA管理器利用存放在存儲(chǔ)器中的幀描述符數(shù)組和狀態(tài)數(shù)組來(lái)工作。描述符充當(dāng)以太網(wǎng)硬件和設(shè)備驅(qū)動(dòng)軟件之間的接口。接收幀和發(fā)送幀各有一個(gè)描述符數(shù)組。驅(qū)動(dòng)軟件DMA接收引擎DMA發(fā)送引擎邏輯鏈路控制層媒體訪問(wèn)控制層(MAC)接收狀態(tài)接收描述符發(fā)送狀態(tài)發(fā)送描述符以太網(wǎng)硬件以太網(wǎng)驅(qū)動(dòng)軟件與硬件的關(guān)系

設(shè)備驅(qū)動(dòng)軟件和以太網(wǎng)硬件都能同時(shí)對(duì)描述符數(shù)組執(zhí)行讀和寫操作,以“產(chǎn)生”和“消耗”描述符。在兩者同時(shí)請(qǐng)求的情況下,AHB總線仲裁將使DMA硬件具有更高的優(yōu)先級(jí)。一個(gè)描述符的“擁有者”可以是設(shè)備驅(qū)動(dòng)軟件,也可以是以太網(wǎng)硬件。只有描述符的“擁有者”才能描述符進(jìn)行讀寫操作。具體順序如下:需要注意的一點(diǎn):軟件必須預(yù)先分配好用來(lái)存放的描述符數(shù)組的寄存器

設(shè)備驅(qū)動(dòng)程序“擁有”并建立描述符設(shè)備驅(qū)動(dòng)軟件將描述符/狀態(tài)的“擁有權(quán)”傳遞給以太網(wǎng)模塊,這時(shí)以太網(wǎng)模塊會(huì)讀取描述符并將信息寫入狀態(tài)區(qū)域以太網(wǎng)模塊將描述符的“擁有權(quán)”傳遞回設(shè)備驅(qū)動(dòng)程序,驅(qū)動(dòng)程序使用狀態(tài)信息并重復(fù)利用描述符以供其他幀使用描述符數(shù)組的擁有順序設(shè)備驅(qū)動(dòng)程序“擁有”并建立描述符DMA引擎更新?tīng)顟B(tài)緩沖驅(qū)動(dòng)軟件重新?lián)碛忻枋龇鸇MA引擎擁有描述符驅(qū)動(dòng)軟件更新描述符TxProduceIndex++或RxProduceIndex++TxConsumeIndex++或RxConsumeIndex++接收描述符數(shù)組和接收狀態(tài)數(shù)組初始化步驟RxDescriptor=接收描述符數(shù)組首地址RxStatus=接收狀態(tài)數(shù)組首地址RxDescriptorNumber=接收描述符的數(shù)量-1初始化接收描述符數(shù)組和接收狀態(tài)數(shù)組RxConsumIndex=0初始化完畢發(fā)送描述符數(shù)組和發(fā)送狀態(tài)數(shù)組初始化步驟TxDescriptor=發(fā)送描述符數(shù)組首地址TxStatus=發(fā)送狀態(tài)數(shù)組首地址TxDescriptorNumber=發(fā)送描述符的數(shù)量-1初始化接收描述符數(shù)組和接收狀態(tài)數(shù)組TxProduceIndex=0初始化完畢接收操作的使能與禁能復(fù)位之后,以太網(wǎng)模塊的接收功能是禁止的。設(shè)備驅(qū)動(dòng)程序?qū)⒚罴拇嫫鞯腞xEnable位以及MAC1配置寄存器中的“RECEIVEENABLE”位置位來(lái)使能接收功能ACTIVERxStatus=1INACTIVERxStatus=0RxEnable=1RxEnable=0并且接收完畢或RxProduceIndex=RxConsumeIndex-1復(fù)位發(fā)送操作的使能與禁能復(fù)位之后,以太網(wǎng)模塊的發(fā)送功能是禁止的。設(shè)備驅(qū)動(dòng)程序?qū)⒚罴拇嫫鞯腡xEnable位置位可使能發(fā)送通道。ACTIVETxStatus=1INACTIVETxStatus=0TxEnable=1TxEnable=0并且數(shù)據(jù)發(fā)送完畢或RxProduceIndex=RxConsumeIndex復(fù)位以太網(wǎng)發(fā)送數(shù)據(jù)流程軟件建立發(fā)送描述符發(fā)送DMA引擎讀取發(fā)送描述符數(shù)組發(fā)送DMA引擎發(fā)送數(shù)據(jù)寫發(fā)送狀態(tài)TxConsumeIndex++以太網(wǎng)接收數(shù)據(jù)流程軟件建立接收描述符接收DMA引擎讀取接收描述符數(shù)組接收DMA引擎接收數(shù)據(jù)寫接收狀態(tài)RxProduceIndex++設(shè)備驅(qū)動(dòng)程序處理接收數(shù)據(jù)發(fā)送示例發(fā)送流控制示例

上述例子采用的是全雙工模式,即發(fā)送一幀信息的同時(shí)也接收到一幀信息。設(shè)備驅(qū)動(dòng)程序檢測(cè)是否出現(xiàn)緩沖區(qū)溢出并設(shè)置FlowControlCounter寄存器的PauseTimer字段和MirrorCounter字段的值,此后它通過(guò)置位命令寄存器中的TxFlowControl位來(lái)使能發(fā)送流控制?;静僮鱸MAC初始化voidEthernetInit(void){PCONP|=0x40000000;PINSEL2=0x50150105;PINSEL3=(PINSEL3&~0x0000000F)|0x00000005;MAC1=MAC1_PASS_ALL;Init_PHY(void);Command=CR_RMII|CR_PASS_RUNT_FRM;rx_descr_init();tx_descr_init();MAC1=MAC1_PASS_ALL;MAC2=MAC2_CRC_EN|MAC2_PAD_EN;IntEnable=INT_RX_DONE|INT_TX_DONE;IntClear=0xFFFF;Command|=(CR_RX_EN|CR_TX_EN);MAC1|=MAC1_REC_EN;}選擇RMII模式配置以太網(wǎng)電源、引腳解除軟件復(fù)位狀態(tài)通過(guò)MIIM接口配置PHY配置DMA引擎,描述符配置主機(jī)寄存器使能接收和發(fā)送通道基本操作|MAC初始化voidEMACTxDescriptorInit(void){unit32i;unit32*tx_desc_addr,*tx_status_addr;MAC_TXDESCRIPTOR=TX_DESCRIPTOR_ADDR;MAC_TXSTATUS=TX_STATUS_ADDR;MAC_TXDESCRIPTORNUM=EMAC_TX_DESCRIPTOR_COUNT-1;for(i=0;i<EMAC_TX_DESCRIPTORTOR_COUNT;i++){tx_desc_addr=(unit32*)(TX_DESCRIPTOR_ADDR+i*8);*tx_desc_addr=(unit32)(EMAC_TX_BUFFER_ADDR+i*EMAC_BLOCK_SIZE);*(tx_desc_addr+1)=(unit32)(EMAC_TX_DESC_INT|(EMAC_BLOCK_SIZE-1));}for(i=0;i<EMAC_TX_DESCRIPTOR_COUNT;i++){tx_status_addr=(unit32*)(TX_STATUS_ADDR+i*4);*tx_status_addr=(unit32)0;}MAC_TXPRODUCEINDEX=0x0;return;}發(fā)送描述符數(shù)量

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論