EDM01-06: DAG 3.7D Card User Guide
©2006
27
Version 1: March 2006
Timestamps
The ERF incorporates a hardware generated timestamp of the packet’s
arrival. The format of this timestamp is a single little-endian 64-bit fixed
point number, representing seconds since midnight on the first of January
1970.
The high 32-bits contain the integer number of seconds, while the lower
32-bits contain the binary fraction of the second. This allows an ultimate
resolution of 2
-32
seconds, or approximately 233 picoseconds.
Another advantage of the ERF timestamp format is that a difference
between two timestamps can be found with a single 64-bit subtraction. It is
not necessary to check for overflows between the two halves of the
structure as is needed when comparing Unix time structures, which are also
available to Windows user in the Winsock library.
Different DAG cards have different actual resolutions. This is
accommodated by the lowermost bits that are not active being set to zero.
In this way the interpretation of the timestamp does not need to change
when higher resolution clock hardware is available.
Example codes
Below is example code showing how a 64-bit ERF timestamp (erfts) can be
converted into a struct timeval representation (tv).
unsigned long long lts;
struct timeval tv;
lts = erfts;
tv.tv_sec = lts >> 32;
lts = ((lts & 0xffffffffULL) * 1000 * 1000);
lts += (lts & 0x80000000ULL) << 1; /* rounding
*/
tv.tv_usec = lts >> 32;
if(tv.tv_usec >= 1000000) {
tv.tv_usec -= 1000000;
tv.= 1;
}
Summary of Contents for DAG 3.7D
Page 1: ......
Page 4: ...EDM01 16 DAG3 7D Card User Guide...
Page 6: ...EDM01 16 DAG3 7D Card User Guide 2006 vi Version 1 March 2006...
Page 12: ...EDM01 06 DAG 3 7D Card User Guide 2006 6 Version 1 March 2006...
Page 13: ...EDM01 06 DAG 3 7D Card User Guide 2006 7 Version 1 March 2006...
Page 30: ...EDM01 06 DAG 3 7D Card User Guide 2006 24 Version 1 March 2006...