Synchronizing USRP Events Using Timed Commands in UHD
Contents
Application Note Number
AN-TC
Revision History
Date | Author | Details |
---|---|---|
2020-02-10 | Sam Reiter | Initial creation |
Abstract
This AN discusses Timed Commands in UHD. We will explore usecases, theory of operation, and examples of timed command use in UHD 3.x.
Timed Commands: Overview and Usecases
- A
- B
- C
- D
- E
- F
- G
- H
- I
- J
- k
Clocking and Timekeeping in the USRP
CHDR Packet Types and Structure
CHDR or "Compressed Header" packets are a derivative of the VITA 49 (VRT) protocol. While the CHDR protocol is proprietary to USRP devices, mapping to and from VITA-49 is a trivial task. All packet routing in b2xx and "Gen 3" USRPs uses the CHDR protocol.
There are 4 types of packets used in the USRP:
- Data
- Flow Control
- Command
- Command Response
The type of packet is determined by the state of bits 63 and 62 in the CHDR header. See UHD Manual: Radio Transport Protocols for more information on CHDR structure.
All of these packet types have a single bit (61) used to denote whether an optional timestamp is included. If present, a timestamp is a 64-bit value representing an absolute time value. In this application note, we’re concerned with the use and functionality of command packets with a timestamp present, also known as “Timed Commands”.
VITA Time
The next topic to cover is the VITA time. This time value (denoted as vita_time) is a 64-bit counter driven by the USRP's FPGA base clock. vita_time is used as an absolute time reference for the radio and is local to the Radio Core of the USRP's FPGA. We'll discuss more about the Radio Core below.