ptp1588中linux内核驱动phc框架

一、介绍

本文基于linux内核5.10.xxx总结ptp1588精确时间协议实现过程中,内核部分的8A34002实现的phc(PTP hardware clock)驱动支持;

ptp的系统框架

在这里插入图片描述
.红圈部分为本笔记总结的phc驱动的部分;
.紫圈为用户层的ptp协议栈,如开源的ptp4l;
.蓝圈为集成在用户层ptp协议栈中时钟伺服控制部分,会根据ptp主时钟和本地时间的差值采用pid算法,调用linux的中的通用接口去控制phc驱动进行本地时间和频率的调整,进而和主时钟进行同步;
.红圈中的phc主要作用为通过用户空间的时钟伺服逻辑控制phc驱动进行微调时间递增的频率,实现phc功能的芯片如瑞萨的8A34002;
.MAC部分内置支持TSU时间标签单元寄存器时,时间信息可以在ptp数据包接收和发送的时机从TSU中获取或者调整TSU的时间;
.图中phc和mac中都有TSU时间标签单元,但是mac中的时间标签和通过网络传输过来的数据在驱动上更好集成时间精度更高,图中的方案是phc部分产生时钟频率,mac中的TSU以外部的时钟频率进行时间计时;

二、PHC驱动文件

1、ptp_chardev.c

实现结构struct posix_clock_operations *ops中的部分函数如下标注接口;

struct posix_clock_operations
{
struct module *owner;
int (*clock_adjtime)(struct posix_clock *pc, struct __kernel_timex *tx);
int (*clock_gettime)(struct posix_clock *pc, struct timespec64 *ts);
int (*cloc

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值