시리얼 통신 방식 비교
1. UART : 컴퓨터나 기타 주변장치의 시리얼 포트를 잉요하는 시리얼 통신 방식. 정보 교환을 위해 송신과 수신 2개의 데이터 핀 연결을 필요로 하며, 송수신은 동시에 진행될 수 있는 전이중 방식임. 동기화를 위해 별도의 클록을 전송하지 않으므로 통신 이전에 전송 속도를 동일하게 설정해야함. 한 번에 하나의 장치만 연결이 가능한 1:1 통신방식으로 마이크로컨트롤러에 UART방식의 주변장치를 2개 연결하고자 한다면 2개의 UART 포트가 필요함.
2. SPI : 짧은 거리에서 주변장치와 고속으로 정보를 교환하기 위해 주로 사용됨. 3개의 데이터 핀 연결과 1개의 제어 핀 연결이 필요함 (총 4개의 핀 연결 필요) 3개의 데이터 연결 핀 중 2개는 UART와 마찬가지로 데이터 송수신을 위해 사용되고 나머지 하나는 동기화를 위한 클록 신호를 보내기 위해 사용됨. UART와 달리 SPI포트를 통해 1:N 통신이 가능함. 이 때 하나의 장치는 마스터로 통신 과정을 책임지며, 다른 장치들을 슬레이브로 동작함. 동일한 통신 포트를 통해 여러 개의 슬레이브가 연결되면 특정 장치를 선택할 수 있는 방법이 필요하며 SPI에서는 제어 연결 핀을 통한 하드웨어적 방식을 사용함. 고속의 데이터를 안정적으로 전달하고 여러개의 장치들이 포트를 공유할 수 있는 장점이 있으나, 제어 핀의 수가 연결된 장치의 수에 비례하여 증가하는 것이 단점
3. I2C : 짧은 거리에서 주변장치와 저속으로 정보를 교환하기 위해 주로 사용. 2개의 데이터 핀 연결만을 필요로 함. 1:N으로 연결되니 마스터-슬레이브 구조의 통신방식임. I2C에서 사용하는 데이터 연결 핀 중 실제로 데이터 전송에 사용되는 핀은 하나이며, 다른 하나는 동기화를 위한 클록 신호를 위해 사용됨. 따라서 I2C는 송수신이 동시에 이루어질 수 없는 반이중 방식임. 이밖에도 1:N 연결에서 장치 구별을 위해 소프트웨어적인 주소를 사용하므로 별도의 제어 핀 연결은 필요하지 않음. SPI와 달리 장치의 수가 증가해도 필요로 하는 핀의 개수는 증가하지 않음
|
UART |
SPI |
I2C |
연결방법 |
1:1 |
1:N |
1:N |
전송방법 |
전이중 |
전이중 |
반이중 |
데이터 |
2개 |
2개 |
1개 |
동기신호 |
x |
1개 |
1개 |
제어 |
x |
1개 |
x |
총 |
2개 |
4개 |
2개 |
(출처 : 아트멜 스튜디오와 아두이노로 배우는 ATmega328 프로그래밍)
'Electronics' 카테고리의 다른 글
Arduino coding style (0) | 2016.09.13 |
---|---|
TTL vs. CMOS (0) | 2016.09.13 |
트랜지스터 (0) | 2016.08.26 |
전자의 흐름 (0) | 2016.08.24 |
저항 읽기 (0) | 2016.08.24 |