Gillham code: Difference between revisions

Content deleted Content added
This is hardly gratuitous, this data is uncited and has been for four years. If the refs are obvious then please add them or else as per WP:V this needs to removed after being unreferenced for so long.
removing old challenged text from more than three years ago, this can be re-instated with proper refs cited.
Line 1:
{{Refimprove|date=February 2011}}
{{Infobox aviation
|name=Gillham code
Line 7 ⟶ 6:
 
'''Gillham code''' is a [[Digital data|digital code]] using an eleven-wire interface that is used to transmit uncorrected [[Barometer|barometric]] [[altitude]] between an encoding altimeter or analog [[air data computer]] and a [[Transponder (aviation)|transponder]]. It is a modified form of a [[Gray code]] and is sometimes referred to as a "Gray code" in avionics literature.<ref name="Code List">[http://web.archive.org/web/20120726003224/http://www.airsport-corp.com/modecascii.txt List of altitudes and Gillham codes]</ref>
 
The code was named in memory of Ronald Lionel Gillham, the UK's representative to the IATA committee developing the specification for the second generation of Air Traffic Control System, known in the UK as "Plan Ahead", who died suddenly in March 1968. Gillham was said to have had the idea of using a modified Gray code while at a family dinner.{{Citation needed|date=December 2010}}
 
The Gillham code's only application is in the transmission of height information from an altitude encoder to a secondary surveillance radar (SSR) transponder as used in aircraft.{{Citation needed|date=December 2010}}
 
== Altitude encoder ==
Line 16 ⟶ 11:
 
An altitude encoder takes the form of a small metal box containing a pressure sensor and signal conditioning electronics.<ref name="Ameriking Encoder">[http://www.ameri-king.com/altitude_encoder.html Ameriking AK-350 Altitude Encoder]</ref><ref name="ACK Encoder">[http://www.ackavionics.com/products.htm ACK A-30 Altitude Encoder]</ref> The pressure sensor is often heated, which requires a warm-up time during which height information is either unavailable or inaccurate. Older style units can have a warm-up time of up to 10 minutes; more modern units warm up in less than 2 minutes. Some of the very latest encoders incorporate unheated 'instant on' type sensors. During the warm-up of older style units the height information may gradually increase until it settles at its final value. This is not normally a problem as the power would typically be applied before the aircraft enters the runway and so it would be transmitting correct height information soon after take-off.<ref name="Shadin Manual">[http://www.shadin.com/service/manuals/OP8800TC.pdf Shadin 8800-T Altitude Encoder Operating Manual]</ref>
 
A common configuration is for the transponder to supply power to the encoder only in the altitude reporting (mode C) setting. This could be problematic if mode C is selected in flight as the warm-up time would start from that point. Height information may not then be transmitted to the SSR station for up to 10 minutes. The purpose of the encoder supply switching via the transponder is to reduce power consumption. Typically an encoder will require about 5&nbsp;W whilst the heater is engaged. The heater cycles on and off during operation and is controlled by the conditioning circuitry. The duty cycle varies according to the ambient temperature conditions.{{Citation needed|date=December 2010}}
 
Light aircraft electrical systems are typically 12&nbsp;V or 28&nbsp;V. To allow seamless integration with either, the encoder uses a number of open-collector (open-drain) transistors to interface to the transponder. The height information is represented as 11 binary digits in a parallel form using 11 separate lines designated D2 D4 A1 A2 A4 B1 B2 B4 C1 C2 C4.<ref name="Code Explanation">[http://www.airsport-corp.com/modec.htm Explanation of Transponder Coding]</ref> The Gillham code contains a D1 bit but this is unused in practical applications.
 
Different classes of altitude encoder do not use all of the available bits. All use the A, B and C bits; increasing altitude limits require more of the D bits. Up to and including 30700&nbsp;ft does not require any of the D bits. This is suitable for most light general aviation aircraft. Up to and including 62700&nbsp;ft requires D4. Up to and including 126700&nbsp;ft requires D4 and D2. Note that D1 is never used.<ref name="Code List" />
 
The datum used by altitude encoders is −1200&nbsp;ft although many will not output anything lower than −1000&nbsp;ft. Negative [[flight level]]s are included in the code to permit altitude measurement at low levels when the ambient pressure is high.{{Citation needed|date=December 2010}}
 
Note that the altitude code output by a standard altitude encoder is a pressure altitude. That is to say, it is always with respect to a pressure datum of 1013.2&nbsp;mBar (hectopascals) or 29.92&nbsp;inHg. It does not indicate the height above sea level (altitude) or the ground (height). Pressure altitudes are referred to as flight levels and are expressed to the nearest 100&nbsp;ft. For clarity here is a sample of the Gillham code from 0&nbsp;ft to 1000&nbsp;ft; note that 1000&nbsp;ft is equivalent to a flight level of 10.
 
{| class="wikitable"
|-
!ALTITUDE!!D1!!D2!!D4!!A1!!A2!!A4!!B1!!B2!!B4!!C1!!C2!!C4
|-
|0||0||0||0||0||0||0||0||1||1||0||1||0
|-
|100||0||0||0||0||0||0||0||1||1||1||1||0
|-
|200||0||0||0||0||0||0||0||1||1||1||0||0
|-
|300||0||0||0||0||0||0||0||1||0||1||0||0
|-
|400||0||0||0||0||0||0||0||1||0||1||1||0
|-
|500||0||0||0||0||0||0||0||1||0||0||1||0
|-
|600||0||0||0||0||0||0||0||1||0||0||1||1
|-
|700||0||0||0||0||0||0||0||1||0||0||0||1
|-
|800||0||0||0||0||0||0||1||1||0||0||0||1
|-
|900||0||0||0||0||0||0||1||1||0||0||1||1
|-
|1000||0||0||0||0||0||0||1||1||0||0||1||0
|}
 
== Decoding ==
 
The Gillham code is an unusual mix of codes. It is a parallel binary code that uses a Gray code to ensure that there are not multiple bit changes between adjacent altitudes. The bit pattern is split into those bits used to indicate the number of 500&nbsp;ft increments and those used to indicate the number of 100&nbsp;ft increments. The split is as follows.{{Citation needed|date=December 2010}}
 
Bits D1–B4 use a standard Gray code to store the number of 500&nbsp;ft increments.<ref name="Code Explanation" />
 
Bits C1–C4 use a non-linear reflected Gray code to store the number of 100&nbsp;ft increments +1. The values when converted to decimal follow this repeating pattern: 1 2 3 4 7 7 4 3 2 1 1 2 3 4 7 ....{{Citation needed|date=December 2010}}
 
The C bits must be converted from Gray to standard binary, the 7 changed to a 5 and the reflected order changed when the 500&nbsp;ft increment is even.{{Citation needed|date=December 2010}}
 
The number resulting from combining the above gives the flight level above the minimum datum (−1200&nbsp;ft). This offset must be removed to give a corrected altitude value.{{Citation needed|date=December 2010}}
 
The Gillham code can be decoded using various methods. Standard techniques use hardware <ref name="Decoder Patent">[http://www.freepatentsonline.com/3805041.pdf Circuit to decode Gillham code]</ref> or software solutions. The latter often uses a lookup table but an algorithmic approach can be taken.<ref name="Algorithm C code">[http://www.ccsinfo.com/forum/viewtopic.php?p=77544 Aviation Gray Code, software decoding function in C language]</ref>