Recent from talks
Nothing was collected or created yet.
Gillham code
View on Wikipedia
| Gillham code | |
|---|---|
| Digits | 12 |
| Tracks | 9..11[1][2] |
| Continuity | no |
| Cyclic | yes |
| Minimum distance | 1 |
| Maximum distance | 1 |
| Lexicography | no |

Gillham code is a zero-padded 12-bit binary code using a parallel nine-[1] to eleven-wire interface,[2] the Gillham interface, that is used to transmit uncorrected barometric altitude between an encoding altimeter or analog air data computer and a digital transponder. It is a modified form of a Gray code and is sometimes referred to simply as a "Gray code" in avionics literature.[3]
History
[edit]The Gillham interface and code are an outgrowth of the 12-bit IFF Mark X system, which was introduced in the 1950s. The civil transponder interrogation modes A and C were defined in air traffic control (ATC) and secondary surveillance radar (SSR) in 1960.
The code is named after Ronald Lionel Gillham, a signals officer at Air Navigational Services, Ministry of Transport and Civil Aviation, who had been appointed a civil member of the Most Excellent Order of the British Empire (MBE) in the Queen's 1955 Birthday Honours.[4] He was the UK's representative to the International Air Transport Association (IATA) committee developing the specification for the second generation of air traffic control system, known in the UK as "Plan Ahead", and is said to have had the idea of using a modified Gray code.[nb 1] The final code variant was developed in late 1961[5] for the ICAO Communications Division meeting (VII COM) held in January/February 1962,[6] and described in a 1962 FAA report.[7][8][9] The exact timeframe and circumstances of the term Gillham code being coined are unclear, but by 1963 the code was already recognized under this name.[10][11] By the mid-1960s the code was also known as MOA–Gillham code[12] or ICAO–Gillham code. ARINC 572 specified the code as well in 1968.[13][14]
Once recommended by the ICAO for automatic height transmission for air traffic control purposes,[9][15] the interface is now discouraged[2] and has been mostly replaced by modern serial communication in newer aircraft.
Altitude encoder
[edit]
An altitude encoder takes the form of a small metal box containing a pressure sensor and signal conditioning electronics.[16][17] 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.[18]
The encoder has an open-collector output, compatible with 14 V or 28 V electrical systems.[citation needed]
Coding
[edit]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.[3] As a twelfth bit, the Gillham code contains a D1 bit but this is unused and consequently set to zero 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 ft does not require any of the D bits (9-wire interface[1]). This is suitable for most light general aviation aircraft. Up to and including 62700 ft requires D4 (10-wire interface[2]). Up to and including 126700 ft requires D4 and D2 (11-wire interface[2]). D1 is never used.[19][20]
| Gillham binary code [D124 A124 B124 C124] | Squawk octal code [ABCD] | Height [m] | Height [ft] |
|---|---|---|---|
| 000 000 000 001 | 0040 | −365.76 | −1200 |
| 000 000 000 011 | 0060 | −335.28 | −1100 |
| 000 000 000 010 | 0020 | −304.8 | −1000 |
| 000 000 000 110 | 0030 | −274.32 | −900 |
| 000 000 000 100 | 0010 | −243.84 | −800 |
| 000 000 001 100 | 0410 | −213.36 | −700 |
| 000 000 001 110 | 0430 | −182.88 | −600 |
| 000 000 001 010 | 0420 | −152.4 | −500 |
| 000 000 001 011 | 0460 | −121.92 | −400 |
| 000 000 001 001 | 0440 | −91.44 | −300 |
| 000 000 011 001 | 0640 | −60.96 | −200 |
| 000 000 011 011 | 0660 | −30.48 | −100 |
| 000 000 011 010 | 0620 | 0 | 0 |
| 000 000 011 110 | 0630 | 30.48 | 100 |
| 000 000 011 100 | 0610 | 60.96 | 200 |
| 000 000 010 100 | 0210 | 91.44 | 300 |
| 000 000 010 110 | 0230 | 121.92 | 400 |
| 000 000 010 010 | 0220 | 152.4 | 500 |
| 000 000 010 011 | 0260 | 182.88 | 600 |
| 000 000 010 001 | 0240 | 213.36 | 700 |
| 000 000 110 001 | 0340 | 243.84 | 800 |
| 000 000 110 011 | 0360 | 274.32 | 900 |
| 000 000 110 010 | 0320 | 304.8 | 1000 |
| 000 000 110 110 | 0330 | 335.28 | 1100 |
| 000 000 110 100 | 0310 | 365.76 | 1200 |
| 000 000 111 100 | 0710 | 1300 | |
| 000 000 111 110 | 0730 | 1400 | |
| 000 000 111 010 | 0720 | 1500 | |
| 000 000 111 011 | 0760 | 1600 | |
| 000 000 111 001 | 0740 | 1700 | |
| 000 000 101 001 | 0540 | 1800 | |
| 000 000 101 011 | 0560 | 1900 | |
| 000 000 101 010 | 0520 | 2000 | |
| 000 000 101 110 | 0530 | 2100 | |
| 000 000 101 100 | 0510 | 2200 | |
| 000 000 100 100 | 0110 | 2300 | |
| 000 000 100 110 | 0130 | 2400 | |
| 000 000 100 010 | 0120 | 2500 | |
| 000 000 100 011 | 0160 | 2600 | |
| 000 000 100 001 | 0140 | 2700 | |
| … | … | … | … |
| 010 000 000 110 | 0032 | 126400 | |
| 010 000 000 010 | 0022 | 126500 | |
| 010 000 000 011 | 0062 | 126600 | |
| 010 000 000 001 | 0042 | 126700 |
Decoding
[edit]This section's factual accuracy is disputed. (August 2022) |
Bits D2 (msbit) through B4 (lsbit) encode the pressure altitude in 500 ft increments (above a base altitude of −1000±250 ft) in a standard 8-bit reflected binary code (Gray code).[19][21][22][23][24] The specification stops at code 1000000 (126500±250 ft), above which D1 would be needed as a most significant bit.
Bits C1, C2 and C4 use a mirrored 5-state 3-bit Gray BCD code of a Giannini Datex code type[12][25][26][27][28] (with the first 5 states resembling O'Brien code type II[29][5][23][24][27][28]) to encode the offset from the 500 ft altitude in 100 ft increments.[3] Specifically, if the parity of the 500 ft code is even then codes 001, 011, 010, 110 and 100 encode −200, −100, 0, +100 and +200 ft relative to the 500 ft altitude. If the parity is odd, the assignments are reversed.[19][21] Codes 000, 101 and 111 are not used.[30]: 13(6.17–21)
The Gillham code can be decoded using various methods. Standard techniques use hardware[30] or software solutions. The latter often uses a lookup table but an algorithmic approach can be taken.[21]
See also
[edit]Notes
[edit]- ^ Anecdotally, Ronald Lionel Gillham had the idea for the modified Gray code while having a family dinner. Reportedly, he died in March 1968.[citation needed]
References
[edit]- ^ a b c Honeywell System Installation Manual - Bendix/King KMH 880/KTA 870 Multi-Hazard Awareness Traffic Advisory System (PDF) (Revision 3 ed.). Honeywell International Inc. August 2002 [2001]. Manual number 006-10609-0003. Archived (PDF) from the original on 2018-01-18. Retrieved 2018-01-18.
- ^ a b c d e Tooley, Mike; Wyatt, David (2009). "3.5.1 Gillham interface and Gillham code". Aircraft Electrical and Electronic Systems - Principles, Operation and Maintenance (1 ed.). Butterworth-Heinemann (Elsevier Ltd.). p. 69. ISBN 978-0-7506-8695-2.
- ^ a b c Phillips, Darryl (2012) [1998]. "Mode A and Mode C - The straight scoop on how it works". AirSport Avionics. Archived from the original on 2012-06-14. Retrieved 2018-01-14.
- ^ "No. 40497". The London Gazette (Supplement). 1955-06-03. pp. 3267, 3272, 3274.
[…] CENTRAL CHANCERY OF THE ORDERS OF KNIGHTHOOD. […] St. James's Palace, S.W.1. […] 9th June, 1955. […] The QUEEN has been graciously pleased, on the occasion of the Celebration of Her Majesty's Birthday, to give orders for the following promotions in, and appointments to, the Most Excellent Order of the British Empire:— […] To be Ordinary Members of the Civil Division of the said Most Excellent Order:— […] Ronald Lionel GILLHAM, Esq., Signals Officer, Air Navigational Services, Ministry of Transport and Civil Aviation. […]
[1][2][3] - ^ a b Ashley, Allan (December 1961). "Code Configuration for Automatic Altitude Reporting via ATCRBS". IRE Transactions on Aerospace and Navigational Electronics. ANE-8 (4). Melville, New York, USA: Institute of Radio Engineers: 144–148. doi:10.1109/TANE3.1961.4201819. eISSN 2331-0812. ISSN 0096-1647. S2CID 51647765. (5 pages)
- ^ "1983 Pioneer Award". IEEE Transactions on Aerospace and Electronic Systems. AES-19 (4). IEEE: 648–656. July 1983. doi:10.1109/TAES.1983.309363.
[…] The Pioneer Award Committee of the IEEE Aerospace and Electronic Systems Society has named […] Allan Ashley […] Joseph E. Her[r]mann […] James S. Perry […] as recipients of the 1983 Pioneer Award in recognition of the highly significant contributions made by them. "FOR ADVANCING THE STATE OF THE ART OF VOICE AND DATA RADIO COMMUNICATIONS AND ELECTRONICS" The Award was presented at NAECON on May 18, 1983. […] Being aware of developments within the United States and shortly before the ICAO VII COM [in January 1962], the U.K. delegates proposed a compromise code to the United States which quantized altitude in 500 ft steps for a range of 64000 ft by employing a conventional Gray code with a 2.9 µs pulse spacing in the return message, and in a compatible manner subdivided further by 100 ft increments with a 1.45 µs pulse spacing in the return message […] A quick look at the U.K. proposal concluded that the United States could live with the U.K. compromise although greater circuit complexity resulted for coding and decoding. It is to the credit of the U.S. delegation to the ICAO VII COM, and as a result of the advice of Ashley, Herrmann, Perry, and others, that the acceptance of the compatible U.K. proposal was seen as offering a means of obtaining timely agreement on 100 ft increment reportings o that future air traffic control systems could be developed with automatic three dimensional data acquisition. A potential impasse in ICAO was averted, leaving nations free to choose between 100 ft and 500 ft increments of altitude reporting. […]
(9 pages) - ^ Airborne Instruments Laboratory, a division of Cutler-Hammer, Inc. (1962-05-19). Final Engineering Report on Evaluation of L-band Secondary Radar. For ANDB under CAA (Report). Deer Park, Long Island, New York, USA: Federal Aviation Administration (FAA), Aviation Research And Development Service. Report 8893-SP-1.
- ^ Airborne Instruments Laboratory, a division of Cutler-Hammer, Inc. (May 1962). Height Code Tables For Use With Air Traffic Control Radar Beacon System (PDF) (Report). Deer Park, Long Island, New York, USA: Federal Aviation Administration (FAA), Aviation Research And Development Service. Report 8893-SP-1. Contract FAA/BRD-329. Task 6. Archived from the original (PDF) on 2020-05-17. Retrieved 2020-05-17. (43 pages)
- ^ a b United Service and Royal Aero Club (Great Britain) (1964-04-09). "Altitude encoding". Flight International. 85 (2874). Illiffe Transport Publications: 593. ISSN 0015-3710.
[…] A new […] encoder with an output in Gillham code, as recommended for altitude encoding by ICAO and described in an FAA report of May 1962, has been introduced […]
- ^ "Beacon Encoder". Computer Design. 2 (9). Massachusetts, USA: Computer Design Publishing Corporation: 45. September 1963. ISSN 0010-4566. OCLC 802774218. Circle No. 169. Retrieved 2018-01-16.
[…] Output code of a new Beacon encoder is known as the Gillham code, a modified Gray code designed to be compatible with both American and European traffic systems. […]
- ^ "New Products". Control Engineering (CtE). 10. Technical Publishing Company: 110. January–December 1963. ISSN 0010-8049. (344) or (345). Retrieved 2018-01-16.
[…] Designed to be compatible with American and European traffic systems, a beacon encoder available from Norden Div., United Aircraft Corp., Norwalk, Conn., puts out a modified Gray code known as the Gillham code. […]
[4] - ^ a b Wheeler, Edwin L. (1969-12-30) [1968-04-05]. Analog to digital encoder (PDF). New York, USA: Conrac Corporation. U.S. patent 3487460A. Serial No. 719026 (397812). Archived (PDF) from the original on 2020-08-05. Retrieved 2018-01-21.
[…] The MOA-GILLHAM code is essentially the combination of the Gray code discussed thereinabove and the well known Datex code; the Datex code is disclosed in U.S. Patent 3,165,731. The arrangement is such that the Datex code defines the bits for the units count of the encoder and the Gray code defines the bits for each of the higher order decades, the tens, hundreds, etc […]
- ^ Mark 2 Subsonic Air Data System. Annapolis, Maryland, USA: Aeronautical Radio, Incorporated (ARINC). 1968-02-15. p. 55. ARINC 572.
- ^ Mark 2 Air Traffic Control Transponder. Aeronautical Radio, Incorporated (ARINC). ARINC 572-1.
- ^ Wightman, Eric Jeffrey (2017) [1972]. "Chapter 6. Displacement measurement". Instrumentation in Process Control (Revised ed.). Butterworth-Heinemann. pp. 122–123 [123]. ISBN 978-1-48316335-2.
[…] Other forms of code are also well known. Among these are the Royal Radar Establishment code; The Excess Three decimal code; Gillham code which is recommended by ICAO for automatic height transmission for air traffic control purposes; the Petherick code, and the Leslie and Russell code of the National Engineering Laboratory. Each has its particular merits and they are offered as options by various encoder manufacturers. A discussion of their respective merits is outside the scope of this book. […]
- ^ "Ameriking AK-350 Altitude Encoder". Ameri-king. 2004. Archived from the original on 2016-06-25. Retrieved 2018-01-14.
- ^ "Model E-04 406/121.5 MHz ELT". Products. ACK Technologies, Inc. 2002. Archived from the original on 2018-01-16. Retrieved 2018-01-14.
- ^ "Altitude Encoder Model 8800-T Operating Manual" (PDF). Shadin Avionics. 2016. OP8800-TC Rev. F. Archived (PDF) from the original on 2018-01-16. Retrieved 2018-01-14.
- ^ a b c Phillips, Darryl (2012-07-26) [1998]. "Altitude - MODEC ASCII". AirSport Avionics. Archived from the original on 2012-07-26.
- ^ D. F. S., Marc (2000-11-27). "Single Gillham code". ForPilots. Archived from the original on 2018-01-17. Retrieved 2018-01-17.
- ^ a b c Stewart, K. (2010-12-03). "Aviation Gray Code: Gillham Code Explained". Custom Computer Services (CCS). Archived from the original on 2018-01-16. Retrieved 2018-01-14.
- ^ Gray, Frank (1953-03-17) [1947-11-13]. Pulse Code Communication (PDF). New York, USA: Bell Telephone Laboratories, Incorporated. U.S. patent 2,632,058. Serial No. 785697. Archived (PDF) from the original on 2020-08-05. Retrieved 2020-08-05. (13 pages)
- ^ a b Steinbuch, Karl W., ed. (1962). Taschenbuch der Nachrichtenverarbeitung (in German) (1 ed.). Karlsruhe, Germany: Springer-Verlag OHG. pp. 71–74. LCCN 62-14511.
- ^ a b Steinbuch, Karl W.; Weber, Wolfgang; Heinemann, Traute, eds. (1974) [1967]. Taschenbuch der Informatik – Band II – Struktur und Programmierung von EDV-Systemen. Taschenbuch der Nachrichtenverarbeitung (in German). Vol. 2 (3 ed.). Berlin, Germany: Springer Verlag. pp. 98–100. ISBN 3-540-06241-6. LCCN 73-80607.
- ^ Spaulding, Carl P. (1965-01-12) [1954-03-09]. "Digital coding and translating system" (PDF). Monrovia, California, USA: Datex Corporation. U.S. patent 3165731A. Serial No. 415058. Archived (PDF) from the original on 2020-08-05. Retrieved 2018-01-21. (28 pages)
- ^ Spaulding, Carl P. (1965-07-12). How to Use Shaft Encoders. Monrovia, California, USA: Datex Corporation. (85 pages)
- ^ a b Dokter, Folkert; Steinhauer, Jürgen (1973-06-18). "2.4. Coding numbers in the binary system". Digital Electronics. Philips Technical Library (PTL) / Macmillan Education (Reprint of 1st English ed.). Eindhoven, Netherlands: The Macmillan Press Ltd. / N. V. Philips' Gloeilampenfabrieken. pp. 32, 39, 50–53. doi:10.1007/978-1-349-01417-0. ISBN 978-1-349-01419-4. SBN 333-13360-9. Retrieved 2020-05-11. p. 53:
[…] The Datex code […] uses the O'Brien code II within each decade, and reflected decimal numbers for the decimal transitions. For further processing, code conversion to the natural decimal notation is necessary. Since the O'Brien II code forms a 9s complement, this does not give rise to particular difficulties: whenever the code word for the tens represents an odd number, the code words for the decimal units are given as the 9s complements by inversion of the fourth binary digit. […]
[permanent dead link] (270 pages) (NB. This is based on a translation of volume I of the two-volume German edition.) - ^ a b Dokter, Folkert; Steinhauer, Jürgen (1975) [1969]. "2.4.4.6. Einschrittige Kodes". Digitale Elektronik in der Meßtechnik und Datenverarbeitung: Theoretische Grundlagen und Schaltungstechnik. Philips Fachbücher (in German). Vol. I (improved and extended 5th ed.). Hamburg, Germany: Deutsche Philips GmbH. p. 60. ISBN 3-87145-272-6. (xii+327+3 pages) (NB. The German edition of volume I was published in 1969, 1971, two editions in 1972, and 1975. Volume II was published in 1970, 1972, 1973, and 1975.)
- ^ O'Brien, Joseph A. (May 1956) [1956-11-15, 23 June 1956]. "Cyclic Decimal Codes for Analogue to Digital Converters". Transactions of the American Institute of Electrical Engineers, Part I: Communication and Electronics. 75 (2). Bell Telephone Laboratories, Whippany, New Jersey, USA: 120–122. doi:10.1109/TCE.1956.6372498. ISSN 0097-2452. S2CID 51657314. Paper 56-21. Retrieved 2020-05-18. (3 pages) (NB. This paper was prepared for presentation at the AIEE Winter General Meeting, New York, USA, 1955-01-30 to 1955-02-03.)
- ^ a b Langheinrich, Hans (1974-04-16) [1971-10-27]. Circuit for converting one code into another code (PDF). Frankfurt, Germany: VDO Tachometer Werke Adolf Schindling GmbH. U.S. patent 3,805,041. Application 192830. Archived (PDF) from the original on 2020-08-05. Retrieved 2018-01-14. (7 pages)
Further reading
[edit]- Military Handbook: Encoders - Shaft Angle To Digital (PDF). United States Department of Defense. 1991-09-30. MIL-HDBK-231A. Archived (PDF) from the original on 2020-07-25. Retrieved 2020-07-25. (NB. Supersedes MIL-HDBK-231(AS) (1970-07-01).)
- Annex 10 - Volume IV - Surveillance Radar and Collision Avoidance Systems Archived 6 May 2014 at the Wayback Machine; 4th Edition; ICAO; 280 pages; 2007.
- DO-181E Minimum Operational Performance Standards for ATCRBS / Mode S Airborne Equipment; Rev E; RTCA; 2011.
- Ashley, Allan (September 1960). Study of Altitude Reporting via ATC Radar Beacon System. Deer Park, New York: Airborne Instruments Laboratory. Report 5791-23.
- "Study of Altitude Reporting via ATC Radar Beacon System". Consolidated Abstracts of Technical Reports: General distribution. 1957–1962 (Abstract). 1962. p. #62-45.
Gillham code
View on GrokipediaHistory and Development
Origins
The Gillham code emerged from the Identification Friend or Foe (IFF) Mark X system, developed in the mid-1950s primarily for military aircraft identification during the Cold War era. This system, an advancement over earlier IFF technologies like Mark V, introduced expanded coding capabilities that included rudimentary altitude reporting to enhance air traffic coordination and threat assessment. Adopted by both military and civilian sectors, IFF Mark X's Mode C functionality provided the foundational framework for encoding pressure altitude data, addressing the growing demands of post-war aviation surveillance.[6] As international civil aviation expanded in the late 1950s and early 1960s, efforts intensified to adapt military transponder technologies for civilian use under the International Civil Aviation Organization (ICAO) framework. The initial purpose of what became the Gillham code was to enable reliable transmission of uncorrected barometric altitude from aircraft altimeters to ground-based secondary surveillance radar systems, facilitating safer air traffic management during the shift from proprietary military standards to global interoperability. This transition was driven by the need for precise, error-resistant altitude data in Mode C interrogations, building directly on IFF Mark X's pulse-coded replies.[7] The code is named after Ronald Lionel Gillham, a signals officer at the United Kingdom's Air Navigational Services within the Ministry of Transport and Civil Aviation, who contributed significantly to its design as the UK's representative on the International Air Transport Association (IATA) committee tasked with Mode C transponder specifications. The idea for the code was conceived during a family dinner as a modified Gray code. Gillham, honored with an MBE in 1955 for his aviation signaling work, passed away in March 1968 before the code's finalization, leading to its posthumous naming in his memory.[8] This timeline marked the code's evolution from military roots to a cornerstone of global aviation safety protocols.Standardization
The International Civil Aviation Organization (ICAO) adopted the Gillham code in the early 1960s as part of Mode C transponder specifications for automatic altitude transmission to enhance air traffic control surveillance.[9] This integration into ICAO Annex 10, Volume IV, defined the code as the standard for pressure altitude reporting in increments of 100 feet, ensuring global interoperability for secondary surveillance radar systems.[9] In 1968, the Aeronautical Radio, Incorporated (ARINC) published specification ARINC 572, which formalized the 12-bit Gillham code interface for commercial aviation altitude encoders, specifying the parallel wiring and signal characteristics for transponder inputs.[10] This standard complemented ICAO requirements by providing detailed engineering guidelines for implementation in air transport aircraft. ARINC 572 underwent revisions in the 1970s and 1980s, including ARINC 572-1, which refined wiring diagrams, interface tolerances, and integration with emerging avionics systems to address reliability and compatibility issues in expanding fleets.[11] These updates ensured the code's alignment with evolving aircraft electrical systems and transponder technologies. By the 2000s, ICAO began discouraging the use of the Gillham code due to its obsolescence amid advances in digital avionics, with the last major reference appearing in the 2009 amendments to Annex 10, Volume IV, favoring serial data protocols like ARINC 429 for new installations.[12]System Overview
Purpose and Function
The Gillham code serves as a digital encoding scheme that transmits uncorrected pressure altitude data from an aircraft's encoding altimeter to its secondary surveillance radar (SSR) transponder, enabling the inclusion of altitude information in Mode C replies.[13] This uncorrected pressure altitude is referenced to the standard atmospheric pressure of 1013.25 hPa (29.92 inHg), without adjustments for local barometric settings such as QNH, distinguishing it from the corrected altitude displayed to the pilot on the altimeter.[14] The code facilitates the relaying of this data as parallel binary signals to the transponder, which then incorporates it into interrogation responses for transmission to air traffic control (ATC) systems.[13] In aviation operations, the primary function of the Gillham code is to support ATC in maintaining vertical separation between aircraft by providing real-time pressure altitude readings, typically encoded in 100-foot increments up to a maximum of 62,750 feet, with an extended range up to 126,750 feet for altitudes above 20,750 feet.[14] This resolution ensures that ATC can monitor aircraft positions in the vertical plane with sufficient precision for safe spacing, as required under international standards for SSR operations.[14] The system's integration within transponder replies allows for automated altitude reporting during SSR interrogations, enhancing situational awareness and collision avoidance without relying on voice communications.[13] Unlike corrected altitudes that account for local pressure variations, the Gillham code's use of standard pressure ensures consistency across different atmospheric conditions, promoting uniform data interpretation by ground-based radar systems worldwide.[14] This standardization is critical for international air traffic management, where discrepancies in local settings could otherwise compromise safety margins.[14]Altitude Encoding Basics
Gillham code employs a 12-bit binary format to digitally represent aircraft pressure altitude, with 11 active bits dedicated to encoding the altitude value and the D1 bit left unused and set to zero.[15] This structure utilizes a modified Gray code scheme, where consecutive altitude values differ by only a single bit, enhancing error resistance in transmission over the parallel interface.[16] The code is derived from encoding altimeters that measure pressure altitude based on atmospheric pressure relative to the standard datum of 29.92 inHg (1013.25 hPa).[16][14] The encoding covers an altitude range from -1,000 feet to 62,750 feet, with an extended range up to 126,750 feet for altitudes above 20,750 feet, reported in 100-foot resolution steps.[16][14] Higher-order bits (D2, D4, A1–A4) primarily encode altitude in 500-foot increments above a base of -1,000 feet, while lower-order bits (B1–B2, C1–C2, and select combinations) provide the 100-foot and 200-foot offsets within each 500-foot block.[16] This hierarchical approach allows precise representation without requiring full binary counting, leveraging the Gray code's adjacency property. A key benefit of the modified Gray code is its error minimization: a single-bit error alters the decoded altitude by at most 500 feet, preventing large discrepancies from minor transmission faults.[16] This property is critical for maintaining reliable altitude reporting in air traffic control systems, where accuracy directly impacts separation assurance.[16]Code Structure
Bit Assignments
The Gillham code employs a parallel interface with 11 dedicated wires labeled D2, D4, A1, A2, A4, B1, B2, B4, C1, C2, and C4. The D1 position is unused and assumed to be zero for compatibility with the 12-bit format, but no wire is provided for it. These bits are output via standard 15-pin D-subminiature connectors in avionics systems.[2] The altitude in 500-foot increments is encoded using an 8-bit reflected binary Gray code across the bits D2 (MSB), D4, A1, A2, A4, B1, B2, B4 (LSB). This Gray code represents the integer value of (pressure altitude + 1000 ft) / 500 ft, allowing a range from -1000 ft to approximately 126,500 ft. Systems for lower altitudes may omit the D2 wire, limiting the range to about 62,500 ft using the remaining 7 bits. The single-bit-change property of the Gray code minimizes transmission errors.[17] The C bits—C1, C2, and C4—encode the 100-foot offsets from the nearest 500-foot multiple (0 to 700 ft in 100-ft steps) using a 3-bit mirrored Gray BCD variant known as the Datex code. Only five states (000, 001, 011, 010, 110) are used for offsets 0–400 ft, with higher offsets handled by incrementing the 500-ft code and using lower C values; invalid states like 101 and 111 are not used to aid error detection.[18] Electrically, the bit outputs are open-collector with low active state (on resistance <5 Ω, off leakage <10 µA), supporting pull-up to 5–50 V and maximum 20 mA per bit, compatible with 14 V or 28 V aircraft systems.[19][20]Parity and Mirroring
Gillham code relies on the Gray code's single-bit-change property for redundancy rather than explicit parity bits. Transponders validate received data by decoding the 8-bit Gray code to ensure it corresponds to a valid altitude and by checking that the C bits use only permitted states. Invalid codes trigger error flags, preventing faulty altitude transmission in SSR Mode C replies, per ARINC 572. No dedicated parity or A/B mirroring is present.[17]Encoding Process
500-Foot Increments
The primary altitude in Gillham code is encoded in 500-foot increments using an 8-bit reflected binary Gray code formed by the D2, D4, A1, A2, A4, B1, B2, B4 bits (with D2 as the most significant bit and B4 as the least significant bit), which represent values from 0 to 127 corresponding to altitudes from -1,000 feet to 62,500 feet.[15][21] This Gray code ensures that only one bit changes between consecutive altitude values, minimizing errors during transmission over parallel wires.[15] To compute the coarse altitude, the 8-bit Gray code is first converted to its binary equivalent through a bitwise XOR operation, where each bit is XORed with the preceding bit starting from the most significant bit (D2). The resulting binary value, denoted as , is then used in the formula where . Low values of (e.g., for -1,000 ft) cover negative altitudes; the D1 bit is unused in standard implementations.[15][21] For illustration, the following table shows select examples of Gray-to-binary conversions for the D2 D4 A1 A2 A4 B1 B2 B4 bits (formatted as 8-bit sequences, MSB to LSB):| Gray Code (D2 D4 A1 A2 A4 B1 B2 B4) | Binary Equivalent | Altitude (ft) | |
|---|---|---|---|
| 00000000 | 00000000 | 0 | -1,000 |
| 00000001 | 00000001 | 1 | -500 |
| 00011000 | 00010000 | 16 | 7,000 |
| 01000000 | 01111111 | 127 | 62,500 |
100-Foot Offsets
The 100-foot offsets in Gillham code provide fine resolution to the altitude encoding, allowing adjustments in 100-foot increments from the base 500-foot level established by the 8-bit Gray code (D2, D4, A1, A2, A4, B1, B2, B4 bits). These offsets are handled by the C bits, specifically C1, C2, and C4 (with C3 unused in standard implementations), which form a 3-bit binary-coded decimal (BCD) representation. C1 corresponds to the 100s place, C2 to the 200s place, and C4 to the 400s place, enabling combinations that cover offsets from 0 to 600 feet without ambiguity.[15] The offset value is calculated as Offset = (C1 × 100 + C2 × 200 + C4 × 400) feet when the D2 bit (from the Gray code) is 0, representing a direct addition to the 500-foot base. However, when D2 = 1, the interpretation flips to complement the offset relative to 500 feet, yielding Offset = 500 - (C1 × 100 + C2 × 200 + C4 × 400) feet, which applies to altitudes ending in 100 to 500 feet. This D2 interaction ensures single-bit changes for adjacent altitudes, maintaining the Gray code property for error resilience during transmission. A key restriction is that a 700-foot offset (C1=1, C2=1, C4=1) is prohibited, as it would duplicate the 0-foot offset under the flipped interpretation, potentially causing decoding errors; instead, such combinations are avoided in the encoding logic.[22][23] For example, a 100-foot offset (D2=0) is encoded with C1=1, C2=0, C4=0, resulting in Offset = 100 feet added to the base. Similarly, a 600-foot offset uses C1=0, C2=1, C4=1 (D2=0), yielding Offset = (200 + 400) = 600 feet. In the flipped case (D2=1), the same C bits for 100 feet would instead produce 500 - 100 = 400 feet, illustrating how the system covers all 100-foot steps up to 500 feet without overlap. These encodings are output via dedicated wires in the Gillham interface, ensuring compatibility with transponder systems for Mode C replies.[15]Decoding Process
500-Foot Decoding
The 500-foot decoding process in Gillham code extracts the coarse altitude component from the received bits D1, D2, A1, A2, A4, B1, B2, and B4, which collectively form a 9-bit Gray code representation of the altitude in 500-foot increments (ranging from -2 to 126, offset by +2 for negative altitudes).[15] These bits are transmitted in parallel via the Gillham interface and must first be converted from Gray code to standard binary to obtain the numerical value. The standard bit order for the Gray code is D1 (MSB), D2, A1, A2, A4, B1, B2, B4 (LSB).[24] The Gray-to-binary conversion uses an iterative exclusive-OR (XOR) operation, starting from the most significant bit (MSB, D1) to the least significant bit (LSB). The MSB of the binary output equals the corresponding Gray bit. For each subsequent bit position i, the binary bit is computed as the XOR of the Gray bit at i and the binary bit at position i-1. This successive XOR method, often implemented via repeated right-shift XORs for efficiency (e.g.,temp ^= (temp >> 1); temp ^= (temp >> 2); temp ^= (temp >> 4); temp ^= (temp >> 8);), reconstructs the binary equivalent while leveraging the Gray code's property of single-bit transitions between adjacent values.[25][24]
With the binary value b obtained (0 to 126), the 500-foot base altitude is calculated as:
This yields the altitude rounded to the nearest 500 feet, ranging from -1,000 ft to 62,000 ft.[24]
To ensure data integrity, mirroring between the A and B bits is validated post-conversion. The B bits (B1, B2, B4) should correspond to a shifted or complemented version of the A bits (A1, A2, A4), specifically matching for even thousands of feet and inverting for odd thousands, as determined by the parity of the binary value from the 500-foot calculation. Mismatches indicate potential encoding errors.[24]
Additionally, the parity bit D4 provides error detection for the 500-foot bits. D4 is set to achieve even parity across A1, A2, A4, B1, B2, and B4; the XOR of these six bits should equal D4 such that the total XOR of all seven bits (including D4) is 0. A failed parity check signals transmission corruption, prompting rejection of the altitude data.[26]
