MAC和PHY組成原理_第1頁
MAC和PHY組成原理_第2頁
MAC和PHY組成原理_第3頁
MAC和PHY組成原理_第4頁
MAC和PHY組成原理_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、 Mac與Phy組成原理的簡單分析 2011-12-28 15:30:43分類: LINUX本文乃fireaxe原創(chuàng),使用GPL發(fā)布,可以自由拷貝,轉(zhuǎn)載。但轉(zhuǎn)載請保持文檔的完整性,并注明原作者及原鏈接。內(nèi)容可任意使用,但對因使用該內(nèi)容引起的后果不做任何保證。作者:fireaxe_hq博客:Mac與Phy組成原理的簡單分析1  1. general下圖是網(wǎng)口結(jié)構(gòu)簡圖。網(wǎng)口由CPU、MAC和PHY三部分組成。DMA控制器通常屬于CPU的一部分,用虛線放在這里是為了表示DMA控制器可能會參與到網(wǎng)口數(shù)據(jù)傳輸中。對于上述的三部分,并不一定都是獨(dú)

2、立的芯片,根據(jù)組合形式,可分為下列幾種類型:方案一:CPU集成MAC與PHY;方案二:CPU集成MAC,PHY采用獨(dú)立芯片;方案三:CPU不集成MAC與PHY,MAC與PHY采用集成芯片;本例中選用方案二做進(jìn)一步說明,因?yàn)镃PU總線接口很常見,通常都會做成可以像訪問內(nèi)存一樣去訪問,沒必要拿出來說,而Mac與PHY之間的MII接口則需要多做些說明。下圖是采用方案二的網(wǎng)口結(jié)構(gòu)圖。虛框表示CPU,MAC集成在CPU中。PHY芯片通過MII接口與CPU上的Mac連接。 在軟件上對網(wǎng)口的操作通常分為下面幾步:1)       

3、; 1) 為數(shù)據(jù)收發(fā)分配內(nèi)存;2)        2) 初始化MAC寄存器;3)        3) 初始化PHY寄存器(通過MIIM);           4) 啟動(dòng)收發(fā); 2. 2. MIIMII接口是MAC與PHY連接的標(biāo)準(zhǔn)接口。因?yàn)楦鲝S家采用了同樣的接口,用戶可以根據(jù)所需的性能、價(jià)格,采用

4、不同型號,甚至不同公司的phy芯片。需要發(fā)送的數(shù)據(jù)通過MII接口中的收發(fā)兩組總線實(shí)現(xiàn)。而對PHY芯片寄存器的配置信息,則通過MII總的一組串口總線實(shí)現(xiàn),即MIIM(MII Management)。下表列出了MII總線中主要的一些引腳PIN NameDirectionDescriptionTXD0:3Mac to PhyTransmit DataTXENMac to PhyTransmit EnableTXCLKMac to PhyTransmit ClockRXD0:3Phy to MacReceive DataRXENPhy to MacReceive EnableRXCLKPhy to M

5、acReceive ClockMDCMac to PhyManagement Data ClockMDIOBidirectionManagement Data I/O MIIM只有兩個(gè)線,時(shí)鐘信號MDC與數(shù)據(jù)線MDIO。讀寫命令均由Mac發(fā)起,PHY不能通過MIIM主動(dòng)向Mac發(fā)送信息。由于MIIM只能有Mac發(fā)起,我們可以操作的也就只有MAC上的寄存器。 3.  3. DMA收發(fā)數(shù)據(jù)總是間費(fèi)時(shí)費(fèi)力的事,尤其對于網(wǎng)絡(luò)設(shè)備來說更是如此。CPU做這些事情顯然不合適。既然是數(shù)據(jù)搬移,最簡單的辦法當(dāng)然是讓DMA來做。畢竟專業(yè)的才是最好的。這樣CPU要做

6、的事情就簡單了。只需要告訴DMA起始地址與長度,剩下的事情就會自動(dòng)完成。通常在MAC中會有一組寄存器專門用戶記錄數(shù)據(jù)地址,tbase與rbase,cpu按MAC要的格式把數(shù)據(jù)放好后,啟動(dòng)MAC的數(shù)據(jù)發(fā)送就可以了。啟動(dòng)過程常會用到寄存器tstate。 4. 4. MACCPU上有兩組寄存器用與MAC。一組用戶數(shù)據(jù)的收發(fā),對應(yīng)上面的DMA;一組用戶MIIM,用戶對PHY進(jìn)行配置。兩組寄存器由于都在CPU上,配置方式與其他CPU上寄存器一樣,直接讀寫即可。數(shù)據(jù)的轉(zhuǎn)發(fā)通過DMA完成。 5. 5. PHY該芯片是一個(gè)10M/100M Ether

7、net網(wǎng)口芯片PHY芯片有一組寄存器用戶保存配置,并更新狀態(tài)。CPU不能直接訪問這組寄存器,只能通過MAC上的MIIM寄存器組實(shí)現(xiàn)間接訪問。同時(shí)PHY芯片負(fù)責(zé)完成MII總線的數(shù)據(jù)與Media Interface上數(shù)據(jù)的轉(zhuǎn)發(fā)。該轉(zhuǎn)發(fā)根據(jù)寄存器配置自動(dòng)完成,不需要外接干預(yù)。 一塊以太網(wǎng)網(wǎng)卡包括OSI(開方系統(tǒng)互聯(lián))模型的兩個(gè)層。物理層和數(shù)據(jù)鏈路層。物理層定義了數(shù)據(jù)傳送與接收所需要的電與光信號、線路狀態(tài)、時(shí)鐘基準(zhǔn)、數(shù)據(jù)編碼和電路等,并向數(shù)據(jù)鏈路層設(shè)備提供標(biāo)準(zhǔn)接口。數(shù)據(jù)鏈路層則提供尋址機(jī)構(gòu)、數(shù)據(jù)幀的構(gòu)建、數(shù)據(jù)差錯(cuò)檢查、傳送控制、向網(wǎng)絡(luò)層提供標(biāo)準(zhǔn)的數(shù)據(jù)接口等功能。1網(wǎng)卡的基本結(jié)構(gòu) &

8、#160;  以太網(wǎng)卡中數(shù)據(jù)鏈路層的芯片一般簡稱之為MAC控制器,物理層的芯片我們簡稱之為PHY。許多網(wǎng)卡的芯片把MAC和PHY的功能做到了一顆芯片中,比如Intel 82559網(wǎng)卡的和3COM 3C905網(wǎng)卡。但是MAC和PHY的機(jī)制還是單獨(dú)存在的,只是外觀的表現(xiàn)形式是一顆單芯片。當(dāng)然也有很多網(wǎng)卡的MAC和PHY是分開做的,比如D-LINK的DFE-530TX等。圖一:MAC和PHY分開的以太網(wǎng)卡(點(diǎn)擊放大)圖二:MAC和PHY集成在一顆芯片的以太網(wǎng)卡(點(diǎn)擊放大)RJ-45接口 Transformer(隔離變壓器) PHY芯片MAC芯片   EEPROM

9、0;   BOOTROM插槽WOL接頭   晶振    電壓轉(zhuǎn)換芯片LED指示燈2什么是MAC?     首先我們來說說以太網(wǎng)卡的MAC芯片的功能。以太網(wǎng)數(shù)據(jù)鏈路層其實(shí)包含MAC(介質(zhì)訪問控制)子層和LLC(邏輯鏈路控制)子層。一塊以太網(wǎng)卡MAC芯片的作用不但要實(shí)現(xiàn)MAC子層和LLC子層的功能,還要提供符合規(guī)范的PCI界面以實(shí)現(xiàn)和主機(jī)的數(shù)據(jù)交換。    MAC從PCI總線收到IP數(shù)據(jù)包(或者其他網(wǎng)絡(luò)層協(xié)議的數(shù)據(jù)包)后,將之拆分并重新打包成最大1518Byt

10、e,最小64Byte的幀。這個(gè)幀里面包括了目標(biāo)MAC地址、自己的源MAC地址和數(shù)據(jù)包里面的協(xié)議類型(比如IP數(shù)據(jù)包的類型用80表示)。最后還有一個(gè)DWORD(4Byte)的CRC碼。    可是目標(biāo)的MAC地址是哪里來的呢?這牽扯到一個(gè)ARP協(xié)議(介乎于網(wǎng)絡(luò)層和數(shù)據(jù)鏈路層的一個(gè)協(xié)議)。第一次傳送某個(gè)目的IP地址的數(shù)據(jù)的時(shí)候,先會發(fā)出一個(gè)ARP包,其MAC的目標(biāo)地址是廣播地址,里面說到:”誰是xxx.xxx.xxx.xxx這個(gè)IP地址的主人?”因?yàn)槭菑V播包,所有這個(gè)局域網(wǎng)的主機(jī)都收到了這個(gè)ARP請求。收到請求的主機(jī)將這個(gè)IP地址和自己的相比較,如果不相同就不予理會,

11、如果相同就發(fā)出ARP響應(yīng)包。這個(gè)IP地址的主機(jī)收到這個(gè)ARP請求包后回復(fù)的ARP響應(yīng)里說到:”我是這個(gè)IP地址的主人”。這個(gè)包里面就包括了他的MAC地址。以后的給這個(gè)IP地址的幀的目標(biāo)MAC地址就被確定了。(其它的協(xié)議如IPX/SPX也有相應(yīng)的協(xié)議完成這些操作。)    IP地址和MAC地址之間的關(guān)聯(lián)關(guān)系保存在主機(jī)系統(tǒng)里面,叫做ARP表,由驅(qū)動(dòng)程序和操作系統(tǒng)完成。在Microsoft的系統(tǒng)里面可以用 arp -a 的命令查看ARP表。收到數(shù)據(jù)幀的時(shí)候也是一樣,做完CRC以后,如果沒有CRC效驗(yàn)錯(cuò)誤,就把幀頭去掉,把數(shù)據(jù)包拿出來通過標(biāo)準(zhǔn)的借口傳遞給驅(qū)動(dòng)和上層的協(xié)議客

12、棧,最終正確的達(dá)到我們的應(yīng)用程序。還有一些控制幀,例如流控幀也需要MAC直接識別并執(zhí)行相應(yīng)的行為。    以太網(wǎng)MAC芯片的一端接計(jì)算機(jī)PCI總線,另外一端就接到PHY芯片上。以太網(wǎng)的物理層又包括MII/GMII(介質(zhì)獨(dú)立接口)子層、PCS(物理編碼子層)、PMA(物理介質(zhì)附加)子層、PMD(物理介質(zhì)相關(guān))子層、MDI子層。而PHY芯片是實(shí)現(xiàn)物理層的重要功能器件之一,實(shí)現(xiàn)了前面物理層的所有的子層的功能。3網(wǎng)絡(luò)傳輸?shù)牧鞒?#160;   PHY在發(fā)送數(shù)據(jù)的時(shí)候,收到MAC過來的數(shù)據(jù)(對PHY來說,沒有幀的概念,對它來說,都是數(shù)據(jù)而不管什么地址,數(shù)

13、據(jù)還是CRC),每4bit就增加1bit的檢錯(cuò)碼,然后把并行數(shù)據(jù)轉(zhuǎn)化為串行流數(shù)據(jù),再按照物理層的編碼規(guī)則(10Based-T的NRZ編碼或100based-T的曼徹斯特編碼)把數(shù)據(jù)編碼,再變?yōu)槟M信號把數(shù)據(jù)送出去。(注:關(guān)于網(wǎng)線上數(shù)據(jù)是數(shù)字的還是模擬的比較不容易理解清楚。最后我再說)    收數(shù)據(jù)時(shí)的流程反之。    PHY還有個(gè)重要的功能就是實(shí)現(xiàn)CSMA/CD的部分功能。它可以檢測到網(wǎng)絡(luò)上是否有數(shù)據(jù)在傳送,如果有數(shù)據(jù)在傳送中就等待,一旦檢測到網(wǎng)絡(luò)空閑,再等待一個(gè)隨機(jī)時(shí)間后將送數(shù)據(jù)出去。如果兩塊網(wǎng)卡碰巧同時(shí)送出了數(shù)據(jù),那樣必將造成沖突

14、,這時(shí)候,沖突檢測機(jī)構(gòu)可以檢測到?jīng)_突,然后各等待一個(gè)隨機(jī)的時(shí)間重新發(fā)送數(shù)據(jù)。這個(gè)隨機(jī)時(shí)間很有講究的,并不是一個(gè)常數(shù),在不同的時(shí)刻計(jì)算出來的隨機(jī)時(shí)間都是不同的,而且有多重算法來應(yīng)付出現(xiàn)概率很低的同兩臺主機(jī)之間的第二次沖突。    許多網(wǎng)友在接入Internt寬帶時(shí),喜歡使用”搶線”強(qiáng)的網(wǎng)卡,就是因?yàn)椴煌腜HY碰撞后計(jì)算隨機(jī)時(shí)間的方法設(shè)計(jì)上不同,使得有些網(wǎng)卡比較”占便宜”。不過,搶線只對廣播域的網(wǎng)絡(luò)而言的,對于交換網(wǎng)絡(luò)和ADSL這樣點(diǎn)到點(diǎn)連接到局端設(shè)備的接入方式?jīng)]什么意義。而且”搶線”也只是相對而言的,不會有質(zhì)的變化。4關(guān)于網(wǎng)絡(luò)間的沖突  

15、60; 現(xiàn)在交換機(jī)的普及使得交換網(wǎng)絡(luò)的普及,使得沖突域網(wǎng)絡(luò)少了很多,極大地提高了網(wǎng)絡(luò)的帶寬。但是如果用HUB,或者共享帶寬接入Internet的時(shí)候還是屬于沖突域網(wǎng)絡(luò),有沖突碰撞的。交換機(jī)和HUB最大的區(qū)別就是:一個(gè)是構(gòu)建點(diǎn)到點(diǎn)網(wǎng)絡(luò)的局域網(wǎng)交換設(shè)備,一個(gè)是構(gòu)建沖突域網(wǎng)絡(luò)的局域網(wǎng)互連設(shè)備。    我們的PHY還提供了和對端設(shè)備連接的重要功能并通過LED燈顯示出自己目前的連接的狀態(tài)和工作狀態(tài)讓我們知道。當(dāng)我們給網(wǎng)卡接入網(wǎng)線的時(shí)候,PHY不斷發(fā)出的脈沖信號檢測到對端有設(shè)備,它們通過標(biāo)準(zhǔn)的”語言”交流,互相協(xié)商并卻定連接速度、雙工模式、是否采用流控等。 

16、0;  通常情況下,協(xié)商的結(jié)果是兩個(gè)設(shè)備中能同時(shí)支持的最大速度和最好的雙工模式。這個(gè)技術(shù)被稱為Auto Negotiation或者NWAY,它們是一個(gè)意思自動(dòng)協(xié)商。5.PHY的輸出部分    現(xiàn)在來了解PHY的輸出后面部分。一顆CMOS制程的芯片工作的時(shí)候產(chǎn)生的信號電平總是大于0V的(這取決于芯片的制程和設(shè)計(jì)需求),但是這樣的信號送到100米甚至更長的地方會有很大的直流分量的損失。而且如果外部網(wǎng)現(xiàn)直接和芯片相連的話,電磁感應(yīng)(打雷)和靜電,很容易造成芯片的損壞。    再就是設(shè)備接地方法不同,電網(wǎng)環(huán)境不同會導(dǎo)致雙方的0V電平

17、不一致,這樣信號從A傳到B,由于A設(shè)備的0V電平和B點(diǎn)的0V電平不一樣,這樣會導(dǎo)致很大的電流從電勢高的設(shè)備流向電勢低的設(shè)備。我們?nèi)绾谓鉀Q這個(gè)問題呢?    這時(shí)就出現(xiàn)了Transformer(隔離變壓器)這個(gè)器件。它把PHY送出來的差分信號用差模耦合的線圈耦合濾波以增強(qiáng)信號,并且通過電磁場的轉(zhuǎn)換耦合到連接網(wǎng)線的另外一端。這樣不但使網(wǎng)線和PHY之間沒有物理上的連接而換傳遞了信號,隔斷了信號中的直流分量,還可以在不同0V電平的設(shè)備中傳送數(shù)據(jù)。    隔離變壓器本身就是設(shè)計(jì)為耐2KV3KV的電壓的。也起到了防雷感應(yīng)(我個(gè)人認(rèn)為這里用防雷擊不

18、合適)保護(hù)的作用。有些朋友的網(wǎng)絡(luò)設(shè)備在雷雨天氣時(shí)容易被燒壞,大都是PCB設(shè)計(jì)不合理造成的,而且大都燒毀了設(shè)備的接口,很少有芯片被燒毀的,就是隔離變壓器起到了保護(hù)作用。6.關(guān)于傳輸介質(zhì)    隔離變壓器本身是個(gè)被動(dòng)元件,只是把PHY的信號耦合了到網(wǎng)線上,并沒有起到功率放大的作用。那么一張網(wǎng)卡信號的傳輸?shù)淖铋L距離是誰決定的呢?    一張網(wǎng)卡的傳輸最大距離和與對端設(shè)備連接的兼容性主要是PHY決定的。但是可以將信號送的超過100米的PHY其輸出的功率也比較大,更容易產(chǎn)生EMI的問題。這時(shí)候就需要合適的Transformer與之配合。作PHY

19、的老大公司Marvell的PHY,常常可以傳送180200米的距離,遠(yuǎn)遠(yuǎn)超過IEEE的100米的標(biāo)準(zhǔn)。    RJ-45的接頭實(shí)現(xiàn)了網(wǎng)卡和網(wǎng)線的連接。它里面有8個(gè)銅片可以和網(wǎng)線中的4對雙絞(8根)線對應(yīng)連接。其中100M的網(wǎng)絡(luò)中1、2是傳送數(shù)據(jù)的,3、6是接收數(shù)據(jù)的。1、2之間是一對差分信號,也就是說它們的波形一樣,但是相位相差180度,同一時(shí)刻的電壓幅度互為正負(fù)。這樣的信號可以傳遞的更遠(yuǎn),抗干擾能力強(qiáng)。同樣的,3、6也一樣是差分信號。    網(wǎng)線中的8根線,每兩根扭在一起成為一對。我們制作網(wǎng)線的時(shí)候,一定要注意要讓1、2在其中的一對

20、,3、6在一對。否則長距離情況下使用這根網(wǎng)線的時(shí)候會導(dǎo)致無法連接或連接很不穩(wěn)定。    現(xiàn)在新的PHY支持AUTO MDI-X功能(也需要Transformer支持)。它可以實(shí)現(xiàn)RJ-45接口的1、2上的傳送信號線和3、6上的接收信號線的功能自動(dòng)互相交換。有的PHY甚至支持一對線中的正信號和負(fù)信號的功能自動(dòng)交換。這樣我們就不必為了到底連接某個(gè)設(shè)備需要使用直通網(wǎng)線還是交叉網(wǎng)線而費(fèi)心了。這項(xiàng)技術(shù)已經(jīng)被廣泛的應(yīng)用在交換機(jī)和SOHO路由器上。    在1000Basd-T網(wǎng)絡(luò)中,其中最普遍的一種傳輸方式是使用網(wǎng)線中所有的4對雙絞線,其中增加了

21、4、5和7、8來共同傳送接收數(shù)據(jù)。由于1000Based-T網(wǎng)絡(luò)的規(guī)范包含了AUTO MDI-X功能,因此不能嚴(yán)格確定它們的傳出或接收的關(guān)系,要看雙方的具體的協(xié)商結(jié)果。7PHY和MAC之間如何進(jìn)行溝通    下面繼續(xù)讓我們來關(guān)心一下PHY和MAC之間是如何傳送數(shù)據(jù)和相互溝通的。通過IEEE定義的標(biāo)準(zhǔn)的MII/GigaMII(Media Independed Interfade,介質(zhì)獨(dú)立界面)界面連接MAC和PHY。這個(gè)界面是IEEE定義的。MII界面?zhèn)鬟f了網(wǎng)絡(luò)的所有數(shù)據(jù)和數(shù)據(jù)的控制。    而MAC對PHY的工作狀態(tài)的確定和對PHY的

22、控制則是使用SMI(Serial Management Interface)界面通過讀寫PHY的寄存器來完成的。PHY里面的部分寄存器也是IEEE定義的,這樣PHY把自己的目前的狀態(tài)反映到寄存器里面,MAC通過SMI總線不斷的讀取PHY的狀態(tài)寄存器以得知目前PHY的狀態(tài),例如連接速度,雙工的能力等。當(dāng)然也可以通過SMI設(shè)置PHY的寄存器達(dá)到控制的目的,例如流控的打開關(guān)閉,自協(xié)商模式還是強(qiáng)制模式等。    我們看到了,不論是物理連接的MII界面和SMI總線還是PHY的狀態(tài)寄存器和控制寄存器都是有IEEE的規(guī)范的,因此不同公司的MAC和PHY一樣可以協(xié)調(diào)工作。當(dāng)然為了

23、配合不同公司的PHY的自己特有的一些功能,驅(qū)動(dòng)需要做相應(yīng)的修改。    一片網(wǎng)卡主要功能的實(shí)現(xiàn)就基本上是上面這些器件了。    其他的,還有一顆EEPROM芯片,通常是一顆93C46。里面記錄了網(wǎng)卡芯片的供應(yīng)商ID、子系統(tǒng)供應(yīng)商ID、網(wǎng)卡的MAC地址、網(wǎng)卡的一些配置,如SMI總線上PHY的地址,BOOTROM的容量,是否啟用BOOTROM引導(dǎo)系統(tǒng)等東西。    很多網(wǎng)卡上還有BOOTROM這個(gè)東西。它是用于無盤工作站引導(dǎo)操作系統(tǒng)的。既然無盤,一些引導(dǎo)用必需用到的程序和協(xié)議棧就放到里面了,例如RPL、PXE等。實(shí)際上它就是一個(gè)標(biāo)準(zhǔn)的PCI ROM。所以才會有一些硬盤寫保護(hù)卡可以通過燒寫網(wǎng)卡的BootRom來實(shí)現(xiàn)。其實(shí)PCI設(shè)備的ROM是可以放到主板BIOS里面的。啟動(dòng)電腦的時(shí)候一樣可以檢測到這個(gè)ROM并且正確識別它是什么設(shè)備的。AGP在配置上和PCI很多地方一樣,所以很多顯卡的BIOS也可以放到主板BIOS里面。這就是為什么板載的網(wǎng)卡我們從來沒有看到過BOOTROM

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論