hello world

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개 

동기신호 

1개 

1개 

제어 

1개 

총 

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