In telecommunication, frame synchronization or framing is the process by which, while receiving a stream of fixed-length frames, the receiver identifies the frame boundaries, permitting the data bits within the frame to be extracted for decoding or retransmission.
When packets of varying length are sent, it is necessary to have an instantly recognizable packet-end delimiter. When a continuous stream of fixed-length frames are sent, a synchronized receiver can in principle identify frame boundaries forever. In practice, receivers can usually maintain synchronization despite transmission errors; bit slips are much rarer than bit errors. Thus, it is acceptable to use a much smaller frame boundary marker, at the expense of a lengthier process to establish synchronization in the first place.
Frame synchronization is achieved when the incoming frame alignment signals are identified (that is, distinguished from data bits), permitting the data bits within the frame to be extracted for decoding or retransmission.
If the transmission is temporarily interrupted, or a bit slip event occurs, the receiver must re-synchronize.
The transmitter and the receiver must agree ahead of time on which frame synchronization scheme they will use.
Common frame synchronization schemes are:
In telemetry applications, a frame synchronizer is used to locate frame boundaries within a serial pulse-code modulated (PCM) binary stream.
The frame synchronizer immediately follows the bit synchronizer in most telemetry applications. Without frame synchronization, decommutation is impossible.
The frame synchronizer searches the incoming bit-stream for occurrences of the frame synchronization pattern. If the pattern persists for long enough that an accidental match is implausible, the synchronizer declares the data synchronized and available for decoding. If a large number of mis-matches occur, the synchronizer declares a loss of synchronization.
The search can be sequential (only consider one starting point at a time), or multiple candidate starting points may be considered at once. Advanced techniques continue searching even while synchronization is established, so that, if synchronization is lost, by the time the loss is noticed a new frame start position has been found.[2]
It is not uncommon to have multiple levels of frame synchronization, where a series of frames is assembled into a larger "superframe" or "major frame". Individual frames are then "minor frames" within that superframe. Each frame contains a subframe ID (often a simple counter) which identifies its position within the superframe. A second frame synchronizer establishes superframe synchronization. This allows subcommutation, where some data is sent less frequently than every frame.