基于linuxPTP如何主机同时下达采集指令(或者标志位)实现多个从机同时接到采集指令(或者标志位)
2条回答 默认 最新
关注 【相关推荐】
- 你看下这篇博客吧, 应该有用👉 :Linux下交叉编译 linuxptp
- 除此之外, 这篇博客: LinuxPTP没那么简单中的 LinuxPTP系统 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
在Linux 系统中,支持PTP协议的条件是具有支持IEEE1588/PTP的硬件。可以是MAC 层也可以是PHY 层支持IEEE1588。并且具有相应的设备驱动。
可以通过ethtool -T eth0 命令来检测系统是否硬件支持IEEE1588 协议
Time stamping parameters for eth6: Capabilities: hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE) software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE) hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE) software-receive (SOF_TIMESTAMPING_RX_SOFTWARE) software-system-clock (SOF_TIMESTAMPING_SOFTWARE) hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE) PTP Hardware Clock: 1 Hardware Transmit Timestamp Modes: off (HWTSTAMP_TX_OFF) on (HWTSTAMP_TX_ON) Hardware Receive Filter Modes: none (HWTSTAMP_FILTER_NONE) all (HWTSTAMP_FILTER_ALL)
Linux下PTP 功能实现是一个开源项目,可以在下列地址下载
linuxptp download | SourceForge.net目前已经为3.1版本
Linux PTP通过下面四个部分支持PTP协议
- 用户空间的软件实现IEEE1588协议栈和PTP时钟伺服。
- 与PHY和MAC集成的硬件时间标签单元(TSU)
- PTP硬件时钟(PHC)提供TSU的时间参考,并且通过PTP时钟伺服控制。
- Linux 内核
LinuxPTP 基本架构
从上图可见,在Linux中有两个硬件的驱动,一个是PHY/MAC ,内部带有硬件时间标签单元(TSU local time stamp unit)。另一个是PTP 硬件时钟(PHC-PTP Hardware Clock),内部的计数器称为TOD (Time of Day)。
PHY/MAC 的TSU和PHC 的相互关系如下:
这两个单元可以是同一个组件,也可以是分别的组件。最简单的方法也许是直接将系统时钟作为PHC。通过PTP协议调整系统时钟和TSU。
有些PHY/MAC器件输出的时钟频率很低,没有办法构建高速精确同步时钟。例如AR8031 只是输出一个1Hz的PPS。DP83640 能够输出10M,而STM32 MAC 产生的时钟为几百K。如果系统要求导出诸多特定的高速时钟频率(例如ADC采样频率,通信系统的时钟等等)的话,我们就需要一个独立的PHC 组件了。独立的时钟器件(PHC),可以是ASIC 芯片,也可以使用FPGA 构建。
PHY/MAC中的TSU和PHC 之间的关系如下,PHC 向TSU提供时钟,用户端协议栈提取以太网上的帧,通过伺服算法调整PHC 输出的时钟。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决 无用评论 打赏 举报
悬赏问题
- ¥15 pcl运行在qt msvc2019环境运行效率低于visual studio 2019
- ¥15 MAUI,Zxing扫码,华为手机没反应。可提高悬赏
- ¥15 求帮看看那里的问题ssh项目报错
- ¥15 python运行报错 ModuleNotFoundError: No module named 'torch'
- ¥100 华为手机私有App后台保活
- ¥15 sqlserver中加密的密码字段查询问题
- ¥20 有谁能看看我coe文件到底哪儿有问题吗?
- ¥20 我的这个coe文件到底哪儿出问题了
- ¥15 matlab使用自定义函数时一直报错输入参数过多
- ¥15 设计一个温度闭环控制系统