CRC 自动填充

CRC 是什么

CRC 循环冗余校验是一种用于检测数字数据中的错误的技术。作为一种校验和的类型,CRC 根据文件或更大的数据集的构建产生固定长度的数据集。在使用上,CRC 是一种哈希函数,用于检测数字电信网络和存储设备(如硬盘驱动器)中的原始计算机数据的意外更改。
这个技术是由 W. Wesley Peterson 在 1961 年发明的,并由 CCITT(国际电报电话咨询委员会)进一步发展。循环冗余校验在硬件上相当简单实现,并且可以轻松进行数学分析。 CRC 是一种常用于检测常见传输错误的较好技术之一。
CRC 基于二进制除法,也称为“多项式码校验”。

CRC 在数据通信中的重要性

接收方可以确定校验位是否与数据一致,从而在一定程度上判断传输是否发生错误。 如果发生错误,接收方会向发送方发送“否定确认”(NAK),请求重新传输消息。

SerialTool CRC 自动填充/自动完成

当您通过串行端口发送手动命令时,可能需要计算 CRC 以确保正确通信,否则接收方可能无法接受它。
对于每个单独的数据包计算 CRC 是非常耗时的,并且需要精确地复制和粘贴数据,这会导致更长且不太准确的任务。
SerialTool 可以在传输期间自动计算所选的 CRC 类型。
如果启用了 CRC 选项,则所选的 CRC 字节将自动添加到发送的数据包末尾。

SerialTool 反向字节

某些系统需要有反向的 CRC 字节以符合字节顺序(endianness)。
如果接收系统需要,SerialTool 允许您发送相反顺序的字节。

SerialTool CRC Modbus 自动填充/自动完成

Modbus 是工业通信协议中常用的 CRC 类型。
Modbus 是一种请求-响应协议,通过主-从关系实现。在主-从关系中,通信始终是成对进行的 - 一个设备必须发起请求,然后等待响应 - 并且启动设备(主设备)负责启动每次交互。通常,主设备是人机界面(HMI)或监控和数据采集系统(SCADA),从设备是传感器、可编程逻辑控制器(PLC)或可编程自动化控制器(PAC)。协议的不同层定义了这些请求和响应的内容以及这些消息发送的网络层。
SerialTool 支持 Modbus,以及其他许多 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 发送和读取。

SerialTool CRC 类型

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