IRIG timecode: Difference between revisions

Content deleted Content added
No edit summary
simplify link
 
(110 intermediate revisions by 48 users not shown)
Line 1:
{{Short description|Standard formats for transferring time information}}
'''Inter-range instrumentation group time codes''', commonly known as '''IRIG timecodes''', were created by the TeleCommunications Working Group of the [[IRIG|Inter-Range Instrumentation Group]], the standards body of the [[Range Commanders Council]]. Work on these standards started in October 1956, and the original standards were accepted in 1960.
 
'''Inter-range instrumentation group timecodes''', commonly known as '''IRIG timecode''', are standard formats for transferring timing information. Atomic frequency standards and [[GPS receiver]]s designed for precision timing are often equipped with an IRIG output. The standards were created by the Tele Communications Working Group of the U.S. military's [[Inter-Range Instrumentation Group]] (IRIG), the standards body of the [[Range Commanders Council]]. Work on these standards started in October 1956, and the original standards were accepted in 1960.
The original formats were described in IRIG Document 104-60, later revised and reissued in August 1970 as IRIG Document 104-70, upgraded later that year as the IRIG Document to the status of a Standard, IRIG Standard 200-70. The latest version of the Standard is IRIG Standard 200-04.
 
The original formats were described in IRIG Document 104-60, later revised and reissued in August 1970 as IRIG Document 104-70, upgraded later that year as the IRIG Document to the status of a Standard, IRIG Standard 200-70. The latest version of the Standard is IRIG Standard 200-16 from August 2016.
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"
== Timecodes ==
|+IRIG time code
The different timecodes defined in the Standard have alphabetic designations. A, B, D, E, G, and H are the standards currently defined by IRIG Standard 200-04.
 
The main difference between codes is their rate, which varies between one pulse per minute and 10,000 pulses per second.
 
{|class="wikitable sortable"
|+IRIG timecode
! Code || Bit rate || Bit time || Bits per frame || Frame time || Frame rate
|-
! A
| 1000  Hz || 1 ms || 100 || 1000.1 mss || 10  Hz
|-
! B
| 100  Hz || 10 ms || 100 || 10001 mss || 1  Hz
|- style="text-decoration:line-through"
! C{{efn-ua|name=CH}}
| 2 Hz || 0.5 s || 120 || 60 s || {{frac|60}} Hz
|-
! D
| 1/{{frac|60 }} Hz || 160000 minutems || 60 || 13600 hours || 1/{{frac|3600 }} Hz
|-
! E
| 10  Hz || 100 ms || 100 || 10 s || 0.1  Hz
|-
! G
| 10 kHz10000 Hz || 0.1 ms || 100 || 100.01 mss || 100  Hz
|-
! H
| 1  Hz || 11000 sms || 60 || 160 minutes || 1/{{frac|60 }} Hz
|}
 
{{notelist-ua|name=CH|refs=
Other differences are:
{{efn-ua|name=CH|C<ref>{{cite tech report |url=https://apps.dtic.mil/sti/pdfs/ADA000295.pdf |archive-url=https://web.archive.org/web/20130408112407/http://www.dtic.mil/cgi-bin/GetTRDoc?AD=ADA000295 |url-status=live |archive-date=April 8, 2013 |format=pdf |title=Special Hardware for ARL Analysis of ACODAC Data |first1=Richard O. |last1=Grohman |first2=Larry L. |last2=Mellenbruch |first3=Felix J. |last3=Sowic |date=1974-03-14 |publisher=Texas University at Austin |id=ARL-TM-74-12 |access-date=2011-12-23 | df = dmy-all }}</ref><ref>{{cite book | title = Handbook of Time Code Formats | url = http://www.vk7krj.com/ham_stuff_pics/Handbook_of_Time_Code_Formats.pdf | publisher = Datum Inc. | edition = Seventh | year = 1987 | page = 18 | access-date = 2024-03-18 | archive-url = https://web.archive.org/web/20230308040915/https://www.vk7krj.com/ham_stuff_pics/Handbook_of_Time_Code_Formats.pdf | archive-date = 2023-03-08 | url-status = live | via = vk7krj.com | df = dmy-all}}</ref> was in the original specification, but was replaced by H.}}
;Form Designation:
}}
 
The bits are modulated on a carrier. A three-digit suffix specifies the type and frequency of the carrier, and which optional information is included:
 
;Modulation type:
<ol start=0 type=1>
<li>(DCLS) [[Direct Currentcurrent|DC]] Levellevel Shiftshift (DCLS) ([[Pulse-width modulation|pulse width coded]] without carrier)</li>
<li>Sine wave carrier ([[amplitude modulated]])</li>
<li>[[Manchester code|Manchester]] modulated</li>
</ol>
 
;[[Carrier Resolutionfrequency]]:
<ol start=0 type=1>
<li>No carrier (DCLS)</li>
<li>100 &nbsp;Hz (10 ms resolution)</li>
<li>1 &nbsp;kHz (1 ms resolution)</li>
<li>10 &nbsp;kHz (100 µsμs resolution)</li>
<li>100 &nbsp;kHz (10 µsμs resolution)</li>
<li>1 &nbsp;MHz (1 µsμs resolution)</li>
</ol>
 
;Coded expressions:
:[[Binary-coded decimal|Binary-coded decimal (BCD)]] day of year, hours, minutes, and (for some formats) seconds and fractions are always included. Optional components are:
<ol start=0 type=1>
:* Year number (00–99; century is not coded)
<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)
:* User-defined "control functions (CF)" occupying bits not defined by IRIG
<li>BCD, CF</li>
:* "Straight binary seconds (SBS)", a 17-bit binary counter that counts from 0 to 86399.
<li>BCD</li>
:The types are:<ol start=0 type=1><!--
<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><!--
--><li>BCD, BCD_Year, CF, SBS</li><!--
</ol>
--><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"
|+ Permissible Code Formats
! Format
! Modulation FrequencyType
! Carrier Frequency / Resolution
! Coded Expressions
|-
! A
| 0,1,2
| 0,3,4,5
| 0,1,2,3,4,5,6,7
|-
! B
| 0,1,2
| 0,2,3,4,5
| 0,1,2,3,4,5,6,7
|-
! D
| 0,1
| 0,1,2
| 1,2
|-
! E
| 0,1
| 0,1,2
| 1,2,5,6
|-
! G
| 0,1,2
| 0,4,5
| 1,2,5,6
|-
! H
| 0,1
| 0,1,2
| 1,2
|}
 
Thus the complete signal identification number consists of one letter and three digits. E.g.For example, the signal designated as B122 is deciphered as follows: Format B, Sine wave (amplitude modulated), 1&nbsp;kHz carrier, and Coded expressions BCDTOY.
1 kHz carrier/1 ms resolution, and Coded expressions BCDTOY.
 
The most commonly used of the standards is IRIG B, then IRIG A, then probably IRIG G. Time codeTimecode formats directly derived from IRIG H are used by [[National Institute of Standards and Technology|NIST]] [[radio station]]s [[WWV (radio station)|WWV]], [[WWVH]] and [[WWVB]].
 
For example, one of the most common formats, IRIG B122:
:IRIG B122 transmits one hundred pulses per second on an amplitude modulated 1 &nbsp;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-3661–366), hours, minutes, and seconds. Year Informationnumbers asare tonot whichincluded, centuryso itthe is,timecode isrepeats not transmittedannually. [[Leap second]] announcements are not provided. Although information is transmitted only once per second, a device can sychronizesynchronize its time very accurately with the transmitting device by using a [[phase -locked loop]]. to synchronize to the carrier. Typical commercial devices will synchronize to within 1 microsecond using IRIG B timecodes.
 
== Time codeTimecode structure ==
IRIG time codetimecode 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 codetimecode enables a signal (sends a carrier, raises the DC signal level, or transmits Manchester 1 bits). The signal is disabled or(carrier reducedattenuated at least 3×, inDC amplitudesignal level lowered, or Manchester 0 bits transmitted), 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
Line 113 ⟶ 131:
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.
Line 119 ⟶ 137:
* 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)
Line 130 ⟶ 148:
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". For example, the [[IEEE 1344]] standard defines functions for bits 60–75.
 
==References IRIG timecode ==
{|class=wikitable style="text-align:center;"
*[https://wsmrc2vger.wsmr.army.mil/rcc/manuals/200-04/TT-45.pdf IRIG standard 200-04 (PDF)]
|+ IRIG A time code structure
! Bit || Weight || Meaning
|rowspan=21|
! Bit || Weight || Meaning
|rowspan=21|
! Bit || Weight || Meaning
|rowspan=21|
! Bit || Weight || Meaning
|rowspan=21|
! Bit || Weight || Meaning
|-
|bgcolor=lightpink| 00 ||bgcolor=lightpink| P<sub>r</sub> ||bgcolor=lightpink| Frame marker
| 20 || 1 ||rowspan=7| Hours<br/>(0–23)
| 40 || 100 ||rowspan=2| Day of year<br/>(1–366)
|bgcolor=lightgrey| 60 ||bgcolor=lightgrey| 0 ||rowspan=9 bgcolor=lightgrey| Unused,<br/>available for<br/>Control<br/>Functions
| 80 || 1 ||rowspan=18| Straight<br/>Binary<br />Seconds<br/>(0–86399)
|-
| 01 || 1 ||rowspan=8| Seconds<br/> (00–59)
| 21 || 2
| 41 || 200
|bgcolor=lightgrey| 61 ||bgcolor=lightgrey| 0
| 81 || 2
|-
| 02 || 2
| 22 || 4
|bgcolor=lightgrey| 42 ||bgcolor=lightgrey| 0 ||rowspan=3 bgcolor=lightgrey| Unused
|bgcolor=lightgrey| 62 ||bgcolor=lightgrey| 0
| 82 || 4
|-
| 03 || 4
| 23 || 8
|bgcolor=lightgrey| 43 ||bgcolor=lightgrey| 0
|bgcolor=lightgrey| 63 ||bgcolor=lightgrey| 0
| 83 || 8
|-
| 04 || 8
|bgcolor=lightgrey| 24 ||bgcolor=lightgrey| 0
|bgcolor=lightgrey| 44 ||bgcolor=lightgrey| 0
|bgcolor=lightgrey| 64 ||bgcolor=lightgrey| 0
| 84 || 16
|-
|bgcolor=lightgrey| 05 ||bgcolor=lightgrey| 0
| 25 || 10
| 45 || 0.1 ||rowspan=4|Tenths of seconds<br/>(0.0–0.9)
|bgcolor=lightgrey| 65 ||bgcolor=lightgrey| 0
| 85 || 32
|-
| 06 || 10
| 26 || 20
| 46 || 0.2
|bgcolor=lightgrey| 66 ||bgcolor=lightgrey| 0
| 86 || 64
|-
| 07 || 20
|bgcolor=lightgrey| 27 ||bgcolor=lightgrey| 0 ||rowspan=2 bgcolor=lightgrey| Unused
| 47 || 0.4
|bgcolor=lightgrey| 67 ||bgcolor=lightgrey| 0
| 87 || 128
|-
| 08 || 40
|bgcolor=lightgrey| 28 ||bgcolor=lightgrey| 0
| 48 || 0.8
|bgcolor=lightgrey| 68 ||bgcolor=lightgrey| 0
| 88 || 256
|- bgcolor=lightpink
| 09 || P<sub>1</sub> || Position identifier
| 29 || P<sub>3</sub> || Position identifier
| 49 || P<sub>5</sub> || Position identifier
| 69 || P<sub>7</sub> || Position identifier
| 89 || P<sub>9</sub>
|-
| 10 || 1 ||rowspan=8| Minutes<br/>(00–59)
| 30 || 1 ||rowspan=9| Day of year<br/>(1–366)
| 50 || 1 ||rowspan=9| Year<br/>(00–99)
|bgcolor=lightgrey| 70 ||bgcolor=lightgrey| 0 ||rowspan=9 bgcolor=lightgrey| Unused,<br/>available for<br/>Control<br/>Functions
| 90 || 512
|-
| 11 || 2
| 31 || 2
| 51 || 2
|bgcolor=lightgrey| 71 ||bgcolor=lightgrey| 0
| 91 || 1024
|-
| 12 || 4
| 32 || 4
| 52 || 4
|bgcolor=lightgrey| 72 ||bgcolor=lightgrey| 0
| 92 || 2048
|-
| 13 || 8
| 33 || 8
| 53 || 8
|bgcolor=lightgrey| 73 ||bgcolor=lightgrey| 0
| 93 || 4096
|-
|bgcolor=lightgrey| 14 ||bgcolor=lightgrey| 0
|bgcolor=lightgrey| 34 ||bgcolor=lightgrey| 0
|bgcolor=lightgrey| 54 ||bgcolor=lightgrey| 0
|bgcolor=lightgrey| 74 ||bgcolor=lightgrey| 0
| 94 || 8192
|-
| 15 || 10
| 35 || 10
| 55 || 10
|bgcolor=lightgrey| 75 ||bgcolor=lightgrey| 0
| 95 || 16384
|-
| 16 || 20
| 36 || 20
| 56 || 20
|bgcolor=lightgrey| 76 ||bgcolor=lightgrey| 0
| 96 || 32768
|-
| 17 || 40
| 37 || 40
| 57 || 40
|bgcolor=lightgrey| 77 ||bgcolor=lightgrey| 0
| 97 || 65536
|-
|bgcolor=lightgrey| 18 ||bgcolor=lightgrey| 0 ||bgcolor=lightgrey| Unused
| 38 || 80
| 58 || 80
|bgcolor=lightgrey| 78 ||bgcolor=lightgrey| 0
|bgcolor=lightgrey| 98 ||bgcolor=lightgrey| 0 ||bgcolor=lightgrey| Unused
|- bgcolor=lightpink
| 19 || P<sub>2</sub> || Position identifier
| 39 || P<sub>4</sub> || Position identifier
| 59 || P<sub>6</sub> || Position identifier
| 79 || P<sub>8</sub> || Position identifier
| 99 || P<sub>0</sub> || Position identifier
|}
{{Clear}}
 
==ExternalIRIG linksJ timecode==
IRIG standard 212-00 defines a different time-code, based on [[RS-232]]-style [[asynchronous serial communication]].
The timecode consists of [[ASCII]] characters, each transmitted as 10 bits:
* 1 start bit
* 7 data bits
* 1 [[odd parity]] bit
* 1 stop bit
The on-time marker is the leading edge of the first start bit.
 
IRIG J-1 timecode consists of 15 characters (150 bit times), sent once per second at a baud rate of 300 or greater:
* [http://www.meinberg.de/english/info/irig.htm IRIG information] IRIG information page with diagrams.
 
<nowiki><SOH>DDD:HH:MM:SS<CR><LF></nowiki>
[[Category:Timecodes]]
 
* SOH is the ASCII "start of header" code, with binary value <code>0x01</code>.
[[de:IRIG Timecode]]
* DDD is the [[ordinal date]] (day of year), from 1 to 366.
[[fr:IRIG standard et protocol]]
* HH, MM and SS are the time of the start bit.
* The code is terminated by a [[Newline|CR+LF]] pair.
 
At the end of the timecode, the serial line is idle until the start of the next code. There is no idle time between other characters.
 
IRIG J-2 timecode consists of 17 characters (170 bit times), sent 10 times per second at a baud rate of 2400 or greater:
 
<nowiki><SOH>DDD:HH:MM:SS.S<CR><LF></nowiki>
 
This is the same, except that tenths of seconds are included.
 
The full-timecode specification is of the form "IRIG J-''xy''", where ''x'' denotes the variant, and ''y'' denotes a baud rate of 75×2<sup>''y''</sup>.
 
Normally used combinations are J-12 through J-14 (300, 600, and 1200 baud), and J-25 through J-29 (2400 through 38400 baud).
 
{| class="wikitable"
|-
! Combination J-''xy'' !! variant (''x'') !! ''y'' !! 2<sup>''y''</sup> !! Baud = 75 × 2<sup>''y''</sup>
|-
| J-12|| 1|| 2|| 4|| 300
|-
| J-13|| 1|| 3|| 8|| 600
|-
| J-14|| 1|| 4|| 16|| 1200
|-
|colspan=5|
|-
| J-25|| 2|| 5|| 32|| 2400
|-
| J-26|| 2|| 6|| 64|| 4800
|-
| J-27|| 2|| 7|| 128|| 9600
|-
| J-28|| 2|| 8 || 256|| 19200
|-
| J-29|| 2|| 9|| 512|| 38400
|-
|}
 
== See also ==
* [[Precision Time Protocol]]
* [[Network Time Protocol]]
* [[SMPTE timecode]]
 
== References ==
{{reflist}}
 
== Sources ==
* {{Citation |last=Telecommunications and Timing Group |publisher=Range Commanders Council |___location=U.S. Army White Sands Missile Range, New Mexico |url=http://www.wsmr.army.mil/RCCsite/Documents/200-16_IRIG_Serial_Time_Code_Formats/200-16_IRIG_Serial_Time_Code_Formats.pdf |format=PDF |id=IRIG standard 200-16 |title=IRIG Serial Time Code Formats |date=August 2016 |access-date=2024-05-27 |archive-date=2018-08-26 |archive-url=https://web.archive.org/web/20180826214654/http://www.wsmr.army.mil/RCCsite/Documents/200-16_IRIG_Serial_Time_Code_Formats/200-16_IRIG_Serial_Time_Code_Formats.pdf |url-status=bot: unknown }}
* {{Citation |last=Telecommunications and Timing Group |publisher=Range Commanders Council |___location=U.S. Army White Sands Missile Range, New Mexico |url=https://wsmrc2vger.wsmr.army.mil/rcc/manuals/212-00/index.htm |format=DOC |id=IRIG standard 212-00 |title=IRIG J Asynchronous ASCII Time Code Formats |date=November 2000 |access-date=2011-10-01 |archive-url=https://web.archive.org/web/20130217171957/https://wsmrc2vger.wsmr.army.mil/rcc/manuals/212-00/index.htm |archive-date=2013-02-17 |url-status=dead }}
 
== External links ==
* [http://www.meinberg.de/english/info/irig.htm IRIG information]&nbsp;— IRIG information page with diagrams
* {{Citation |title=The IRIGB standard site - The site dedicated to IRIGB standard Time code|url=http://irigb.com }}
 
[[Category:1960 introductions]]
[[Category:Timecodes]]