IRIG timecode: Difference between revisions

Content deleted Content added
External links: Fixed external links to be prettier. Deleted one that was dead.
Prettied up tables and lists. Added more detaled description of time code structure.
Line 4:
 
The different timecodes defined in the Standard have alphabetic designations. A, B, D, E, G, and H are the standards currently defined by 200-04. C was in the original specification, but was replaced by H. The main difference between codes is their rate, which varies between one pulse per minute and 10,000 pulses per second.
{|class="wikitable"
* A: 1000 PPS
|+IRIG time code
* B: 100 PPS
! Code || Bit rate || Bit time || Bits per frame || Frame time || Frame rate
* D: 1 PPM
|-
* E: 10 PPS
! A
* G: 10000 PPS
| 1000 Hz || 1 ms || 100 || 100 ms || 10 Hz
* H: 1 PPS
|-
! B
| 100 Hz || 10 ms || 100 || 1000 ms || 1 Hz
|-
! D
| 1/60 Hz || 1 minute || 60 || 1 hour || 1/3600 Hz
|-
! E
| 10 Hz || 100 ms || 100 || 10 s || 0.1 Hz
|-
! G
| 10 kHz || 0.1 ms || 100 || 10 ms || 100 Hz
|-
! H
| 1 Hz || 1 s || 60 || 1 minute || 1/60 Hz
|}
 
Other differences are:
:;Form Designation:
<ol start=0 type=1>
:0) (DCLS) Direct Current Level Shift (width coded)
<li>(DCLS) Direct Current Level Shift (width coded)</li>
:1) Sine wave carrier (amplitude modulated),
:2)<li>Sine [[Manchesterwave code|Manchester]]carrier (amplitude modulated)</li>
<li>[[Manchester code|Manchester]] modulated</li>
 
</ol>
:Carrier Resolution:
:0) No carrier (DCLS)
:1) 100 Hz (10 ms resolution)
:2) 1 kHz (1 ms resolution)
:3) 10 kHz (100 µs resolution)
:4) 100 kHz (10 µs resolution)
:5) 1 MHz (1 µs resolution)
 
;Carrier Resolution:
:Coded expressions:
<ol start=0 type=1>
:0) BCD ([[binary-coded decimal]] Day_of_year, hours, minutes, and (for some formats) seconds and fractions), CF (control functions), SBS (straight binary seconds_of_day)
<li>No carrier (DCLS)</li>
:1) BCD, CF
<li>100 Hz (10 ms resolution)</li>
:2) BCD
<li>1 kHz (1 ms resolution)</li>
:3) BCD, SBS
<li>10 kHz (100 µs resolution)</li>
:4) BCD, BCD_Year, CF, SBS
<li>100 kHz (10 µs resolution)</li>
:5) BCD, BCD_Year, CF
<li>1 MHz (1 µs resolution)</li>
:6) BCD, BCD_Year
</ol>
:7) BCD, BCD_Year, SBS
 
;Coded expressions:
<ol start=0 type=1>
<li>BCD ([[binary-coded decimal]] Day_of_year, hours, minutes, and (for some formats) seconds and fractions), CF (control functions), SBS (straight binary seconds_of_day)
<li>BCD, CF</li>
<li>BCD</li>
<li>BCD, SBS</li>
<li>BCD, BCD_Year, CF, SBS</li>
<li>BCD, BCD_Year, CF</li>
<li>BCD, BCD_Year</li>
<li>BCD, BCD_Year, SBS</li>
</ol>
The recognized signal identification numbers for each format according to the standard 200-04 consist of:
{| class="wikitable" border="1"
Line 81 ⟶ 102:
For example, one of the most common formats, IRIG B122:
IRIG B122 transmits one hundred pulses per second on an amplitude modulated 1 kHz sine wave carrier, encoding information in BCD. This means that 100 bits of information are transmitted every second. The time frame for the IRIG B standard is 1 second, meaning that one data frame of time information is transmitted every second. This data frame contains information about year (0-99), the day of the year (1-366), hours, minutes, and seconds. Information as to which century it is, is not transmitted. [[Leap second]] announcements are not provided. Although information is transmitted only once per second, a device can sychronize its time very accurately with the transmitting device by using a [[phase locked loop]]. Typical commercial devices will synchronize to within 1 microsecond using IRIG B timecodes.
 
== Time code structure ==
IRIG time code is made up of repeating frames, each containing 60 or 100 bits. The bits are numbered from 0 through 59 or 99.
 
At the start of each bit time, the IRIG time code enables a signal (sends a carrier, raises the DC signal level, or transmits Manchester 1 bits). The signal is disabled or reduced at least 3× in amplitude, at one of three times during the bit interval:
* After 0.2 of a bit time, to encode a binary 0
* After 0.5 of a bit time, to encode a binary 1
* After 0.8 of a bit time, to encode a marker bit
 
Bit 0 is the frame marker bit P<sub>r</sub>. Every 10th bit starting with bit 9, 19, 29, ... 99 is also a marker bit, known as position identifiers P<sub>1</sub>, P<sub>2</sub>, ..., P<sub>9</sub>, P<sub>0</sub>. Thus, two marker bits in a row (P<sub>0</sub> followed by P<sub>r</sub>) marks the beginning of a frame. The frame encodes the time of the leading edge of the frame marker bit.
 
All other bits are data bits, which are transmitted as binary 0 if they have no other assigned purpose.
 
Generally, groups of 4 bits are used to encode BCD digits. Bits are assigned little-endian within fields.
* Bits 1–4 encode seconds, and bits 6–8 encode tens of seconds (0–59)
* Bits 10–13 encode minutes, and bits 15–17 encode tens of minutes (0–59)
* Bits 20–23 encode hours, and bits 25–26 encode tens of hours (0–23)
* Bits 30-33 encode [[Ordinal date|day of year]], 35-38 encode tens of days, and bits 40–41 encode hundreds of days (1–366)
* Bits 45–48 encode tenths of seconds (0–9)
* Bits 50–53 encode years, and bits 55–58 encode tens of years (0–99)
* Bits 80–88 and 90–97 encode "straight binary seconds" since 00:00 on the current day (0–86399, not BCD)
 
In IRIG G, bits 50–53 encode hundredths of seconds, and the years are encoded in bits 60–68.
 
Not all formats include all fields. Obviously those formats with 60-bit frames omit the straight binary seconds fields, and digits representing divisions less than one frame time (everything below hours, in the case of IRIG D) are always transmitted as 0.
 
No parity or check bits are included. Error detection can be achieved by comparing consecutive frames to see if they encode consecutive timestamps.
 
Unassigned 9-bit fields between consecutive marker bits are available for user-defined "control functions".
 
==References==
*[https://wsmrc2vger.wsmr.army.mil/rcc/manuals/200-04/TT-45.pdf IRIG standard 200-04 (PDF)]