0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Xilinx Zynq系统·上如何实现IEEE1588协议

倩倩 来源:CSDN 作者:CSDN 2022-09-23 15:19 次阅读

IEEE1588/PTP 协议是实时工业软件的一个重要的协议,本博文讨论该协议在Xilinx Zynq 系统·上如何实现IEEE1588 协议。

ZYNQ 系统的以太网

Zynq 系统中有两类Ethernet 接口,一种是PS 端的硬件千兆以太网,另一种是PL 实现的以太网接口。

2797830a-3afd-11ed-9e49-dac502259ad0.png

PS 端以太网

zynq 中带有两个硬核千兆以太网MAC,ENET0,ENET1。与普通SOC 芯片不同,zynq PS 断地外设可以通过MIO连接到芯片的引脚上,也可以通过EMIO 接口连接到PL 端。连接到PL端后,带来了灵活性,可以转换成各种接口。比如设计一个交换机。定义端其它的引脚。

PS 端MIO 引出的以太网接口是RGMII接口,可以连接具有RGMII 的Phy 芯片。

27a57942-3afd-11ed-9e49-dac502259ad0.png

PS 端的Ethernet 透过EMIO 连接各种接口(通过1000BASE-X/SGMII PCS/PMA IP)

27da7958-3afd-11ed-9e49-dac502259ad0.png

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 相连接。

27e6c47e-3afd-11ed-9e49-dac502259ad0.png

使用rtl8211fs-vs-cg

realtek 公司的rtl8211fs-vs-cg 支持IEEE1588.注意:一定要带有vs 后缀的才支持IEEE1588/PTP.

27ff46b6-3afd-11ed-9e49-dac502259ad0.png

使用高通atheros AR8031 芯片

2816836c-3afd-11ed-9e49-dac502259ad0.png

Linux 下访问mdio 的方法

测试程序

28314d1e-3afd-11ed-9e49-dac502259ad0.png

我是在Z7 nano开发板的pynq 操作系统下调试通过的。

使用AXI 1G/2.5G Ethernet Subsystem

只有在使用SGMII和FDP接口。并且带有GTX 功能的Zynq 芯片才支持IEEE1588。

结束语

笔者更倾向使用带有IEEE1588/PTP 的PHY 芯片实现zynq 的IEEE1588

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    40

    文章

    5064

    浏览量

    166159
  • Zynq
    +关注

    关注

    9

    文章

    598

    浏览量

    46594

原文标题:ZYNQ 实现IEEE1588方法

文章出处:【微信号:Hack电子,微信公众号:Hack电子】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    简谈Xilinx Zynq-7000嵌入式系统设计与实现

    今天给大侠带来简谈Xilinx Zynq-7000嵌入式系统设计与实现,话不多说,上货。 Xilinx
    发表于 04-10 16:00

    如何实现PTP协议的精准同步时钟?

    尊敬的技术大牛们,你们好! 现有一项目需要用到贵公司的STM32F4系列产品,由于业务场景对时钟同步精度要求很高。所以需寻求你们的技术支撑,提供关于STM32F4系列的PTP协议IEEE1588协议的参考代码!以便
    发表于 03-26 07:57

    STM32 IEEE1588时间同步

    有谁在STM32实现IEEE1588精确时间同步的吗?
    发表于 02-23 16:22

    虹科干货 | 适用于基于FPGA的网络设备的IEEE 1588透明时钟架构

    IEEE 1588透明时钟(TC)架构,帮助您实现精确时间同步和高效通信。 在分布式系统中,传感器/执行器的事件和操作需要进行精确的时间协调,因为时钟差异可能导致操作失败。为了确保时
    的头像 发表于 11-27 10:57 549次阅读
    虹科干货 | 适用于基于FPGA的网络设备的<b class='flag-5'>IEEE</b> <b class='flag-5'>1588</b>透明时钟架构

    适用于基于FPGA的网络设备的IEEE 1588透明时钟架构

    IEEE1588透明时钟(TC)架构,帮助您实现精确时间同步和高效通信。在分布式系统中,传感器/执行器的事件和操作需要进行精确的时间协调,因为时钟差异可能导致操作失败。
    的头像 发表于 11-23 08:04 247次阅读
    适用于基于FPGA的网络设备的<b class='flag-5'>IEEE</b> <b class='flag-5'>1588</b>透明时钟架构

    请问W5500芯片是否支持IEEE1588

    请问W5500芯片是否支持IEEE1588,如果支持的话是否可以提供一段代码参考。显示全部
    发表于 11-03 06:04

    基于TMS320DM642的硬件实现IEEE1588时钟同步

    电子发烧友网站提供《基于TMS320DM642的硬件实现IEEE1588时钟同步.pdf》资料免费下载
    发表于 10-26 09:05 1次下载
    基于TMS320DM642的硬件<b class='flag-5'>实现</b><b class='flag-5'>IEEE1588</b>时钟同步

    IEEE1588时钟同步在PTN网中的实现

    电子发烧友网站提供《IEEE1588时钟同步在PTN网中的实现.pdf》资料免费下载
    发表于 10-24 09:39 0次下载
    <b class='flag-5'>IEEE1588</b>时钟同步在PTN网中的<b class='flag-5'>实现</b>

    浅谈网络精确时间同步—PTP(IEEE1588)

    IEEE1588(the Precision Time Protocol 简称为 PTP )全称是“网络测量和控制系统的精密时钟同步协议标准”,是针对基于工业以太网的测控系统的时间同步
    的头像 发表于 10-09 10:58 3043次阅读
    浅谈网络精确时间同步—PTP(<b class='flag-5'>IEEE1588</b>)

    中国唯一参会企业!赛思ISPCS 2023伦敦展圆满收官!

    一年一度的IEEE1588精密时钟同步测量、控制和沟通国际研讨会(简称ISPCS)于2023年9月18日-22日在英国伦敦国家物理实验室举行。赛思如期与会,与全球伙伴共同探讨时钟同步技术以及基于同步
    的头像 发表于 09-28 11:39 914次阅读
    中国唯一参会企业!赛思ISPCS 2023伦敦展圆满收官!

    Xilinx Zynq7035算力指标

    本文介绍广州星嵌DSP C6657+Xilinx Zynq7035平台下Xilinx Zynq7035算力指标。
    的头像 发表于 07-07 14:15 829次阅读
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>Zynq</b>7035算力指标

    Xilinx ZYNQ UltraScale+系列产品介绍

    Zynq UltraScale+MPSoC是Xilinx推出的第二代多处理SoC系统,它在第一代Zynq-7000的基础上进行了全面升级。
    的头像 发表于 06-09 10:07 1769次阅读
    <b class='flag-5'>Xilinx</b> <b class='flag-5'>ZYNQ</b> UltraScale+系列产品介绍

    s32grdb3PFE2的IEEE1588无法工作怎么解决?

    我将使用 BSP35 VxWorks 的 s32grdb3 板启用 PFE 的 IEEE1588,我正在使用 PFE2。 我调用此函数 pfe_emac_enable_ts()
    发表于 06-01 06:50

    IMX8MM IEEE 1588 PTP输出测试,当我启用pps时没有精确的1 pps如何解决?

    目前我正在研究 IEEE 1588 PTP 输出验证,我观察到当我启用 pps 时没有精确的 1 pps。在我看来,理想情况下应该是 1pps。谁能帮我解决这个问题?
    发表于 05-29 06:43

    以太网通信硬件电路实现设计方案

    CPU采用的是恩智浦的i.MX6系列单片机,cortex-A9内核,主频1个G。CPU集成以太网控制器(MAC),硬件集成IEEE1588协议。严格来讲,这款单片机属于ARM,能跑Linux操作系统
    发表于 05-15 11:30 674次阅读
    以太网通信硬件电路<b class='flag-5'>实现</b>设计方案