TI中文支持网
TI专业的中文技术问题搜集分享网站

Zstack数据包中timestamp所记录的时间

 各位工程师们你们好:

请教一个问题:

Zstack中收到的数据包格式为afIncomingMSGPacket_t ,数据结构如下

typedef struct
{
  osal_event_hdr_t hdr; /* OSAL Message header */
  uint16 groupId; /* Message's group ID – 0 if not set */
  uint16 clusterId; /* Message's cluster ID */
  afAddrType_t srcAddr; /* Source Address, if endpoint is STUBAPS_INTER_PAN_EP,
  it's an InterPAN message */
  uint16 macDestAddr; /* MAC header destination short address */
  uint8 endPoint; /* destination endpoint */
  uint8 wasBroadcast; /* TRUE if network destination was a broadcast address */
  uint8 LinkQuality; /* The link quality of the received data frame */
  uint8 correlation; /* The raw correlation value of the received data frame */
  int8 rssi; /* The received RF power in units dBm */
  uint8 SecurityUse; /* deprecated */
  uint32 timestamp; /* receipt timestamp from MAC */
  uint8 nwkSeqNum; /* network header frame sequence number */
  afMSGCommandFormat_t cmd; /* Application Data */
} afIncomingMSGPacket_t;

我想知道其中uint32 timestamp; /* receipt timestamp from MAC */  所记录的mac层时间具体在哪里产生并在什么情况下记录的?并且我查看了所记录的时间,其单位不是1ms 也不是1μs,那么到底是什么时间单位记录的。。

另外这个时间能否作为节点的本地时间?又该如何调整更改呢?因为我要做节点时间同步的问题。

望解答,感激不尽!

望解答,感激不尽!

Jin He:

烦请工程师们解答,谢谢 

Derek T:

hi, Jin He,

我最近也在做时间同步的项目,zstack数据包中的timestamp应该是接收到包的MAC层的时间。具体时间单位如下:

timestamp unit is based on a basic time unit called Backoff Period(BP)a Unit Backoff Period = the transmission time of 80bits(0.32ms)

如果精度要求比较高的话,个人觉得需要使用timer2来做本地时钟。

Jin He:

回复 Derek T:

终于有人回答了! 这个关于timestamp的介绍是在哪里看到的?  我之前一直是用timer2作为本地时钟的,因为osal系统就是用timer2计时,只不过timer2返回的是毫秒时间,我想要获取微妙级的时间,所以头疼的就在这里。不过看来timestamp的精度也不是很高,只不过我觉得它是在mac层记录时间,比在应用层记录时间更精确些吧?

Jin He:

回复 Derek T:

hi,Derek T ,能否留给联系方式呢,我公开了邮箱,欢迎一起探讨问题啊!

Derek T:

回复 Jin He:

嗯已发邮件。

赞(0)
未经允许不得转载:TI中文支持网 » Zstack数据包中timestamp所记录的时间
分享到: 更多 (0)