데이터계측분석/데이터통신 기술자료

시리얼 통신 오류 검사의 방법과 알고리즘

에이티에스 2024. 6. 23. 15:28
728x90

여러 네트워크 채널을 통한 데이터 전송은 네트워크를 통해 전송되는 정보에 오류의 원인을 만들 수 있습니다. 오류 검사는 손상된 데이터를 찾고 이와 관련된 일부 문제를 방지하는 유용한 방법입니다. 수신된 데이터가 손상되었는지 여부를 확인하는 방법에는 여러 가지가 있습니다. 이러한 방법은 일반적으로 데이터 품질 분석을 위해 시리얼 전송의 송신 및 수신 측 모두에서 완료해야 하는 일부 형태의 중복 정보 또는 계산으로 구성됩니다.

 

통신 오류는 전송 과정에서 데이터를 방해하는 전기 노이즈의 결과로 나타나는 경우가 많습니다. 전기 노이즈는 송신 장치와 수신 장치 사이를 이동할 때 비트를 손상시킵니다. 결과적으로 잡음은 이진 신호를 방해하여 비트를 뒤집고 1을 0으로, 0을 1로 바꿉니다.

 

오류는 다양한 유형의 오류 감지 코드를 사용하여 찾을 수 있습니다. 이러한 탐지 코드는 매우 간단한 패리티 검사에서 CRC(Cyclic Redundancy Check) 및 기타 오류 탐지 방법과 같은 더 복잡한 코드에 이르기까지 복잡성이 다양합니다.

 

 

 

반응형

 

1. 패리티 비트 검사

오류에 대한 패리티 검사는 오류 감지를 위해 전송된 데이터의 끝에 단일 비트를 추가하는 것으로 구성된 가장 간단한 오류 감지 형태입니다.

 

패리티 비트는 일반적으로 지정된 데이터 바이트 내에 배치됩니다. 따라서 바이트는 데이터를 전달하는 7비트와 데이터 상태를 확인하는 데 사용되는 짝수 또는 홀수 단일 패리티 비트로 구성됩니다. 패리티 오류 검사는 데이터 손상을 감지하는 데만 사용할 수 있으며 수정할 수 없습니다.

 

패리티는 오류가 홀수인 경우에만 작동하는데, 오류가 짝수이면 비트 합계의 패리티 변경이 상쇄되기 때문입니다. 그러나 이것은 단일 바이트 내에서 단일 오류가 발생할 가능성이 매우 낮기 때문에 허용 될 수 있습니다. 두 가지 오류가 발생할 가능성은 기하급수적으로 낮아집니다.

 

수행할 수 있는 패리티 검사에는 짝수 패리티 검사 또는 홀수 패리티 검사의 두 가지가 있습니다. 데이터 세트에 있는 1만 계산되며 패리티 비트 자체가 검사에 포함됩니다.

 

예를 들어, 짝수 패리티 검사에서 전송된 데이터 바이트는 10101010으로 구성되며, 해당 패리티 비트는 바이트 끝의 마지막 0입니다. 짝수 패리티 검사에서 바이트의 총 1 수는 데이터가 수신 측에서 검사를 통과하기 위해 짝수여야 합니다. 이 예에서는 4개의 1이 있으므로 최종 패리티 비트는 0이므로 바이트의 1의 합은 짝수인 4와 같습니다.

 

 

반응형

 

홀수 패리티 검사에서 동일한 바이트 예제를 사용하면 전송 수신 장치는 바이트가 손상되었다고 결론을 내립니다. 이는 10101010의 마지막 비트가 바이트의 1 수를 짝수로 만들어 홀수 패리티 검사의 경우 'false'를 생성하기 때문입니다. 홀수 패리티 검사를 사용하는 시스템의 경우 동일한 데이터 1010101 최종 비트로 1을 사용하여 전송해야 하며, 이 특정 데이터 전송의 경우 전송의 1 수를 홀수 또는 '참'으로 만들어야 합니다. 동일한 데이터를 사용하는 경우 올바른 홀수 패리티 전송은1010101 1과 같습니다.

 

 

 

반응형

 

2. 체크섬

체크섬 오류 검사는 패리티 검사보다 복잡하지만 정밀도가 높고 오류가 누락될 가능성이 적다는 이점이 있습니다. 체크섬은 전송된 데이터와 함께 '체크섬'을 보내는 방식으로 작동합니다.

송신 단위는 1의 보수 산술을 사용하여 비트를 추가하여 체크섬을 생성합니다. 1의 보수 산술에서는 이월 숫자가 있을 때마다 합계에 추가되어 전송된 데이터 시퀀스의 길이가 동일하게 유지됩니다.

모든 데이터가 추가되어 합계를 얻은 다음 이 합계를 보완하여 체크섬을 만듭니다. 부울 용어로 'complement'는 모든 1이 0으로 변경되고 모든 0이 1로 변경됨을 의미합니다.

 

체크섬은 수신자가 수락할 데이터와 함께 전송됩니다. 그런 다음 수신기는 데이터를 가져와서 수신된 모든 데이터의 합계를 수행합니다. 그런 다음 수신된 데이터 합계가 체크섬에 추가되고 이 마지막 합계의 최종 보완이 수행됩니다. 데이터에 오류가 없으면 결과 합계의 보수는 항상 0입니다.

 

체크섬 예제

전송된 데이터 #1 = 11001001

전송된 데이터 #2 = 00010110

보낸 합계 = 11011111

체크섬 = 00100000

 

수신된 데이터 #1 = 11001001

수신된 데이터 #2 = 00010110

체크섬 = 00100000

받은 합계 = 11111111

받은 합계 보수 = 00000000

 

 

반응형

 

이 예에서 수신된 모든 데이터와 체크섬의 보수는 0이므로 수신자는 데이터가 손상되지 않았다는 결론을 내릴 수 있습니다.

 

 

 

반응형

 

 

3. 순환 중복 검사(CRC)

CRC(Cyclic Redundancy Check)는 다항식 나눗셈에 의존하여 올바른 수의 1과 0이 존재하는지 여부뿐만 아니라 순서도 올바른지 여부를 확인하는 또 다른 형태의 오류 감지입니다. 기본적으로 확인할 데이터는 다항식 방정식처럼 취급된 다음 선택한 제수로 나뉘며 제수 자체의 값은 검사의 정확성과 유용성에 중요합니다.

 

이진 정보는 check 메서드에 맞추기 위해 다항식 방정식으로 변환되어야 합니다. 이를 위해 이진수는 다항식 표현식의 계수가 되며, 그 길이는 나눌 코드의 길이와 정확히 일치합니다. 프로세스 작동 방식의 예는 다음과 같습니다. 다항식 변환은 뺄셈에 필요한 것처럼 숫자를 전달하거나 이진 수학에서 차용하지 않고 나누는 방법을 만들기 때문에 유용합니다. 이렇게 하면 CRC 중복 검사에 사용되는 XOR 분할 방법이 만들어집니다.

 

CRC 계산의 예

이진수를 데이터 비트 문자열로 101101 가정하고 다항식 나눗셈을 위해 설정된 다항식에서 개별 이진 비트를 계수로 사용합시다. 

 

 

컴퓨터는 선형 대수학으로 알려진 수학 시스템에서 다항식 나눗셈에 계수를 사용하며, 이는 컴퓨팅 알고리즘에서 매우 일반적입니다.

다음으로 다른 다항식 또는 '키'로 나누어야 합니다. 1110을 사용하겠습니다. 결과 키는 다음과 같습니다.

 

 

다음으로 나눗셈이 수행되고 나머지가 발견됩니다. 나머지는 데이터에 첨부되어 중복 검사에 사용됩니다. 수신된 데이터를 키로 나눈 다음 수신된 나머지와 전송된 나머지의 차이가 0이면 데이터가 손상되지 않습니다. 나머지가 있으면 데이터 손상이 발생한 것입니다.

 

 

반응형

 

 

 

 

오류 검사는 데이터 전송의 중요한 부분이며 잘못된 데이터가 전송되는 것을 방지하는 데 도움이 됩니다. 데이터가 손상될 수 있는 방법에는 여러 가지가 있지만 결국 잘못 배치되거나 전환된 1과 0으로 귀결됩니다. 간단한 패리티 검사 및 체크섬은 올바른 수의 1과 0이 도착하는지 확인하는 데 도움이 되지만 단순성으로 인해 특정 실수를 찾을 수 없습니다.

순환 중복 검사(Cyclic Redundancy Check)와 같은 보다 복잡한 오류 검사 방법 및 LRC(Longitudinal Redundancy Check)와 같은 다른 방법은 보다 철저한 방식으로 오류를 관리하는 데 도움이 될 수 있습니다.

 

728x90
반응형
그리드형