Fujitsu FR81S Manuale Utente

Pagina di 2342
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 
//  CRCCR.CRC32:  0 // CRC16 
// 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 
//**************************************** 
 
// 
// Example 1-1 (Byte-unit writing) 
// 
 
// Initialization 
B_WRITE (CRCCR, 0x01); 
 
// data write "123456789" 
B_WRITE (CRCIN, 0x31); 
B_WRITE (CRCIN, 0x32); 
B_WRITE (CRCIN, 0x33); 
B_WRITE (CRCIN, 0x34); 
B_WRITE (CRCIN, 0x35); 
B_WRITE (CRCIN, 0x36); 
B_WRITE (CRCIN, 0x37); 
B_WRITE (CRCIN, 0x38); 
B_WRITE (CRCIN, 0x39); 
 
// read result 
H_READ (CRCR+2, data); 
 
// check result 
assert (data == 0x29B1); 
 
// 
// Example 1-2 (CRC check) 
// 
 
// Initialization 
B_WRITE (CRCCR, 0x01); 
 
// data write "123456789" + CRC 
B_WRITE (CRCIN, 0x31); 
B_WRITE (CRCIN, 0x32); 
B_WRITE (CRCIN, 0x33); 
B_WRITE (CRCIN, 0x34); 
B_WRITE (CRCIN, 0x35); 
B_WRITE (CRCIN, 0x36); 
B_WRITE (CRCIN, 0x37); 
B_WRITE (CRCIN, 0x38); 
B_WRITE (CRCIN, 0x39); 
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