CRC Tool

CRC-16 MODBUS 0x0000
CRC-16 CCITT-F 0x0000
CRC-32 0x00000000
SUM8 CHECKSUM 0x00

엔지니어 가이드: 통신 무결성 및 CRC 알고리즘

FIELD NOTE · CRC

같은 CRC 이름인데 결과가 다른 이유

CRC는 비트 수와 polynomial만으로 정의되지 않습니다. 초기값, 입력·출력 반사, 최종 XOR, 바이트 순서가 모두 일치해야 펌웨어와 장비가 같은 결과를 만듭니다.

핵심 파라미터

poly는 나눗셈 다항식, init은 시작 레지스터, refin/refout은 비트 처리 방향, xorout은 최종 XOR입니다. CRC-16/MODBUS와 CRC-16/CCITT는 16비트라도 이 조건이 다릅니다.

표준 검증 문자열

많은 CRC 규격은 ASCII 123456789의 check 값을 제공합니다. 구현을 검증할 때 먼저 이 문자열을 넣고 알려진 check 값과 비교한 뒤, 실제 패킷의 CRC 바이트 저장 순서를 확인합니다.

검증 기준

  • 빈 입력과 1 byte 입력을 시험합니다.
  • HEX 문자열이 byte 단위로 올바르게 파싱됐는지 확인합니다.
  • 수신 프레임에서 CRC 필드를 계산 범위에서 제외합니다.
  • 결과값과 전송 byte order를 구분합니다.

FAQ

표시값이 byte swap되어 보이나요? CRC 값과 wire order가 다를 수 있습니다.

SUM8도 CRC인가요? 단순 합계 체크섬이며 오류 검출 성능이 다릅니다.

공백은 데이터인가요? HEX 모드에서는 구분자로 처리되지만 문자열 모드에서는 실제 문자일 수 있습니다.

검토 범위: 제공된 CRC preset과 byte 입력. 프로토콜 문서의 파라미터 세트와 전송 순서가 최종 기준입니다.