Mac與Phy組成原理的簡單分析

Mac與Phy組成原理的簡單分析 2011-12-28 15:30:43

//http://blog.chinaunix.net/uid-20528014-id-3050217.html

本文乃fireaxe原創,使用GPL發布,可以自由拷貝,轉載。但轉載請保持文檔的完整性,并注明原作者及原鏈接。內容可任意使用,但對因使用該內容引起的后果不做任何保證。
作者:fireaxe_hq@hotmail.com
博客:fireaxe.blog.chinaunix.net

Mac與Phy組成原理的簡單分析

1? 1.general

下圖是網口結構簡圖。網口由CPU、MAC和PHY三部分組成。DMA控制器通常屬于CPU的一部分,用虛線放在這里是為了表示DMA控制器可能會參與到網口數據傳輸中。

對于上述的三部分,并不一定都是獨立的芯片,根據組合形式,可分為下列幾種類型:

方案一:CPU集成MAC與PHY;

方案二:CPU集成MAC,PHY采用獨立芯片;

方案三:CPU不集成MAC與PHY,MAC與PHY采用集成芯片;

本例中選用方案二做進一步說明,因為CPU總線接口很常見,通常都會做成可以像訪問內存一樣去訪問,沒必要拿出來說,而Mac與PHY之間的MII接口則需要多做些說明。

下圖是采用方案二的網口結構圖。虛框表示CPU,MAC集成在CPU中。PHY芯片通過MII接口與CPU上的Mac連接。

?

在軟件上對網口的操作通常分為下面幾步:

1)??????? 1) 為數據收發分配內存;

2)?????? 2) 初始化MAC寄存器;

3)?????? 3) 初始化PHY寄存器(通過MIIM);

? ? ? ?? ? 4) 啟動收發;

2.2.?MII

MII接口是MAC與PHY連接的標準接口。因為各廠家采用了同樣的接口,用戶可以根據所需的性能、價格,采用不同型號,甚至不同公司的phy芯片。

需要發送的數據通過MII接口中的收發兩組總線實現。而對PHY芯片寄存器的配置信息,則通過MII總的一組串口總線實現,即MIIM(MII Management)。

下表列出了MII總線中主要的一些引腳

PIN Name

Direction

Description

TXD[0:3]

Mac to Phy

Transmit Data

TXEN

Mac to Phy

Transmit Enable

TXCLK

Mac to Phy

Transmit Clock

RXD[0:3]

Phy to Mac

Receive Data

RXEN

Phy to Mac

Receive Enable

RXCLK

Phy to Mac

Receive Clock

MDC

Mac to Phy

Management Data Clock

MDIO

Bidirection

Management Data I/O

?MIIM只有兩個線,時鐘信號MDC與數據線MDIO。讀寫命令均由Mac發起,PHY不能通過MIIM主動向Mac發送信息。由于MIIM只能有Mac發起,我們可以操作的也就只有MAC上的寄存器。

?

3.? 3.DMA

收發數據總是間費時費力的事,尤其對于網絡設備來說更是如此。CPU做這些事情顯然不合適。既然是數據搬移,最簡單的辦法當然是讓DMA來做。畢竟專業的才是最好的。

這樣CPU要做的事情就簡單了。只需要告訴DMA起始地址與長度,剩下的事情就會自動完成。

通常在MAC中會有一組寄存器專門用戶記錄數據地址,tbase與rbase,cpu按MAC要的格式把數據放好后,啟動MAC的數據發送就可以了。啟動過程常會用到寄存器tstate。

?4.4. MAC

CPU上有兩組寄存器用與MAC。一組用戶數據的收發,對應上面的DMA;一組用戶MIIM,用戶對PHY進行配置。

兩組寄存器由于都在CPU上,配置方式與其他CPU上寄存器一樣,直接讀寫即可。

數據的轉發通過DMA完成。

5.5.?PHY

該芯片是一個10M/100M Ethernet網口芯片

PHY芯片有一組寄存器用戶保存配置,并更新狀態。CPU不能直接訪問這組寄存器,只能通過MAC上的MIIM寄存器組實現間接訪問。

同時PHY芯片負責完成MII總線的數據與Media Interface上數據的轉發。該轉發根據寄存器配置自動完成,不需要外接干預。

本文乃fireaxe原創,使用GPL發布,可以自由拷貝,轉載。但轉載請保持文檔的完整性,并注明原作者及原鏈接。內容可任意使用,但對因使用該內容引起的后果不做任何保證。
作者:fireaxe_hq@hotmail.com
博客:fireaxe.blog.chinaunix.net

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/253132.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/253132.shtml
英文地址,請注明出處:http://en.pswp.cn/news/253132.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

[BZOJ3994][SDOI2015]約數個數和

3994: [SDOI2015]約數個數和 Time Limit: 20 Sec Memory Limit: 128 MB Submit: 1104 Solved: 762 [Submit][Status][Discuss]Description 設d(x)為x的約數個數,給定N、M,求 Input 輸入文件包含多組測試數據。 第一行,一個整數T&#xff0…

月蝕動漫獲快看漫畫600萬元A輪戰略投資,走國漫精品化路線

11月5日消息,月蝕動漫宣布獲得快看漫畫600萬元A輪戰略投資。 據了解,月蝕動漫曾于2017年1月獲得原力創投的百萬級種子輪投資,2018年1月獲得英諾天使基金的百萬級天使輪投資。 據月蝕動漫創始人賀小桐透露,團隊能在行業寒冬期獲得…

大力智能臺燈T6 結構拆解

近幾年教育硬件產品層出不窮,教育硬件賽道布局時間較長的有網易、訊飛、步步高系等公司,2020年10月,字節跳動旗下大力教育經過兩年多的調研和研發,高調推出首款智能硬件產品“大力智能作業臺燈” T5。 上市一年取得不錯的銷售成績…

C++靜態庫與動態庫

http://www.cnblogs.com/skynet/p/3372855.html

第5章 IDA Pro

5.1 加載一個可執行文件 默認情況下IDA Pro的反匯編代碼中不包含PE頭或資源節,可以手動指定加載。 5.2 IDA Pro接口 5.2.1 反匯編窗口模式 二進制模式/圖形模式: 圖形模式:紅色表示一個條件跳轉沒有被采用,綠色表示這個條件跳轉被…

樹鏈剖分(模板)

luogu題庫 題目描述 如題,已知一棵包含N個結點的樹(連通且無環),每個節點上包含一個數值,需要支持以下操作: 操作1: 格式: 1 x y z 表示將樹從x到y結點最短路徑上所有節點的值都加上…

定制或外購適配器規格需求列表

輸入特性例如輸入電壓180~264VAC 200~264VAC輸入頻率47~63Hz輸入電流0.7A Max功率因素>0.47 10W220VAC浪涌電流<60A電源效率>81.26%空載功耗0.2W 輸出特性例如輸出電壓11.4~12.6V DC輸出電流1.75A紋波要求<120mV 負載調整率5%線性…

使用 typescript ,提升 vue 項目的開發體驗(1)

此文已由作者張漢銳授權網易云社區發布。歡迎訪問網易云社區,了解更多網易技術產品運營經驗。前言:對于我們而言,typescript 更像一個工具官方指南從 vue2.5 之后,vue 對 ts 有更好的支持。根據官方文檔,vue 結合 type…

Linux進程間通信——使用共享內存

//本文轉載http://blog.csdn.net/ljianhui/article/details/10253345下面將講解進程間通信的另一種方式,使用共享內存。一、什么是共享內存顧名思義,共享內存就是允許兩個不相關的進程訪問同一個邏輯內存。共享內存是在兩個正在運行的進程之間共享和傳遞…

laravel擴展包開發步驟總結

1. 創建包1php artisan workbench vendor/package --resources注: vendor:開發商名 package:包名2.修改下包里composer.json中的authors123456"authors": [{"name": "cicl","email": "test126.com"}]3. 為創建的包注冊Se…

洛谷 P1340 獸徑管理

題目描述 約翰農場的牛群希望能夠在 N 個(1<N<200) 草地之間任意移動。草地的編號由 1到 N。草地之間有樹林隔開。牛群希望能夠選擇草地間的路徑&#xff0c;使牛群能夠從任一 片草地移動到任一片其它草地。 牛群可在路徑上雙向通行。 牛群并不能創造路徑&#xff0c;但是…

功放關鍵規格參數檢查

編號規格備注1功放類型(開環/閉環)影響電性能指標2工作電壓(V)影響IC的穩定性3最大耐壓(V)影響IC的穩定性4最小負載(ohm)穩定性&#xff0c;過流&#xff0c;輸出功率&#xff0c;散熱5輸出功率過流&#xff0c;輸出功率&#xff0c;散熱6輸出方式(SE/BTL/PBTL)輸出功率&#x…

不踩雷不將就 京東智能產品30天無憂退

剁手節已經來臨&#xff0c;鋪天蓋地的促銷信息讓人應接不暇&#xff0c;恰好又是換季&#xff0c;確實需要買買買一波了。各種滿減活動讓人眼花繚亂&#xff0c;這波堪稱全年最大力度的促銷活動&#xff0c;令人是又喜又怕。倘若之前踩過雷的朋友&#xff0c;必然現在會謹慎許…

Linux進程間通信——使用信號量

//轉自http://blog.csdn.net/ljianhui/article/details/10243617 這篇文章將講述別一種進程間通信的機制——信號量。注意請不要把它與之前所說的信號混淆起來&#xff0c;信號與信號量是不同的兩種事物。有關信號的更多內容&#xff0c;可以閱讀我的另一篇文章&#xff1a;L…

麥克風陣列音頻檢查方法和標準

為確保產品能夠符合算法要求&#xff0c;務必提前做好相關設計&#xff0c;盡量確保各項指標滿足如下標準。 音頻評測工作&#xff0c;主要集中在研發設計階段&#xff1b;針對產品形態的不同&#xff0c;測試可分為裸板測試和整機測 試&#xff0c;下表為不同階段需要測試的…

Linux下git的使用——將已有項目放到github上

本地已經有一個項目了&#xff0c;需要將該項目放到github上&#xff0c;怎么操作&#xff1f; 步驟&#xff1a; 本地安裝git&#xff0c;有github賬號是前提。 &#xff08;1&#xff09;先在github創建一個空的倉庫&#xff0c;并復制鏈接地址。使用https&#xff0c;以.git…

SVG格式圖片轉成HTML中SVG的Path路徑

AI圖標制作完成之后&#xff0c;保存的svg文件包含許多AI的信息&#xff0c;如果要在HTML中使用&#xff0c;我們需要在svg文件中提取/修改信息&#xff0c;重新保存。 1、在AI中已經完成圖標&#xff0c;要保存SVG文件&#xff0c;點擊“文件(File)”-“另存為(Save As)”&…

11-5 筆記

函數&#xff1a; 函數在調用的時候&#xff0c;會形成一個私有作用域&#xff0c;內部的變量不會被外面訪問&#xff0c;這種保護機制叫閉包。這就意味著函數調用完畢&#xff0c;這個函數形成的棧內存會被銷毀。 函數歸屬誰跟它在哪調用沒有關系&#xff0c;跟在哪定義有關。…

linux下socket連接下的心跳機制

1&#xff0c;在長連接下&#xff0c;有可能很長一段時間都沒有數據往來。 理論上說&#xff0c;這個連接是一直保持連接的&#xff0c;但是實際情況中&#xff0c;如果中間節點出現什么故障是難以知道的。 有的節點&#xff08;防火墻&#xff09;會自動把一定時間之內沒有數…

大力智能臺燈與飛利浦臺燈 智能調光功能體驗

目前市面上絕大部分智能臺燈幾乎都宣稱有自動調光功能&#xff0c;即臺燈隨環境光變化自動調節LED光的亮度&#xff0c;或者臺燈在固定環境光下&#xff0c;一旦開啟了自動調光模式LED燈將自動調光至一個最適合讀寫作業的亮度&#xff1b; 下面對比體驗了大力臺燈T6 和 飛利浦…