MIL-STD 1553B
Last Updated: 19 May 2024This is a whole post on MIL-STD 1553B. This serial data bus was primarily used in aircraft avionics, but has since spread to space systems too. It’s old and slow but pretty reliable, making it a safe choice for high risk applications.
Introduction
Although the official standard includes descriptions of the mechanical and electrical characteristics, we are going to talk mostly about the functional aspect. To start, 1553B is a traffic control protocol for managing information traffic from multiple sources on a shared physical line. 1553 requires a controlling bus computer (BC) and an addresses for each terminal. Traffic is never parrallel. In other words, each terminal takes turns using the line, and ignores any information on the line while not actively in use. On any given 1553 line, there can be up to 31 remote terminals (RTs), each with their own subaddresses. Data transmission can happen in pretty much any direction.
Speed
1553B cables operate at 1MHz. Throw in a few extra bits for sync, parity, and formatting, and the total data rate is a little under 1 megabit per second… not very fast compared to modern interfaces.
Words
Within 1553B there are three types of words - Command, Data, and Status. A combination of these three words are used to complete any data transfer/commanding operation on the network. All words start with a sync pattern (since this is an asynchronous system after all) and a parity bit at the end. A command word has the following components:
- Destination RT address
- Destination Subaddress/Mode
- Receive or Transmit bit
- Data Word Count or Mode Code
The Subaddress Mode has a dual function, either to indicate the target subaddress, or it can be used to indicate that the word count section should instead be interpreted as a mode code. Mode codes are commands that can trigger some action at the receiver, typically to do with troubleshooting the 1553 terminal (e.g. commanding a reset).
Status Words have the followng components:
- Remote Terminal Address
- Message Error Bit
- Instrumentation Bit
- Service Request Bit
- Broadcast Command Bit
- Busy Bit
- Subsystem Flag Bit
- Dynamic Bus Control Bit
- Terminal Flat Bit
Messages
A messages is one complete exchange of data, usually consisting of multiple words, and at least 1 command and 1 status word. Depending on the direction of the transfer, these words will appear in different patterns. There is also a gap time of at least 4 microseconds between messages. Note that this slightly decreases the overall data rate.
When a remote terminal receives any command word, there is a window of time for it to respond (4 to 12 microseconds) before the bus controller will consider it a time-out.
Controller to RT
This type of transfer is used when commanding a unit at the remote terminal. The controller sends a command word followed by a number of data words. The remote terminal then validates the message and transmits a status word back to the controller.
RT to Controller
This transaction begins still with the controller issuing a command word, except this time, the transmit/receive bit is set to transmit. The RT then responds with a status word followed by a number of data words.
RT to RT
If you don’t want to route data through the controller, you can also command a direct RT to RT message. The Bus controller still must initiate this by commanding one RT to recieve and another RT to transmit. The transmitting RT then sends a status word followed by data words, and then the receiving RT responds with a status word.
Broadcast
The one exception to serial transfers is the broadcast mode. By setting the RT address to 31 in the command word, recievers know that they are receiving a broadcast meant for all remote terminals on the 1553 bus. This can used for Controller to RT and RT to RT transfers, as well as mode code commands.
Conclusion
The full 1553B user manual can be found here. Check it out!