Preenchimento automático de CRC

O que é CRC

CRC (Cyclic Redundancy Check) é uma técnica usada para detectar erros em dados digitais. Como um tipo de soma de verificação, o CRC produz um conjunto de dados de comprimento fixo com base na construção de um arquivo ou conjunto de dados maior. Em termos de uso, o CRC é uma função hash que detecta mudanças acidentais em dados de computador brutos, comumente usado em redes de telecomunicações digitais e dispositivos de armazenamento, como discos rígidos.
Essa técnica foi inventada por W. Wesley Peterson em 1961 e posteriormente desenvolvida pelo CCITT (Comité Consultatif International Telegraphique et Telephonique). As verificações de redundância cíclica são bastante simples de implementar em hardware e podem ser facilmente analisadas matematicamente. O CRC é uma das melhores técnicas comumente usadas para detectar erros de transmissão comuns.
O CRC é baseado em divisão binária e também é chamado de "checksum de código polinomial".

Importância do CRC na comunicação de dados.

O receptor pode determinar se os bits de verificação estão de acordo com os dados, para verificar com certo grau de probabilidade se ocorreu um erro na transmissão. Se ocorreu um erro, o receptor envia uma "reconhecimento negativo" (NAK) de volta ao remetente, solicitando que a mensagem seja retransmitida.

Preenchimento/Autocompletar CRC no SerialTool.

Quando você está enviando comandos manuais através da porta serial, pode ser necessário calcular o CRC para garantir uma comunicação correta, caso contrário, o receptor pode não aceitá-lo.
Calcular o CRC para cada pacote individual é uma grande perda de tempo e requer copiar e colar dados com precisão, o que leva a tarefas mais longas e com erros.
O SerialTool pode calcular automaticamente o CRC escolhido entre a ampla variedade de tipos de CRC disponíveis durante a transmissão.
Se a opção de CRC estiver ativada, os bytes CRC escolhidos serão automaticamente adicionados ao final do pacote enviado.

Bytes Invertidos no SerialTool.

Alguns sistemas precisam ter os bytes CRC invertidos para se adequarem à ordem dos bytes (endianness).
O SerialTool permite que você envie os bytes invertidos, se necessário pelo sistema receptor.

Preenchimento/Autocompletar CRC Modbus no SerialTool

Modbus é um tipo de CRC comumente usado em protocolos de comunicação industrial.
O Modbus é um protocolo de solicitação-resposta implementado usando um relacionamento mestre-escravo. Em um relacionamento mestre-escravo, a comunicação sempre ocorre em pares - um dispositivo deve iniciar uma solicitação e, em seguida, aguardar uma resposta - e o dispositivo iniciador (o mestre) é responsável por iniciar cada interação. Normalmente, o mestre é uma interface homem-máquina (IHM) ou um sistema de aquisição e supervisão de dados (SCADA), e o escravo é um sensor, controlador lógico programável (CLP) ou controlador de automação programável (CAP). O conteúdo dessas solicitações e respostas e as camadas de rede pelas quais essas mensagens são enviadas são definidas pelas diferentes camadas do protocolo.
O SerialTool oferece suporte a ele, assim como muitos outros cálculos de CRC.
Exemplo de envio e recebimento:
SOLICITAÇÃO DE ENVIO: Modbus ASCII 3A 30 32 30 31 30 30 32 30 30 30 30 43 44 31 0D 0A + CRC
RESPOSTA DE LEITURA: Modbus ASCII 3A 30 32 30 31 30 32 38 30 30 32 37 39 0D 0A + CRC

Envio e Leitura do Modbus.

Tipos de CRC no 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