Also known as: NXDN frame, NXDN frame layout, NXDN superframe
The NXDN frame is the fixed 192-dibit (384-bit) unit that every NXDN transmission is built from, lasting 80 ms and carrying four fields in a fixed order: the Frame Sync Word (FSW), the LICH, the SACCH, and a 144-dibit information field.1 The structural layout is identical whether the channel runs the 4800-baud (BFSK) or 9600-baud (4FSK) air interface; the two rates differ only in how symbols map to bits, not in how the frame is divided.2
The four fields
The frame divides at fixed dibit offsets, so once the FSW correlator locks the grid every downstream field lives at a known position:
| Field | Dibits | Bits | Offset | Role |
|---|---|---|---|---|
| FSW | 8 | 16 | 0 | frame boundary marker (per-direction pattern) |
| LICH | 8 | 16 | 8 | 8 info bits, bit-doubled — RF channel type, direction |
| SACCH | 32 | 64 | 16 | slow signalling, one fragment per frame |
| Information | 144 | 288 | 48 | CAC (control), VCH/UDCH (voice/data), or FACCH |
The FSW is a fixed per-direction pattern; the LICH carries a heavily-protected 8-bit steering field; the SACCH carries a short slice of a longer control message; and the information field is the frame’s payload, whose meaning is selected by context. On a control channel that field carries the CAC (the RCCH signalling that grants calls); on a traffic channel it carries voice (VCH) or user data (UDCH), and it can be stolen frame-by-frame for in-band FACCH signalling.
Superframes and the SACCH
A single frame is only 80 ms, too short to carry a full control message inside its 64-bit SACCH, so NXDN groups frames into a superframe and spreads one SACCH message across the group. Each frame contributes one SACCH fragment; the receiver accumulates fragments until it holds the whole message, then decodes and CRC-checks it. This is the same “short-field-repeated-across-frames” strategy other digital land-mobile standards use to fit control signalling alongside voice without stealing payload from every frame — it trades latency (you wait a superframe for a complete message) for a steady low-rate signalling channel that runs underneath live traffic.
Relevance to SDR
internal/radio/nxdn/frame.go defines the frame geometry GopherTrunk decodes against: the
FrameDibits (192), the per-field dibit counts, and the OffsetFSW/OffsetLICH/
OffsetSACCH/OffsetInfo constants that slice a captured frame into its fields. The Frame
type exposes FSW(), LICH(), SACCH(), and Info() accessors that return exactly those
sub-slices. Because the layout is rate-invariant, the same deframing code serves both NXDN
channel rates — the demodulator absorbs the BFSK-versus-4FSK difference and hands the deframer
a uniform dibit stream. The source flags that the exact dibit lengths follow the most-cited
interpretation of the specification and should be confirmed against the published technical
document before unusual captures are trusted; the field ordering and the 80 ms frame period,
however, are stable across every NXDN reference.
Sources
-
NXDN — Wikipedia, on the NXDN standard and its frame organisation. ↩
-
Frame (networking) — Wikipedia, on the general notion of a fixed-layout transmission frame. ↩