Автозаполнение CRC
Что такое CRC
CRC (Циклический избыточный код) - это техника, используемая для обнаружения ошибок в цифровых данных. Как тип контрольной суммы, CRC создает набор данных фиксированной длины на основе построения файла или большего набора данных. В плане его использования, CRC является хеш-функцией, которая обнаруживает случайные изменения в сырых данных компьютера, обычно используемых в цифровых телекоммуникационных сетях и устройствах хранения, таких как жесткие диски.
Эта техника была изобретена Уэсли Питерсоном в 1961 году и дальше разработана ККИТТ (Консультативным комитетом по телеграфии и телефонии). Циклические избыточные коды довольно просты для реализации в аппаратуре и могут быть легко проанализированы математически. CRC является одним из лучших методов, которые обычно используются для обнаружения типичных ошибок передачи данных.
CRC основан на двоичном делении и также называется "контрольной суммой полинома".
Значение CRC в передаче данных
Приемник может определить, согласуются ли проверочные биты с данными, чтобы с определенной степенью вероятности определить, произошла ли ошибка при передаче.
Если произошла ошибка, приемник отправляет «отрицательное подтверждение» (NAK) отправителю с запросом повторной передачи сообщения.
Автозаполнение/Автозавершение CRC в SerialTool
Когда вы отправляете ручные команды через последовательный порт, возможно, вам потребуется вычислить CRC, чтобы обеспечить правильную коммуникацию, в противном случае приемник может ее не принять.
Вычисление CRC для каждого отдельного пакета - это большая потеря времени и требует точного копирования и вставки данных, что приводит к более длительным и неточным задачам.
SerialTool может автоматически вычислять выбранный тип CRC из широкого спектра доступных типов CRC во время передачи.
Если опция CRC включена, выбранные байты CRC будут автоматически добавлены в конец отправленного пакета.
Инвертированные байты в SerialTool
Некоторые системы требуют инвертированных байтов CRC, чтобы соответствовать порядку байтов (endianness).
SerialTool позволяет отправлять инвертированные байты, если это необходимо для системы-получателя.
Автозаполнение/Автозавершение CRC Modbus в SerialTool
Modbus - это тип CRC, обычно используемый в протоколах промышленной связи.
Modbus - это протокол запрос-ответ, реализованный с использованием отношения мастер-рабочий. В отношении мастер-рабочий обмен всегда происходит парами - устройство должно инициировать запрос, а затем ожидать ответа - и инициирующее устройство (мастер) отвечает за инициирование каждого взаимодействия. Обычно мастером является интерфейс человека и машины (ИЧМ) или система сбора и передачи данных (SCADA), а рабочим устройством является датчик, программируемый логический контроллер (ПЛК) или программируемый контроллер автоматизации (ПКА). Содержание этих запросов и ответов и уровни сети, по которым эти сообщения отправляются, определяются различными уровнями протокола.
SerialTool поддерживает его, так же как и множество других вычислений CRC.
Пример отправки и получения:
ЗАПРОС ОТПРАВКИ: Modbus ASCII
3A 30 32 30 31 30 30 32 30 30 30 30 43 44 31 0D 0A + CRC
ЧТЕНИЕ ОТВЕТА: Modbus ASCII 3A 30 32 30 31 30 32 38 30 30 32 37 39 0D 0A + CRC
Отправка и чтение Modbus.
Типы CRC в SerialTool
CRC-8
- CRC 8
- CRC 8 EBU
- CRC 8 HDLC
- CRC 8 MAXIM
- CRC 8 WCDMA
- CRC 8 LTE
- CRC 16 ARC
- CRC 16 BUYPASS
- CRC 16 CCITTFALSE
- CRC 16 MCRF4XX
- CRC 16 CDMA2000
- CRC 16 CMS
- CRC 16 DECTR
- CRC 16 DECTX
- CRC 16 DNP
- CRC 16 GENIBUS
- CRC 16 KERMIT
- CRC 16 MAXIM
- CRC 16 MODBUS
- CRC 16 T10DIF
- CRC 16 USB
- CRC 16 X25
- CRC 16 XMODEM
- CRC 24
- CRC 24 FLEXRAYA
- CRC 24 FLEXRAYB
- CRC 24 LTEA
- CRC 24 LTEB
- CRC 24 NRC
- CRC 32
- CRC 32 BZIP2
- CRC 32 C
- CRC 32 MPEG2
- CRC 32 POSIX
- CRC 32 Q