중화사전망 - 서예자전 - CRC 검증 알고리즘
CRC 검증 알고리즘
인코딩 전의 원시 정보 다항식을 P(x), P(x) 의 최대 제곱에 1 을 더하면 k 가 됩니다. 결과 다항식은 G(x) 이고 G(x) 의 최대 제곱은 r 과 같습니다. CRC 다항식은 r (x) 입니다. CRC 가 있는 인코딩된 정보 다항식은 T(x) 입니다.
발신자의 인코딩 방법: P(x) 에 xr (해당 이진 코드 시퀀스가 R 비트로 왼쪽으로 이동함) 을 곱한 다음 G(x) 로 나누고 나머지는 R(x) 입니다. T(x)= xrP(x)+R(x) 로 공식으로 표시됩니다.
수신기의 디코딩 방법: T(x) 를 G(x) 로 나누어 숫자를 얻습니다. 나머지가 0 이면 전달에 오류가 없음을 나타내고, 그렇지 않으면 전송 오류를 나타냅니다.
예를 들어, 정보 코드를 1 100 으로 설정하고 다항식을 10 1 1 또는 p (
Xrp (x) = x3 (x3+x2) = X6+x5g (x) = x3+x+1또는 r (x) = X. 주 g (
수직 나누기 (컴퓨터의 모듈 2) 를 사용하는 경우 계산 프로세스는 다음과 같습니다
1110-1011//kloc 1011-11010/kloc
만약 전송이 정확하다면,
T(x)=(X6+X5+x)/G(x)=, G(x)= 잔여물 없음. 위의 수직 나눗셈을 돌이켜 보면 피제수가 1 1000 10 인 경우 세 번째 1 의 몫으로 나눌 수 있습니다.
위의 계산 프로세스는 CRC 의 개념을 이해하는 데 도움이 됩니다. 그러나 이러한 알고리즘을 직접 프로그래밍하여 구현하는 것은 번거로울 뿐만 아니라 비효율적이다. 실제로 CRC 는 엔지니어링에서 직접 계산 및 검증되지 않습니다.
다음 표에는 표준의 일부 CRC 데이터가 나열되어 있습니다.
이름 생성 다항식 약어의 적용 예 *
CRC-4 x4+x+ 1 3 국제 전기 연합 G.704
Crc-8x8+X5+x4+131ds18b20
Crc-12x12+x11+x3+x2+x+/kloc-
Crc-16x16+x15+x2+18005 IBM SDLC
Crc-ITU * * x16+x12+X5+1102/kloc
Crc-32x32+x26+x23+...+x2+x+104c11db7zip, RC
Crc-32cx32+x28+x27+...+x8+X6+11edc6f41SCTP
* 다항식의 최고 제곱을 생성하는 계수는 1 으로 고정되어 있으므로 속기 공식에서 가장 높은 1 을 균일하게 제거합니다. 예를 들어 04C 1 1DB7 은 실제로/kloc/입니다 * * 이전 명칭 CRC-CCITT. 국제전련의 전신은 국제전보전화 자문위원회였다.
참고:
생성 다항식은 (1) 표준에 지정되어 있습니다.
(2)2)CRC 검사 코드는 비트 문자열을 계수 0 또는 1 으로 취급하는 다항식을 기반으로 하며, K 비트 데이터 흐름은 k- 1 차수에서 0 차까지의 X 에 대한 k- 1 다항식의 계수 시퀀스로 간주될 수 있습니다. 이 인코딩을 사용하면 발신자와 수신자는 다항식 G(x) 생성에 대해 미리 합의해야 하며 상위 및 하위 레벨은 1 이어야 합니다. M 비트 프레임 M(x) 의 체크섬을 계산하기 위해 기본 아이디어는 체크섬이 있는 해당 프레임의 다항식을 G(x) 로 나눌 수 있도록 프레임 끝에 체크섬을 추가하는 것입니다. 수신자가 체크섬이 있는 프레임을 받으면 G(x) 에 의해 삭제됩니다. 나머지가 있으면 CRC 검증이 잘못되고 나머지가 없는 검증만 정확하다.