Insights

MIL-STD-1553: command and response on a redundant bus

MIL-STD-1553 defines a serial data bus for military avionics: in the standard’s own words, a digital time division command/response multiplex data bus. Its B revision, dated 21 September 1978, superseded MIL-STD-1553A of 1975, and four notices have amended it since. The principle is simple. One terminal, the bus controller, starts every transfer, and every other terminal speaks only when commanded.

Three kinds of terminal

The bus controller (BC) initiates all information transfers on the bus. Remote terminals (RTs) are all the terminals that are neither the bus controller nor a bus monitor; each has a unique 5-bit address from 0 to 30, because address 31 is reserved for broadcast. A bus monitor (BM) listens to the traffic and extracts selected information for later use.

Manchester at 1 Mbit/s

The bus runs at 1 Mbit/s, ±0.1 %, in Manchester II bi-phase code: a 1 is a positive half bit followed by a negative one, a 0 the reverse, so the signal crosses zero in the middle of every bit. Every word is 20 bit times long: a sync of three bit times, 16 bits with the most significant bit first, and an odd parity bit. The sync is deliberately an invalid Manchester pattern, so it cannot be mistaken for data. Command and status words start with a sync that is positive for one and a half bit times and then negative; data words start the other way round.

Words and transfers

A command word, sent by the bus controller, carries the RT address, a transmit/receive bit, a 5-bit subaddress or mode code, and the number of data words, up to 32. A data word carries 16 bits of data. A status word from an RT repeats its address and carries flag bits: message error, instrumentation, service request, broadcast command received, busy, subsystem flag, dynamic bus control acceptance and terminal flag.

  • Bus controller to RT: a receive command followed immediately by the data words. The RT validates the message and answers with its status word.
  • RT to bus controller: a transmit command. The RT answers with its status word followed by the data words.
  • RT to RT: the bus controller sends a receive command to one RT and a transmit command to another. The transmitting RT sends its status and the data, and the receiving RT then confirms with its own status.

An RT has to answer a valid command within 4 to 12 µs, and a terminal waits at least 14 µs before it decides that no response came.

A bus controller, three remote terminals and a bus monitor on buses A and B, slowed down: at 1 Mbit/s a word lasts 20 µs. The waveform is the exact Manchester code of each word, and the decoder below it shows the word’s fields. When RT 5 does not answer on bus A, the bus controller retries the message on bus B. Addresses, subaddresses and data are examples.

Dual standby redundancy

Most installations use two buses, A and B, with every terminal connected to both. The standard calls this a dual standby redundant data bus: only one bus is active at any time. If a terminal that is busy with a command receives a valid command on the other bus, it resets and answers on the bus where the new command arrived. What the bus controller does after a failed message, for example retrying it on the other bus, is part of the system design.

MIL-STD-1553 on a test rig

On a hardware-in-the-loop rig the simulator usually plays one or more of the three roles: the bus controller when the unit under test is a remote terminal, the remote terminals that are not on the bench when the unit under test is the bus controller, and a bus monitor that records every word with a timestamp. Fault injection exercises the cases the standard defines, for example missing or late responses, parity errors, status flags such as busy, and a failed bus. We integrate MIL-STD-1553 into real-time systems for avionics and missile testing; if you are planning such a rig, get in touch.

Sources

Leave a Reply

Your email address will not be published. Required fields are marked *