Relleno automático de CRC

¿Qué es CRC?

CRC (Código de Reducción Cíclica) es una técnica utilizada para detectar errores en datos digitales. Como tipo de suma de comprobación, el CRC produce un conjunto de datos de longitud fija basado en la estructura de un archivo o un conjunto de datos más grande. En cuanto a su uso, el CRC es una función hash que detecta cambios accidentales en datos informáticos crudos, comúnmente utilizada en redes de telecomunicaciones digitales y dispositivos de almacenamiento como discos duros.
Esta técnica fue inventada por W. Wesley Peterson en 1961 y posteriormente desarrollada por el CCITT (Comité Consultatif International Telegraphique et Telephonique). Los códigos de reducción cíclica son bastante simples de implementar en hardware y pueden analizarse fácilmente matemáticamente. El CRC es una de las mejores técnicas que se utilizan comúnmente para detectar errores de transmisión comunes.
El CRC se basa en la división binaria y también se conoce como "suma de comprobación del código polinómico".

Importancia de CRC en la comunicación de datos.

El receptor puede determinar si los bits de comprobación coinciden con los datos, para determinar con cierto grado de probabilidad si ocurrió un error en la transmisión. Si se produjo un error, el receptor envía una "confirmación negativa" (NAK) al remitente, solicitando que se vuelva a transmitir el mensaje.

Autocompletar CRC de SerialTool.

Cuando envías comandos manuales a través del puerto serie, es posible que necesites calcular el CRC para lograr una comunicación correcta, de lo contrario, el receptor puede no aceptarlo.
Calcular el CRC en cada paquete es una gran pérdida de tiempo y requiere copiar y pegar los datos con precisión, lo que conduce a tareas más largas y propensas a errores.
SerialTool puede calcular automáticamente el CRC elegido entre la amplia gama de tipos de CRC disponibles durante la transmisión.
Si la opción de CRC está habilitada, los bytes de CRC seleccionados se agregarán automáticamente al final del paquete enviado.

Bytes invertidos de SerialTool.

Algunos sistemas necesitan tener los bytes de CRC invertidos para ajustarse a la endianness de bytes.
SerialTool te permite enviar en orden inverso si es necesario para que coincida con el sistema receptor.

Autocompletar CRC de Modbus en SerialTool

Modbus es un tipo de CRC comúnmente utilizado en protocolos de comunicación industrial.
Modbus es un protocolo de solicitud-respuesta implementado utilizando una relación maestro-esclavo. En una relación maestro-esclavo, la comunicación siempre ocurre en pares: un dispositivo debe iniciar una solicitud y luego esperar una respuesta, y el dispositivo que inicia (el maestro) es responsable de iniciar cada interacción. Por lo general, el maestro es una interfaz hombre-máquina (HMI) o un sistema de supervisión, control y adquisición de datos (SCADA), y el esclavo es un sensor, un controlador lógico programable (PLC) o un controlador de automatización programable (PAC). El contenido de estas solicitudes y respuestas, y las capas de red a través de las cuales se envían estos mensajes, están definidos por las diferentes capas del protocolo.
SerialTool lo admite al igual que muchos otros cálculos de CRC.
Ejemplo de envío y recepción:
ENVIAR SOLICITUD: Modbus ASCII 3A 30 32 30 31 30 30 32 30 30 30 30 43 44 31 0D 0A + CRC
LEER RESPUESTA: Modbus ASCII 3A 30 32 30 31 30 32 38 30 30 32 37 39 0D 0A + CRC

Modbus enviar y leer.

Tipos de CRC de SerialTool

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