隨著網(wǎng)絡(luò)需求增長,千兆以太網(wǎng)速率問題備受關(guān)注。本文針對其實際速率低的情況,詳細分析布線不佳等原因,并從等長走線、阻抗匹配等硬件方面及軟件調(diào)試角度,提供全面提升速率與穩(wěn)定性的有效方法。
正常的千兆以太網(wǎng)理論速率可以達到1000Mbps,實際考慮到通信各個環(huán)節(jié)的損耗,也應(yīng)在800Mbps以上。而實際上卻有很多板卡,按照參考電路設(shè)計的千兆以太網(wǎng)實測只卻只能跑到300/400Mbps,甚至更低。這種情況90%是由于以太網(wǎng)布線不佳導(dǎo)致的信號完整性問題。千兆以太網(wǎng)RGMII信號的速率高達125MHz,而且是雙邊沿觸發(fā)的,所以對信號完整性是有要求的。以下的RGMII信號完整性原則和方法,可以幫助優(yōu)化和改善以太網(wǎng)的速率和穩(wěn)定性。
1. 等長走線
RGMII在走線時必須要進行等長處理。等長即RGMII總線中的TX_CLK、TXD[0:3]、TX_EN這6個信號為一組,RX_CLK、RXD[0:3]、RX_EN這6個信號為一組,分別繞蛇形走線,使得每組組內(nèi)信號線之間長度差值在100mil以內(nèi),不同廠家的公差要求可能不同,但對硬件工程師來說,條件允許的情況下,公差越小,則時序裕量越大,設(shè)計時應(yīng)盡量將公差縮小。
注意這個公差應(yīng)該是CPU的MAC到PHY芯片的走線,有些核心板的手冊標注了核心板RGMII走線長度和CPU內(nèi)部的長度,此時必須要將它們和底板的長度加起來計算等長。
2. 阻抗匹配
RGMII的所有信號線要求單端50Ω的阻抗匹配,50Ω是一個約定俗成,沿用至今的值,也是板廠熟悉,易于疊層和制板的取值。阻抗匹配指的特征阻抗,定義是:傳輸線長度趨近于無窮大時,傳輸線的阻抗是多少(例如上述的50Ω)。在有限長傳輸線中,它表征電信號經(jīng)過導(dǎo)體瞬間的阻抗,但這個值不是50Ω,阻抗匹配即有限長傳輸線中每一處的特征阻抗都是相等的、均勻的、連續(xù)的。
設(shè)計時,它是由PCB的銅厚、線寬、相鄰層間距、板材等計算得來的。對設(shè)計師來說,最重要的是阻抗的連續(xù)性,電信號經(jīng)過阻抗不連續(xù)的導(dǎo)體,如同光線經(jīng)過密度不同的介質(zhì)(水和空氣)時產(chǎn)生反射與折射,信號就會失真。傳輸線打孔、換層、經(jīng)過電阻和連接器的焊盤、有分叉,都會導(dǎo)致不同程度的阻抗不連續(xù)。所以layout時應(yīng)避免分叉、走線改變方向用45度折彎,盡量避免打孔換層。
3. 完整的參考平面
參考平面對阻抗匹配是非常重要的,傳輸線原理中,傳輸線包含信號線和回流路徑,當信號線是均勻連續(xù)的,但參考平面不連續(xù)也會導(dǎo)致傳輸線不連續(xù)。參考平面是根據(jù)疊層確定的,一般是相鄰的平面層,例如圖1中,8層板疊層1層和3層參考2層,4層參考5層,6層和8層參考7層。
信號線投影區(qū)域內(nèi)參考層的銅皮也不能中斷或改變網(wǎng)絡(luò)。容易出問題的地方是換層的時候如果信號從1層打孔到了8層,那么參考層就從2層變成了7層,建議在信號換層位置200mil范圍內(nèi)打地過孔創(chuàng)造回流路徑。有條件的地方也應(yīng)補上地過孔增強兩層地的連續(xù)性。那么當信號從1層換層到4層,參考層由GND變成了PWR,網(wǎng)絡(luò)都改變了,這時該怎么辦呢?這種情況可以在換層位置附近布置0.1uF的縫合電容將2層和5層的網(wǎng)絡(luò)連在一起。
圖1 一種常見8層板疊層結(jié)構(gòu)圖
4. 避免源端反射
前面講過阻抗匹配,當信號傳輸到接收端,RGMII的接收IO是高阻的,信號就會反射回去,反射波到達源端又發(fā)生二次反射,叫做源端反射。源端反射會和原始信號疊加在一起形成過沖、振鈴等,影響信號質(zhì)量。通過在靠近信號發(fā)送端的位置串聯(lián)源端匹配電阻,可以有效降低源端反射。有些芯片推薦的匹配電阻是33Ω,有些是22Ω,這是因為芯片管腳驅(qū)動器的輸出阻抗不同,當驅(qū)動器輸出阻抗+源端匹配電阻的阻值為50Ω左右的時候,配合50Ω的阻抗匹配,防止源端反射的效果才最好,而這也是串阻要靠近信號源端的原因。
5. 防止串擾
外部的干擾也是不能忽視的,檢查諸如走線之間有沒有保持3W間距,時鐘走線有沒有包地。類似圖 1.44的疊層中3層和4層的走線有沒有和相鄰層的其它走線有長距離、近距離的平行走線等等,在這些地方往往也能找到能夠優(yōu)化的點。
6. 軟件Delay?line調(diào)試
如果板子調(diào)試時發(fā)現(xiàn)速率不夠,其實也不一定就是硬件問題,可以先看下軟件有沒有進行Delay line的配置。Delay line就是在CLK上增加一段無用的buffer來達到延時的效果,通過調(diào)整buffer數(shù)量,來補償PCB走線的延時,最終使得接收端接收到的時鐘邊沿移動到數(shù)據(jù)眼圖的正中間。一般MAC端和PHY端都可以進行Delay line的調(diào)節(jié),但MAC端調(diào)節(jié)的精度更細,操作也更方便,一般將PHY端的Delay line設(shè)為0,只在MAC端調(diào)節(jié)。
圖2 Delay?line電路結(jié)構(gòu)示意圖
圖3 Delay?line調(diào)整波形示意圖
剛開始調(diào)Delay line時,網(wǎng)絡(luò)有可能完全ping不通,同時沒法區(qū)分是發(fā)送有問題還是接收有問題,所以要借助PC端的Wireshark先調(diào)試發(fā)送數(shù)據(jù)。
MAC端調(diào)節(jié)Delay line每個步進增加0.08ns延時,待調(diào)試的板子在后臺ping PC的IP,?輸入命令讓板子遍歷所有TX Delay line,此時觀察電腦端的Wireshark,會看到從某個值開始收到板子發(fā)來的ICMP包,稱為窗口的開始;隨著TX delayline逐漸增加,收到的數(shù)據(jù)包會變得更完整,接著變得不完整,最后徹底收不到板子發(fā)來的ICMP包,此時的TX Delay line值稱為窗口的結(jié)束。取窗口開始和結(jié)束的中間值作為此PCB板的TX Delay line最優(yōu)值,記下這個值。
調(diào)通板子網(wǎng)卡的發(fā)送功能之后,板子就具備了應(yīng)答ping ICMP包的能力。下面在電腦端綁定板子網(wǎng)卡的MAC地址和IP地址,并開始ping板子的IP地址,板子執(zhí)行以下命令遍歷所有RX Delay line,觀察電腦端ping命令的返回信息,會看到ping返回失敗,漸漸變成ping成功,而后又變?yōu)閜ing失敗,記錄下這些節(jié)點對應(yīng)的RX Delay line值。ping成功的這段區(qū)間稱為接收窗口,同樣取其中值,作為RX Delay line的最優(yōu)值。
最后把Delay line最優(yōu)值設(shè)置,添加到設(shè)備樹的gmac節(jié)點中,固化Delay line,完成Delay line的配置。要注意的是,使用RGMII接口連接千兆PHY時,只要硬件存在差別,都需要重新做一次Delay line的配置。
另外可以調(diào)整Delay line也不代表硬件不需要做等長Layout;如果不做等長,意味著時鐘信號的跳變邊沿要同時對四條數(shù)據(jù)線的相位進行延時微調(diào),它們重疊的區(qū)域才能對數(shù)據(jù)正確采樣,但這個區(qū)域?qū)兊眠^窄,甚至超出Delay line延時的范圍。
7. 調(diào)整驅(qū)動強度
除了配置Delay line,還可以調(diào)整RGMII的驅(qū)動強度進一步改善問題。當使用iperf長時間測試發(fā)送會掉線也可以嘗試調(diào)整驅(qū)動強度。當將驅(qū)動強度調(diào)高時,信號的邊沿會變得更陡峭,但與此同時,過沖和振鈴也會變強,驅(qū)動強度調(diào)低時,信號邊沿會變緩,但能夠減少過沖和振鈴的影響。驅(qū)動強度通常只有幾個檔位(通常4或8檔),有些廠商會標出是多少mA,有些則只標出強度等級,沒有具體單位,所以不用像Delay line那樣找最佳值,實測在不同強度下速率最高,穩(wěn)定性最好的取值即可。
AM335x升級之選
2路千兆以太網(wǎng)
3路CAN FD
支持GPMC
參考價格:319元起