next up previous contents
Next: Signal Modulation Up: Signal Flow in the Previous: Signal Flow in the   Contents


Error Detection

The error detection uses both Cyclic Redundancy Check (CRC) and checksum methods. SDLC/HDLC supports 16 bit CRC error detection. CRC can detect all the single errors, double errors and burst errors up to 16 bits in length and can also detect 99% of burst errors of lengths greater than 16 bits.

The way this works is as follows. A cyclic code message consists of a specific number of data bits $G(X)$ and a Block Check Character (BCC). Let $n$ equal the total number of bits in the message, $k$ equal the number of data bits, i.e. $n-k$ is the number of bits in the BCC. The code message is derived from two polynomials which are algebraic representations of two binary words, the generator polynomial $P(X)$ and the message polynomial $G(X)$. The generator polynomial $P(X)$ is a type of code used in CRC-12, CRC-16 and CRC-CCITT.

For example, $n$ bits of binary data can be represented as a message polynomial of degree $n-1$. Thus, an eight-bit long message $10101010$ is represented as

\begin{displaymath}
G(X) = X^7 + X^5 + X^3 + X^1.
\end{displaymath} (24.3.1)

The code message can be constructed as follows:

  1. Multiply the message $G(X)$ by $X^{n-k}$ where $n-k$ is the number of bits in the BCC.
  2. Divide the resulting product $X^{n-k}[G(X)]$ by the generator polynomial $P(X)$.
  3. Disregard the quotient and add the remainder $C(X)$ to the product to get the code message polynomial $F(X)$, which is represented as $X^{n-k}[G(X)]+C(X)$.

The division is performed in binary without carries or borrows. The code message $F(X)$ is transmitted as binary data and the receiver at the other end retrieves the message using the same generator polynomial and accepts the data if the remainder is zero.


next up previous contents
Next: Signal Modulation Up: Signal Flow in the Previous: Signal Flow in the   Contents
NCRA-TIFR