Developer Document

Embedded Software 개발을 하면서 습득한 내용을 적은 시니어 개발자들의 글

코 독 코 독 CoderDocument

Embedded SW 기초

Peripheral과의 통신 - 2. UART

stdQ 2024. 6. 11. 20:47

UART(범용 비동기화 송수신기: Universal Asynchronous Receiver/Transmitter)병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 컴퓨터 하드웨어의 일종이다. 메모리 또는 레지스터에 들어 있는 통신 데이터를 차례대로 읽어 직렬화 하여 통신하며, 최대 8비트가 기본 단위이다.

 

직렬통신과 병렬통신

 

직렬통신은 Serial 통신이라고 하며, 병렬통신은 Parallel 통신이라고 한다.

UART는 Rx와 Tx. 두 개의 입출력 핀이 있다.

UART 구조

 

UART의 U는 범용을 가리키는데 이는 자료 형태나 전송 속도를 직접 구성할 수 있고 실제 전기 신호 수준과 방식이 일반적으로 UART 바깥의 특정한 드라이버 회로를 통해 관리를 받는다는 뜻이다.

 

Clock이 존재하는 경우를 우리는 동기통신 Clock이 존재하지 않은 경우를 비동기 통신이라고 정의한다.

또한 UART는 비동기 통신이므로 동기 신호가 전달되지 않는다. 그렇기 때문에 UART 에서는 보내는 쪽(TX)와 받는 쪽(RX)에서 데이터를 보내는 속도를 보 레이트(baud rate)로 정하고 있다. 보율은 같은 스피드로 데이터를 번갈아 가며 전송된다. 즉 1 Baud 동안 2Bit의 데이터가 전송되서 그 신호가 Clock 역할을 하게된다.

 

UART에서 데이터 전송 속도는 4800, 9600, 38400bps 등 특정 값을 중심으로 설정되고, 최대 속도는 약 115200bps로 제한된다.

 

보내는 쪽(TX)과 받는 쪽(RX)이 동일한 속도롤 데이터를 주고받는다고 하여 정확하게 통신이 이루어지는 것은 아니다.

 

보내는 쪽(TX)은 항상 데이터를 보내는 것이 아니며, 필요한 경우에만 데이터를 보낸다.

따라서, 받는 쪽(RX)은 언제 보내는 쪽(TX)이 데이터를 보내는지, 그리고 어디서부터가 보내는 쪽(TX)에서 보낸 데이터의 시작인지 알아낼 수 있는 방법이 필요한데, 

 

이를 위해서, UART에서는 '0'의 시작 비트(start bit)'1'의 정지 비트(stop bit) 사용한다.

 

UART

리눅스 PC에 위와 같은 USB 형식의 UART가 연결이 되면 아래의 그림과 같이 /dev 경로에 ttyUSB0가 뜬다.

tty란 리눅스에서 standard input에 연결된  터미널의 파일 이름을 출력하기 위한 명령어 이다. 즉 serial통신 시 값을 읽어올 때 standard input에 연결되어 내용을 출력한다.

리눅스 UART 장치 연결

 

 

참고사이트

https://ko.wikipedia.org/wiki/UART

 

UART - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. UART(범용 비동기화 송수신기: Universal asynchronous receiver/transmitter)는 병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 컴퓨터 하드웨어의 일종이

ko.wikipedia.org

https://shek.tistory.com/41

 

UART 통신 이론

UART(범용 비동기화 송수신기: Universal asynchronous receiver/transmitter)는 병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 컴퓨터 하드웨어의 일종이다. UART는 일반적으로 EIA RS-232, RS-4

shek.tistory.com

 

'Embedded SW 기초' 카테고리의 다른 글

Peripheral과의 통신 - 3. I2C  (0) 2024.06.13
리눅스 명령어 & rootfs  (0) 2024.06.13
Peripheral과의 통신 - 1. GPIO  (0) 2024.06.11
리눅스 커널& 디바이스 드라이버  (0) 2024.06.11
메모리 구조  (0) 2024.06.10