MII接口:
RXD(Receive Data)[3:0]:數據接收信號,共4根信號線;
TX_ER(Transmit Error): 發送數據錯誤提示信號,同步於TX_CLK,高電平有效,表示TX_ER有效期內傳輸的數據無效。對於10Mbps速率下,TX_ER不起作用;
RX_ER(Receive Error): 接收數據錯誤提示信號,同步於RX_CLK,高電平有效,表示RX_ER有效期內傳輸的數據無效。對於10Mbps速率下,RX_ER不起作用;
TX_EN(Transmit Enable): 發送使能信號,只有在TX_EN有效期內傳的數據才有效;
RX_DV(Reveive Data Valid): 接收數據有效信號,作用類型於發送通道的TX_EN;
TX_CLK:發送參考時鍾,100Mbps速率下,時鍾頻率為25MHz,10Mbps速率下,時鍾頻率為2.5MHz。注意,TX_CLK時鍾的方向是從PHY側指向MAC側的,因此此時鍾是由PHY提供的。
RX_CLK:接收數據參考時鍾,100Mbps速率下,時鍾頻率為25MHz,10Mbps速率下,時鍾頻率為2.5MHz。RX_CLK也是由PHY側提供的。
CRS:Carrier Sense,載波偵測信號,不需要同步於參考時鍾,只要有數據傳輸,CRS就有效,另外,CRS只有PHY在半雙工模式下有效;
COL:Collision Detectd,沖突檢測信號,不需要同步於參考時鍾,只有PHY在半雙工模式下有效。
MII接口一共有16根線。
RMII接口:
RMII即Reduced MII,是MII的簡化板,連線數量由MII的16根減少為8根。
TXD[1:0]:數據發送信號線,數據位寬為2,是MII接口的一半;
RXD[1:0]:數據接收信號線,數據位寬為2,是MII接口的一半;
TX_EN(Transmit Enable):數據發送使能信號,與MII接口中的該信號線功能一樣;
RX_ER(Receive Error):數據接收錯誤提示信號,與MII接口中的該信號線功能一樣;
CLK_REF:是由外部時鍾源提供的50MHz參考時鍾,與MII接口不同,MII接口中的接收時鍾和發送時鍾是分開的,而且都是由PHY芯片提供給MAC芯片的。這里需要注意的是,由於數據接收時鍾是由外部晶振提供而不是由載波信號提取的,所以在PHY層芯片內的數據接收部分需要設計一個FIFO,用來協調兩個不同的時鍾,在發送接收的數據時提供緩沖。PHY層芯片的發送部分則不需要FIFO,它直接將接收到的數據發送到MAC就可以了。
CRS_DV:此信號是由MII接口中的RX_DV和CRS兩個信號合並而成。當介質不空閑時,CRS_DV和RE_CLK相異步的方式給出。當CRS比RX_DV早結束時(即載波消失而隊列中還有數據要傳輸時),就會出現CRS_DV在半位元組的邊界以25MHz/2.5MHz的頻率在0、1之間的來回切換。因此,MAC能夠從 CRS_DV中精確的恢復出RX_DV和CRS。
在100Mbps速率時,TX/RX每個時鍾周期采樣一個數據;在10Mbps速率時,TX/RX每隔10個周期采樣一個數據,因而TX/RX數據需要在數據線上保留10個周期,相當於一個數據發送10次。
當PHY層芯片收到有效的載波信號后,CRS_DV信號變為有效,此時如果FIFO中還沒有數據,則它會發送出全0的數據給MAC,然后當FIFO中填入有效的數據幀,數據幀的開頭是“101010---”交叉的前導碼,當數據中出現“01”的比特時,代表正式數據傳輸開始,MAC芯片檢測到這一變化,從而開始接收數據。
當外部載波信號消失后,CRS_DV會變為無效,但如果FIFO中還有數據要發送時,CRS_DV在下一周期又會變為有效,然后再無效再有效,直到FIFO中數據發送完為止。在接收過程中如果出現無效的載波信號或者無效的數據編碼,則RX_ER會變為有效,表示物理層芯片接收出錯。
SMII接口:
SMII即Serial MII,串行MII的意思,跟RMII相比,連線進一步減少到4根;
TXD:發送數據信號,位寬為1;
RXD:接收數據信號,位寬為1;
SYNC:收發數據同步信號,每10個時鍾周期置1次高電平,指示同步。
CLK_REF:所有端口共用的一個參考時鍾,頻率為125MHz,為什么100Mbps速率要用125MHz時鍾?因為在每8位數據中會插入2位控制信號,請看下面介紹。
TXD/RXD以10比特為一組,以SYNC為高電平來指示一組數據的開始,在SYNC變高后的10個時鍾周期內,TXD上依次輸出的數據是:TXD[7:0]、TX_EN、TX_ER,控制信號的含義與MII接口中的相同;RXD上依次輸出的數據是:RXD[7:0]、RX_DV、CRS,RXD[7:0]的含義與RX_DV有關,當RX_DV為有效時(高電平),RXD[7:0]上傳輸的是物理層接收的數據。當RX_DV為無效時(低電平),RXD[7:0]上傳輸的是物理層的狀態信息數據。見下表:
當速率為10Mbps時,每一組數據要重復10次,MAC/PHY芯片每10個周期采樣一次。
MAC/PHY芯片在接收到數據后會進行串/並轉換。
SSMII接口:
SSMII即Serial Sync MII,叫串行同步接口,跟SMII接口很類似,只是收發使用獨立的參考時鍾和同步時鍾,不再像SMII那樣收發共用參考時鍾和同步時鍾,傳輸距離比SMII更遠。
SSSMII接口:
SSSMII即Source Sync Serial MII,叫源同步串行MII接口,SSSMII與SSMII的區別在於參考時鍾和同步時鍾的方向,SSMII的TX/RX參考時鍾和同步時鍾都是由PHY芯片提供的,而SSSMII的TX參考時鍾和同步時鍾是由MAC芯片提供的,RX參考時鍾和同步時鍾是由PHY芯片提供的,所以顧名思義叫源同步串行。
XGMII接口:
TXD[31:0]:數據發送通道,32位並行數據。
RXD[31:0]:數據接收通道,32位並行數據。
TXC[3:0]:發送通道控制信號,TXC=0時,表示TXD上傳輸的是數據;TXC=1時,表示TXD上傳輸的是控制字符。TXC[3:0]分別對應TXD[31:24], TXD[23:16], TXD[15:8], TXD[7:0]。
RXC[3:0]:接收通道控制信號,RXC=0時,表示RXD上傳輸的是數據;RXC=1時,表示RXD上傳輸的是控制字符。RXC[3:0]分別對應RXD[31:24], RXD[23:16], RXD[15:8], RXD[7:0]。
TX_CLK:TXD和TXC的參考時鍾,時鍾頻率156.25MHz,在時鍾信號的上升沿和下降沿都采樣數據。156.25MHz * 2 * 32 = 10Gbps 。
RX_CLK:RXD和RXC的參考時鍾,時鍾頻率156.25MHz,在時鍾信號的上升沿和下降沿都采樣數據。
XGMII接口共74根連線,單端信號,采用HSTL/SSTL_2邏輯,端口電壓1.5V/2.5V,由於SSTL_2的端口電壓高,功耗大,現在已很少使用。HSTL即High Speed Transceiver Logic,高速發送邏輯的意思。SSTL,即Stub Series Terminated Logic,短路終止邏輯,主要用於高速內存接口,SSTL目前存在兩種標准,SSTL_3是3.3V標准;SSTL_2是2.5V標准。