hello,大家好!這里是硬件那些事兒,很高興能與大家在此交流硬件的那些事兒!
加微信[mywxyhq]與作者進群溝通交流。
今天又來案例了,個人覺得還是比較經典,而且也是我工作以來第一次碰到這種問題,這個問題我們平時聽得很多,但真正碰到還是第一次,所以在這個平臺分享出來,避免大家再次踩坑。
熟悉以太網電路設計的朋友們,可能對MDI/MDIX以及極性翻轉這兩個概念不會陌生。我們先來看問題。
問題描述:一款百兆路由設備對接一款百兆NVR設備,在使用以太網網互聯的時候,發現網絡接口不能協商,通過遠程在路由設備串口里,讀取網絡接口狀態,確實顯示link down,確認問題確實存在,另也嘗試更換過網線,并沒有解決這個問題,同時兩款設備中間通過交換機連接,可以正常協商,網絡通信。如下為串口里讀取到的網絡端口狀態。
問題分析:基于NVR對接其它設備,與路由對接其它網絡設備都能正常協商,工作,因為兩款設備都是百兆設備,所以我們懷疑兩款設備的MDI接線是否標準?所使用的PHY,SW是否支持 MDI/MDIX & +/- auto crossover function?于是我們查閱路由主控規格書,明確支持MDI/MDIX。+/- 沒有明確說明。NVR設備方案未知。為了驗證這個問題,于是我們做了以下實驗。分別做一根,TX與RX交換線序的網線,和差分對內的+/-交叉的網線分別實驗。線序只修改網線的一端,另一端保持正常線序。正常線序一端我們連接電腦網口,修改線序后的網線分別連接路由和NVR測試。
路由主控關于MDI/MDIX 描述:
實驗結果:
1.使用TX與RX交換順序后的網線,分別對接路由和NVR,都可以正常協商。
2.使用差分對內的+/-交叉的網線,分別對接路由和NVR,發現路由是可以正常協商,但是NVR無法正常協商。
3.使用差分對內的+/-交叉的網線,用路由與NVR互連,發現可以正常協商。
實驗推測:
1.路由設備是支持MDI/MDIX 自動翻轉功能和差分對內 +/-極性自動翻轉功能。
2.NVR設備支持MDI/MDIX 自動翻轉功能,不支持差分對內 +/-極性自動翻轉功能。
原因分析:
1.基于以上的實驗結論,我們檢查路由的原理圖設計發現SW 的出線出現了差分對內TX/RX ,以及P/N 的交叉。結合后面到RJ45的實際走線,以及layout對比,發現TX,RX接線是符合規范的,但是差分對內的+/-確實反接了。
2.基于以上路由的網絡接口設計交叉了P/N.這在實際應用中就要求與該設備對接的設備也必須支持+/-極性翻轉這個功能,如果對端不支持,就會出現不能協商的問題,而這次遇到的NVR因為是百兆方案,可能方案比較舊,正好不支持這個功能,于是就出現前面反饋的問題。
總結:
1.從PHY 和SWITCH的發展歷史看,最開始的芯片確實存在不支持MDI/MDIX 以及+/-極性翻轉功能。隨著技術的迭代,目前絕大部分芯片已經支持這兩個功能。
2.在實際現網應用中,如果一端設備出現了反接,要保證仍然可以正常使用,需要兩端設備都支持MDI/MDIX 以及+/-極性翻轉功能。
3.我們在做網口設計時,除非特殊情況,我們最好是按標準來設計,比如百兆網口1236就對應RX+,RX-,TX+,TX-。即使我們使用的芯片支持MDI/MDIX 與極性自動翻轉,也不要隨意改變,這樣可以保證我們兼容市面上所有的設備。
關于這個問題,我們是聽得多,遇到少。歡迎留言討論!