CC2530数据包timestamp是用什么单位记录时间的?

2019-07-18 14:48发布

CC2530数据包timestamp是用什么单位记录时间的?
cc2530 Z-stack中收到的数据包格式为afIncomingMSGPacket_t ,我想知道其中uint32 timestamp; /* receipt timestamp from MAC */  所记录的mac层时间具体在哪里产生并在什么情况下记录的?并且我查看了所记录的时间,其单位不是1ms 也不是1μs,那么到底是什么时间单位记录的。。
另外这个时间能否作为节点的本地时间?又该如何调整更改呢?因为我要做节点时间同步的问题。数据结构如下
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;


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
发烧友推温针
2019-07-18 18:02
我最近也在做时间同步的项目,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来做本地时钟。

一周热门 更多>