Wireless Modem Data Pump
FX909A
1.5.5
CRC, FEC, Interleaving and Scrambling Information
1.5.5.1 CRC
This is a 16-bit CRC code used in the Mobitex Data Block. In transmit it is calculated by the modem
from the 18 data bytes using the following generator polynomial:
16
12
5
g(x) = x + x + x + 1
i.e. CRC - CCITT X.25.
This code detects all (single) error bursts of up to 16 bits in length and about 99.998% of all other
error patterns.
The CRC register is initialised to all '1s' and the CRC is calculated octet by octet starting with the
least significant bit of 'byte 0'. The CRC calculated is bit-wise inverted and appended to the data
bytes with the most significant bit transmitted earliest.
In receive mode, a 16-bit CRC code is generated from the 18 data bytes of each Mobitex Data Block
as above and the bit-wise inverted value is compared with the received CRC bytes. If a mis-match is
present, then an error has been detected.
1.5.5.2 FEC
In transmit mode, during T7H and TDB, the modem generates a 4-bit Forward Error Correction code
for each coded byte. The FEC is defined by the following H matrix:
7_______0
3___0
11101100
H = 11010011
10111010
1000
0100
0010
0001
01110101
Generation of the FEC consists of logically ANDing the byte to be transmitted with bits 7 to 0 of each
row of the H matrix. Even parity is generated for each of the 4 results and these 4 parity bits, in the
positions indicated by the last 4 columns of the H matrix, form the FEC code.
In checking the FEC, the received 12-bit word is logically ANDed with each row of the H matrix
(earliest bit received compared with the first column). Again even parity is generated for the 4
resulting words and these parity bits form a 4-bit nibble. If this nibble is all zero then no errors have
been detected. Other results 'point' to the bit in error or indicate that uncorrectable errors have
occurred.
This code can correct any single error that has occurred in each 12-bit (8 data + 4 FEC) section of
the message.
ã 1996 Consumer Microcircuits Limited
29
D/909A/4