TestBench.tools

MIL-STD-1553B Status Word Decoder

Decode 1553B status words: RT address and every status flag bit.

RT address
3

bits 15–11 RT address · 10–0 status flags · odd parity 1

BitFlagState
10Message Error0
9Instrumentation (reserved 0)0
8Service Request0
4Broadcast Command Received0
3Busy0
2Subsystem Flag0
1Dynamic Bus Control Acceptance0
0Terminal Flag0

This tool decodes a MIL-STD-1553B status word: enter the 16-bit hex value and it breaks out the responding RT address and the state of every status flag — Message Error, Service Request, Busy, Subsystem Flag, Terminal Flag and the rest — with the odd-parity bit. Reference: 0x1800 = RT 3, all flags clear; 0x1808 adds the Busy bit.

How it works

An RT answers a valid command by transmitting its status word. The top five bits echo the RT's own address so the bus controller can confirm the right terminal responded; the lower eleven bits are a fixed set of condition flags defined by MIL-STD-1553B. Because a status word shares the same sync and address layout as a command word, the message context — not the bits — tells you which it is. The Instrumentation bit (bit 9) is held at 0 in status words.

Worked example

0x1808 = 0001 1000 0000 1000
RT address 3 · Busy bit (3) set
all other flags 0 · odd parity 0

Parameters

ParameterValueNotes
RT addressbits 15–11
Message Errorbit 10
Service Requestbit 8
Broadcast Receivedbit 4
Busybit 3
Subsystem Flagbit 2
Dynamic Bus Control Acc.bit 1
Terminal Flagbit 0

C reference

C
#include <stdint.h>
#include <stdbool.h>

/* Extract the common MIL-STD-1553B status flags */
uint8_t rt_address(uint16_t s) { return (s >> 11) & 0x1F; }
bool message_error(uint16_t s) { return (s >> 10) & 1; }
bool service_req  (uint16_t s) { return (s >>  8) & 1; }
bool busy         (uint16_t s) { return (s >>  3) & 1; }
bool terminal_flag(uint16_t s) { return  s        & 1; }
/* 0x1808 -> RT 3, Busy set */

FAQ

What fields make up a 1553B status word?

Bits 15-11 are the responding RT's address; the remaining bits are status flags: Message Error (10), Instrumentation (9, reserved 0), Service Request (8), three reserved bits (7-5), Broadcast Command Received (4), Busy (3), Subsystem Flag (2), Dynamic Bus Control Acceptance (1) and Terminal Flag (0).

How do I tell a status word from a command word?

You can't from the 16 bits alone — both share the same command/status sync on the wire, and the RT address occupies the same top 5 bits. Context in the message tells you: an RT transmits its status word in response to a valid command. The Instrumentation bit (bit 9) is fixed at 0 in status words, which some systems use as an aid.

What does the Message Error bit indicate?

The RT sets Message Error when it detects a problem with the command or data it received — a parity error, an invalid word, an illegal command or a word-count mismatch. It tells the bus controller the last transfer to that RT should not be trusted.

What are the Busy and Service Request bits for?

Busy signals the RT cannot move data to or from the subsystem right now (it is discouraged in newer designs). Service Request is a general-purpose flag asking the bus controller for attention — typically to schedule a transfer the RT wants to perform.

Is anything uploaded?

No. Decoding runs entirely in your browser.

Related tools