This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
doc:lps:tdoa3:protocol [2018-05-02 14:31] kristoffer |
doc:lps:tdoa3:protocol [2018-11-06 10:10] kristoffer |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== TDoA Anchor protocol V3 (experimental) | + | ====== TDoA Anchor protocol V3 ====== |
- | <WRAP center round tip 80%> | + | ===== Design goals ===== |
- | **NOTE** | + | |
- | This is work in progress. The specifications on this page may change at any time without backwards compatibility. | + | 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 |
- | + | ||
- | </ | + | |
- | + | ||
- | This page describes the [[doc: | + | |
- | + | ||
- | ===== 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 | + | |
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. | 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. | ||
Line 20: | Line 11: | ||
===== Packet scheduling ===== | ===== Packet scheduling ===== | ||
- | Packets are transmitted at random times and collisions are handled by the system. | + | Packets are transmitted at random times and collisions are handled by the receiving party. |
===== Packet format ===== | ===== Packet format ===== | ||
- | |||
- | There is only one packet format. | ||
< | < | ||
- | | + | |
- | Packet | + | Packet |
- | +--------+--------------------+ | + | +--------+--------------------+----------+ |
7 bytes | 7 bytes | ||
- | < | + | < |
- | 8 bits 8 bits 32 bits 8 bits | + | 8 bits 8 bits 32 bits 8 bits |
- | | + | |
- | +--------+--------+-------------+-------------+ | + | +--------+--------+-------------+-------------+ |
- | Header | + | Header |
- | +--------+--------+-------------+-------------+ | + | +--------+--------+-------------+-------------+ |
Line 44: | Line 33: | ||
8 bits 1 bit 7 bits 32 bits 0 or 16 bits | 8 bits 1 bit 7 bits 32 bits 0 or 16 bits | ||
< | < | ||
- | +--------+--------+-------------+-------------+--------------+ | + | +--------+-------------+--------+-------------+--------------+ |
Remote anchor data: | | Remote anchor data: | | ||
- | +--------+-------------+--------+-------------+--------------+ | + | +--------+-------------+--------+-------------+--------------+ |
</ | </ | ||
- | * Header | + | * **Header** |
- | * type - 0x30 | + | * **type:** 0x30 |
- | * seq - the sequence number of this packet 0 - 127 | + | * **seq:** the sequence number of this packet 0 - 127 |
- | * txTimeStamp | + | * **txTimeStamp:** transmission time of this packet |
- | * remoteCount | + | * **remoteCount:** the number of slots in the Remote Anchor Data section that are populated with data, max 8 |
- | * Remote anchor data | + | * **Remote anchor data** |
- | * id - the id of the remote anchor | + | * **id:** the id of the remote anchor |
- | * hasDistance | + | * **hasDistance:** 1 = distance data is included in the remote anchor data, total length is 8 bytes, otherwise it is 6 bytes. |
- | * seq - sequence number of latest packet received from the remote anchor 0 - 127 | + | * **seq:** sequence number of latest packet received from the remote anchor 0 - 127 |
- | * rxTimeStamp | + | * **rxTimeStamp:** receive time stamp of latest packet from the remote anchor |
- | * distance | + | * **distance:** time of flight between the current anchor and the remote anchor in radio timer ticks |
+ | * **LPP data:** See [[doc: | ||
===== Tag implementation ===== | ===== Tag implementation ===== | ||
- | A TDoA tag is simply an UWB sniffer. A sniffer can use the data in the packets together with the packet receive | + | A TDoA tag is simply an UWB sniffer. A sniffer can use the data in the packets together with the timestamps |
+ | |||
+ | ===== Calculating TDoA ===== | ||
+ | |||
+ | [[doc: | ||