일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- pytorch visdom
- visdom
- 파이토치
- Numpy
- Introduction to Robotics: Mechanics and Control by John J Craig
- Robotics
- softmax
- regression
- RobotArm
- Robot arm
- 딥러닝
- 6축 다관절
- mnist
- DH parameter
- IMU sensor
- 6dof
- NUCLEO board
- 로보틱스입문
- 로보틱스 입문
- dynamixel
- DeepLearning
- boostcourse
- custom cnn
- nucleo-f401re
- pytorch
- Python
- PUMA 560
- 파이토치로 시작하는 딥러닝 기초
- Pytorch로 시작하는 딥러닝 입문
- 6자유도 로봇팔
- Today
- Total
슬.공.생
[ATmega128] UART / USART 통신 본문
UART 통신이란?
UART(범용 비동기화 송수신기: Universal asynchronous receiver/transmitter)는 메모리 내의 병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 컴퓨터 하드웨어의 일종이다. UART는 일반적으로 EIA RS-232, RS-422, RS-485와 같은 통신 표준과 함께 사용한다. UART의 U는 범용을 가리키는데 이는 자료 형태나 전송 속도를 직접 구성할 수 있고 실제 전기 신호 수준과 방식 ( ex 차분 신호) 이 일반적으로 UART 바깥의 특정한 드라이버 회로를 통해 관리를 받는다는 뜻이다.
통신 데이터는 메모리 또는 레지스터에 들어 있어 이것을 차례대로 읽어 직렬화 하여 통신한다. 최대 8비트가 기본 단위이다.
위와 같이 병렬은 (D7~0)의 data가 여러 line 을 통해 한 번에 송수신이 이루어지는 반면, UART 통신에 사용되는 직렬통신 방법은 메모리에서 읽어온 (D7~0)의 data를 한 개의 line 을 통해 data 한 개씩 송수신이 이루어진다.
전송에 사용되는 dataframe 의 구성요소는 St(start bit), data bits, P(parity bits), Sp(stop bit) 가 있다.
UART( Universal asynchronous receiver/transmitter )라는 이름에서 알수 있듯이 UART통신은 신호를 주고받을 때 규칙적인 주기에 맞춰 통신이 이뤄지지 않고 비동기(Asynchronous) 적으로 통신이 이루어지게 된다. 이때 start bit, stop bits 등을 통해 비동기 상태에서도 data frame을 구분하게 된다.
이때, parity bit는 dataframe을 구성하는데 사용하지 않는 경우도 있다.
UART 통신에서는 Baud rate에 따라 통신속도를 조절하게 된다. Baud rate 는 초당 보낼 수 있는 데이터의 양을 나타내는데 초당 보내는 data의 수가 클수록 data 하나당 필요한 전송시간은 줄어들게되며, 이 Baud rate에 따라 전체 통신의 속도를 조절할 수 있다.
예를들어 Baud rate 가 9600 이라면 직렬 통신의 경우 한번에 변조가능한 데이터의 수가 한 개이기 때문에 bps는
bps(bit per sec): 1 x 9600 = 9600bps 이다.
USART 통신이란?
USART(범용 동기화 송수신기: ( Universal synchronous receiver/transmitter ) 는 UART와 다르게
동기(Synchronous) 신호인 CLK 신호에 맞춰서 dataframe을 구분하게 되는 직렬통신 방식이다.
동기신호로 data frame을 구분하기 때문에 기존 UART 방식의 start, stop, parity bit를 사용하지 않는다.
따라서 data frame의 크기 자체가 상대적으로 작고 같은 Baud rate 로 통신한다고 했을때 UART보다 많은 data 또는 같은 data를 빠르게 송, 수신할 수 있다.
'study' 카테고리의 다른 글
[Python]공간, 변수 (0) | 2022.07.29 |
---|---|
[Python]Dictionary (0) | 2022.07.29 |
3D 프린팅(스퍼, 헬리컬 기어 등등) (0) | 2020.11.24 |
[NUCLEO-F401RE] IMU data 처리 (0) | 2020.11.07 |