CRC Automatisch invullen

Wat is CRC

CRC (Cyclic Redundancy Check) is een techniek die wordt gebruikt om fouten in digitale data te detecteren. Als een vorm van checksum genereert CRC een gegevensreeks met vaste lengte op basis van de inhoud van een bestand of een grotere dataset. In termen van gebruik is CRC een hashfunctie die toevallige wijzigingen in ruwe computerdata detecteert, veel gebruikt in digitale telecommunicatienetwerken en opslagapparaten zoals harde schijven.
De techniek werd in 1961 uitgevonden door W. Wesley Peterson en verder ontwikkeld door de CCITT (Comité Consultatif International Telegraphique et Telephonique). CRC’s zijn vrij eenvoudig in hardware te implementeren en kunnen wiskundig goed worden geanalyseerd. CRC is een van de beste technieken die algemeen wordt gebruikt voor het detecteren van veelvoorkomende transmissiefouten.
CRC is gebaseerd op binaire deling en wordt ook wel “polynomiale checksum” genoemd.

Belang van CRC in datacommunicatie

De ontvanger kan bepalen of de controlebits overeenkomen met de data en zo, met een bepaalde waarschijnlijkheid, nagaan of er een fout tijdens de transmissie is opgetreden. Als er een fout is opgetreden, stuurt de ontvanger een “negative acknowledgement” (NAK) terug naar de zender met het verzoek het bericht opnieuw te versturen.

SerialTool CRC automatisch invullen/aanvullen

Wanneer je handmatig commando’s via een seriële poort verstuurt, kan het nodig zijn de CRC te berekenen om een correcte communicatie te garanderen; anders kan de ontvanger het pakket weigeren.
Voor elk pakket handmatig de CRC berekenen kost veel tijd en vereist nauwkeurig kopiëren en plakken, wat foutgevoelig is en het werk vertraagt.
SerialTool kan de CRC automatisch berekenen, gekozen uit een breed scala aan beschikbare CRC-typen, tijdens het verzenden.
Als de CRC-optie is ingeschakeld, worden de gekozen CRC-bytes automatisch aan het einde van het uitgaande pakket toegevoegd.

SerialTool omgekeerde bytes

Sommige systemen vereisen omgekeerde CRC-bytes om te voldoen aan de endianness van bytes.
SerialTool maakt het mogelijk om de CRC in omgekeerde volgorde te versturen indien dit door het ontvangende systeem wordt vereist.

SerialTool Modbus CRC automatisch invullen/aanvullen

Modbus is een veelgebruikt CRC-type in industriële communicatieprotocollen.
Modbus is een request-response-protocol dat een master-slave-architectuur gebruikt. In deze relatie vindt communicatie altijd plaats in paren – één apparaat initieert een verzoek en wacht op een antwoord – en het initiërende apparaat (de master) is verantwoordelijk voor elke interactie. Meestal is de master een HMI- of SCADA-systeem en is de slave een sensor, PLC of PAC. De inhoud van verzoeken/antwoorden en de netwerklaag waarover deze berichten worden verzonden, worden bepaald door de protocol­lagen.
SerialTool ondersteunt Modbus, net als vele andere CRC-berekeningen.
Voorbeeld van verzenden en ontvangen:
SEND REQUEST: Modbus ASCII 3A 30 32 30 31 30 30 32 30 30 30 30 43 44 31 0D 0A + CRC
READ RESPONSE: Modbus ASCII 3A 30 32 30 31 30 32 38 30 30 32 37 39 0D 0A + CRC

Modbus verzenden en ontvangen.

SerialTool CRC-typen

CRC-8

  1. CRC 8
  2. CRC 8 EBU
  3. CRC 8 HDLC
  4. CRC 8 MAXIM
  5. CRC 8 WCDMA
  6. CRC 8 LTE
CRC-16
  1. CRC 16 ARC
  2. CRC 16 BUYPASS
  3. CRC 16 CCITTFALSE
  4. CRC 16 MCRF4XX
  5. CRC 16 CDMA2000
  6. CRC 16 CMS
  7. CRC 16 DECTR
  8. CRC 16 DECTX
  9. CRC 16 DNP
  10. CRC 16 GENIBUS
  11. CRC 16 KERMIT
  12. CRC 16 MAXIM
  13. CRC 16 MODBUS
  14. CRC 16 T10DIF
  15. CRC 16 USB
  16. CRC 16 X25
  17. CRC 16 XMODEM
CRC-24
  1. CRC 24
  2. CRC 24 FLEXRAYA
  3. CRC 24 FLEXRAYB
  4. CRC 24 LTEA
  5. CRC 24 LTEB
  6. CRC 24 NRC
CRC-32
  1. CRC 32
  2. CRC 32 BZIP2
  3. CRC 32 C
  4. CRC 32 MPEG2
  5. CRC 32 POSIX
  6. CRC 32 Q