User Tools

Site Tools


doc:lps:tdoa3:protocol

This is an old revision of the document!


TDoA Anchor protocol V3 (experimental)

NOTE

This is work in progress. The specifications on this page may change at any time without backwards compatibility.

This page describes the TDoA anchor protocol V3.

System architecture

The protocol is designed to be used with a large number of anchors covering a big area. Each anchor has a limited reach and covers only a small area, but by adding more anchors the system will be able to cover an (virtually) unlimited area. At any point in the covered area, 5-10 anchors should be within range a Tag.

Each anchor knows its own position in a global coordinate system and broadcasts this information in time stamped packets that are used by one or more Tags to estimate their position.

There is no synchronization between anchors and they have their own clocks. There is no master in the system and all anchors are equal.

Packet scheduling

Packets are transmitted at random times and collisions are handled by the system.

Packet format

There is only one packet format.

typedef struct {
    uint8_t id;            // The id of the remote anchor
    uint8_t seq;           // Sequence number of latest packet received from the remote anchor
    uint16_t distance;     // Time of flight between the current anchor and the remote anchor in radio timer ticks
    uint32_t rxTimeStamp;  // Receive time stamp of latest packet from the remote anchor
} __attribute__((packed)) remoteAnchorData_t;
 
typedef struct {
  uint8_t type;            // 0x30
  uint8_t seq;             // The sequence number of this packet
  uint32_t txTimeStamp;    // Transmission time of this packet
 
  uint8_t remoteCount;     // The number of slots in the following section that are populated with data
  remoteAnchorData_t remoteData[LOCODECK_NR_OF_TDOA3_ANCHORS];
} __attribute__((packed)) rangePacket3_t;

Tag implementation

A TDoA tag is simply an UWB sniffer. A sniffer can use the data in the packets together with the packet receive timestamps to calculate its position.

doc/lps/tdoa3/protocol.1525261502.txt.gz · Last modified: 2018-05-02 13:45 by kristoffer