12 of 15
added 573 characters in body
mins
  • 55996
  • 20
  • 238
  • 364

Transponders are using series of values with 2 states that can be viewed as binary numbers to a certain extend. A very short answer to your question is: When dealing with bits, it's more easy to have devices that work with a number of combinations which is a power of 2 (2, 4, 8, 16, 32...) than a power of ten (10, 100...).

This won't really explain, so I propose to look at the problem in depth for the fun, and while doing this let's fix a number of frequent misconceptions. As a bonus, I'll show the actual complexity of using decimal selectors in the case of transponder by trying to design a circuit using Boolean tools.


Technical specification: a 12-bit binary number and 4096 values

The transponder radio signal for the ID transmission is made of 12 pulses (modes A/C) that can be low or high, this allows 4096 ($2^{\small {12}}$) combinations.

As the pulses have only two states, low or high, we can refer them directly as a 12-bit binary number.

enter image description here
Source

The pulses are A4-A2-A1 B4-B2-B1 C4-C2-C1 D4-D2-D1, they are interleaved in the transmission.

As it would be a waste to not use all of them, we are left with an this number of 4096 possibilities.

To tell the transponder what are the L/H levels of the 12 pulses, we need to provide a 12-bit binary number between 0 and 4095.

Let's take some values (you can follow all conversions using this online converter):

enter image description here

Make numbers more human: Octal and hexadecimal numbers

It's not easy to remember accurately such 12-bit binary number. To be able to manage binary values, we usually replace groups of bits by another equivalent.

It's common to use groups of 3 and 4 bits (we can add as many 0 on the left as we want, like we do in decimal: 25 = 025 = 00025):

enter image description here

Octal: A group of 3 bits can generate 8 combinations, we can easily replace this group by a single figure in radix 8 to cover these combinations. Radix 8 is named "octal" numbering.

Maybe you're asking why radix 8 has 8 figures only: It's a consequence of the radix definition, e.g. we are using radix 10 in life, we have 10 figures from 0 to 9.

Hexadecimal: Similarly a group of 4 bits generates 16 combinations (twice the number of combinations for a group of 3, as the additional bit can have two values). We can replace the 4 bits of a group by a figure in radix 16, which name is "hexadecimal" numbering.

enter image description here

Let's be back to our examples, and replace the groups of bits by their equivalents in radix 8 or 16:

enter image description here

Select which radix to use

What have we got so far? We started with a 12-bit number, grouped bits either by 3 or 4, obtained the octal value (0000 to 7777) and hexadecimal value (000 to fff) equal to the binary number. We also have the decimal value of the bits (0 to 4095). Which one is better in this case?

The answer has been provided in other posts: At the beginning there was only 6 pulses allocated for the ID. Logically, they were grouped by 3, and octal was chosen. If there had been 7 pulses, probably the hexadecimal representation would have been selected, with values from 00 to 7f.

From radix to electromechanical switch

It was easy to design a wheel switch (thumbwheel) with 8 octal symbols that manage 3 actual switches to generate 3 on/off (low/high) electrical signals:

enter image description here
Source

To use the angular position of the wheel to close or open the three contacts, we could use many designs, one is to use brushes rotating over a disc with printed conductive tracks:

enter image description here
Source

The switch then provides directly the binary group. By assembling four switches, we could provide the transponder the "squawk" code, that is the binary configuration for the ID pulses.

It's as easy to use hexadecimal wheels with 4 contacts.

So why not 10 symbols?

We cannot group bits of a binary number into groups that can have exactly 10 combinations. This property is limited to power of 2 radix (4, 8, 16, 32...)

The radix 10 figures (our decimal system) are not good substitutes for direct conversion of binary.

It was possible later, with the introduction of integrated circuits (memories) to convert quite easily for decimal to binary. The 74S484 has been one such ICs. It could handle two inputs representing decimal values (the so-called "binary-coded decimal", BCD) and convert them in pure binary. The converter for 4 decimal figures (0 to 4095) would be designed like this, using 5 of these circuits:

enter image description here


As you see, it's more simple to use only 8 symbols ($2 ^{\small {3}}$), or 16 ($2 ^{\small {4}}$), and more generally a power of two.

It's legitimate to think we could also use a logic based on simple Boolean gates (NAND, XOR...) to manage the conversion from decimal to binary instead of a memory. This is not apparent at first sight, but it would actually requires a huge quantity of gates.

In order to be convinced, just follow the last part of this long post, I have done the exercise for only a single bit (out of 12) and for only two decimal wheels out of 4.


Calculate bit 4 value using only logical gates

Let's evaluate the Boolean circuitry required to get the right value for bit 4 of the binary ID (the one which as a weight of 16), taking into account only 2 decades: The wheel for the tens, and the wheel for the units.

With two decades, we manage 100 IDs, 0 to 99 in decimal. When we convert these decimal numbers into binary, we see that bit 4 has a value of 1 for wheels combinations 16 to 31, 48 to 63 and 80 to 95. I used this table to make this clear (click to enlarge):

enter image description here

There are also wheel BCD outputs that are not valid, because a decimal wheel won't issue a BCD code of 1010 which is greater than 9. The final result is in the truth table in pink in the right hand columns.

It also appears the value of the rightmost bit of the Unit wheel BCD output has no impact in the value of bit 4, so we may discard it from the analysis.

Currently the function to obtain bit 4 has not been optimized and it has tens of terms, each one would more or less requires its own gate (Dt is bit D of the BCD value for the Tens wheel, Cu is bit C for the Units wheel, etc):

enter image description here

Let's enter this into a Karnaugh's map using Karma from UFRGS. We are interested in indicating the combinations of inputs for which bit 4 has a value of 0, of 1, and cases where its value is not relevant (noted "-" in the truth table):

enter image description here

The order BCD bit values in the map is such that only one bit varies between adjacent cells (this order has a advantage of locating closely a variable and its 1's complement, and creating symmetry axes in the map (more details in Wikipedia article on Karnaugh's map).

Using Karma, we can now simplify the function used to set the value of bit 4:

After minimization:

enter image description here

The minimization allowed to reduce the number of terms (hence gates) from 24 complex to 10 simple. Still, this is only for one bit and two wheels. Sometimes it just doesn't worth the additional difficulty, specially at a time there was no ICs, to stick to decimal.

This last part was for the fun, but it clearly demonstrates how using octal or hexadecimal can greatly simpliy the work to be done.

mins
  • 55996
  • 20
  • 238
  • 364