In chapter [chap:intro], Figure [fig:mode_s_inter_mode] shows that Mode S all-call replies can be generated by Mode S transponder to answer Mode S only all-call interrogations and Mode A/C/S all-call interrogations.
Downlink format 11 is used for the all-call reply, and the length of the messages is 56 bits. The structure of an all-call reply message is quite simple. It only contains four fields, which are shown in Table 1.1.
The fields can be decoded as follows:
The address refers to the 24-bit transponder address.
The decoding of PI is similar to the decoding of ADS-B parity (chapter [chap:adsb_parity]). For a message with downlink format 11, PI is overlaid with the interrogator identifier.1 Hence, assuming there is no error in the data, the CRC will produce the interrogator identifier code for all-call replies.
A decoding example is shown as follows:
MSG HEX: 5D484FDEA248F5 MSG BIN: 01011 101 010010000100111111011110 101000100100100011110101 [DF=11] [CA=5] [AA=484FDE] [CRC=22]
From the capability (CA=5), we can see the aircraft has a Level 2+ transponder, with the ability to set CA to 7 and that it is airborne. The CRC remainder indicates the interrogator identifier code is 22.
Try it out Using
pyModeS, we can obtain the ICAO address as:
import pyModeS as pms msg = "5D484FDEA248F5" icao = pms.icao(msg)
In fact, PI in ADS-B is also overlaid with the interrogator identifier. However, since ADS-B is not interrogation based, the identifier is set to 0. Thus, PI is always the same as the CRC remainder in ADS-B.↩︎