시리얼 통신이란?
- 병렬 데이터의 형태를 직렬 방식으로 전환하여 데이터를 전송하는 컴퓨터 하드웨어의 일종
- 시리얼(Serial) 이라는 것은 직렬이라는 뜻으로, 패러럴(Parellel)과 반대되는 단어이며,
통신에는 직렬 통신과 병렬 통신 2가지 방식이 존재한다.
직렬 통신은 데이터를 보낼 때 한 데이터 선(lane)에서 데이터를 보내는 방식이고,
병렬 통신은 데이터를 보낼 때 여러개의 데이터 선(lane)에서 보내고자 하는 데이터를 나눠서 보내는 것이다.
- 예를 들어 1010 데이터를 보내려고 할 때 상황은 아래와 같다.
* 시리얼 통신에서는 1개의 lane으로 데이터를 모두 보낸다.
* 병렬 통신에서는 4개의 lane으로 가정했을 때, 각 lane(0-3번 lane)에 1, 0, 1, 0 을 나눠서 보낸다.
UART(Universal Asynchrounous serial Receiver and Transmitter)
- 비동기식(Asynchronous)통신: 데이터 수신의 타이밍을 위하여 Clock 라인을 사용하지 않음
- 비동기식 통신이기 때문에 보내는 데이터를 어떻게 해석할지가 중요함.
데이터 해석을 위해서는 다음과 같은 정보가 필요하다. 송수신 측에는 아래와 같은 규칙들을 지정하고 데이터를 해석함
* Baud Rate(보율)라고 하며 초당 많은 심볼(Symbol, 의미있는 데이터 묶음)을 얼마만큼 전송할지에 대한 정보
* 데이터 길이: 송수신 데이터 길이 (8bit or 7bit)
* 패리티 비트: 패리티 비트 사용 X, Even(짝수), Odd(홀수) 패리티 사용
* 정지 비트: (1 or 2개)
* USART는 동기식을 지원하는 통신 방식이다.
2022.11.30 - [Communication] - UART Communication
I2C
- 동기식(Synchronous) 시리얼 통신 방식: 데이터 수신의 타이밍을 Clock 라인을 사용
- 필립스에서 개발한 직렬 버스로 마더보드, 임베디드 시스템, 휴대 전화 등에 저속의 주변 기기를 연결하기 위해 사용
- I2C는 풀업 저항이 연결된 직렬 데이터(SDA)와 직렬 클럭(SCL)이라는 두 개의 양 방향 오픈 컬렉터 라인을 사용함
최대 전압은 + 5V 이며, 일반적으로 +3.3V 시스템이 사용되지만 다른 전압도 가능함
- 마스터(Master)와 슬레이브(Slave)가 존재
- 아래와 같은 2가지 선으로 이루어져 있음
* SDA : Data 송수신
* SCK : Clock 전송
- 슬레이브 마다 지정된 주소 값을 가지고 데이터를 주고 받는다.
데이터를 주고 받을 때 반드시 주소 값을 붙여서 보내야 한다.
- SPI가 여러 개의 선이 필요한 것과 달리 2개의 선만 가지고 통신이 가능하다.
SPI(Serial peripheral Interface Bus)
- 동기식(Synchronous) 시리얼 통신 방식 : 데이터 수신의 타이밍을 위하여 Clock 라인을 사용
- 직렬 주변기기 인터페이스 버스(Serial Peripheral Interface Bus) 또는 SPI 버스는 아키텍처 전이중 통신 모드로
동작하는 모토로라 아키텍처의 이름을 딴 동기화 직렬 데이터 연결 표준이다.
- 아래와 같은 4가지 선으로 이루어져 있음.
* MOSI: 마스터 출력, 슬레이브 입력 (마스터로부터의 출력). Master Out, Slave In
* MISO: 마스터 입력, 슬레이브 출력 (슬레이브로부터의 출력). Master In, Slave Out
* SCK: 직렬 클럭(마스터로부터의 출력). 데이터 전송 타이밍 동기화를 위한 Clock
* SS(CS): 슬레이브 셀렉트(active low, 마스터로부터의 출력).
Slave select(또는 Chip Select)는 데이터 수신할 기기선택을 위한 신호로 사용
- 마스터가 SS를 통해 신호를 전송할 슬레이브를 선택한다.
마스터는 MOSI를 통해서 SCLK에 동기화된 신호를 전송한다.
- I2C가 2개의 선이 필요한 것과 달리 SPI는 선을 추가로 더 필요로 한다.
'Network' 카테고리의 다른 글
TCP / IP (Socket programming) (0) | 2022.12.01 |
---|---|
HTTP Protocol (0) | 2022.12.01 |
Protocol (0) | 2022.12.01 |
UART Communication (0) | 2022.11.30 |
SSID (0) | 2022.11.25 |