24口交换机SYNC模块学习

本文探讨了IEEE1588标准在FPGA上的实现,用于时间统一和最佳主时钟选择。详细介绍了主从设备模式下时间同步的流程,包括SYNC帧的发送接收与BRAM表更新,以及系统主时钟失效后的处理机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

IEEE1588实现时间统一和软件实现最佳主时钟选择。

已实现:FPGA实现时间统一和软件实现最佳主时钟选择。

新需求:原软件实现的最佳主时钟选择由FPGA实现。

(1)单一子网主时钟方法

     最佳主时钟算法?后文是否会有?

硬件实现时间同步

(1)主设备模式

周期性发一次SYNC帧,自身设备信息存放在BRAM。

发完SYNC帧后开始接受其他设备的SYNC帧,先判断接受的SYNC帧是否与自身的时钟ID相等,若相等,直接丢掉该SYNC帧。然后判断该SYNC帧;是否为优先级最高的主时钟。若是,转发该SYNC帧,然后进行时间同步,并更新BRAM表。若不是,则转发该SYNC帧并更新BRAM表项。

(2)从设备模式

相比主设备模式少了周期性发送SYNC这一项。其余步骤相同。

(3)系统主时钟无法工作

      (a)300ms计时,超出未收到SYNC认为失效,并从BRAM中选出优先级最高的时钟作为主时钟。

      (b)当主时钟恢复正常,先与BRAM表中优先级最高的时钟进行时间同步然后周期性发送自身的SYNC帧。

系统框图:

每个设备有19个端口接受FIFO中的SYNC帧,先有数据调度模块负责调度,进入时间同步模块,时间同步模块进行转发SYNC帧(发送SYNC模块)。

 

 

软件配置寄存器(需要注意的寄存器):

sync_id_reg:优先级最高的device_id。原设计中这个寄存器由上位机配下来,现由FPGA维护,上位机能够读取。

config_finish_reg:默认0x00000000,软件配置为0xCCCCCCCC,使得FPGA识别配置。FPGA识别后清空0x00000000.在配置改变时软件可以进行二次配置,此时模块将被重置。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值