CRC Generator
범용 매개변수형 순환 중복 검사 (Rocksoft 모델: 8, 16, 32, 64비트)
개요
Ross Williams의 Rocksoft™ 파라메트릭 CRC 모델(폭 8, 16, 32, 64비트)에 따라 순환 중복 검사(Cyclic Redundancy Check) 체크섬을 계산한다.
표준 산업용 프리셋(CRC-8, CRC-16/CCITT-FALSE, CRC-16/MODBUS, CRC-32, CRC-32C, CRC-64/ECMA-182)뿐 아니라 다항식(Polynomial), 초기값(Init), 입출력 비트 반전(RefIn/RefOut), 최종 XOR(XorOut)을 직접 지정하는 CUSTOM 모드도 지원한다.
사용 시점
- 네트워크 프레임, 저장소 블록, 펌웨어 이미지, 스마트카드 APDU 패킷의 비암호학적 오류 검출용 CRC 체크섬을 계산할 때 사용한다.
파라미터 설정
| 파라미터 (ID) | 타입 및 기본값 | 노출 조건 | 설명 및 옵션 |
|---|---|---|---|
CRC 알고리즘 프리셋preset |
select기본값: CRC-32/ISO-HDLC |
항상 노출 | 표준 CRC 알고리즘 프리셋을 선택하거나 CUSTOM으로 전환해 Rocksoft 파라미터를 직접 지정한다.
|
사용자 지정 너비 (비트)customWidth |
select기본값: 32 |
항상 노출 | 이 노드의 사용자 지정 너비 (비트) 설정을 지정한다.
|
사용자 지정 다항식 (Hex)customPoly |
hex기본값: 04C11DB7 |
항상 노출 | 다항식 16진수 값 (예: 04C11DB7) |
사용자 지정 초깃값 (Hex)customInit |
hex기본값: FFFFFFFF |
항상 노출 | 초기 16진수 값 (예: FFFFFFFF) |
입력 반사 (refIn)customRefIn |
boolean기본값: true |
항상 노출 | 이 노드의 입력 반사 (refIn) 설정을 지정한다. |
출력 반사 (refOut)customRefOut |
boolean기본값: true |
항상 노출 | 이 노드의 출력 반사 (refOut) 설정을 지정한다. |
사용자 지정 XOR 출력 (Hex)customXorOut |
hex기본값: FFFFFFFF |
항상 노출 | 최종 XOR 16진수 값 (예: FFFFFFFF) |
포트 입출력 명세
포트 연결 규칙, 데이터 타입별 색상, 가변 포트 생성 방식은 포트 및 연결 문서를 참고한다.
입력 포트
포트 성격: 고정 입력 포트 (총 1개).
| 포트 이름 | 포트 ID | 데이터 타입 | 필수 여부 | 노출 조건 | 설명 |
|---|---|---|---|---|---|
Data |
data |
Bytes |
필수 | 항상 노출 | 체크섬을 계산할 입력 바이트 배열(Uint8Array)이다. |
출력 포트
포트 성격: 고정 출력 포트 (총 1개).
| 포트 이름 | 포트 ID | 데이터 타입 | 노출 조건 | 설명 |
|---|---|---|---|---|
Checksum |
checksum |
Int |
항상 노출 | 계산된 CRC 체크섬 값. |
오류 케이스
실행 중 아래 조건이 발생하면 이 노드는 ERROR 상태가 되며, 출력 포트에 연결된 하위 노드는 실행되지 않는다.
| 오류 코드 | 기본 엔진 메시지 | 발생 조건 |
|---|---|---|
INVALID_CRC_PARAMETER |
CRC 커스텀 파라미터(Hex)가 올바르지 않는다 | preset = CUSTOM일 때 poly, init, xorOut 중 하나가 유효한 16진수 문자열이 아니면 발생한다. |
활용 예시
표준 ASCII "123456789"의 CRC-32 검증하기
표준 체크 값 0xCBF43926을 확인한다.
- 문자열
123456789를 UTF-8 바이트로 변환해 CRC Generator(프리셋CRC-32 (IEEE 802.3))의Data에 연결하면CRC Hex로CBF43926이 출력된다.