[ Home | Up | Prev | Next | Disclaimer ]
width=16 poly=0x8005 init=0x0000 refin=true refout=true xorout=0x0000 check=0xbb3d residue=0x0000 name="CRC-16/ARC"
- Class: attested
- Alias: ARC, CRC-16, CRC-16/LHA, CRC-IBM
- AUTOSAR (24 November 2022), AUTOSAR Classic Platform release R22-11, Specification of CRC Routines
- I Comprehensive primer on CRC theory (Section 7.1, pp.19–22)
- I All parameters (Section 7.2.2.2, p.27)
- IV 7 codewords (Section 7.2.2.2, p.27)
000000000000
F20183E1C2
0FAA0055E30B
00FF5511CF6C
332255AABBCCDDEEFF98AE
926B554EE2
FFFFFFFF0194
- System Enhancement Associates (24 October 1986), ARC 5.20
- Haruyasu Yoshizaki (10 January 1996), LHA 2.55E
- Rahul Dhesi (19 April 1996), ZOO 2.1a
- Lammert Bies (August 2011), CRC calculator
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- II Implementation (
CRC16_arc
)
- Dr Ross N. Williams (19 August 1993), "A Painless Guide to CRC Error Detection Algorithms" (courtesy of the Internet Archive)
- III All parameters (except Residue)
- Emil Lenchak, Texas Instruments, Inc. (June 2018), CRC Implementation With MSP430
- III All parameters (except Residue) (Section 4.6, p.6)
- Altera Corporation (April 1999), crc MegaCore Function Data Sheet, version 2 (courtesy of the Internet Archive)
- III All parameters (except Residue) (p.6)
- Unique effective solution of codeword set
- Created: 30 March 2005
- Updated: 2 August 2023
width=16 poly=0xc867 init=0xffff refin=false refout=false xorout=0x0000 check=0x4c06 residue=0x0000 name="CRC-16/CDMA2000"
- Class: academic
- 3rd Generation Partnership Project 2 (3GPP2) (September 2009), Physical layer standard for cdma2000 spread spectrum systems, revision E, version 1.0 (courtesy of the Internet Archive)
- I Definition: Width, Poly (Section 2.1.3.1.4.1.1, p.2-95)
- I Full description (Section 2.1.3.1.4.1, p.2-95)
- I Shift register diagram (Figure 2.1.3.1.4.1.1-1, p.2-95)
- Agilent Technologies, Advanced Design System 2008 Update 2,
CDMA2K_CRC_Coder
module documentation (courtesy of the Internet Archive)
- Created: 14 October 2013
- Updated: 28 July 2023
width=16 poly=0x8005 init=0xffff refin=false refout=false xorout=0x0000 check=0xaee7 residue=0x0000 name="CRC-16/CMS"
- Class: third-party
- Dainius Šimelevičius, Remi K. Mommsen et al. (16 December 2016), CERN CMS Online Software (XDAQ) release 14, Event Builder source package, files
daq/evb/include/evb/CRCCalculator.h
, daq/evb/src/common/CRCCalculator.cc
- III All parameters (except Residue)
- III Code: C++
- "movilstore" (24 January 2011), Computer Interfacing Forum topic 1650 (courtesy of the Internet Archive)
- III Reference to application of algorithm on Samsung mobiles
- IV 5 codewords
0200080078110000F00F0000F7E0
020008005B110000F00F00004725
0200080050110000F00F0000F71F
0200080024110000F00F00003636
02000800A6100000F00F0000141A
- "xtrusion" (28 November 2010), Computer Interfacing Forum topic 1627 (courtesy of the Internet Archive)
- IV 12 codewords
0200080034100000B0090000B725
0200080029100000B0090000E76E
0200080002100000B0090000D79B
0200080005100000B0090000A789
0200080078100000B0090000F696
00050900000000003030303000D55E
01000400051000003793
0200080034100000F00F00003740
0200080029100000F00F0000670B
0200080002100000F00F000057FE
0200080005100000F00F000027EC
0200080078100000F00F000076F3
- "Robert" ("xtrusion") (25 December 2010), Computer Interfacing Forum topic 1636 (courtesy of the Internet Archive)
- IV 5 codewords
02000C00301000009A01000000000000837B
02000C00301000009A0100009A0100004B55
02000C00301000009A01000034030000934E
02000C00301000009A010000CE0400005B09
02000C00301000009A01000068060000A311
- Unique effective solution of codeword set
- Created: 13 July 2016
- Updated: 2 August 2023
width=16 poly=0x8005 init=0x800d refin=false refout=false xorout=0x0000 check=0x9ecf residue=0x0000 name="CRC-16/DDS-110"
- Class: attested
- Used in the ELV DDS 110 function generator. Init value is equivalent to an augment of 0xFFFF prepended to the message.
- ELV Elektronik AG (March 2008), Software-Schnittstelle der Funktionsgeneratoren DDS 10/DDS 110 (in German; courtesy of the Internet Archive)
- I Definition: Width, Poly, CRC byte order (p.67)
- IV 1 codeword (escaped according to the text) (p.67)
0200108200731082F7FE
(source: 02000200731082FEF7
)
- "wortel", "Gammatester" (19 July 2009), Computer Interfacing Forum topic 1372 (courtesy of the Internet Archive)
- III All parameters (except Check, Residue) ("Gammatester")
- IV 3 codewords ("wortel")
02001082007800ED96
020010820078016D93
020005006600057A586435
- Unique effective solution of codeword set
- Created: 30 November 2009
- Updated: 28 December 2019
width=16 poly=0x0589 init=0x0000 refin=false refout=false xorout=0x0001 check=0x007e residue=0x0589 name="CRC-16/DECT-R"
- Class: attested
- Alias: R-CRC-16
- Used in DECT A-fields.
- ETSI EN 300 175-3 version 2.5.1 (August 2013)
- I Full mathematical description (Section 6.2.5.2, p.99)
- I Performance of polynomial (Annex B, p.297)
- Thomas Pircher (5 November 2022), pycrc 0.10.0
- Pavel Yazev (9 September 2015), gr-dect2 module
gr-dect2/lib/packet_decoder_impl.cc
- Created: 7 December 2009
- Updated: 3 August 2023
width=16 poly=0x0589 init=0x0000 refin=false refout=false xorout=0x0000 check=0x007f residue=0x0000 name="CRC-16/DECT-X"
- Class: attested
- Alias: X-CRC-16
- The single codeword is supported by the implementation confirming CRC-16/DECT-R, defined identically apart from XorOut in the same standard. Used in DECT B-fields.
- ETSI EN 300 175-3 version 2.5.1 (August 2013)
- I Definition: Residue; full mathematical description (Section 6.2.5.4, pp.99–101)
- I Performance of polynomial (Annex B, p.297)
- "Nick" (27 November 2010), StackOverflow submitted question
- Created: 30 July 2010
- Updated: 2 January 2021
width=16 poly=0x3d65 init=0x0000 refin=true refout=true xorout=0xffff check=0xea82 residue=0x66c5 name="CRC-16/DNP"
- Class: confirmed
- Lammert Bies (August 2011), CRC calculator
- Created: 2 November 2007
- Updated: 28 December 2019
width=16 poly=0x3d65 init=0x0000 refin=false refout=false xorout=0xffff check=0xc2b7 residue=0xa366 name="CRC-16/EN-13757"
- Class: confirmed
- Used in the Wireless M-Bus protocol for remote meter reading.
- STACKFORCE GmbH (2014), Capt²web sniffer, wireless M-Bus monitor (courtesy of the Internet Archive)
- II Transcripts confirming implementation with at least 124 codewords (selection)
EE449ACE010000802307AABC
7A4700E0A535E79CFAA94D07B173BC101496
021CCB0127DCF516FF4EA8BC0A4851744D3D
438A680ECFC8EAA7F5D6476CAD938EBF88AF
259794C336C6FE9601D99F81B5EBDD9F36B5
67FC406AA1107F380CA349EB2F1AD57AD22A
7D8067CD9D1076
D0F1E6C2C3962E
384BABA953BCE5
70414545C59920
F0649A4E111111110000E9CA
A12F2F2F2F2F2F2F2F2F2F2F2F2F2F2F4A08
2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F63D7
7A8D00E0A503B1922864C36F29B37AF0646A
D1391E979A44C456786CBB99CD6ECAACB373
- In the Web interface packet view, the bytes of the A and M fields are displayed in reverse, compared to transmission order.
- Patrick Seem, Texas Instruments, Inc. (23 October 2008), AN067: Wireless MBUS Implementation with CC1101 and MSP430
- III Definition: Width, Poly, Init, XorOut (Section 5.4, p.9)
- III Describes synchronous transfer with MSBs sent first, implying RefIn and RefOut (Sections 7.2.1, 7.3.1, pp.13–14)
- Dr.-Ing. Thomas Weinzierl, Weinzierl Engineering GmbH (July 2005), Stack Implementation for KNX-RF (courtesy of the Internet Archive)
- III Definition: Poly (Section 2.3, p.3)
- III CRC byte order, implying RefIn and RefOut (Section 2.3, p.2, etc.)
- Radio link corresponds to Link A in AN067 (Section 2.2, p.2 vs. AN067 table 3, p.6)
- "Tim" (6 June 2004), Control.com forum post
- III Width, Poly cited for ISO/IEC 60870-5-2
- "MarcPo", "Gammatester" (30 September 2008), Computer Interfacing Forum topic 925 (courtesy of the Internet Archive)
- III All parameters (except Check, Residue) ("Gammatester")
- IV 1 codeword ("MarcPo")
- "Chris P." (27 April 2009), Computer Interfacing Forum topic 1315 (courtesy of the Internet Archive)
- Unique effective solution of codeword set
- Created: 1 October 2008
- Updated: 28 December 2019
width=16 poly=0x1021 init=0xffff refin=false refout=false xorout=0xffff check=0xd64e residue=0x1d0f name="CRC-16/GENIBUS"
- Class: attested
- Alias: CRC-16/DARC, CRC-16/EPC, CRC-16/EPC-C1G2, CRC-16/I-CODE
- Used in standardised RFID tags. Presented high byte first.
- EPCglobal Inc™ (4 September 2018), EPC UHF Gen2 Air Interface Protocol: EPC™ Radio-Frequency Identity Protocols Generation-2 UHF RFID Standard, release 2.1
- I Definition: Width, Poly, Init, Residue (Table 6-11, p.33)
- I Definition: RefIn, Residue (Annex F.2, p.143)
- I Shift register circuit diagram (Figure F-2, p.144)
- I Transmission order, implying RefIn and RefOut (Section 6.3.1.4, p.33)
- IV 7 codewords (Table F-2, pp.144–5)
0000E2F0
08001111CCAE
100011112222968F
180011112222333378F6
20001111222233334444C241
2800111122223333444455552A91
30001111222233334444555566661835
- Philips Semiconductors (30 January 2004), SL2 ICS11 Product Specification, revision 3.0 (courtesy of the Internet Archive)
- I Definition: Width, Poly, Init, Residue (Section 10.2, p.26)
- I Code: C (Section 10.3.2, pp.30–32)
- I Worked example (as code trace) (Section 10.3.2, p.32)
- ETSI EN 300 751 version 1.2.1 (January 2003)
- I Definition: Width, Poly (Section 11.2.5, p.68)
- IV 1 codeword (Section 11.2.5, p.68)
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Hee-Bok Kang et al. (December 2008), High Security FeRAM-Based EPC C1G2 UHF (860 MHz-960 MHz) Passive RFID Tag Chip, ETRI Journal, Volume 30 Number 6
- IV 2 codewords (p.830)
101000000001000000000000000000101000001010001
3000319F60A356276E28F14FDC9C5DB4
- "Geert" (7 December 2007), Computer Interfacing Forum topic 216 (courtesy of the Internet Archive)
- III Quoted definition for GENIbus: Width, Poly, Init, XorOut
- IV 2 codewords cited for GENIbus
100120020C823E003982150064820900FA910A
07200102C302101A901C
- Scott McLaughlin (24 September 2008), Computer Interfacing Forum topic 907 (courtesy of the Internet Archive)
- III Reported definition for TI Tag-It: full (except Check, Residue)
- IV 4 codewords cited for TI Tag-It
0000000001000000000101100011110010111
000000000101000000000000000011000101100011010000000101101101000111001
11000000010100000000000000000110001011000110100000001000000100011111001001111011010001011100000011000001
00000001010100000000000000001100010110001101000000011000001110000000010101010101010101100010011000111
- Unique effective solution of codeword set
- Created: 2 November 2007
- Updated: 3 January 2021
width=16 poly=0x1021 init=0x0000 refin=false refout=false xorout=0xffff check=0xce3c residue=0x1d0f name="CRC-16/GSM"
- Class: attested
- ETSI TS 100 909 version 8.9.0 (January 2005)
- I Full mathematical description (Section 5.1.2.2, p.67 — Section 5.1.3.2, p.69 — Section 5.1.4.2, p.70)
- ECMA standard ECMA-130, edition 2 (June 1996) — ISO/IEC 10149:1995
- I Definition: Width, Poly, XorOut, RefOut (Section 22.3.6, p.23)
- Andreas Mueller et al. (15 May 2018), cdrdao 1.2.4, modules
cdrdao-1.2.4/dao/SubChannel.cc
, cdrdao-1.2.4/dao/PQSubChannel16.cc
- Stanislav Brabec (26 January 2018), CD-disassembler 0.1 (gzipped tar archive; courtesy of the Internet Archive), module
cddisasm-0.1/cddisasm.c
- Stanislav Brabec (17 January 2014), CD-disassembler homepage (courtesy of the Internet Archive)
- IV 2 codewords
010101000000000002005A28
035D24E3580200010034D0F2
- Created: 17 February 2017
- Updated: 4 August 2023
width=16 poly=0x1021 init=0xffff refin=false refout=false xorout=0x0000 check=0x29b1 residue=0x0000 name="CRC-16/IBM-3740"
- Class: attested
- Alias: CRC-16/AUTOSAR, CRC-16/CCITT-FALSE
- An algorithm commonly misidentified as CRC-CCITT. CRC-CCITT customarily refers to the LSB-first form of the algorithm in ITU-T Recommendation V.41 (see CRC-16/KERMIT); its MSB-first counterpart is CRC-16/XMODEM.
- AUTOSAR (24 November 2022), AUTOSAR Classic Platform release R22-11, Specification of CRC Routines
- I Comprehensive primer on CRC theory (Section 7.1, pp.19–22)
- I All parameters (Section 7.2.2.1, p.26)
- IV 7 codewords (Section 7.2.2.1, p.26)
0000000084C0
F20183D374
0FAA00552023
00FF5511B8F9
332255AABBCCDDEEFFF53F
926B550745
FFFFFFFF1D0F
- Western Digital Corporation (May 1980), FD 179X-02 datasheet (courtesy of University of Kent Mirror Service)
- I Definition: Width, Poly, Init (p.5)
- Floppy disc formats: IBM 3740 (FM, e.g. Acorn DFS), ISO/IEC 8860-2:1987 (DOS 720K), ISO/IEC 9529-2:1989 (DOS 1.4M)
- Lammert Bies (August 2011), CRC calculator
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Dr Ross N. Williams (19 August 1993), "A Painless Guide to CRC Error Detection Algorithms" (courtesy of the Internet Archive)
- III All parameters (except Check, Residue)
- Berndt M. Gammel (29 October 2006), Matpack 1.9.1 class
MpCRC
documentation
- III All parameters (except Residue)
- Altera Corporation (April 1999), crc MegaCore Function Data Sheet, version 2 (courtesy of the Internet Archive)
- III All parameters (except Residue) (p.6)
- Scarybeasts (19 February 2021), Beebjit module
beebjit/ibm_disc_format.c
- III Code: C
- IV 2 codewords
FE00000001F1D3
FB
+ E5
× 256 + A40C
- Unique effective solution of codeword set
- Created: 30 March 2005
- Updated: 3 August 2023
width=16 poly=0x1021 init=0xffff refin=true refout=true xorout=0xffff check=0x906e residue=0xf0b8 name="CRC-16/IBM-SDLC"
- Class: attested
- Alias: CRC-16/ISO-HDLC, CRC-16/ISO-IEC-14443-3-B, CRC-16/X-25, CRC-B, X-25
- HDLC is defined in ISO/IEC 13239. CRC_B is defined in ISO/IEC 14443-3.
- ITU-T Recommendation T.30 (September 2005)
- I Definition: Residue; full mathematical description (Section 5.3.7, p.78)
- ITU-T Recommendation V.42 (March 2002)
- I Definition: Residue; full mathematical description (Section 8.1.1.6.1, p.17)
- ITU-T Recommendation X.25 (October 1996)
- I Definition: Residue; full mathematical description (Section 2.2.7.4, p.9)
- IV 4 codewords (Appendix I, p.145)
033F5BEC
01738357
013FEBDF
03733364
- IETF RFC 1331 (May 1992)
- I Code: C (Appendix B, pp.61–3)
- IETF RFC 1662 (July 1994)
- I Code: C (Appendix C.2, pp.19–21)
- William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), Numerical recipes in C: The art of scientific computing, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
- III All parameters (except Check) (p.898)
- III Code: C (pp.900–1)
- IV 2 codewords (p.898)
54D9E4
(source: 54261B
)
4361744D6F757365393837363534333231910A
(source: 4361744D6F7573653938373635343332316EF5
)
- Berndt M. Gammel (29 October 2006), Matpack 1.9.1 class
MpCRC
documentation
- III All parameters (except Residue)
- iBiquity Digital Corporation (14 December 2016), HD Radio™ Air Interface Design Description: Advanced Application Services Transport, rev. H (courtesy of National Radio Systems Committee)
- IV 1 codeword (Figure 6-3, p.17)
21005100004944330300000000004A544954320000000D000000416E616C6F6720426C756573545045310000000D0000004A2E20512E205075626C696354414C4200000012000000546865204C6F73742053657373696F6E73F527
- ISO/IEC FCD 14443-3 (24 November 2008)
- IV 3 codewords (Annex B.2, p.50)
000000CCC6
0FAAFFFCD1
0A1234562CF6
- Unique effective solution of codeword set
- Created: 10 September 2005
- Updated: 4 August 2023
width=16 poly=0x1021 init=0xc6c6 refin=true refout=true xorout=0x0000 check=0xbf05 residue=0x0000 name="CRC-16/ISO-IEC-14443-3-A"
- Class: attested
- Alias: CRC-A
- Used in contactless IC cards.
- ISO/IEC FCD 14443-3 (24 November 2008)
- I Definition: Init, XorOut (Section 6.2.4, p.11)
- I Citation for rest of algorithm: ISO/IEC 13239 (see CRC-16/IBM-SDLC)
- IV 2 codewords (Annex B.1, p.49)
- Adam Laurie (31 August 2010), crc16.c (C source text; courtesy of the Internet Archive)
- Adam Laurie (31 August 2010), comment on a Ridrix's Blog post
- III Code: C
- IV 1 codeword
- Flavio D. Garcia, et al. (October 2008), Dismantling MIFARE Classic, Proceedings of the Thirteenth European Symposium on Research in Computer Security (ESORICS 2008)
- IV 6 codewords (Figure 2, p.100; Section 4.1, p.102, referencing ISO/IEC 14443; Figure 6, p.105)
9370C2A82DF4B3BAA3
08B6DD
6030764A
500057CD
937000000000009CD9
6000F57B
- Flavio D. Garcia, et al. (October 2008), Dismantling MIFARE Classic, slide presentation, ESORICS 2008 conference
- IV 1 additional codeword (p.13)
- Unique effective solution of codeword set
- Created: 30 April 2011
- Updated: 3 August 2023
width=16 poly=0x1021 init=0x0000 refin=true refout=true xorout=0x0000 check=0x2189 residue=0x0000 name="CRC-16/KERMIT"
- Class: attested
- Alias: CRC-16/BLUETOOTH, CRC-16/CCITT, CRC-16/CCITT-TRUE, CRC-16/V-41-LSB, CRC-CCITT, KERMIT
- Used in Bluetooth error detection. Init=0x0000 is used in the Inquiry Response substate.
- Press et al. identify the CCITT algorithm with the one implemented in Kermit. V.41 is endianness-agnostic, referring only to bit sequences, but the CRC appears reflected when used with LSB-first modems. Ironically, the unreflected form is used in CRC-16/XMODEM.
- For the algorithm often misidentified as CCITT, see CRC-16/IBM-3740.
- ITU-T Recommendation V.41 (November 1988)
- I Definition: Residue; full mathematical description (Section 2, p.2)
- I Shift register diagrams (Appendix I, p.9)
- Frank da Cruz (June 1986), Kermit Protocol Manual, Sixth Edition (plain text; courtesy of the Internet Archive)
- I Full definition (except Check) (Section 6.3)
- I Pseudocode (Section 6.3)
- Bluetooth SIG (31 January 2023), Bluetooth Specification, Core Version 5.4
- I Definition: Init (Section 2.B.1.2.1, p.425; Section 2.B.6.5.1.4, pp.481–3 — Section 2.B.6.6.2, pp.490–3 — Section 2.B.7.1, p.497 — Section 2.B.8.4.3, pp.525–7)
- I Definition: Width, Poly, RefIn, RefOut, XorOut (Section 2.B.7.1.2, pp.498–9)
- I Shift register diagram (Figure 2.B.7.6, p.499)
- Lammert Bies (August 2011), CRC calculator
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Aviation Data Systems (Aust) Pty Ltd. (13 June 2006), PC.ACARS-G ACARS client (PATS presentation) (courtesy of the Internet Archive)
- II Transcripts confirming implementation with 10 codewords
43AED6C8ADD651431551B03102D332B9C1D651313732B583F303
6DAEB9CDADCD524F15C1C154022FCD454C43C1D9C1AEC15431AEB9CDADCD524F32B0B93446C2C13443B0B3B9B946834861
CDAEB9CDADCD524F54DF7F3802D33231C1CDC8B03134388361A7
6D8080808080808015D3518002B0B058D3838236
CDAEB9CDADCD524F15C2C1B9024CB032C1CDC8B03134382FCD454C43C1D9C1AEC15431AEB9CDADCD524FC1B0B9B531323443B3C4B9B0B3C2C1B53131C2B9B0B0C143B53437313443B0C437C134B6B54334C1C432B6B9B5B5C14343433445B9C13831B543383132343446C131B332B0B934B9B0B3B3C1B0454534C438374643B3834483
6DAEB9CDADCD524FB9DF7FD58391C6
43AED6C8ADDA5843D50DD0C1524954D920BF8397AC
43AED6C8ADDA584315C831BC0DD0C1524954D920BF8302D5
32AED6C8ADDA58C21538313702CD31B3C15146B034B3B90D8ACDD6C10D8A5146C1B034B3B92F31B0AED6C8DA58C2AECD454C200D8AC1C1B0B53137202020202083751B
6DAEB9D6ADD3CD57B5DF7F4A839BC6
- Andrew Richardson (17 March 2005), WCDMA Design Handbook, Cambridge University Press, ISBN 0-521-82815-5 (embedded content)
- III Definition: Width, Poly, Residue (Section 7.1.3, Table 7.3, p.223)
- III Shift register diagram (Figure 7.4, p.223)
- William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), Numerical recipes in C: The art of scientific computing, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
- III All parameters (except Check) (p.898)
- III Code: C (pp.900–1)
- IV 2 codewords (p.898)
54A114
4361744D6F7573653938373635343332318DC2
- Atmel Corporation (30 March 2015), Application Note ATAN0086: Using Atmel ATA5577 in Animal Identification Application according to ISO11784/85 (courtesy of MCS Electronics)
- IV 2 codewords (Figure 2-2, p.5; Figure 3-1, p.6)
10000000000000000000000000000000000000111001111100000000000000010010001001110100
10001110110001001100011000000010000000111001111100000000000000010111110011100100
- reveng -m CRC-16/KERMIT -i 0047 -X -c 4E010203040506070809 →
6DD2
- reveng -m CRC-16/KERMIT -i 0047 -a 1 -X -c 011101001000000001000000110000000010000010100000 →
1110110000110110
- reveng -m CRC-16/KERMIT -i 0047 -a 1 -X -c 01110100100000000100000011000000001000001010000011 →
1011000011011000
- Unique effective solution of codeword set
- Created: 10 September 2005
- Updated: 4 August 2023
width=16 poly=0x6f63 init=0x0000 refin=false refout=false xorout=0x0000 check=0xbdf4 residue=0x0000 name="CRC-16/LJ1200"
width=16 poly=0x5935 init=0xffff refin=false refout=false xorout=0x0000 check=0x772b residue=0x0000 name="CRC-16/M17"
- Class: attested
- Contributed by Mark Adler.
- M17 Project (13 July 2023), M17 protocol specification, version 1.0
- I Definition: Width, Poly, Init, RefIn, RefOut, Check (Section 2.5.4, pp.24–5; Table 2.9, p.25)
- IV 3 codewords (Table 2.9, p.25)
FFFF
41206E
(i)
× 256 + 1C31
- Created: 7 May 2022
- Updated: 8 August 2024
width=16 poly=0x8005 init=0x0000 refin=true refout=true xorout=0xffff check=0x44c2 residue=0xb001 name="CRC-16/MAXIM-DOW"
- Class: attested
- Alias: CRC-16/MAXIM
- Maxim Integrated (8 August 2012), DS1921G Datasheet
- I Definition: Width, Poly, Init, XorOut (p.32)
- I Shift register diagram (p.34)
- Maxim Integrated (22 August 2012), Application Note 27 (PDF, HTML)
- I Definition: Init (p.10)
- I Shift register diagram (p.11)
- I Code: 8051 assembler (pp.12–16)
- I Worked example (p.15)
- Created: 26 April 2009
- Updated: 28 December 2019
width=16 poly=0x1021 init=0xffff refin=true refout=true xorout=0x0000 check=0x6f91 residue=0x0000 name="CRC-16/MCRF4XX"
- Class: attested
- Youbok Lee, PhD, Microchip Technology Inc. (16 July 2001), "CRC Algorithm for MCRF45X Read/Write Device"
- I Definition: Width, Poly (reverse form) (p.1)
- I Shift register diagram (p.1)
- I Flowchart (p.2)
- I Worked example (p.3)
- I Code: C (pp.4–5)
- Piers Desrochers, PICList MassMind, "A quick guide to CRC" (courtesy of the Internet Archive)
- III Description
- III Worked example
- William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), Numerical recipes in C: The art of scientific computing, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
- III All parameters (except Check) (p.898)
- III Code: C (pp.900–1)
- IV 2 codewords (p.898)
54261B
4361744D6F7573653938373635343332316EF5
- "kilobravo" (16 June 2008), Computer Interfacing Forum topic 578 (courtesy of the Internet Archive)
- Unique effective solution of codeword set
- Created: 18 January 2008
- Updated: 4 August 2023
width=16 poly=0x8005 init=0xffff refin=true refout=true xorout=0x0000 check=0x4b37 residue=0x0000 name="CRC-16/MODBUS"
- Class: attested
- Alias: MODBUS
- CRC presented low byte first.
- MODICON Inc. (June 1996), Modbus Protocol Reference Guide, Rev. J
- I Algorithm (pp.112–3)
- I Code: C (pp.113–5)
- Lammert Bies (August 2011), CRC calculator
- Ondřej Karas (28 February 2006), CRC calculator
- Panu-Kristian Poiksalo (28 February 2003), Control.com forum post
- Created: 27 February 2007
- Updated: 2 January 2021
width=16 poly=0x080b init=0xffff refin=true refout=true xorout=0x0000 check=0xa066 residue=0x0000 name="CRC-16/NRSC-5"
- Class: attested
- Implemented in standard NRSC-5-D as a 16-bit CRC truncated (punctured) to 12 bits. The upper 4 bits, the last to leave the shift register, are discarded.
- Init = 0xFFFF implements the algorithm prescribed by iBiquity on 80-bit PDUs. Substitute Init = 0x39C8 if skipping 8 leading zeroes, Init = 0x849D if skipping all 12 leading zeroes and processing only the 68 message bits. In any case Init = 0x0000, XorOut = 0x4955 is equivalent.
- iBiquity Digital Corporation (23 August 2011), HD Radio™ Air Interface Design Description: Station Information Service Transport, rev. J (courtesy of National Radio Systems Committee)
- I Definition: Poly (mantissa only); method (Section 4.10, p.38)
- Incorporated by normative reference into National Radio Systems Committee standard NRSC-5-D.
- Andrew Wesie (9 June 2017), NRSC-5 receiver for rtl-sdr, file
nrsc5/support/sample.xz
(XZ compressed raw radio recording, 22 MB)
- II Recording confirming implementation with 28 codewords (4 bits extrapolated; selection)
000048BBABA0329A0A0A2671
(source: 00001010000010101001101000110010101000001010101110111011010010000000000100100110
)
0030C8D3D37379D91E0A7B40
(source: 00001010000111101101100101111001011100111101001111010011110010000011000001111011
)
0010C097A920F31B240A2D1D
(source: 00001010001001000001101111110011001000001010100110010111110000000001110100101101
)
00200882E861D03C3C0AEB71
(source: 00001010001111000011110011010000011000011110100010000010000010000010000111101011
)
00100000DC69FABC4E0AB6CD
(source: 00001010010011101011110011111010011010011101110000000000000000000001110110110110
)
000015004000809E54456AC7
(source: 01000101010101001001111010000000000000000100000000000000000101010000011101101010
)
00200008FA7E849E54454B82
(source: 01000101010101001001111010000100011111101111101000001000000000000010001001001011
)
001000744280849E54457C5C
(source: 01000101010101001001111010000100100000000100001001110100000000000001110001111100
)
- Andrew Wesie, Clayton Smith et al. (17 April 2018), NRSC-5 receiver for rtl-sdr, module
nrsc5/src/pids.c
- Created: 16 November 2018
- Updated: 20 March 2019
width=16 poly=0x5935 init=0x0000 refin=false refout=false xorout=0x0000 check=0x5d38 residue=0x0000 name="CRC-16/OPENSAFETY-A"
- Class: attested
- The single codeword is supported by the codewords confirming CRC-8/OPENSAFETY, defined identically apart from Width, Poly in the same standard.
- Ethernet POWERLINK Standardisation Group (18 October 2018), OpenSAFETY Safety Profile Specification Working Draft Proposal, version 1.5.2
- I Full description (Section 5.1.2.6, pp.43–4)
- I Error detection capability (Section 8.1, p.182)
- I Code: C (Appendix 1, pp.196–9)
- IV 1 codeword (Appendix 1, l.3525, pp.196–7)
23C8083411223344556677880374
- Prof. Philip Koopman, Tridib Chakravarty (June 2004), Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks
- III Assessment of polynomial performance (as
0xAC9A
or C3)
- Created: 22 July 2016
- Updated: 7 May 2022
width=16 poly=0x755b init=0x0000 refin=false refout=false xorout=0x0000 check=0x20fe residue=0x0000 name="CRC-16/OPENSAFETY-B"
- Class: attested
- The single codeword is supported by the codewords confirming CRC-8/OPENSAFETY, defined identically apart from Width, Poly in the same standard.
- Ethernet POWERLINK Standardisation Group (18 October 2018), OpenSAFETY Safety Profile Specification Working Draft Proposal, version 1.5.2
- I Full description (Section 5.1.2.6, pp.43–4)
- I Error detection capability (Section 8.1, p.182)
- I Code: C (Appendix 1, pp.196–9)
- IV 1 codeword (Appendix 1, l.3530, pp.196–7)
22C812563011223344556677887031
- Prof. Philip Koopman, Tridib Chakravarty (June 2004), Cyclic Redundancy Code (CRC) Polynomial Selection for Embedded Networks
- III Assessment of polynomial performance (as
0xBAAD
)
- Created: 22 July 2016
- Updated: 7 May 2022
width=16 poly=0x1dcf init=0xffff refin=false refout=false xorout=0xffff check=0xa819 residue=0xe394 name="CRC-16/PROFIBUS"
- Class: attested
- Alias: CRC-16/IEC-61158-2
- PROFIBUS International (March 1998), PROFIBUS Specification, Normative Parts, Edition 1.0, Part 9 (courtesy of the Internet Archive)
- I Transmission order, implying RefIn and RefOut (Part 9 Section 8.5.1, p.902)
- I Definition: Width, Poly, Init, Residue (Part 9 Section 8.8.4, pp.905–7)
- I Properties of polynomial (Part 9 Section 8.8.4, p.906)
- "Chetanya" (17 November 2011), Computer Interfacing Forum topic 1752 (courtesy of the Internet Archive)
- III Definition: Width, Poly, Init
- IV 5 codewords
34AF21
011057E0
321000E37E82
331000E32A0F
2611010000080A109739
- Unique effective solution of codeword set
- Created: 5 July 2016
- Updated: 7 May 2022
width=16 poly=0x1021 init=0xb2aa refin=true refout=true xorout=0x0000 check=0x63d0 residue=0x0000 name="CRC-16/RIELLO"
- Class: third-party
- Reported for a Riello Dialog UPS.
- "Snamprogetti" (17 April 2009), Computer Interfacing Forum topic 1305 (courtesy of the Internet Archive)
- III Definition: Width, Poly, Init
- III Algorithm reported to be CRC-CCITT, implying RefIn and RefOut.
- IV 1 codeword
- Created: 18 April 2009
- Updated: 28 December 2019
width=16 poly=0x1021 init=0x1d0f refin=false refout=false xorout=0x0000 check=0xe5cc residue=0x0000 name="CRC-16/SPI-FUJITSU"
- Class: attested
- Alias: CRC-16/AUG-CCITT
- Init value is equivalent to an augment of
0xFFFF
prepended to the message.
- Fujitsu Semiconductor (10 October 2007), FlexRay ASSP MB88121B User's Manual (courtesy of the Internet Archive)
- I Definition: Width, Poly, Init (Section 2.5.1, p.153)
- Lammert Bies (August 2011), CRC calculator
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Berndt M. Gammel (29 October 2006), Matpack 1.9.1 class
MpCRC
documentation
- III All parameters (except Residue)
- Created: 30 October 2007
- Updated: 4 August 2023
width=16 poly=0x8bb7 init=0x0000 refin=false refout=false xorout=0x0000 check=0xd0db residue=0x0000 name="CRC-16/T10-DIF"
- Class: attested
- Used in the SCSI Data Integrity Field. XorOut =
0xBADB
is proposed to mark known bad blocks.
- Gerald Houlder, INCITS Technical Committee T10 (2 May 2003), End-to-End Data Protection Proposal
- I Definition: Poly, Init (p.6)
- I Shift register diagram (p.18)
- George O. Penokie, INCITS Technical Committee T10 (22 October 2003), Simplified End-to-End Data Protection
- I Definition: Residue; full mathematical description (Sections 4.5.3–4.5.4, pp.4–5)
- IV 5 codewords (Section 4.5.6, p.6)
00000000000000000000000000000000000000000000000000000000000000000000
FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA293
000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F0224
FFFF00000000000000000000000000000000000000000000000000000000000021B8
FFFEFDFCFBFAF9F8F7F6F5F4F3F2F1F0EFEEEDECEBEAE9E8E7E6E5E4E3E2E1E0A0B7
- Ralph Weber, John Lohmeyer, INCITS Technical Committee T10 (20 August 2003), Minutes of Data Integrity Study Group - Aug 19-20, 2003
- I Definition: Init, XorOut (Item 4.6, p.3)
- I Acceptance of previous two documents (Item 4.7, p.3)
- Pat Thaler, INCITS Technical Committee T10 (28 August 2003), 16-bit CRC polynomial selection
- I Properties of polynomial
- Martin K. Petersen, Oracle Corporation (2007); Tim Chen, Intel Corporation (2013), Linux module
crypto/crct10dif_common.c
- Created: 29 September 2009
- Updated: 2 January 2021
width=16 poly=0xa097 init=0x0000 refin=false refout=false xorout=0x0000 check=0x0fb3 residue=0x0000 name="CRC-16/TELEDISK"
- Class: confirmed
- Used in the Teledisk disc archive format. DECnet and CRCK allegedly use a Sick-type algorithm but with this polynomial.
- Will Kranz (8 December 2002), wteledsk 1.01
- Will Kranz (8 December 2002), wteledsk 1.01 module
src/tdcrc.c
- Created: 10 December 2009
- Updated: 4 August 2023
width=16 poly=0x1021 init=0x89ec refin=true refout=true xorout=0x0000 check=0x26b1 residue=0x0000 name="CRC-16/TMS37157"
- Class: attested
- Texas Instruments, Inc. (November 2009), TMS37157 datasheet
- I Full definition (except Check) (pp.39–40)
- I Shift register diagram (Figure 51, p.39)
- I Flowchart (Figure 52, p.40)
- "harper", "jacknad" (November 2010–January 2011), StackOverflow submitted question and answers
- III Definition: Init (reverse form) ("harper")
- III Code: C ("jacknad")
- IV 3 codewords ("harper")
0225A6
024000000000A060E7
024100000000A46FA5
- "Petri" (4 May 2010), Texas Instruments, Inc. E2E™ Community forum post
- Unique effective solution of codeword set
- Created: 17 April 2011
- Updated: 28 December 2019
width=16 poly=0x8005 init=0x0000 refin=false refout=false xorout=0x0000 check=0xfee8 residue=0x0000 name="CRC-16/UMTS"
- Class: attested
- Alias: CRC-16/BUYPASS, CRC-16/VERIFONE
- Reported for the multi-threaded portion of the Buypass transaction processing network.
- Verifone, Inc. (May 1995), TCLOAD Reference Manual (courtesy of the Internet Archive)
- I Definition: Poly. CRC byte order, implying RefIn and RefOut (Section 4, p.4-1)
- 3rd Generation Partnership Project (3GPP) TS 25.427 version 17.0.0 (April 2022) (zipped MS Word document) — ETSI TS 125 427 version 17.0.0 (April 2022)
- I Definition: Width, Poly, Init, XorOut (Section 7.2.1, p.40)
- I Definition: RefIn, RefOut (Section 6.1.1, p.20; Section 7.2.1.1, p.40)
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Emil Lenchak, Texas Instruments, Inc. (June 2018), CRC Implementation With MSP430
- III All parameters (except Residue) (Section 4.6, p.6)
- Thomas Schmidt, Microchip Technology Inc. (20 May 2000), "CRC Generating and Checking"
- III Description (p.4)
- III Shift register diagram (Figure 1, p.3)
- III Code: 16C54B assembler (Appendix A, pp.7–11; Appendix B, pp.12–22)
- Michael Niedermayer, Aurélien Jacobs et al. (27 February 2023), FFmpeg 6.0 (XZ compressed tarfile), module
ffmpeg-6.0/libavutil/tests/crc.c
- "Joshua" (31 May 2008), Computer Interfacing Forum topic 530 (courtesy of the Internet Archive)
- IV 2 codewords
0384901B56
03848400001230314131333030323031333030311C39303062BF
- Michael Junker (26 October 2009), Computer Interfacing Forum topic 1432 (courtesy of the Internet Archive)
- IV 7 codewords (7-bit payload characters)
01100110011101011000001100000110011001110101100001101000111010100
(source: 331D3030331D30
+ 53716
)
01101000011101011000001100000110011001110101100001111000111001001
(source: 341D3030331D30
+ 61897
)
01101010011101011000001100000110011001110101100000001000111001111
(source: 351D3030331D30
+ 04559
)
01101100011101011000001100000110011001110101100001011000111000000
(source: 361D3030331D30
+ 45504
)
01100110011101011010001100000110000001110101100000101000111000110
(source: 331D3430301D30
+ 20934
)
01100110011101011000001100000111001001110101100001101000111110110
(source: 331D3030391D30
+ 53750
)
01100010011101011000001100010110000001110101100000001001101010001
(source: 311D3031301D30
+ 04945
)
- Unique effective solution of codeword set
- Created: 4 June 2008
- Updated: 8 August 2024
width=16 poly=0x8005 init=0xffff refin=true refout=true xorout=0xffff check=0xb4c8 residue=0xb001 name="CRC-16/USB"
- Class: confirmed
- CRC appended low byte first.
- Cypress Semiconductor Corporation (26 July 2001), SL811HS/SL811HST Application Notes, Revision 1.21 (courtesy of Stardot.org.uk Forums)
- II Transcript confirming implementation with 3 codewords (pp.25,30)
1BED534B3E6D7F7CD7CC
(source: CRC = EB33
)
55534243A864AB870800000080000A25000000000000000000000000000000C30E
(source: CRC = C370
)
8006000100004000DD94
(source: CRC = BB29
)
- Anonymous (10 July 1997), "Cyclic Redundancy Checks in USB" (Draft) (courtesy of the Internet Archive)
- III Definition: Width, Poly, Init, XorOut (p.2)
- III Definition: Residue (p.3)
- III Code: Perl (p.4)
- IV 2 codewords (p.6)
00010203EF7A
234567890E1C
- Unique effective solution of codeword set
- Created: 1 December 2007
- Updated: 12 July 2024
width=16 poly=0x1021 init=0x0000 refin=false refout=false xorout=0x0000 check=0x31c3 residue=0x0000 name="CRC-16/XMODEM"
- Class: attested
- Alias: CRC-16/ACORN, CRC-16/LTE, CRC-16/V-41-MSB, XMODEM, ZMODEM
- The MSB-first form of the V.41 algorithm. For the LSB-first form see CRC-16/KERMIT. CRC presented high byte first.
- Used in the MultiMediaCard interface. In XMODEM and Acorn MOS the message bits are processed out of transmission order, compromising the guarantees on burst error detection.
- ITU-T Recommendation V.41 (November 1988)
- I Definition: Residue; full mathematical description (Section 2, p.2)
- I Shift register diagrams (Appendix I, p.9)
- 3rd Generation Partnership Project (3GPP) TS 36.212 version 17.1.0 (March 2022) (zipped MS Word document) — ETSI TS 136 212 version 17.1.0 (April 2022)
- I Definition: Width, Poly, Init, XorOut, Residue (Section 5.1.1, pp.10–11)
- I Attachment relation, defining RefIn ^ RefOut (Section 5.1.1, p.11)
- 3rd Generation Partnership Project (3GPP) TS 36.321 version 17.5.0 (June 2023) (zipped MS Word document) — ETSI TS 136 321 version 17.5.0 (July 2023)
- Referenced from TS 136 212 section 5.2.2.1, p.26
- I Definition: RefIn, RefOut (Section 6.1.1, p.90)
- JEDEC Standard JESD84-A441 (March 2010) (registration required)
- I Full definition (Section 10.2, pp.157–8)
- I Shift register diagram (Figure 54, p.159)
- Acorn Computers Ltd (October 1984), BBC Microcomputer User Guide (courtesy of the Internet Archive)
- I Pseudocode (Chapter 35, p.369)
- Ward Christensen, Keith Petersen et al. (8 June 1982), XMODEM 5.0
- II Implementation (attributed to Paul Hansknecht)
- Acorn Computers Ltd (1981), Acorn MOS 1.20 (BBC Micro cassette format)
- Lammert Bies (August 2011), CRC calculator
- PVL Team (25 October 2008), CRC .NET control, version 14.0.0.0
- Berndt M. Gammel (29 October 2006), Matpack 1.9.1 class
MpCRC
documentation
- III All parameters (except Residue)
- Altera Corporation (April 1999), crc MegaCore Function Data Sheet, version 2 (courtesy of the Internet Archive)
- III All parameters (except Residue) cited for ZMODEM (p.6)
- William H. Press, Brian P. Flannery, Saul A. Teukolsky, William T. Vetterling (1992), Numerical recipes in C: The art of scientific computing, 2nd ed., Cambridge University Press, ISBN 0-521-43108-5
- III All parameters (except Check) (p.898)
- III Code: C (pp.900–1)
- IV 2 codewords (p.898)
541A71
4361744D6F757365393837363534333231E556
- Created: 30 March 2005
- Updated: 5 August 2023
Every effort has been made to ensure accuracy, however there may be
occasional errors or omissions. All trademarks and registered trademarks
are the intellectual property of their respective owners. The code and
documentation included in this document are supplied without warranty,
not even the implied warranties of merchantability or fitness for a
particular purpose. In no event shall the author or his suppliers be
liable for any loss, damage, injury or death, of any nature and
howsoever caused, arising from the use of, or failure, inability or
unwillingness to use, this software or documentation.
[ Top of page ]
Greg Cook,
https://reveng.sourceforge.io/crc-catalogue/16.htm Last updated 11 December 2024
Links last verified 20 July 2023
Hosting by
[ Top of page ]