日韩一区二区三区精品,欧美疯狂xxxxbbbb牲交,热99re久久免费视精品频,人妻互换 综合,欧美激情肉欲高潮视频

第39章 ETH—Lwip以太網通信—零死角玩轉STM32-F429系列

發(fā)布者:會哭的藍精靈最新更新時間:2019-09-19 來源: eefocus關鍵字:ETH  Lwip  以太網通信  STM32-F429系列 手機看文章 掃描二維碼
隨時隨地手機看文章

互聯網技術對人類社會的影響不言而喻。當今大部分電子設備都能以不同的方式接入互聯網(Internet),在家庭中PC常見的互聯網接入方式是使用路由器(Router)組建小型局域網(LAN),利用互聯網專線或者調制調解器(modem)經過電話線網絡,連接到互聯網服務提供商(ISP),由互聯網服務提供商把用戶的局域網接入互聯網。而企業(yè)或學校的局域網規(guī)模較大,常使用交換機組成局域網,經過路由以不同的方式接入到互聯網中。


39.1 互聯網模型

通信至少是兩個設備的事,需要相互兼容的硬件和軟件支持,我們稱之為通信協議。以太網通信在結構比較復雜,國際標準組織將整個以太網通信結構制定了OSI模型,總共分層七個層,分別為應用層、表示層、會話層、傳輸層、網絡層、數據鏈路層以及物理層,每個層功能不同,通信中各司其職,整個模型包括硬件和軟件定義。OSI模型是理想分層,一般的網絡系統(tǒng)只是涉及其中幾層。


TCP/IP是互聯網最基本的協議,是互聯網通信使用的網絡協議,由網絡層的IP協議和傳輸層的TCP協議組成。TCP/IP只有四個分層,分別為應用層、傳輸層、網絡層以及網絡訪問層。雖然TCP/IP分層少了,但與OSI模型是不沖突的,它把OSI模型一些層次整合一起的,本質上可以實現相同功能。


實際上,還有一個TCP/IP混合模型,分為五個層,參考圖 391,它實際與TCP/IP四層模型是相通的,只是把網絡訪問層拆成數據鏈路層和物理層。這種分層方法對我們學習理解更容易。

圖 391 TCP/IP混合參考模型


設計網絡時,為了降低網絡設計的復雜性,對組成網絡的硬件、軟件進行封裝、分層,這些分層即構成了網絡體系模型。在兩個設備相同層之間的對話、通信約定,構成了層級協議。設備中使用的所有協議加起來統(tǒng)稱協議棧。在這個網絡模型中,每一層完成不同的任務,都提供接口供上一層訪問。而在每層的內部,可以使用不同的方式來實現接口,因而內部的改變不會影響其它層。


在TCP/IP混合參考模型中,數據鏈路層又被分為LLC層(邏輯鏈路層)和MAC層(媒體介質訪問層)。目前,對于普通的接入網絡終端的設備, LLC層和MAC層是軟、硬件的分界線。如PC的網卡主要負責實現參考模型中的MAC子層和物理層,在PC的軟件系統(tǒng)中則有一套龐大程序實現了LLC層及以上的所有網絡層次的協議。


由硬件實現的物理層和MAC子層在不同的網絡形式有很大的區(qū)別,如以太網和Wi-Fi,這是由物理傳輸方式決定的。但由軟件實現的其它網絡層次通常不會有太大區(qū)別,在PC上也許能實現完整的功能,一般支持所有協議,而在嵌入式領域則按需要進行裁剪。


39.2 以太網

以太網(Ethernet)是互聯網技術的一種,由于它是在組網技術中占的比例最高,很多人直接把以太網理解為互聯網。


以太網是指遵守IEEE 802.3標準組成的局域網,由IEEE 802.3標準規(guī)定的主要是位于參考模型的物理層(PHY)和數據鏈路層中的介質訪問控制子層(MAC)。在家庭、企業(yè)和學校所組建的PC局域網形式一般也是以太網,其標志是使用水晶頭網線來連接(當然還有其它形式)。IEEE還有其它局域網標準,如IEEE 802.11是無線局域網,俗稱Wi-Fi。IEEE 802.15是個人域網,即藍牙技術,其中的802.15.4標準則是ZigBee技術。


現階段,工業(yè)控制、環(huán)境監(jiān)測、智能家居的嵌入式設備產生了接入互聯網的需求,利用以太網技術,嵌入式設備可以非常容易地接入到現有的計算機網絡中。


39.2.1 PHY層

在物理層,由IEEE 802.3標準規(guī)定了以太網使用的傳輸介質、傳輸速度、數據編碼方式和沖突檢測機制,物理層一般是通過一個PHY芯片實現其功能的。


1.    傳輸介質

傳輸介質包括同軸電纜、雙絞線(水晶頭網線是一種雙絞線)、光纖。根據不同的傳輸速度和距離要求,基于這三類介質的信號線又衍生出很多不同的種類。最常用的是"五類線"適用于100BASE-T和10BASE-T的網絡,它們的網絡速率分別為100Mbps和10Mbps。


2.    編碼

為了讓接收方在沒有外部時鐘參考的情況也能確定每一位的起始、結束和中間位置,在傳輸信號時不直接采用二進制編碼。在10BASE-T的傳輸方式中采用曼徹斯特編碼,在100BASE-T中則采用4B/5B編碼。


曼徹斯特編碼把每一個二進制位的周期分為兩個間隔,在表示"1"時,以前半個周期為高電平,后半個周期為低電平。表示"0"時則相反,見圖 392

圖 392 曼徹斯特編碼


采用曼徹斯特碼在每個位周期都有電壓變化,便于同步。但這樣的編碼方式效率太低,只有50%。


在100BASE-T 采用的4B/5B編碼是把待發(fā)送數據位流的每4位分為一組,以特定的5位編碼來表示,這些特定的5位編碼能使數據流有足夠多的跳變,達到同步的目的,而且效率也從曼徹斯特編碼的50%提高到了80%。


3.    CSMA/CD沖突檢測

早期的以太網大多是多個節(jié)點連接到同一條網絡總線上(總線型網絡),存在信道競爭問題,因而每個連接到以太網上的節(jié)點都必須具備沖突檢測功能。以太網具備CSMA/CD沖突檢測機制,如果多個節(jié)點同時利用同一條總線發(fā)送數據,則會產生沖突,總線上的節(jié)點可通過接收到的信號與原始發(fā)送的信號的比較檢測是否存在沖突,若存在沖突則停止發(fā)送數據,隨機等待一段時間再重傳。


現在大多數局域網組建的時候很少采用總線型網絡,大多是一個設備接入到一個獨立的路由或交換機接口,組成星型網絡,不會產生沖突。但為了兼容,新出的產品還是帶有沖突檢測機制。


39.2.2 MAC子層

1.    MAC的功能

MAC子層是屬于數據鏈路層的下半部分,它主要負責與物理層進行數據交接,如是否可以發(fā)送數據,發(fā)送的數據是否正確,對數據流進行控制等。它自動對來自上層的數據包加上一些控制信號,交給物理層。接收方得到正常數據時,自動去除MAC控制信號,把該數據包交給上層。


2.    MAC數據包

IEEE對以太網上傳輸的數據包格式也進行了統(tǒng)一規(guī)定,見圖 393。該數據包被稱為MAC數據包。

圖 393 MAC數據包格式


MAC數據包由前導字段、幀起始定界符、目標地址、源地址、數據包類型、數據域、填充域、校驗和域組成。


?    前導字段,也稱報頭,這是一段方波,用于使收發(fā)節(jié)點的時鐘同步。內容為連續(xù)7個字節(jié)的0x55。字段和幀起始定界符在MAC收到數據包后會自動過濾掉。


?    幀起始定界符(SFD):用于區(qū)分前導段與數據段的,內容為0xD5。


?    MAC地址: MAC地址由48位數字組成,它是網卡的物理地址,在以太網傳輸的最底層,就是根據MAC地址來收發(fā)數據的。部分MAC地址用于廣播和多播,在同一個網絡里不能有兩個相同的MAC地址。PC的網卡在出廠時已經設置好了MAC地址,但也可以通過一些軟件來進行修改,在嵌入式的以太網控制器中可由程序進行配置。數據包中的DA是目標地址,SA是源地址。


?    數據包類型:本區(qū)域可以用來描述本MAC數據包是屬于TCP/IP協議層的IP包、ARP包還是SNMP包,也可以用來描述本MAC數據包數據段的長度。如果該值被設置大于0x0600,不用于長度描述,而是用于類型描述功能,表示與以太網幀相關的MAC客戶端協議的種類。


?    數據段:數據段是MAC包的核心內容,它包含的數據來自MAC的上層。其長度可以從0~1500字節(jié)間變化。


?    填充域:由于協議要求整個MAC數據包的長度至少為64字節(jié)(接收到的數據包如果少于64字節(jié)會被認為發(fā)生沖突,數據包被自動丟棄),當數據段的字節(jié)少于46字節(jié)時,在填充域會自動填上無效數據,以使數據包符合長度要求。


?    校驗和域:MAC數據包的尾部是校驗和域,它保存了CRC校驗序列,用于檢錯。


以上是標準的MAC數據包,IEEE 802.3同時還規(guī)定了擴展的MAC數據包,它是在標準的MAC數據包的SA和數據包類型之間添加4個字節(jié)的QTag前綴字段,用于獲取標志的MAC幀。前2個字節(jié)固定為0x8100,用于識別QTag前綴的存在;后兩個字節(jié)內容分別為3個位的用戶優(yōu)先級、1個位的標準格式指示符(CFI)和一個12位的VLAN標識符。


39.3 TCP/IP協議棧

標準TCP/IP協議是用于計算機通信的一組協議,通常稱為TCP/IP協議棧,通俗講就是符合以太網通信要求的代碼集合,一般要求它可以實現圖 391中每個層對應的協議,比如應用層的HTTP、FTP、DNS、SMTP協議,傳輸層的TCP、UDP協議、網絡層的IP、ICMP協議等等。關于TCP/IP協議詳細內容推薦閱讀《TCP-IP詳解》和《用TCP/IP進行網際互連》理解。


Windows操作系統(tǒng)、UNIX類操作系統(tǒng)都有自己的一套方法來實現TCP/IP通信協議,它們都提供非常完整的TCP/IP協議。對于一般的嵌入式設備,受制于硬件條件沒辦法支持使用在Window或UNIX類操作系統(tǒng)的運行的TCP/IP協議棧,一般只能使用簡化版本的TCP/IP協議棧,目前開源的適合嵌入式的有uIP、TinyTCP、uC/TCP-IP、LwIP等等。其中LwIP是目前在嵌入式網絡領域被討論和使用廣泛的協議棧。本章內容其中一個目的就是移植LwIP到開發(fā)板上運行。


39.3.1 為什么需要協議棧

物理層主要定義物理介質性質,MAC子層負責與物理層進行數據交接,這兩部分是與硬件緊密聯系的,就嵌入式控制芯片來說,很多都內部集成了MAC控制器,完成MAC子層功能,所以依靠這部分功能是可以實現兩個設備數據交換,而時間傳輸的數據就是MAC數據包,發(fā)送端封裝好數據包,接收端則解封數據包得到可用數據,這樣的一個模型與使用USART控制器實現數據傳輸是非常類似的。但如果將以太網運用在如此基礎的功能上,完全是大材小用,因為以太網具有傳輸速度快、可傳輸距離遠、支持星型拓撲設備連接等等強大功能。功能強大的東西一般都會用高級的應用,這也是設計者的初衷。


使用以太網接口的目的就是為了方便與其它設備互聯,如果所有設備都約定使用一種互聯方式,在軟件上加一些層次來封裝,這樣不同系統(tǒng)、不同的設備通訊就變得相對容易了。而且只要新加入的設備也使用同一種方式,就可以直接與之前存在于網絡上的其它設備通訊。這就是為什么產生了在MAC之上的其它層次的網絡協議及為什么要使用協議棧的原因。又由于在各種協議棧中TCP/IP協議棧得到了最廣泛使用,所有接入互聯網的設備都遵守TCP/IP協議。所以,想方便地與其它設備互聯通信,需要提供對TCP/IP協議的支持。


39.3.2 各網絡層的功能

用以太網和Wi-Fi作例子,它們的MAC子層和物理層有較大的區(qū)別,但在MAC之上的LLC層、網絡層、傳輸層和應用層的協議,是基本上同的,這幾層協議由軟件實現,并對各層進行封裝。根據TCP/IP協議,各層的要實現的功能如下:


LLC層:處理傳輸錯誤;調節(jié)數據流,協調收發(fā)數據雙方速度,防止發(fā)送方發(fā)送得太快而接收方丟失數據。主要使用數據鏈路協議。


網絡層:本層也被稱為IP層。LLC層負責把數據從線的一端傳輸到另一端,但很多時候不同的設備位于不同的網絡中(并不是簡單的網線的兩頭)。此時就需要網絡層來解決子網路由拓撲問題、路徑選擇問題。在這一層主要有IP協議、ICMP協議。


傳輸層:由網絡層處理好了網絡傳輸的路徑問題后,端到端的路徑就建立起來了。傳輸層就負責處理端到端的通訊。在這一層中主要有TCP、UDP協議


應用層:經過前面三層的處理,通訊完全建立。應用層可以通過調用傳輸層的接口來編寫特定的應用程序。而TCP/IP協議一般也會包含一些簡單的應用程序如Telnet遠程登錄、FTP文件傳輸、SMTP郵件傳輸協議。


實際上,在發(fā)送數據時,經過網絡協議棧的每一層,都會給來自上層的數據添加上一個數據包的頭,再傳遞給下一層。在接收方收到數據時,一層層地把所在層的數據包的頭去掉,向上層遞交數據,參考圖 394。

圖 394 數據經過每一層的封裝和還原


39.4 以太網外設(ETH)

STM32F42x系列控制器內部集成了一個以太網外設,它實際是一個通過DMA控制器進行介質訪問控制(MAC),它的功能就是實現MAC層的任務。借助以太網外設,STM32F42x控制器可以通過ETH外設按照IEEE 802.3-2002標準發(fā)送和接收MAC數據包。ETH內部自帶專用的DMA控制器用于MAC,ETH支持兩個工業(yè)標準接口介質獨立接口(MII)和簡化介質獨立接口(RMII)用于與外部PHY芯片連接。MII和RMII接口用于MAC數據包傳輸,ETH還集成了站管理接口(SMI)接口專門用于與外部PHY通信,用于訪問PHY芯片寄存器。


物理層定義了以太網使用的傳輸介質、傳輸速度、數據編碼方式和沖突檢測機制,PHY芯片是物理層功能實現的實體,生活中常用水晶頭網線+水晶頭插座+PHY組合構成了物理層。


ETH有專用的DMA控制器,它通過AHB主從接口與內核和存儲器相連,AHB主接口用于控制數據傳輸,而AHB從接口用于訪問"控制與狀態(tài)寄存器"(CSR)空間。在進行數據發(fā)送是,先將數據有存儲器以DMA傳輸到發(fā)送TX FIFO進行緩沖,然后由MAC內核發(fā)送;接收數據時,RX FIFO先接收以太網數據幀,再由DMA傳輸至存儲器。ETH系統(tǒng)功能框圖見圖 395。

圖 395 ETH功能框圖


39.4.1 SMI接口

SMI是MAC內核訪問PHY寄存器標志接口,它由兩根線組成,數據線MDIO和時鐘線MDC。SMI支持訪問32個PHY,這在設備需要多個網口時非常有用,不過一般設備都只使用一個PHY。PHY芯片內部一般都有32個16位的寄存器,用于配置PHY芯片屬性、工作環(huán)境、狀態(tài)指示等等,當然很多PHY芯片并沒有使用到所有寄存器位。MAC內核就是通過SMI向PHY的寄存器寫入數據或從PHY寄存器讀取PHY狀態(tài),一次只能對一個PHY的其中一個寄存器進行訪問。SMI最大通信頻率為2.5MHz,通過控制以太網MAC MII地址寄存器 (ETH_MACMIIAR)的CR位可選擇時鐘頻率。


1.    SMI幀格式

SMI是通過數據幀方式與PHY通信的,幀格式如表 391,數據位傳輸順序從左到右。


表 391 SMI幀格式

image.png

PADDR用于指定PHY地址,每個PHY都有一個地址,一般由PHY硬件設計決定,所以是固定不變的。RADDR用于指定PHY寄存器地址。TA為狀態(tài)轉換域,若為讀操作,MAC輸出兩個位高阻態(tài),而PHY芯片則在第一位時輸出高阻態(tài),第二位時輸出"0"。若為寫操作,MAC輸出"10",PHY芯片則輸出高阻態(tài)。數據段有16位,對應PHY寄存器每個位,先發(fā)送或接收到的位對應以太網 MAC MII 數據寄存器(ETH_MACMIIDR)寄存器的位15。


2.    SMI讀寫操作

當以太網MAC MII地址寄存器 (ETH_MACMIIAR)的寫入位和繁忙位被置1時,SMI將向指定的PHY芯片指定寄存器寫入ETH_MACMIIDR中的數據。寫操作時序見圖 396。

圖 396 SMI寫操作


當以太網MAC MII地址寄存器 (ETH_MACMIIAR)的寫入位為0并且繁忙位被置1時,SMI將從向指定的PHY芯片指定寄存器讀取數據到ETH_MACMIIDR內。讀操作時序見圖 397。


圖 397 SMI讀操作


39.4.2 MII和RMII接口

介質獨立接口(MII)用于理解MAC控制器和PHY芯片,提供數據傳輸路徑。RMII接口是MII接口的簡化版本,MII需要16根通信線,RMII只需7根通信,在功能上是相同的。圖 398為MII接口連接示意圖,圖 399為RMII接口連接示意圖。

圖 398 MII接口連接

圖 399 RMII接口連接


?    TX_CLK:數據發(fā)送時鐘線。標稱速率為10Mbit/s時為2.5MHz;速率為100Mbit/s時為25MHz。RMII接口沒有該線。


?    RX_CLK:數據接收時鐘線。標稱速率為10Mbit/s時為2.5MHz;速率為100Mbit/s時為25MHz。RMII接口沒有該線。


?    TX_EN:數據發(fā)送使能。在整個數據發(fā)送過程保存有效電平。


?    TXD[3:0]或TXD[1:0]:數據發(fā)送數據線。對于MII有4位,RMII只有2位。只有在TX_EN處于有效電平數據線才有效。


?    CRS:載波偵聽信號,由PHY芯片負責驅動,當發(fā)送或接收介質處于非空閑狀態(tài)時使能該信號。在全雙工模式該信號線無效。


?    COL:沖突檢測信號,由PHY芯片負責驅動,檢測到介質上存在沖突后該線被使能,并且保持至沖突解除。在全雙工模式該信號線無效。


?    RXD[3:0]或RXD[1:0]:數據接收數據線,由PHY芯片負責驅動。對于MII有4位,RMII只有2位。在MII模式,當RX_DV禁止、RX_ER使能時,特定的RXD[3:0]值用于傳輸來自PHY的特定信息。


?    RX_DV:接收數據有效信號,功能類似TX_EN,只不過用于數據接收,由PHY芯片負責驅動。對于RMII接口,是把CRS和RX_DV整合成CRS_DV信號線,當介質處于不同狀態(tài)時會自切換該信號狀態(tài)。


?    RX_ER:接收錯誤信號線,由PHY驅動,向MAC控制器報告在幀某處檢測到錯誤。


?    REF_CLK:僅用于RMII接口,由外部時鐘源提供50MHz參考時鐘。


因為要達到100Mbit/s傳輸速度,MII和RMII數據線數量不同,使用MII和RMII在時鐘線的設計是完全不同的。對于MII接口,一般是外部為PHY提供25MHz時鐘源,再由PHY提供TX_CLK和RX_CLK時鐘。對于RMII接口,一般需要外部直接提供50MHz時鐘源,同時接入MAC和PHY。


開發(fā)板板載的PHY芯片型號為LAN8720A,該芯片只支持RMII接口,電路設計時參考圖 399。


ETH相關硬件在STM32F42x控制器分布參考表 392。


表 392 ETH復用引腳

image.png

其中,PPS_OUT是IEEE 1588定義的一個時鐘同步機制。


39.4.3 MAC數據包發(fā)送和接收

ETH外設負責MAC數據包發(fā)送和接收。利用DMA從系統(tǒng)寄存器得到數據包數據內容,ETH外設自動填充完成MAC數據包封裝,然后通過PHY發(fā)送出去。在檢測到有MAC數據包需要接收時,ETH外設控制數據接收,并解封MAC數據包得到解封后數據通過DMA傳輸到系統(tǒng)寄存器內。


1.    MAC數據包發(fā)送

MAC數據幀發(fā)送全部由DMA控制,從系統(tǒng)存儲器讀取的以太網幀由DMA推入FIFO,然后將幀彈出并傳輸到MAC內核。幀傳輸結束后,從MAC內核獲取發(fā)送狀態(tài)并傳回DMA。在檢測到SOF(Start Of Frame)時,MAC接收數據并開始MII發(fā)送。在EOF(End Of Frame)傳輸到MAC內核后,內核將完成正常的發(fā)送,然后將發(fā)送狀態(tài)返回給DMA。如果在發(fā)送過程中發(fā)送常規(guī)沖突,MAC內核將使發(fā)送狀態(tài)有效,然后接受并丟棄所有后續(xù)數據,直至收到下一SOF。檢測到來自MAC的重試請求時,應從SOF重新發(fā)送同一幀。如果發(fā)送期間未連續(xù)提供數據,MAC將發(fā)出下溢狀態(tài)。在幀的正常傳輸期間,如果MAC在未獲得前一幀的EOF的情況下接收到SOF,則將忽略該SOF并將新的幀視為前一幀的延續(xù)。


MAC控制MAC數據包的發(fā)送操作,它會自動生成前導字段和SFD以及發(fā)送幀狀態(tài)返回給DMA,在半雙工模式下自動生成阻塞信號,控制jabber(MAC看門狗)定時器用于在傳輸字節(jié)超過2048字節(jié)時切斷數據包發(fā)送。在半雙工模式下,MAC使用延遲機制進行流量控制,程序通過將ETH_MACFCR寄存器的BPA位置1來請求流量控制。MAC包含符合IEEE 1588的時間戳快照邏輯。MAC數據包發(fā)送時序參考圖 3910。

圖 3910 MAC數據包發(fā)送時序(無沖突)


2.    MAC數據包接收

MAC接收到的數據包填充RX FIFO,達到FIFO設定閾值后請求DMA傳輸。在默認直通模式下,當FIFO接收到64個字節(jié)(使用ETH_DMAOMR寄存器中的RTC位配置)或完整的數據包時,數據將彈出,其可用性將通知給DMA。DMA向AHB接口發(fā)起傳輸后,數據傳輸將從FIFO持續(xù)進行,直到傳輸完整個數據包。完成EOF幀的傳輸后,狀態(tài)字將彈出并發(fā)送到DMA控制器。在Rx FIFO存儲轉發(fā)模式(通過ETH_DMAOMR寄存器中的RSF位配置)下,僅在幀完全寫入Rx FIFO后才可讀出幀。


當MAC在MII上檢測到SFD時,將啟動接收操作。MAC內核將去除報頭和SFD,然后再繼續(xù)處理幀。檢查報頭字段以進行過濾,FCS字段用于驗證幀的CRC如果幀未通過地址濾波器,則在內核中丟棄該幀。MAC數據包接收時序參考圖 3911。

圖 3911 MAC數據包接收時序(無錯誤)


39.4.4 MAC過濾

MAC過濾功能可以選擇性的過濾設定目標地址或源地址的MAC幀。它將檢查所有接收到的數據幀的目標地址和源地址,根據過濾選擇設定情況,檢測后報告過濾狀態(tài)。針對目標地址過濾可以有三種,分別是單播、多播和廣播目標地址過濾;針對源地址過濾就只有單播源地址過濾。


單播目標地址過濾是將接收的相應DA字段與預設的以太網MAC地址寄存器內容比較,最高可預設4個過濾MAC地址。多播目標地址過濾是根據幀過濾寄存器中的HM位執(zhí)行對多播地址的過濾,是對MAC地址寄存器進行比較來實現的。單播和多播目標地址過濾都還支持Hash過濾模式。廣播目標地址過濾通過將幀過濾寄存器的BFD位置1使能,這使得MAC丟棄所有廣播幀。


單播源地址過濾是將接收的SA字段與SA寄存器內容進行比較過濾。


MAC過濾還具備反向過濾操作功能,即讓過濾結構求補集。


39.5 PHY:LAN8720A

LAN8720A是SMSC公司(已被Microchip公司收購)設計的一個體積小、功耗低、全能型10/100Mbps的以太網物理層收發(fā)器。它是針對消費類電子和企業(yè)應用而設計的。LAN8720A總共只有24Pin,僅支持RMII接口。由它組成的網絡結構見圖 3912。

圖 3912 由LAN8720A組成的網絡系統(tǒng)結構


LAN8720A通過RMII與MAC連接。RJ45是網絡插座,在與LAN8720A連接之間還需要一個變壓器,所以一般使用帶電壓轉換和LED指示燈的HY911105A型號的插座。一般來說,必須為使用RMII接口的PHY提供50MHz的時鐘源輸入到REF_CLK引腳,不過LAN8720A內部集成PLL,可以將25MHz的時鐘源陪頻到50MHz并在指定引腳輸出該時鐘,所以我們可以直接使其與REF_CLK連接達到提供50MHz時鐘效果。


LAN8720A內部系統(tǒng)結構見圖 3913。

圖 3913 LAN8720A內部系統(tǒng)結構


LAN8720A有各個不同功能模塊組成,最重要的要數接收控制器和發(fā)送控制器,其它的基本上都是與外部引腳掛鉤,實現信號傳輸。部分引腳是具有雙重功能的,比如PHYAD0與RXER引腳是共用的,在系統(tǒng)上電后LAN8720A會馬上讀取這部分共用引腳的電平,以確定系統(tǒng)的狀態(tài)并保存在相關寄存器內,之后則自動轉入作為另一功能引腳。


PHYAD[0]引腳用于配置SMI通信的LAN8720A地址,在芯片內部該引腳已經自帶下拉電阻,默認認為0(即使外部懸空不接),在系統(tǒng)上電時會檢測該引腳獲取得到LAN8720A的地址為0或者1,并保存在特殊模式寄存器(R18)的PHYAD位中,該寄存器的PHYAD有5個位,在需要超過2個LAN8720A時可以通過軟件設置不同SMI通信地址。PHYAD[0]是與RXER引腳共用。


MODE[2:0]引腳用于選擇LAN8720A網絡通信速率和工作模式,可選10Mbps或100Mbps通信速度,半雙工或全雙工工作模式,另外LAN8720A支持HP Auto-MDIX自動翻轉功能,即可自動識別直連或交叉網線并自適應。一般將MODE引腳都設置為1,可以讓LAN8720A啟動自適應功能,它會自動尋找最優(yōu)工作方式。MODE[0]與RXD0引腳共用、MODE[1]與RXD1引腳共用、MODE[2]與CRS_DV引腳共用。

[1] [2] [3] [4] [5] [6] [7] [8]
關鍵字:ETH  Lwip  以太網通信  STM32-F429系列 引用地址:第39章 ETH—Lwip以太網通信—零死角玩轉STM32-F429系列

上一篇:第27章 LTDC/DMA2D—液晶顯示—零死角玩轉STM32-F429系列
下一篇:第1章-如何使用本書—零死角玩轉STM32-F429系列

推薦閱讀最新更新時間:2025-06-30 07:11

第22章 常用存儲器介紹—零死角玩轉STM32-F429系列
22.1 存儲器種類 存儲器是計算機結構的重要組成部分。存儲器是用來存儲程序代碼和數據的部件,有了存儲器計算機才具有記憶功能。基本的存儲器種類見圖 221。 圖 221 基本存儲器種類 存儲器按其存儲介質特性主要分為 易失性存儲器 和 非易失性存儲器 兩大類。其中的 易失/非易失 是指存儲器斷電后,它存儲的數據內容是否會丟失的特性。由于一般易失性存儲器存取速度快,而非易失性存儲器可長期保存數據,它們都在計算機中占據著重要角色。在計算機中易失性存儲器最典型的代表是內存,非易失性存儲器的代表則是硬盤。 22.2 RAM存儲器 RAM是 Random Access Memory 的縮寫,被譯為隨機存儲器。所謂 隨機存取 ,指
[單片機]
第22章 常用存儲器介紹—零死角玩轉<font color='red'>STM32-F429</font><font color='red'>系列</font>
歐姆龍PLC轉以太網通過CHNet-CP與MatrikonOPC ModbusTCP通信配置
歐姆龍CP系列PLC轉以太網通過CHNet-CP與MatrikonOPC ModbusTCP通信配置 歐姆龍CP系列PLC(CP1E,CP1L,CP1H等) 監(jiān)控計算機,MatrikonOPC,興達易控通訊模塊CHNet-CP 硬件連接 1)將CHNet-CP連接到歐姆龍CP系列PLC(CP1E,CP1L,CP1H等); 2)將各個CHNet-CP通訊模塊,接入到局域網網絡,與上位監(jiān)控計算機連接。 2、CHNet通訊模塊參數配置 如圖配模塊的IP地址:192.168.1.178,端口號:9600; 打開百度APP看高清圖片 3、MatrikonOPC參數配置 1)以太網參數; 2)FINS參數; 3)添加變量和
[嵌入式]
歐姆龍PLC轉<font color='red'>以太網</font>通過CHNet-CP與MatrikonOPC ModbusTCP<font color='red'>通信</font>配置
LwIP協議在μC/OS操作系統(tǒng)中的實現
引????言? 當今的信息時代,是一個構筑在網絡基礎之上的時代,互聯網已經滲透到人們工作和生活的各個角落。隨著計算機的發(fā)展,嵌入式系統(tǒng)已成為計算機領域的一個重要組成部分。將嵌入式系統(tǒng)與Internet 結合起來,就可以在兩者之間實現方便、低廉的信息交流。? 但是,目前大多數嵌入式系統(tǒng)的網絡功能還十分有限:以MCU為核心,與一些監(jiān)測、伺服、指示設備配合實現一定的功能。在一些工業(yè)和汽車應用中,利用CAN、 RS-232、RS-485 等總線將MCU組網,實現多個MCU之間的信息交流,但這種網絡的有效半徑比較有限,有關的通信協議也比較少,并且一般是孤立于Internet以外的,所以局限性較大。把嵌入式系統(tǒng)連接到Internet上,已成為
[嵌入式]
小廣播
設計資源 培訓 開發(fā)板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統(tǒng)推廣工作。

隨便看看

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權所有 京B2-20211791 京ICP備10001474號-1 電信業(yè)務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved