MFC/시리얼 통신

UART가 검출하는 4가지 에러

season97 2025. 5. 20. 16:46
728x90
반응형

# UART (Universal Asynchronous Receiver/Transmitter) 가 검출하는 4가지 에러

1. 패리티 에러 (Parity Error)

ㆍ 사용할 수 있다, 없다 (1 , 0)

 

ㆍ 사용하지 않는 경우엔 Data 이후 바로 Stop이 나온다.

 

ㆍ 만약 Even(짝수) 패리티 였다면 이 경우엔 P는 0이 되겠다. 

ㆍ 여기서 1 하나가 0으로 깨졌다면?

-> 이 패리티비트를 보고 아, 데이터가 하나 꺠졌구나.. 를 검출해 내는 방식이 패리티 에러 라고 한다

 

 

2. 프레이밍 에러(Framing Error)

ㆍ 만약 N 8 1 방식이였다면 1Frame = 10 bit 일것이다. Stop Bit는 항상 1이기 때문에 Start Bit 가 나온 후에는 10번쨰 후 꼭 1로 나와야 한다. 라는 규칙으로 에러를 검출하는 방식

 

 

ㆍ 에러 상황 : 10번째 비트가 1이 나와야 하는데 0이 나왔다..

ㆍ 데이터가 굉장히 많을 때 클럭 오차로 인해 데이터가 하나 땡겨지거나, 뒤로 하나 밀리는 경우가 있다... 이를 클럭오차 라고 한다. STOPBit 자리에 1이 안나오고 0이 나오는 경우엔, 하나의 프레임이 깨져버렸다. 라고 판단할 수 있다. 

 

ㆍ 막을 수 있는 방법은? 클럭오차를 줄여야 하는데... 사실상 불가능하다  

 

ㆍ 이 0 - 8 - 2 경우에 STOP BIT 하나는 IDLE로 인식이 된다..어느정돈 막을 순 있지만 완벽하게 막아지진 않는다.

 

3. 오버런 에러 (Overrun Error)

ㆍ CPU가 다른 일을 하고있어서 바빠서,,, UART가 가득 찼는데 (A는 이게 가득 찼는지 알 수 가 없음) 또 보내는 경우에 생기는ERROR

 

ㆍ 가득 찬 상태에서 데이터가 날라왔을 땐 이 데이터가 유실될 수 있다.

 

이를 막으려면 흐름제어를 해야한다. (플로우 컨트롤)

ㆍ 야, 잠깐 보내는것좀 멈춰봐..!

ㆍ CPU가 바쁜일이 끝나서 데이터를 가져가게 되면, 신호를 보내서 데이터를 받아온다.

 

4. 브레이크 시그널(Break Signal)

ㆍ 예를들어 한쪽 장비가 고장이나서,  상대방 장비에게 알려주기 위한 신호로 사용한다.

ㆍ 2~3프레임 이상을 0으로 유지시키면 상대측 장비에 무슨 에러가 생겼구나. 라고 판단할 수 있다. (정상 작동을 한다면, STOP인 1이 계속 안나올 리가 없으니)

 

728x90
반응형