UART가 검출하는 4가지 에러
# 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이 계속 안나올 리가 없으니)