HFDL stands for High-Frequency Data Link. It is the HF band portion of a comprehensive, global, air-ground, communications system that also uses VHF and satellite. The ACARS ( Aircraft Communications Addressing and Reporting System) is another part of all this. Most people associate ACARS with VHF, but the HFDL protocol can carry it as well.
The HFDL standard is ARINC Report 635-3 (HF Data Link Protocols), which can be ordered from the company, Aeronautical Radio Inc, for a price. ARINC is a private company, formerly owned by the airlines, but now contracting with them for communication services.
Like packet radio, HFDL has layers. These are physical, link, and subnetwork. The subnetwork layer isn't important for receiving, since we're just randomly decoding everything on a frequency.
The physical layer is, once again, the actual transmission of data over the radio. HFDL is a single-tone, phase-shift keyed, text-based, error-checking mode with a baseband audio carrier frequency of 1440 Hz. It is tuned in USB, and the 1440 Hz center is critical for decoding. LSB works too, but the dial frequencies won't match the ones in the ARINC database.
Each burst begins with the unmodulated 1440-Hz tone, so that the decoder's automatic frequency control can lock on. This is the scary-sounding "frequency error" that is output by the decoder. Errors within 50 Hz or so can be ignored. This beeping, followed by hiss, is what the mode sounds like.
The symbol speed is fixed at 1800 baud, but the data rate is determined by the exact modulation used. BPSK is 300 bps, QPSK is 600, and 8PSK is 1200 or 1800. 300 is by far the most common, though I've heard it go up to 1200. Tuning error, modulation type, and signal quality are best viewed on a phase constellation display like the one in the PC-HFDL program.
Frequencies are stored in a numbered database, called a system table, which is sent by ARINC to all stations. A few times a year, the table is replaced by a new one with a higher number. The resulting mismatch causes aircraft software to request an update, which we receive too. At least one decoding program (again PC-HFDL) will grab these for its own use, if you're lucky to hear one. Afterward, the frequencies show up in kHz, which is extremely convenient. Otherwise, there are ways to update PC-HFDL manually with system tables found online.
Old databases aren't useless. The frequencies always come from the same pool, and never change that much.
Ground stations pick 2-3 frequencies from the table depending on propagation. This may change every few hours. The frequencies being used by the entire network are sent, two stations at a time, in the "squitter." (Squitter in air comm jargon is an unsolicited information transmission. More on these soon.)
Aircraft can choose frequencies, or even ground stations. If reception exists, they can also switch to satellite or VHF. The comm status is passed to the ground station. All this is automatic, so the crew can just get on with flying the airplane.
Transmission types are uplinks (ground-air), downlinks (air-ground), and the aforementioned squitters. A squitter is always sent every 32 seconds by the ground. It contains various network maintenance data, including all the frequencies (if you wait long enough). It's also a quick propagation check, because you're never more than half a minute from a ground transmission coming from a known location. Of course, aircraft may be heard even if the squitters are inaudible, and vice versa.
HFDL uses a simple form of time-division multiplex. The entire 32-second cycle is divided into 13 numbered slots of 2.5 seconds each. Slot 0 is always the squitter, leaving 1-12 for up- and downlinks. Databursts always occupy all of one slot, though the various overheads of the physical layer reduce the actual transmission of data to 1.8 seconds. Sometimes an uplink with an embedded ACARS message might require a double-length transmission using two slots.
The network assigns the use of these slots, keeping stations from transmitting at once. Assignments are made by ID, a temporary hexadecimal number given each aircraft at logon.
The use of condensed message formats and lookup tables makes HFDL extremely efficient in its use of air time. It's amazing how much can be crammed into a 2-second burst. Most decoders have a "verbose" mode which will output everything. Hundreds of lines with every kind of count and measurement you can think of will scroll madly up your screen, filling your buffer at a merry rate.
Really long ACARS messages, like airport arrival information (ATIS), can be sent in numbered packets (same as on VHF). Otherwise the communication makes use of standard formatted blocks called Protocol Data Units (PDU). This gets geeky in a hurry. Rather than write a 2000-word blog entry, I'll just list them:
SPDU
Squitter Protocol Data Unit
Frequencies and slot assignments, plus network maintenance data
PDU (PREAM)
Preamble Data Unit
Basic negotiation of connection - frequency error, station ID, bit rate, etc
BDU
Basic Data Unit
The smallest data block, from which LPDU are built
LPDU
Link Protocol Data Unit
Larger structure, which in turn makes up the largest ones
MPDU
Media Access Protocol Data Unit
Several LPDU concerning login, aircraft ID, and the ACARS message, if any
HFNPDU
High-Frequency Network Protocol Data Unit
Several LPDU, containing all manner of data, most for network maintenance. The most useful to us is HFNPDU PERFORMANCE, which will usually contain the flight number and GPS position of the aircraft.
Here are the ARINC ground stations. Note that some numbers are skipped:
1 San Francisco, CA
2 Molokai, HI
3 Reykjavik, Iceland
4 New York, NY
5 Auckland, NZ
6 Hat Yai, Thailand
7 Shannon, Ireland
8 Johannesburg, S. Africa
9 Barrow, AK
13 Santa Cruz, Bolivia
14 Krasnoyarsk, Russia
15 Al Muharraq, Bahrain
16 Guam
17 Canarias (Canary Islands)