EasyManua.ls Logo

TECO F510 series - Page 410

TECO F510 series
555 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Loading...
4-321
Checksum Calculation
LRC
ex. NODE ADDRESS 01H
FUNCTION 03H
COMMAND 01H
00H
+ DATA LENGTH 0AH
------------------------------------------
0FH------------2’s complement
Checksum = F1H
CS(H) = 46H (ASCII)
CS(L) = 31H (ASCII)
CRC
CRC Check: CRC code covers the content from Slave address to DATA. Please calculate it
according to the following methods.
(1) Load a 16-bit register with FFFF hex (all1’s). Call this CRC register.
(2) Exclusive OR the first 8-bit byte of the message, the low-order byte of the 16-bit CRC register,
putting the result in the CRC register.
(3) Shift the CRC register one bit to the right (toward the LSB), Zero-filling the MSB, Extract and
examines the LSB.
(4) (If the LSB was 0): Repeat Steps (3) (another shift)
(If the LSB was 1): Exclusive OR the CRC register with the polynomial value A001 hex (1010
0000 0000 0001), putting the result in CRC register.
(5) Repeat Steps (3) and (4) until 8 shifts been performed. When this is done, a complete 8-bit
byte will be processed.
(6) Repeat Steps (2) through (5) for next 8-bit byte of the message, Continue doing this until all
bytes have been processed. The final content in the CRC register is the CRC value. When
sending the CRC value, the Low-order byte should be sent firstly, then the High-order byte.
For example, CRC value: 1241 Hex, the high-order byte should be set to 41hex and low-order
byte 12hex.
CRC Calculate Program (C language)
UWORD ch_sum (UBYTE long , UBYTE *rxdbuff ) {
BYTE i = 0;
UWORD wkg = 0xFFFF;
while ( long-- ) {
wkg ^= rxdbuff++;
for ( i = 0 ; i < 8; i++ ) {
if ( wkg & 0x0001 ) {
wkg = ( wkg >> 1 ) ^ 0xa001;
}
else {
wkg = wkg >> 1;
}
}
}
return( wkg );
}

Table of Contents

Other manuals for TECO F510 series

Related product manuals