Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
CAN/CSA Z243.101-89 (R2018), titled Data Communication – High-Level Data Link Control (HDLC) Procedures – Frame Structure, is the Canadian adoption of the international standard ISO 3309:1984. It defines the frame structure used in HDLC, a bit-oriented data link layer protocol that ensures reliable data transfer over synchronous or asynchronous communication links. This article provides a detailed examination of the standard’s scope, technical requirements, implementation considerations, and compliance notes for engineers and system architects.
The standard specifies the frame structure for HDLC-based communications. It applies to both point-to-point and multipoint configurations operating in balanced (BA) or unbalanced (UA, UB) modes. The scope includes:
CAN/CSA Z243.101-89 (R2018) is applicable to all HDLC implementations, including those in X.25, Frame Relay, ISDN LAPD, and other link layer protocols that inherit the HDLC frame format.
The HDLC frame consists of a fixed sequence of fields. Each frame starts and ends with a unique 8-bit flag. The standard mandates strict bit ordering, field sizes, and coding rules to maintain interoperability across heterogeneous systems.
The general frame format is:
| Flag (8 bits) | Address (8/16 bits) | Control (8/16 bits) | Information (variable) | FCS (16/32 bits) | Flag (8 bits) | Table 1 summarizes the fields defined by the standard.
| Field | Length (bits) | Description |
|---|---|---|
| Flag | 8 | Unique pattern 01111110; marks start and end of frame. |
| Address | 8, 16, or extended | Identifies the secondary station or multiple stations; extended formats use a continuation bit. |
| Control | 8 or 16 | Carries frame type (I, S, U) and sequence numbers; 16-bit format for extended sequencing. |
| Information | Variable (multiple of 8) | Contains higher-layer data; not present in supervisory (S) and some unnumbered (U) frames. |
| FCS | 16 or 32 | Cyclic Redundancy Check (CRC) covering address, control, and information fields. |
The flag pattern 01111110 is unique and must not appear anywhere else within a frame. To achieve transparency, the standard requires the transmitter to insert a 0 after any sequence of five consecutive 1s (bit stuffing). The receiver un-stuffs by removing any 0 that follows five 1s. This ensures payload data never mimics the flag.
The address field can be extended using a continuation bit (first bit set to 0 indicates addressee, 1 indicates more bytes). The control field distinguishes three frame types:
The FCS is a 16-bit or 32-bit CRC calculated using the polynomial defined in ISO 3309 (for 16-bit: CCITT CRC-16). It protects all bits between the opening flag and the FCS itself, excluding any stuffed bits. The generator polynomial for the 16-bit variant is G(x) = x16 + x12 + x5 + 1.
Adopting CAN/CSA Z243.101-89 (R2018) requires careful attention to bit ordering, transparency rules, and frame handling.
All bytes in the HDLC frame are transmitted least significant bit (LSb) first. This applies to the address, control, information, and FCS fields. The flag, however, is transmitted as a fixed bit pattern.
The standard defines an abort sequence of 7 or more consecutive 1s (no bit stuff) to terminate a frame prematurely. Interframe fill is accomplished by transmitting continuous flags (01111110) or idle line marks (1s). The receiver must treat flags as frame delimiters and ignore any sequence of 1s between frames.
When extended addressing is used, the first bit of each address octet acts as the extension indicator (0 = next octet follows, 1 = final octet). Similarly, the control field can be extended to 16 bits for large sequence number windows (modulus 128 vs. modulus 8). Implementations must check the initial bits to correctly parse the field boundaries.
CAN/CSA Z243.101-89 (R2018) was reaffirmed by the Canadian Standards Association (CSA Group) in 2018 without technical changes. It is identical to ISO 3309:1984. Compliance with the standard is typically verified through conformance testing that checks:
Organizations deploying HDLC-based systems (e.g., in SCADA, telecommunication, or industrial automation) should reference this standard to ensure reliable link-layer communication. While newer protocols such as PPP have evolved, HDLC remains foundational for many deterministic serial links.