IEEE1588/PTP 協議是實時工業軟件的一個重要的協議,本博文討論該協議在Xilinx Zynq 系統·上如何實現IEEE1588 協議。
ZYNQ 系統的以太網
Zynq 系統中有兩類Ethernet 接口,一種是PS 端的硬件千兆以太網,另一種是PL 實現的以太網接口。
PS 端以太網
zynq 中帶有兩個硬核千兆以太網MAC,ENET0,ENET1。與普通SOC 芯片不同,zynq PS 斷地外設可以通過MIO連接到芯片的引腳上,也可以通過EMIO 接口連接到PL 端。連接到PL端后,帶來了靈活性,可以轉換成各種接口。比如設計一個交換機。定義端其它的引腳。
PS 端MIO 引出的以太網接口是RGMII接口,可以連接具有RGMII 的Phy 芯片。
PS 端的Ethernet 透過EMIO 連接各種接口(通過1000BASE-X/SGMII PCS/PMA IP)
PL 端以太網
PL 端的以太網是通過IP核實現的。vivado 中有下列幾種以太網IP。
tri mode Ethernet MAC
AXI 1G/2.5G Ethernet Subsystem
100M/1G TSN Subsystem
其中
AXI 1G/2.5G Ethernet Subsystem 支持IEEE1588 ,但是只有在使用SGMII和SFP(small form factor pluggable)接口。并且帶有GTX 功能的Zynq 芯片才支持IEEE1588。如此看來只能在光纖接口,或者SGMII接口上實現。網絡上資料也不多。
*小貼士*
*-----------------------------------------------------------------*
*GTX*
GTX是一種就是G級速率以上的SERDES串行/解串器。Xilinx芯片里內嵌的串行/解串器GTX,GTH,GTP等模塊。
7系列中,按支持的最高線速排序,GTP
100M/1G TSN Subsystem 也支持IEEE1588 但是看上去也是比較復雜的樣子。
SGMII
SGMII協議是CISCO公司提出來的,可以減少芯片間互聯的管腳。傳統的GMII前面說了是8bits數據線,此外還需要時鐘,和一些控制線,雙向加起來要20根線左右。而SGMII接口是1根數據線加1根時鐘線,雙向共4根。如果去掉時鐘線(采用CDR),那么2根線就可以實現互聯了。
SGMII本質上并沒有對以太網協議的分層做改動,還是MAC層,PCS層和PMA層。原來GMII模式下,MAC層一般做在SOC側,PHY層包括PCS+PMA做在另一個單獨的芯片上。而SGMII的實施是將PCS層也同時放在了原來的MAC側。這樣SOC芯片和PHY芯片各有一個PCS層。
對于SOC發送來說,數據包有MAC層過來,經過tx 的pcs,從SGMII接口發送出去。在PHY芯片上,有一個rx的pcs先將SGMII的信號解出GMII信號,然后再經過傳統的PHY層處理發送到介質上。對于SOC接收來說,則反過來。
-----------------------------------------------------------------
tri mode Ethernet MAC在100Mbps 時可以使用MAC 接口,可以通過一個MAC to RMII 的IP 轉換成為RMII 接口。
IEEE1588/PTP實現方案
IEEE1588 的硬件實現的方法有兩種:
在MAC控制器中實現
在Phy 芯片中實現,比較常見的有TI 公司的DP83640 芯片
ZYNQ 中實現IEEE1588 協議的方式
筆者做了一些廠商,在PL 端使用現成的IP 支持1588 似乎只有1g/2.5g ethernet subsystem 這一種。但是它只有在帶有GT 傳輸的zynq 中使用,而且并沒有多少成功的參考。
基于本人的經驗,使用帶有IEEE1588 /PTP 功能的PHY 芯片實現,比較簡單。
使用DP83640
使用DP83640 實現IEEE1588 協議相對比較簡單。主要的問題是要通過RMII接口與DP83640 相連接。
使用rtl8211fs-vs-cg
realtek 公司的rtl8211fs-vs-cg 支持IEEE1588.注意:一定要帶有vs 后綴的才支持IEEE1588/PTP.
Linux 下訪問mdio 的方法
測試程序
我是在Z7 nano開發板的pynq 操作系統下調試通過的。
使用AXI 1G/2.5G Ethernet Subsystem
只有在使用SGMII和FDP接口。并且帶有GTX 功能的Zynq 芯片才支持IEEE1588。
結束語
筆者更傾向使用帶有IEEE1588/PTP 的PHY 芯片實現zynq 的IEEE1588
審核編輯 :李倩
-
以太網
+關注
關注
40文章
5463瀏覽量
172786 -
Zynq
+關注
關注
10文章
610瀏覽量
47311
原文標題:ZYNQ 實現IEEE1588方法
文章出處:【微信號:Hack電子,微信公眾號:Hack電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論