This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
doc:lps:tdoa3:protocol [2018-05-02 14:31] kristoffer |
doc:lps:tdoa3:protocol [2020-05-12 14:08] (current) kimberly |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== TDoA Anchor protocol V3 (experimental) ====== | ||
| - | |||
| - | <WRAP center round tip 80%> | ||
| - | **NOTE** | ||
| - | |||
| - | This is work in progress. The specifications on this page may change at any time without backwards compatibility. | ||
| + | <WRAP center round important 60%> | ||
| + | This page has deprecated and moved to the new documentation framework of the main Bitcraze website. Please go to [[https:// | ||
| </ | </ | ||
| - | This page describes the [[doc: | + | ====== |
| - | ===== System architecture | + | ===== Design goals ===== |
| - | 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 | + | 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 16: | ||
| ===== 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 38: | ||
| 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: | ||