Software
-
UART, SCI, CANSoftware/RTOS 2024. 7. 12. 17:14
UART (Universal asynchronous receiver/transmitter) UART는 병렬 데이터를 직렬 형태(Serial)로 변환하여 데이터를 전송하는 컴퓨터 하드웨어의 일종이다. UART는 일반적으로 RS-232 / RS-422 / RS-483와 같은 통신 표준과 함께 사용된다. 통신 데이터는 메모리 혹은 레지스터에 박혀있는데 이를 순차대로 읽어 직렬화 하여 보낸다. 최대 8비트 단위 통신이 기본이다. UART는 비동기 통신이므로 송수신 양 측에서 데이터의 시작과 끝을 약속하여 통신하여야 데이터를 올바르게 읽고 쓸 수가 있다. 디지털 통신에서는 자체 클럭 신호를 주기로 시작과 끝을 표현하여 수신 측에서 동기적으로 통신하는 USRT ( Universal synchronous receiv..
-
Serial통신 데이터 수신 루틴 구현Software/C# 2024. 7. 12. 11:32
C# 시리얼 포트 System.IO.Ports.NET 기본 제공 API인 System.IO.Ports는 문제가 많은 것으로 유명하다문제가 많기 때문에 코드 구현을 효율적으로 하지 않으면 통신간 문제가 발생할 확률이 높다.가장 큰 문제점은 통신량이 많아져서 수신버퍼에 처리되지 않은 데이터가 많이 쌓이면 Receive Error 메세지와 함께 내부에서 데이터가 깨질 확률이 상승한다는 점이다. C#의 고질적인 문제인 UI접근 속도 때문에 모든 수신 데이터를 UI처리 시킨다면 수신버퍼에 데이터가 금새 쌓이게 되고 깨진 데이터를 받아보게 될 것이다. 따라서 UI접근을 최소화 시키고, 모든 데이터를 다 UI처리까지 할 필요가 없는 경우가 대부분이므로 수신버퍼를 빠르게 비우기 위해 데이터를 과감하게 버리는 구조로 통..