User Tools

Site Tools


doc:lps:tdoa3:protocol

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

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://www.bitcraze.io/documentation/system/]]
 </WRAP> </WRAP>
  
-This page describes the [[doc:lps:tdoa3|TDoA]] anchor protocol V3.+====== TDoA Anchor protocol V3 ======
  
-===== 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 will be able to cover an (virtually) unlimited area. At any point in the covered area, 5-10 anchors should be within range of a Tag. +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 can cover an (virtually) unlimited area. At any point in the covered area, 5-10 anchors should be within range of 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. 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.  
  
 <ditaa> <ditaa>
-              +--------+--------------------+ +                    +--------+--------------------+----------+ 
-Packet    :   | Header | Remote anchor data | +Packet    :         | Header | Remote anchor data | LPP data | 
-              +--------+--------------------++                    +--------+--------------------+----------+
  
                                   7 bytes                                   7 bytes
-               <-------------------------------------------> +                     <-------------------------------------------> 
-                8 bits   8 bits     32 bits       8 bits +                      8 bits   8 bits     32 bits       8 bits 
-               <------> <------> <-----------> <-----------> +                     <------> <------> <-----------> <-----------> 
-              +--------+--------+-------------+-------------+ +                    +--------+--------+-------------+-------------+ 
-Header    :   |  type  |  seq   | txTimeStamp | remoteCount | +Header    :         |  type  |  seq   | txTimeStamp | remoteCount | 
-              +--------+--------+-------------+-------------++                    +--------+--------+-------------+-------------+
  
    
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: |   id   | hasDistance |  seq   | rxTimeStamp |   distance   | Remote anchor data: |   id   | hasDistance |  seq   | rxTimeStamp |   distance   |
-                    +--------+-------------+--------+-------------+--------------++                    +--------+-------------+--------+-------------+--------------+                                                            
 </ditaa> </ditaa>
  
-* 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 transmission time of this packet +    * **txTimeStamp:** transmission time of this packet 
-  * remoteCount the number of slots (max 8) in the following section that are populated with data +    * **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 1 = distance data is included in the remote anchor data, total length is 8 bytes, otherwise it is 6 bytes. +    * **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 receive time stamp of latest packet from the remote anchor +    * **rxTimeStamp:** receive time stamp of latest packet from the remote anchor 
-  * distance time of flight between the current anchor and the remote anchor in radio timer ticks+    * **distance:** time of flight between the current anchor and the remote anchor in radio timer ticks 
 +  * **LPP data:** See [[doc:lps:lpp#lpp_short_packets|LPP short packet description]]
  
 ===== 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 timestamps to calculate its position.+A TDoA tag is simply an UWB sniffer. A sniffer can use the data in the packets together with the timestamps when packets are received to calculate its position. 
 + 
 +===== Calculating TDoA ===== 
 + 
 +[[doc:lps:tdoa:principles|Please see TDoA positioning principles]]
  
doc/lps/tdoa3/protocol.1525264319.txt.gz · Last modified: 2018-05-02 14:31 by kristoffer