娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月12日(星期四)

正在發生

2019年09月12日 | 秉火429筆記之十八 ETH--以太網

發布者:bonbono 來源: eefocus關鍵字:秉火  ETH  以太網 手機看文章 掃描二維碼
隨時隨地手機看文章

1. 以太網簡介

STM32F42x 系列控制器內部集成了一個以太網外設,它實際是一個通過DMA 控制器進行介質訪問控制(MAC),它的功能就是實現MAC 層的任務。


借助以太網外設,STM32F42x 控制器可以通過ETH 外設按照IEEE 802.3-2002 標準發送和接收MAC 數據包。


ETH 內部自帶專用的DMA 控制器用于MAC,ETH 支持兩個工業標準接口介質獨立接口(MII)和簡化介質獨立接口(RMII)用于與外部PHY 芯片連接。MII 和RMII 接口用于MAC數據包傳輸,ETH 還集成了站管理接口(SMI)接口專門用于與外部PHY 通信,用于訪問PHY 芯片寄存器。


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


ETH 有專用的DMA 控制器,它通過AHB 主從接口與內核和存儲器相連,AHB 主接口用于控制數據傳輸,而AHB 從接口用于訪問“控制與狀態寄存器”(CSR)空間。在進行數據發送是,先將數據有存儲器以DMA 傳輸到發送TX FIFO 進行緩沖,然后由MAC 內核發送;接收數據時,RX FIFO 先接收以太網數據幀,再由DMA 傳輸至存儲器。

2.  SMI 接口 (站管理接口)

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


2.1 SMI幀格式

一般由PHY硬件設計決定,所以是固定不變的。


2.2 SMI 讀寫操作

3. MII 和 RMII接口

 MII : Media-independent interface,即介質獨立接口,介質獨立接口 (MII) 定義了 10 Mbit/s 和 100 Mbit/s 的數據傳輸速率下 MAC 子層與 PHY 之 間的互連。


RMII: Reduced media-independent interface, 即精簡介質獨立接口。


 

 

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

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

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

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

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

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信號線,當介質處于不同狀態時會自切換該信號狀態。

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。


4. MAC 802.3

適用于局域網 (LAN) 的 IEEE 802.3 國際標準將 CSMA/CD(帶有沖突檢測的載波偵聽多路 訪問)用作訪問方法。


以太網外設包括一個帶介質獨立接口 (MII) 的 MAC 802.3(介質訪問控制)控制器和一個專 用 DMA 控制器。


MAC 模塊對以下系列的系統使用 LAN CSMA/CD 子層:數據速率為 10 Mbit/s 和 100 Mbit/s 的基帶系統和寬帶系統。支持半雙工和全雙工工作模式。沖突檢測訪問方法僅適用于半雙工工作模式。支持 MAC 控制幀子層。


4.1 MAC 802.3 幀格式

正如 IEEE 802.3-2002 標準規定,MAC 塊使用 MAC 子層和可選 MAC 控制子層 (10/100 Mbit/s)。


為使用 CSMA/CD MAC 的數據通信系統指定了兩個幀格式:


● 基本 MAC 幀格式


● 標記 MAC 幀格式(擴展了基本 MAC 幀格式)


通過以下條件之一定義無效 MAC 幀:


● 幀長度與長度 / 類型字段指定的預期值不一致。如果長度 / 類型字段包含類型值,則認為

幀長度與此字段一致(沒有無效幀)


● 幀長度不是字節的整數倍(額外位)


● 根據傳入幀計算出的 CRC 值與包含的 FCS 不匹配 


 4.2 MAC數據包發送和接收

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


4.2.1 MAC數據包發送

MAC數據幀發送全部由DMA控制,從系統存儲器讀取的以太網幀由DMA推入FIFO,然后將幀彈出并傳輸到MAC內核。幀傳輸結束后,從MAC內核獲取發送狀態并傳回DMA。在檢測到SOF(Start Of Frame)時,MAC接收數據并開始MII發送。在EOF(End Of Frame)傳輸到MAC內核后,內核將完成正常的發送,然后將發送狀態返回給DMA。


如果在發送過程中發送常規沖突,MAC內核將使發送狀態有效,然后接受并丟棄所有后續數據,直至收到下一SOF。檢測到來自MAC的重試請求時,應從SOF重新發送同一幀。如果發送期間未連續提供數據,MAC將發出下溢狀態。在幀的正常傳輸期間,如果MAC在未獲得前一幀的EOF的情況下接收到SOF,則將忽略該SOF并將新的幀視為前一幀的延續。


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

4.2.2 MAC數據包接收

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


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

4.2.3 MAC過濾

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


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


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


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


5. 官方例程及應用筆記(LWIP)

https://www.stmcu.org.cn/document/detail/index/id-213647


6. 硬件設計實例PHY: LAN8720A

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

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


 

主要實現修改和實現以下文件


/** 

  * @brief  ETH MAC Init structure definition

  * @note   The user should not configure all the ETH_InitTypeDef structure's fields. 

  *   By calling the ETH_StructInit function the structure’s fields are set to their default values.

  *   Only the parameters that will be set to a non-default value should be configured.  

  */ 

typedef struct {

/** 

  * @brief / * MAC  

  */ 

/* 自適應功能:一般使能該功能,系統會自動尋找最優工作方式 */

  uint32_t             ETH_AutoNegotiation;           /*!< Selects or not the AutoNegotiation mode for the external PHY

   The AutoNegotiation allows an automatic setting of the Speed (10/100Mbps)

                                                           and the mode (half/full-duplex).

                                                           This parameter can be a value of @ref ETH_AutoNegotiation */

 

/* 以太網看門狗功能:用于控制接收MAC幀,一般使能該功能,為超長幀自動切斷 */

  uint32_t             ETH_Watchdog;                  /*!< Selects or not the Watchdog timer

   When enabled, the MAC allows no more then 2048 bytes to be received.

                                                           When disabled, the MAC can receive up to 16384 bytes.

                                                           This parameter can be a value of @ref ETH_watchdog */  

/* Jabber 定時器:用于控制發送MAC幀,一般使能該功能,為超長幀自動切斷*/

  uint32_t             ETH_Jabber;                    /*!< Selects or not Jabber timer

                                                           When enabled, the MAC allows no more then 2048 bytes to be sent.

                                                           When disabled, the MAC can send up to 16384 bytes.

                                                           This parameter can be a value of @ref ETH_Jabber */

/* 控制發送幀最小發送間隙:一般96bit時間 */

  uint32_t             ETH_InterFrameGap;             /*!< Selects the minimum IFG between frames during transmission

                                                           This parameter can be a value of @ref ETH_Inter_Frame_Gap */   

/* 載波偵聽功能:一般使能該功能 */

  uint32_t             ETH_CarrierSense;              /*!< Selects or not the Carrier Sense

                                                           This parameter can be a value of @ref ETH_Carrier_Sense */

/* 以太網速度選擇:自適應功能開啟,此位無效 */

  uint32_t             ETH_Speed;                     /*!< Sets the Ethernet speed: 10/100 Mbps

                                                           This parameter can be a value of @ref ETH_Speed */

/* 接收自身幀功能:一般使能該功能 */

  uint32_t             ETH_ReceiveOwn;                /*!< Selects or not the ReceiveOwn

                                                           ReceiveOwn allows the reception of frames when the TX_EN signal is asserted

                                                           in Half-Duplex mode

                                                           This parameter can be a value of @ref ETH_Receive_Own */  

/* MII 回環模式:一般禁用*/

  uint32_t             ETH_LoopbackMode;              /*!< Selects or not the internal MAC MII Loopback mode

[1] [2] [3] [4]
關鍵字:秉火  ETH  以太網 引用地址:秉火429筆記之十八 ETH--以太網

上一篇:基于STM32的簡單電子書的實現
下一篇:秉火429筆記之十六 I2C--操作EEPROM

推薦閱讀

近日有消息透露,蘋果仍在考慮如何使 iPhone 和 iPad 設備與 MacBook 搭配合作,比如將 iPhone 用作 MacBook 的觸控板,或者將 iPad 用作 MacBook 的觸控屏,用一個連接設備將他們連接起來。蘋果也不是唯一一家正在研究這個概念的公司。在今年年初的 CES 2018 上,雷蛇公司展示了自己的 Project Linda 項目,該項目研究的是就是將雷蛇...
深耕于高壓集成電路高能效功率轉換領域的知名公司Power Integrations宣布其200 V Qspeed?二極管 – LQ10N200CQ和LQ20N200CQ – 現已通過AEC-Q101汽車級認證。Qspeed硅二極管采用混合PIN技術,可在軟開關和低反向恢復電荷(Qrr)之間提供獨特的平衡。該特性有助于降低EMI和輸出噪聲,這對于車載音響系統特別重要。 最新通過認證的200 V二極管具有業...
一年多以前關系一度陷入冰點的松下和特斯拉,如今有回暖勢頭。據國外科技媒體Techcrunch報道,日本松下計劃擴大對特斯拉(Tesla)在美國內華達州的電動車用鋰電池工廠Gigafactory 1的投資,將在該工廠再增加一條產線,這不僅將進一步提高電池的能量密度和蓄電容量,還可將年產能提高 10%,從現在的 35GWh增加到39GWh。松下是特斯拉最大的車用鋰電池供應...
跌落神壇的“掃地茅”還能重回巔峰嗎?8月27日,科沃斯(603486.SH)發布2021年半年報顯示,上半年營收53.59億元,同比增長123.11%;凈利8.50億元,同比增長543.25%。盡管業績亮眼,但二級資本市場似乎并不買單。科沃斯在8月30日、31日連續大幅下跌,跌幅分別為10%、7.35%。5倍的凈利潤增長,為何沒有提振“掃地茅”的股價?在「不二研究」看來...

史海拾趣

問答坊 | AI 解惑

與大家分享下:門禁電路圖

公司剛剛搬家的時候,門禁是壞的,后來也忘記怎么收拾好的了,但是當時找了幾個電路圖,這個也許有些價值,與大家共享下…

查看全部問答∨

AVR單片機軟硬件設計入門教程

AVR單片機軟硬件設計入門教程,PPT文檔…

查看全部問答∨

問個問題,大謝

我們有一批數據通過傳感器接收得到放在一種雙口ram中,那么請問這個雙口ram該怎么樣掛載在arm9的外擴的系統總線上?謝謝…

查看全部問答∨

Verilog HDL 語法共享給大家

經典、常用的Verilog HDL語法共享給大家!…

查看全部問答∨

誰能給我傳份HIPS主動防御系統源代碼啊?

有沒有這類系統的源代碼 最好是vc 寫的 lockdog_jia@yahoo.com.cn…

查看全部問答∨

關于實現永久保存注冊表數據的問題!!急!!!!

大家好有個問題請教大家: 我想實現永久保存注冊表數據: 上網查有篇文章介紹(很多篇都是這個) 1、在PB中加入\"Hive-based Registry\",如果是Geode平臺,再加入BSP_ENABLE_FSREGHIVE環境變量。   2、打開platform.reg,找到如下信息: ; ...…

查看全部問答∨

求教密碼保護模塊中的程序理解

求教密碼保護模塊中的程序理解 在TI例程中CSM模塊有這么一段程序,如下:Uint16 CsmUnlock(){    volatile Uint16 temp;    EALLOW;    CsmRegs.KEY0 = 0xFFFF;    CsmRegs.KEY1 = 0xFFFF;  ...…

查看全部問答∨

為什么選擇coldfire?

網上很多推廣其他型號單片機的人都寫過“為什么選擇xxx“,我也寫個針對freescale coldfire的,雖然不可避免帶有感情色彩,但我相信我這個比他們寫的都更客觀,沒有太多虛夸誤導的東西…

查看全部問答∨

變壓器那個不用的NC繞組起什么作用

本信息來自合作QQ群:LED電子工程師總群(26993639) 群主: 地 球如圖,變壓器那個不用的NC繞組起什么作用?有人知道嗎?是儲能還是其它的作用?…

查看全部問答∨

如何把數組定義在特定的RAM位置

手上做一個東西,涉及到需要掉電保護,片上能用后備電池掉電保護的區域在最開始的4K里。由于一些數據是隨時會更新的,我沒有用 定時把數據往里頭復制的方法,而是直接把變量存儲在這個區域里。小帥和技術支持教的方法都是 指針int *p = (int *)0x00 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

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

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

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 道真| 田东县| 巴楚县| 鄢陵县| 同心县| 东乌珠穆沁旗| 濮阳市| 大名县| 房产| 灵石县| 商洛市| 陕西省| 应城市| 开远市| 获嘉县| 安新县| 涞源县| 高唐县| 望奎县| 思南县| 安庆市| 都匀市| 阿城市| 梧州市| 金溪县| 龙胜| 庆安县| 邮箱| 买车| 屏东市| 满城县| 嘉鱼县| 大宁县| 兴化市| 乌审旗| 卓尼县| 永平县| 镇康县| 施甸县| 昌都县| 股票|