加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

ZLG嵌入式筆記(連載13) | 以太網(wǎng)帶寬總是跑不滿,是什么原因?

13小時(shí)前
221
閱讀需 10 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

隨著網(wǎng)絡(luò)需求增長(zhǎng),千兆以太網(wǎng)速率問題備受關(guān)注。本文針對(duì)其實(shí)際速率低的情況,詳細(xì)分析布線不佳等原因,并從等長(zhǎng)走線、阻抗匹配硬件方面及軟件調(diào)試角度,提供全面提升速率與穩(wěn)定性的有效方法。

正常的千兆以太網(wǎng)理論速率可以達(dá)到1000Mbps,實(shí)際考慮到通信各個(gè)環(huán)節(jié)的損耗,也應(yīng)在800Mbps以上。而實(shí)際上卻有很多板卡,按照參考電路設(shè)計(jì)的千兆以太網(wǎng)實(shí)測(cè)只卻只能跑到300/400Mbps,甚至更低。這種情況90%是由于以太網(wǎng)布線不佳導(dǎo)致的信號(hào)完整性問題。千兆以太網(wǎng)RGMII信號(hào)的速率高達(dá)125MHz,而且是雙邊沿觸發(fā)的,所以對(duì)信號(hào)完整性是有要求的。以下的RGMII信號(hào)完整性原則和方法,可以幫助優(yōu)化和改善以太網(wǎng)的速率和穩(wěn)定性。

1. 等長(zhǎng)走線

RGMII在走線時(shí)必須要進(jìn)行等長(zhǎng)處理。等長(zhǎng)即RGMII總線中的TX_CLK、TXD[0:3]、TX_EN這6個(gè)信號(hào)為一組,RX_CLK、RXD[0:3]、RX_EN這6個(gè)信號(hào)為一組,分別繞蛇形走線,使得每組組內(nèi)信號(hào)線之間長(zhǎng)度差值在100mil以內(nèi),不同廠家的公差要求可能不同,但對(duì)硬件工程師來說,條件允許的情況下,公差越小,則時(shí)序裕量越大,設(shè)計(jì)時(shí)應(yīng)盡量將公差縮小。

注意這個(gè)公差應(yīng)該是CPU的MAC到PHY芯片的走線,有些核心板的手冊(cè)標(biāo)注了核心板RGMII走線長(zhǎng)度和CPU內(nèi)部的長(zhǎng)度,此時(shí)必須要將它們和底板的長(zhǎng)度加起來計(jì)算等長(zhǎng)。

2. 阻抗匹配

RGMII的所有信號(hào)線要求單端50Ω的阻抗匹配,50Ω是一個(gè)約定俗成,沿用至今的值,也是板廠熟悉,易于疊層和制板的取值。阻抗匹配指的特征阻抗,定義是:傳輸線長(zhǎng)度趨近于無窮大時(shí),傳輸線的阻抗是多少(例如上述的50Ω)。在有限長(zhǎng)傳輸線中,它表征電信號(hào)經(jīng)過導(dǎo)體瞬間的阻抗,但這個(gè)值不是50Ω,阻抗匹配即有限長(zhǎng)傳輸線中每一處的特征阻抗都是相等的、均勻的、連續(xù)的。

設(shè)計(jì)時(shí),它是由PCB的銅厚、線寬、相鄰層間距、板材等計(jì)算得來的。對(duì)設(shè)計(jì)師來說,最重要的是阻抗的連續(xù)性,電信號(hào)經(jīng)過阻抗不連續(xù)的導(dǎo)體,如同光線經(jīng)過密度不同的介質(zhì)(水和空氣)時(shí)產(chǎn)生反射與折射,信號(hào)就會(huì)失真。傳輸線打孔、換層、經(jīng)過電阻連接器的焊盤、有分叉,都會(huì)導(dǎo)致不同程度的阻抗不連續(xù)。所以layout時(shí)應(yīng)避免分叉、走線改變方向用45度折彎,盡量避免打孔換層。

3. 完整的參考平面

參考平面對(duì)阻抗匹配是非常重要的,傳輸線原理中,傳輸線包含信號(hào)線和回流路徑,當(dāng)信號(hào)線是均勻連續(xù)的,但參考平面不連續(xù)也會(huì)導(dǎo)致傳輸線不連續(xù)。參考平面是根據(jù)疊層確定的,一般是相鄰的平面層,例如圖1中,8層板疊層1層和3層參考2層,4層參考5層,6層和8層參考7層。

信號(hào)線投影區(qū)域內(nèi)參考層的銅皮也不能中斷或改變網(wǎng)絡(luò)。容易出問題的地方是換層的時(shí)候如果信號(hào)從1層打孔到了8層,那么參考層就從2層變成了7層,建議在信號(hào)換層位置200mil范圍內(nèi)打地過孔創(chuàng)造回流路徑。有條件的地方也應(yīng)補(bǔ)上地過孔增強(qiáng)兩層地的連續(xù)性。那么當(dāng)信號(hào)從1層換層到4層,參考層由GND變成了PWR,網(wǎng)絡(luò)都改變了,這時(shí)該怎么辦呢?這種情況可以在換層位置附近布置0.1uF的縫合電容將2層和5層的網(wǎng)絡(luò)連在一起。

圖1 一種常見8層板疊層結(jié)構(gòu)圖

4. 避免源端反射

前面講過阻抗匹配,當(dāng)信號(hào)傳輸到接收端,RGMII的接收IO是高阻的,信號(hào)就會(huì)反射回去,反射波到達(dá)源端又發(fā)生二次反射,叫做源端反射。源端反射會(huì)和原始信號(hào)疊加在一起形成過沖、振鈴等,影響信號(hào)質(zhì)量。通過在靠近信號(hào)發(fā)送端的位置串聯(lián)源端匹配電阻,可以有效降低源端反射。有些芯片推薦的匹配電阻是33Ω,有些是22Ω,這是因?yàn)樾酒苣_驅(qū)動(dòng)器輸出阻抗不同,當(dāng)驅(qū)動(dòng)器輸出阻抗+源端匹配電阻的阻值為50Ω左右的時(shí)候,配合50Ω的阻抗匹配,防止源端反射的效果才最好,而這也是串阻要靠近信號(hào)源端的原因。

5. 防止串?dāng)_

外部的干擾也是不能忽視的,檢查諸如走線之間有沒有保持3W間距,時(shí)鐘走線有沒有包地。類似圖 1.44的疊層中3層和4層的走線有沒有和相鄰層的其它走線有長(zhǎng)距離、近距離的平行走線等等,在這些地方往往也能找到能夠優(yōu)化的點(diǎn)。

6. 軟件Delay?line調(diào)試

如果板子調(diào)試時(shí)發(fā)現(xiàn)速率不夠,其實(shí)也不一定就是硬件問題,可以先看下軟件有沒有進(jìn)行Delay line的配置。Delay line就是在CLK上增加一段無用的buffer來達(dá)到延時(shí)的效果,通過調(diào)整buffer數(shù)量,來補(bǔ)償PCB走線的延時(shí),最終使得接收端接收到的時(shí)鐘邊沿移動(dòng)到數(shù)據(jù)眼圖的正中間。一般MAC端和PHY端都可以進(jìn)行Delay line的調(diào)節(jié),但MAC端調(diào)節(jié)的精度更細(xì),操作也更方便,一般將PHY端的Delay line設(shè)為0,只在MAC端調(diào)節(jié)。

圖2 Delay?line電路結(jié)構(gòu)示意圖

圖3 Delay?line調(diào)整波形示意圖

剛開始調(diào)Delay line時(shí),網(wǎng)絡(luò)有可能完全ping不通,同時(shí)沒法區(qū)分是發(fā)送有問題還是接收有問題,所以要借助PC端的Wireshark先調(diào)試發(fā)送數(shù)據(jù)。

MAC端調(diào)節(jié)Delay line每個(gè)步進(jìn)增加0.08ns延時(shí),待調(diào)試的板子在后臺(tái)ping PC的IP,?輸入命令讓板子遍歷所有TX Delay line,此時(shí)觀察電腦端的Wireshark,會(huì)看到從某個(gè)值開始收到板子發(fā)來的ICMP包,稱為窗口的開始;隨著TX delayline逐漸增加,收到的數(shù)據(jù)包會(huì)變得更完整,接著變得不完整,最后徹底收不到板子發(fā)來的ICMP包,此時(shí)的TX Delay line值稱為窗口的結(jié)束。取窗口開始和結(jié)束的中間值作為此PCB板的TX Delay line最優(yōu)值,記下這個(gè)值。

調(diào)通板子網(wǎng)卡的發(fā)送功能之后,板子就具備了應(yīng)答ping ICMP包的能力。下面在電腦端綁定板子網(wǎng)卡的MAC地址和IP地址,并開始ping板子的IP地址,板子執(zhí)行以下命令遍歷所有RX Delay line,觀察電腦端ping命令的返回信息,會(huì)看到ping返回失敗,漸漸變成ping成功,而后又變?yōu)閜ing失敗,記錄下這些節(jié)點(diǎn)對(duì)應(yīng)的RX Delay line值。ping成功的這段區(qū)間稱為接收窗口,同樣取其中值,作為RX Delay line的最優(yōu)值。

最后把Delay line最優(yōu)值設(shè)置,添加到設(shè)備樹的gmac節(jié)點(diǎn)中,固化Delay line,完成Delay line的配置。要注意的是,使用RGMII接口連接千兆PHY時(shí),只要硬件存在差別,都需要重新做一次Delay line的配置。

另外可以調(diào)整Delay line也不代表硬件不需要做等長(zhǎng)Layout;如果不做等長(zhǎng),意味著時(shí)鐘信號(hào)的跳變邊沿要同時(shí)對(duì)四條數(shù)據(jù)線的相位進(jìn)行延時(shí)微調(diào),它們重疊的區(qū)域才能對(duì)數(shù)據(jù)正確采樣,但這個(gè)區(qū)域?qū)?huì)變得過窄,甚至超出Delay line延時(shí)的范圍。

7. 調(diào)整驅(qū)動(dòng)強(qiáng)度

除了配置Delay line,還可以調(diào)整RGMII的驅(qū)動(dòng)強(qiáng)度進(jìn)一步改善問題。當(dāng)使用iperf長(zhǎng)時(shí)間測(cè)試發(fā)送會(huì)掉線也可以嘗試調(diào)整驅(qū)動(dòng)強(qiáng)度。當(dāng)將驅(qū)動(dòng)強(qiáng)度調(diào)高時(shí),信號(hào)的邊沿會(huì)變得更陡峭,但與此同時(shí),過沖和振鈴也會(huì)變強(qiáng),驅(qū)動(dòng)強(qiáng)度調(diào)低時(shí),信號(hào)邊沿會(huì)變緩,但能夠減少過沖和振鈴的影響。驅(qū)動(dòng)強(qiáng)度通常只有幾個(gè)檔位(通常4或8檔),有些廠商會(huì)標(biāo)出是多少mA,有些則只標(biāo)出強(qiáng)度等級(jí),沒有具體單位,所以不用像Delay line那樣找最佳值,實(shí)測(cè)在不同強(qiáng)度下速率最高,穩(wěn)定性最好的取值即可。

AM335x升級(jí)之選

2路千兆以太網(wǎng)

3路CAN FD

支持GPMC

參考價(jià)格:319元起

致遠(yuǎn)電子

致遠(yuǎn)電子

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。

廣州致遠(yuǎn)電子股份有限公司成立于2001年,注冊(cè)資金5000萬(wàn)元,國(guó)家級(jí)高新技術(shù)認(rèn)證企業(yè),廣州市高端工控測(cè)量?jī)x器工程技術(shù)研究開發(fā)中心,Intel ECA全球合作伙伴和微軟嵌入式系統(tǒng)金牌合作伙伴。收起

查看更多

相關(guān)推薦

電子產(chǎn)業(yè)圖譜