본문 바로가기
카테고리 없음

통신 오류 검출

by yunchanlee 2024. 8. 21.

하드웨어적인 방법을 통하여 통신의 snr을 높혀 노이즈 내성을 강화 하였다 하더라도, 더 큰 노이즈 등의 원인으로 데이터가 훼손되어 송신 측에서 보낸 데이터와 수신측에서 보낸 데이터가 달라질 수 있다.

 

이는 명령을 잘못 해석하여 엉뚱한 동작을 하게 만들 수 있기에 안전상의 문제가 될 수 있다.

이런 오류를 줄이는 방법은 신호의 SNR 강화를 통한 원천적인 오류를 검출하여 데이터의 무결성을 검사하는 방법이 함께 적용되어야 한다.

 

핸드쉐이킹(Handshaking)

핸드 쉐이키은 데이터를 주고받는 방식에 대한 것으로 송신 측이 데이터를 송신하면 수신 측은 잘 받았다는 신호 ACK를 받고 만약 오류가 있거나 신호 자체를 받지 못하였다면  NACK신호를 전송하게 된다.

이는 데이터 자체의 오류를 검출 하기 보다는 통신이 정상적으로 수행되고 있는지를 확인하는 용도가 크지만, ACK 신호가 없다면 통신 오류라고도 볼 수 있다.

 

Parity(패러티) 비트 방식

한 개의 통신 바이트에 패러티 비트 1 비트를 추가하여 전송함으로써, 데이터의 무결성을 체크하는 방식이다.

데이터 내의 "1" 값의 비트의 수를 짝수로 만드는 방식을 even parity, 홀수로  만드는 방식을 odd parity 라 한다.

수신 특에서 1의 값을 가지는 비트 수를 세어 정상적인 데이터인지 확인하는 방식이다.

만약 전송하려는 패러티 비트의 1의 수가 짝수 라면 뒤의 비트에 0을 추가하고 홀수 라면 1을 추가한다.

이를 통해  전송과정에서 보내려는 데이터의 패러티 비트와 받은 데이터의 패러티비트와 일치하지 않으면 오류를 발생시키게 된다.

Checksum(체크썸) 방식

체크썸 방식은 단순 덧셈 방식으로 전송하려는 데이터를 16비트 또는 8비트 단위로 모두 더하여 1의 보수 또는 2의 보수를 취한 값을 데이터와 함께 보내면 수신특에서는 체크썸 데이터와 함께 포함하여 받은 데이터를 모두 더하여 데이터 무결성을 검사하는 방식이다.

 

댓글