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