1.3 Checksums - turag-ev/TURAG-Feldbus GitHub Wiki
- Each packet ends on a checksum which is 1 or 2 bytes long.
- Slaves can implement one of the specified checksum modes.
ID | Length | Checksum | Description |
---|---|---|---|
0x00 | - | - | reserved |
0x01 | 1 Byte | CRC-8/I-Code | CRC-8 mode; for very small devices which only send short messages |
0x02 | 1-2 Byte |
0...29 data bytes: CRC-8/I-Code 30+ data bytes: CRC-16/IBM-3740 |
CRC-8/16 mixed mode; all devices with enough resources to implement CRC-16; recommended mode |
- Parameters:
width=8 poly=0x1d init=0xfd refin=false refout=false xorout=0x00 check=0x7e residue=0x00 name="CRC-8/I-CODE"
[1] - detects all 1 bit errors, burst errors up to 8 bit and 2 bit errors up to 30 data bytes[2][3]
- Parameters:
width=16 poly=0x1021 init=0xffff refin=false refout=false xorout=0x0000 check=0x29b1 residue=0x0000 name="CRC-16/IBM-3740"
[4] - detects all odd bit errors, burst errors up to 16 bit and 2 bit errors up to 4 KB[5][6]
- ^ http://reveng.sourceforge.net/crc-catalogue/1-15.htm#crc.cat.crc-8-i-code
- ^ https://users.ece.cmu.edu/~koopman/crc/crc8.html
- ^ https://en.wikipedia.org/wiki/Mathematics_of_cyclic_redundancy_checks#Error_detection_strength
- ^ http://reveng.sourceforge.net/crc-catalogue/16.htm#crc.cat.crc-16-ibm-3740
- ^ https://users.ece.cmu.edu/~koopman/crc/crc16.html
- ^ https://en.wikipedia.org/wiki/Mathematics_of_cyclic_redundancy_checks#Error_detection_strength