关注、星标公众号,直达精彩内容

来源:https://blog.csdn.net/yaojiawan/article/details/12442778

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<GTX<GTH<GTZ。GTP被用于A7系列,GTZ被用于少数V7系列。从K7到V7,最常见的是GTX和GTH,GTH的最高线速比GTX稍微高一点点。

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.

使用高通atheros AR8031 芯片

  • Linux 下访问mdio 的方法

测试程序

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

使用AXI 1G/2.5G Ethernet Subsystem

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

结束语

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

‧  END  

 你的每个在看,都是对作者最大的支持~  

ZYNQ 实现IEEE1588方法相关推荐

  1. ZYNQ 常见问题解决方法

    ZYNQ 常见问题解决方法 0 BD文件更改后,需要做以下三步 1 SDK里面无法识别cos .sqrt等函数,如何解决 2 如何显示行数 3 如何批量注释 4 project explorer窗口被 ...

  2. ZYNQ TTC使用方法

    目录 前言 平台 Features Block Diagram 直接上应用代码 定时器初始化 注册中断函数 前言 计时器是嵌入式编程中最常使用的模块了,本文介绍下ZYNQ中定时器的使用,大部分内容参照 ...

  3. Vitis-AI集成

    Vitis-AI集成 Vitis-AI是Xilinx的开发堆栈,用于在Xilinx平台(包括边端设备和Alveo卡)上进行硬件加速的AI推理.它由优化的IP,工具,库,模型和示例设计组成.设计时考虑到 ...

  4. 在 Oracle Enterprise Linux 和 iSCSI 上构建您自己的 Oracle RAC 11g 集群

    作者:Jeffrey Hunter 了解如何以低于 2,700 美元的费用在 Oracle Enterprise Linux 上安装并配置 Oracle RAC 11g 第 2 版开发集群. 本指南中 ...

  5. Java面试题大全2021版

    一.Java 基础 JDK 和 JRE 有什么区别? JDK:Java Development Kit 的简称,java 开发工具包,提供了 java 的开发环境和运行环境. JRE:Java Run ...

  6. zynq平台,PS 与 PL共享内存的方法

    开发环境:Ubuntu18.04 软件环境:Linux内核.uboot源码及FPGA程序 硬件环境:zynq 开发板 mz7100 关于本文中所述问题,PS(arm Linux)与(FPGA) 共享的 ...

  7. 学会Zynq(5)GPIO中EMIO的使用方法

    之前的Hello World和MIO使用都算是纯PS部分,也就是把Zynq单纯地当作ARM使用.很多人都是因为FPGA+ARM架构才使用的Zynq,有两个关键问题容易引起初学者的兴趣:(1).如何用P ...

  8. YOLO算法的ZYNQ移植尝试(SDx方法、ARM部分)

    尝试直接从官网移植 1. 需要将include/darknet.h文件copy到src 2. 发现老是报错,说代码有问题network net = parse_network_cfg(cfgfile) ...

  9. zynq 加载bit方法总结

    版权属于原作者,此处转载不涉及任何利益,仅供学习交流 原文地址:http://xilinx.eetop.cn/viewnews-1887 如何在Zynq-7000上烧写PL Image 在Zynq-7 ...

  10. 基于zynq的千兆网udp项目_一种基于ZYNQ的四路万兆以太网安全交换机的制作方法...

    本实用新型涉及网络安全.网络通信技术领域,尤其是一种基于ZYNQ的四路万兆以太网安全交换机,适用于大中型企业的交换网络. 背景技术: 随着互联网的高速发展,传统的以太网交换机在功能和性能上已不能满足要 ...

最新文章

  1. 十张图看懂SDN与NFV的区别与联系?
  2. vb double显示最大精度_个人信息与对应照片同步显示系统开发
  3. ICCV 2021 | CMU朱俊彦团队:用一张草图轻松创建GAN模型
  4. mysql mysqlnd_利用mysqlnd_ms实现mysql读写分离
  5. ORA-01506: missing or illegal database name
  6. CSLA.Net 3.0.5 版本 教学程序,代码附教学注释
  7. 资源放送丨《Oracle 19c x86下移经验分享》PPT视频
  8. MIT 线性代数 Linear Algebra 25: 对称矩阵的特征值特征向量,正定矩阵
  9. android开发笔记之xml矢量图片
  10. mariadb 的安装及基本配置
  11. Nature子刊:高通量蛋白质组学方法学综述
  12. 如何实现语音转文字?这三个方法简单又实用,轻松实现语音转文字
  13. python开源搜索引擎_python语言磁力搜索引擎源码公开,基于DHT协议,十二分有技术含量的技术博客...
  14. vue一维码,二维码生成
  15. 【Nuxt】nuxtjs脚手架的安装及问题解决
  16. 手动引入jar包,解决Dependency ‘XXX‘ not found的两种方式
  17. Android程序员的十大转型之路
  18. 小米运动同步到Google Fit健身, 解决睡眠和体重不同步的情况
  19. 最新软件测试面试题(含答案)
  20. 市场全线暴跌,ETC 难逃「末日战车」魔咒?

热门文章

  1. 平行坐标图:高维数据可视化必备图形
  2. 开源1A锂电池充电板TP4056原理图
  3. 【持续更新】一些常用的网站分享(智能教育装备、智能机器人行业)
  4. MySQL数据表操作思维导图
  5. 2022-2027年中国虾养殖行业市场调研及未来发展趋势预测报告
  6. logistic回归分析优点_一文详尽系列之逻辑回归
  7. 工程测量计算机在线用,工程测量中的计算机编程新技术.doc
  8. rtmp协议 java_rtmp协议详解 (一) handshake
  9. 云开发地铁路线图小程序源码和配置教程
  10. java mysql sqlhelper_SQLHelper 的 java版本 - 转载