1. UART
ㅇ 컴퓨터 등에서, 직렬 포트 상에 위치하여, 병렬-직렬 변환 등의 기능 또는 기능 수행 칩
ㅇ (장착)
- 통상, 내부 UART 모듈 형태로 포함시키거나, 외부 외장형 UART 칩 형태로 끼워 사용
ㅇ (역할)
- 직렬 통신을 위한 컨트롤러 역할을 함
. 즉, 비동기 직렬 통신을 지원하는 인터페이스(주로, RS-232) 역할
- 따라서, `UART 컨트롤러` 라고도 함
2. UART 칩 주요 기능
ㅇ 비트 전송, 비트 제어, 비트 일시기억
- 비동기 시리얼 포트를 통해 일련의 비트들이 전송되도록,
- 각 비트를 제어하고,
- 수신된 각 비트를 일시적으로 기억하는 역할을 담당
ㅇ 병렬-직렬 데이터 변환 기능
- 처리 단위 : 8 비트의 문자 단위(1 바이트)
. 송신부 : 변환 (병렬 -> 직렬)
.. 병렬 8 비트(1 문자)를 비동기 직렬 8 비트의 흐름으로 변환
. 수신부 : 역변환 (직렬 -> 병렬)
.. 수신 완료되면, 수신 인터럽트를 발생시킴
- 처리 순서 : 데이터 바이트의 LSB 부터 송신 ☞ 네트워크 전송 순서(리틀 엔디안) 참조
- 구현 방식 : 시프트 레지스터 기반의 직렬-병렬 변환 기능 수행
ㅇ 바이트 경계 구분
- 매 바이트 마다, 양쪽에 start 비트,stop 비트를 두어, 바이트 경계를 구분하게 됨
. start 비트 구간 : (1 비트 길이 동안) Low(0) 유지
.. start 비트는, 수신측이 자신의 클럭을 사용하여 연이은 비트열을 샘플링하라는 의미
.. 이 경우, 송수신 클럭 간 차이는 10% 정도 내외는 허용 가능
. stop 비트 구간 : (1, 1.5, 2 비트 길이 중 선택, 송수신 쌍방 합의) High/idle(1) 유지
ㅇ 송수신 전송속도 조정
ㅇ CPU에게 알리는 인터럽트 발생 기능을 갖음
- Transmit : 송신 완료시 발생
- Receive : 수신 완료시 발생
- Receive Timeout
- Overrun Error
- Break Error : start 비트 이후에, 규정 보다 길게 Low를 유지하면 발생
- Parity Error
- Framing Error
3. UART 칩 특징
ㅇ 외부와 2개 데이터 선 사용
- 외부 주변장치와는, 비동기 직렬 2개 데이터 선(송신,수신)으로 동작
. 즉, 별도 클럭 없으며, 주변장치와 1:1 전이중 통신을 함
. [참고] ☞ RS-232 핀(RS-232 신호선) 참조
- 내부적으로는, 병렬 8 비트 (1 바이트)로 동작
ㅇ UART 자체로는 구동 전류가 작으므로,
- RS-232C로 멀리까지 신호 전달이 어려워,
- 통상, RS-232C 전용 라인 드라이버(후치 증폭기)를 사용 함
4. UART 칩 例)
ㅇ 통상, 오래전에 컴퓨터 마더보드 상에 위치했던 UART 칩
- (例, 8350 UART, 16550 UART 등 : 통상, 40 핀)
- RS-232C 등과의 인터페이스 역할을 담당하며,
. 데이터를 내장 또는 외장 모뎀이나 기타 다른 직렬 장치들로 전송하는 역할
ㅇ 비록, 대부분의 컴퓨터에서는 사라졌지만,
- 아직도 소형 임베디드 시스템이나 마이크로 컨트롤러에서는 많이 사용됨