版權(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 通信設(shè)備有限公司企業(yè)管理制度
- 江蘇省常熟市2024-2025學(xué)年八年級(jí)上學(xué)期期末質(zhì)量監(jiān)測(cè)歷史卷(含答案)
- 等離子體參數(shù)測(cè)試方法 編制說(shuō)明
- 值守辦公室協(xié)議書(2篇)
- 2025年DCA-1皮革固色劑項(xiàng)目發(fā)展計(jì)劃
- 2025年魚、蝦、貝、藻類新品種合作協(xié)議書
- 成都七中模考題數(shù)學(xué)試卷
- 廣播站工作參考計(jì)劃范文1
- 財(cái)產(chǎn)租賃協(xié)議
- 集裝箱租賃合同范本
- 《工程倫理學(xué)》配套教學(xué)課件
- 研究生英語(yǔ)閱讀教程(基礎(chǔ)級(jí))第三版-課后習(xí)題答案
- 文件袋、檔案袋密封條模板
- 校本課程《典籍里的中國(guó)》教案
- 四年級(jí)上冊(cè)信息技術(shù)教案-9演示文稿巧編輯 |人教版
- 2022年人力資源管理各專業(yè)領(lǐng)域必備知識(shí)技能
- 租賃(出租)物品清單表
- 提高聚氯乙烯卷材地面一次驗(yàn)收合格率
- 甲型H1N1流感防治應(yīng)急演練方案(1)
- LU和QR分解法解線性方程組
- 漏油器外殼的落料、拉深、沖孔級(jí)進(jìn)模的設(shè)計(jì)【畢業(yè)論文絕對(duì)精品】
評(píng)論
0/150
提交評(píng)論