Time Master行为
在gPTP网络中作为Time Master的节点存在着如下报文处理流程:
Time Master负责SYNC报文与Follow-Up报文的发送,SYNC报文可以通过设置参数EthTSynGlobalTimeTxPeriod来进行周期性发送,在发送SYNC报文的过程中需进行如下三个基本步骤:
通过函数 EthIf_ProvideTxBuffer来获取空闲的buffer来存储发送的数据;
如果参数EthTSynHardwareTimestampSupport设置为TRUE,那么可通过函数EthIf_EnableEgressTimeStamp来激活硬件时间戳功能;
通过调用函数Ethif_Transmit来触发报文的发送;
当参数EthTSynHardwareTimestampSupport设置为TRUE,通过调用函数EthTSyn_TxConfirmation来获取SYNC报文外发时刻的时间戳;
通过设置参数EthTSynGlobalTimeTxFollowUpOffset来决定SYNC报文发送之后多久发送Follow_Up报文,Follow_Up报文发送需经过如下两个基本步骤:
通过函数 EthIf_ProvideTxBuffer来获取空闲的buffer来存储发送的数据;
通过调用函数Ethif_Transmit来触发报文的发送;
通过函数 EthTSyn_TrcvLinkStateChg来获取当前使用的PHY状态,当PHY状态由 ETHTRCV_LINK_STATE_ACTIVE 切换成ETHTRCV_LINK_STATE_DOWN时就会重置所有时间同步报文的发送与接收状态机。
通过函数 EthTSyn_TrcvLinkStateChg来获取当前使用的PHY状态,当PHY状态由 ETHTRCV_LINK_STATE_DOWN切换成ETHTRCV_LINK_STATE_ACTIVE时就会重启所有时间同步报文的发送与接收。
可通过调用函数EthTSyn_SetTransmissionMode并设置成ETHTSYN_TX_OFF,所有发送的请求将会被禁止发送,设置成ETHTSYN_TX_ON则所有的报文发送请求均会被接受。