원 데이터가 11010011101100 이라고 가정한다.
CRC 제수(Divisor)를 1011이라고 가정한다. 1011를 다항식(Polynomial)으로 x3+x+1이라고 나타낸다. 16진수로 나타낼때는 최상위 비트를 제외하고 0x3이라고 한다. x3+x+1 CRC를 CRC-3-GSM이라고 한다.
CRC 제수 자리수보다 한개 작은 3개의 0을 원데이터 끝에 붙인다.
11010011101100 → 11010011101100 000
다음와 같이 데이터와 제수를 XOR 연산을 반복해서 한다. 데이터와 제수가 일치하는 자리는 XOR 연산을 하고 비어있는 자리는 원데이터가 그대로 내려온다.
11010011101100 000 : 원데이터 + 000
1011 : 제수
01100011101100 000
1011
00111011101100 000
1011
00010111101100 000
1011
00000001101100 000
1011
00000000110100 000
1011
00000000011000 000
1011
00000000001110 000
1011
00000000000101 000
101 1
--------------------------
00000000000000 100
가장 마지막에 남은 100이 CRC 값이 된다.
CRC 100을 원데이터와 함께 전송하고 수신측에서는 다음과 같이 계산한다.
11010011101100 100 : 수신데이터 + CRC 값
1011 : 제수
01100011101100 100
1011
00111011101100 100
......
00000000001110 100
1011
00000000000101 100
101 1
------------------
00000000000000 000
데이터 손상이 없다면 가장 마지막 남은 값이 000이 된다.
☞ XOR 연산
'전자 > 통신' 카테고리의 다른 글
Request-Response 통신 방식 (0) | 2022.05.15 |
---|---|
CRC 종류 (0) | 2022.05.11 |
RS-485 통신 서지 프로텍터 TVS (0) | 2022.04.14 |
MAX485 사용 (0) | 2022.04.07 |
RS-422/485 통신에서 슬루 레이트 제한 기능 이란? (0) | 2022.04.02 |
댓글