Fujitsu FR81S Manuale Utente
CHAPTER 38: CRC
5. Operation
FUJITSU SEMICONDUCTOR LIMITED
CHAPTER
: CRC
FUJITSU SEMICONDUCTOR CONFIDENTIAL
18
5.6.1. Example 1 CRC16, Fixed Byte Input
Example 1 CRC16 and fixed byte input are shown below.
Figure 5-2 Example 1
//****************************************
// CRC16 (CRC ITU-T)
// polynomial: 0x1021
// initial value: 0xFFFF
// polynomial: 0x1021
// initial value: 0xFFFF
// CRCCR.CRC32: 0 // CRC16
// CRCCR.LTLEND: 0 // big endian
// CRCCR.LSBFST: 0 // MSB First
// CRCCR.LTLEND: 0 // big endian
// CRCCR.LSBFST: 0 // MSB First
// CRCCR.CRCLTE: 0 // CRC big endian
// CRCCR.CRCLSF: 0 // CRC MSB First
// CRCCR.FXOR: 0 // CRC Final XOR off
// CRCCR.CRCLSF: 0 // CRC MSB First
// CRCCR.FXOR: 0 // CRC Final XOR off
//****************************************
//
//
// Example 1-1 (Byte-unit writing)
//
//
// Initialization
B_WRITE (CRCCR, 0x01);
B_WRITE (CRCCR, 0x01);
// data write "123456789"
B_WRITE (CRCIN, 0x31);
B_WRITE (CRCIN, 0x32);
B_WRITE (CRCIN, 0x31);
B_WRITE (CRCIN, 0x32);
B_WRITE (CRCIN, 0x33);
B_WRITE (CRCIN, 0x34);
B_WRITE (CRCIN, 0x35);
B_WRITE (CRCIN, 0x34);
B_WRITE (CRCIN, 0x35);
B_WRITE (CRCIN, 0x36);
B_WRITE (CRCIN, 0x37);
B_WRITE (CRCIN, 0x38);
B_WRITE (CRCIN, 0x37);
B_WRITE (CRCIN, 0x38);
B_WRITE (CRCIN, 0x39);
// read result
// read result
H_READ (CRCR+2, data);
// check result
// check result
assert (data == 0x29B1);
//
//
// Example 1-2 (CRC check)
//
//
// Initialization
B_WRITE (CRCCR, 0x01);
B_WRITE (CRCCR, 0x01);
// data write "123456789" + CRC
B_WRITE (CRCIN, 0x31);
B_WRITE (CRCIN, 0x32);
B_WRITE (CRCIN, 0x31);
B_WRITE (CRCIN, 0x32);
B_WRITE (CRCIN, 0x33);
B_WRITE (CRCIN, 0x34);
B_WRITE (CRCIN, 0x35);
B_WRITE (CRCIN, 0x34);
B_WRITE (CRCIN, 0x35);
B_WRITE (CRCIN, 0x36);
B_WRITE (CRCIN, 0x37);
B_WRITE (CRCIN, 0x38);
B_WRITE (CRCIN, 0x37);
B_WRITE (CRCIN, 0x38);
B_WRITE (CRCIN, 0x39);
B_WRITE (CRCIN, 0x29); // <-- CRC
B_WRITE (CRCIN, 0xB1); // <-- CRC
B_WRITE (CRCIN, 0x29); // <-- CRC
B_WRITE (CRCIN, 0xB1); // <-- CRC
// read result
H_READ (CRCR+2, data);
// check result
assert (data == 0x0000);
(The following is assumed)
B_WRITE -- Byte writing
H_WRITE -- Half-word writing
W_WRITE -- Word writing
B_READ -- Byte reading
H_READ -- Half-word reading
W_READ -- Word reading
CRCCR
-- Control register address
CRCINIT -- Initial value register address
CRCIN
-- Input data register address
CRCR
-- Current CRC register address
3
1
3
2
3
3
3
9
Image of input order
into CRC calculator
MSB
LSB
MB91520 Series
MN705-00010-1v0-E
1287