RMII模式以太網(wǎng)PHY芯片DP83848C的應(yīng)用
2.4 RXD[1:0]——接收數(shù)據(jù)
RXD[1:0]轉(zhuǎn)換是與REF_CLK同步的。在CRS_DV有效后的每個(gè)時(shí)鐘周期里,RXD[1:O]接收DP83848C的兩位恢復(fù)數(shù)據(jù)。在某些情況下(如數(shù)據(jù)恢復(fù)前或發(fā)生錯(cuò)誤),則接收到的是RXD[1:O]的預(yù)確定值而不是恢復(fù)數(shù)據(jù)。CRS_DV解除確認(rèn)后,RXD[1:O]為“00”,表示進(jìn)入空閑狀態(tài)。CRS_DV確認(rèn)后,在產(chǎn)生正確的接收解碼之前,DP83848C將保證RXD[1:0]=“00”。
DP83848C提供的恢復(fù)數(shù)據(jù)總是半字節(jié)或成對(duì)雙位信號(hào)的形式,這對(duì)于由前導(dǎo)符開始的所有數(shù)據(jù)值都成立。因?yàn)镃RS_DV是異步確認(rèn)的,不能假設(shè)先于前導(dǎo)符的“00”數(shù)據(jù)會(huì)是雙位信號(hào)形式。
100 Mbps模式下,在CRS_DV確認(rèn)之后的正常接收過程中,RXD[1:O]將會(huì)保持“00”,直到接收器檢測(cè)到正確的起始串分界符(Start St-ream Delimiter,SSD)。一旦檢測(cè)到SSD,DP83848C將會(huì)驅(qū)動(dòng)前導(dǎo)符(“01”),后面緊跟著起始幀分界符(Start of Frame Delimiter,SFD)(“01”“01”“01”“11”)。MAC應(yīng)該開始SFD之后的數(shù)據(jù)。如果檢測(cè)到接收錯(cuò)誤,在載波活動(dòng)結(jié)束前,RXD[1:0]將會(huì)替換為接收字符串“01”。而由于幀中剩余數(shù)據(jù)被替換,MAC的奇偶校驗(yàn)將會(huì)拒絕錯(cuò)誤的信息包。如果檢測(cè)到錯(cuò)誤的載波(壞的SSD),RXD[1:O]將會(huì)替換為“10”,直到接收事件結(jié)束。這種情況下,RXD[1:O]將會(huì)從“00”變?yōu)?ldquo;10”,而無需標(biāo)明前導(dǎo)符(“01”)。
10 Mbps模式下,CRS_DV確認(rèn)后,RXD[1:O]將會(huì)一直保持“00”,直到DP83848C有恢復(fù)脈沖并能對(duì)接收數(shù)據(jù)進(jìn)行解碼為止。當(dāng)存在有效接收數(shù)據(jù)時(shí),RXD[1:O]以“01”為前導(dǎo)符接收恢復(fù)的數(shù)據(jù)值。因?yàn)镽EF_CLK頻率是10 Mbps模式下數(shù)據(jù)速率的10倍,MAC對(duì)RXD[1:0]上的值每隔10個(gè)周期采樣一次。接收時(shí)序如圖6所示,接收延時(shí)情況如表2所列。本文引用地址:http://m.butianyuan.cn/article/157064.htm
2.5 RX_DV——接收數(shù)據(jù)有效
盡管RMII并不要求,DP83848C還是提供了一個(gè)RX_DV信號(hào)。RX-DV是沒有結(jié)合CRS的接收數(shù)據(jù)有效信號(hào)(Receive Data Valid)。第一個(gè)正確的恢復(fù)數(shù)據(jù)(前導(dǎo)符)或偽載波檢測(cè)到來時(shí),RX_DV被確認(rèn),在恢復(fù)數(shù)據(jù)的末兩位傳送之后解除確認(rèn)。通過使用該信號(hào),全雙工MAC不必再?gòu)腃RS _DV信號(hào)中恢復(fù)RX_DV信號(hào)。
2.6 CRS_DV——載波偵聽/接收數(shù)據(jù)有效
當(dāng)接收介質(zhì)處于非空閑狀態(tài)時(shí),由PHY來確認(rèn)CRS_DV。在載波檢測(cè)中,CRS_DV依據(jù)與工作模式相關(guān)的標(biāo)準(zhǔn)異步確認(rèn)。10BASE_T模式下,靜噪通過時(shí)發(fā)生該事件。在100BASE-TX模式,當(dāng)10位中檢測(cè)到2個(gè)非相鄰的零值時(shí),發(fā)生該事件。
在RMII規(guī)范(1.2版)中提到,載波丟失將導(dǎo)致與REF_CLK周期同步的CRS_DV解除確認(rèn),這在RXD[1:O]半字節(jié)的首兩位出現(xiàn)(即CRS_DV僅在半字節(jié)邊界解除確認(rèn))。在CRS_DV首次解除確認(rèn)后,如果DP83848C還有數(shù)據(jù)位要加在RXD[1:O]上,則在REF_CLK周期中,DP83848C應(yīng)在每半個(gè)字節(jié)的第2個(gè)雙位上確認(rèn)CRS_DV,并在一個(gè)半字節(jié)的第1個(gè)雙位解除確認(rèn)。這樣,從半字節(jié)邊界開始,到CRS(載波偵聽/接收信號(hào))在RX_DV前結(jié)束時(shí),CRS_DV以25 MHz(100 Mbps模式)或2.5MHz(10 Mbps模式)的頻率翻轉(zhuǎn)(假設(shè)當(dāng)載波事件結(jié)束時(shí)DP83848C還有待傳送的數(shù)據(jù)位)。
通過編程DP83848C能夠與RMII規(guī)范(1.0版)很好地兼容。在該模式下,CRS_DV將會(huì)異步地與CRS進(jìn)行確認(rèn),但是要等傳送完最后的數(shù)據(jù)時(shí)才會(huì)解除確認(rèn),CRS_DV在數(shù)據(jù)包的末端不會(huì)被翻轉(zhuǎn)。該模式雖然不能對(duì)來自CRS_DV的CRS信號(hào)進(jìn)行精確的恢復(fù),但是卻可以使MAC層的設(shè)計(jì)更簡(jiǎn)單。
在出錯(cuò)的載波活動(dòng)時(shí)間中,CRS_DV保持確認(rèn)。一旦確認(rèn)CRS_DV,則可以認(rèn)為在RXD[1:O]上的數(shù)據(jù)是有效的。然而,由于CRS_DV的確認(rèn)相對(duì)于REF_CLK是異步的,因而在正確解碼接收信號(hào)之前,RXD[1:0]上的數(shù)據(jù)應(yīng)為“00”。
評(píng)論