이제부터는 디지털 통신을 이용해서 프로젝트를 진행해보려고 하는데, 프로젝트를 진행하기에 앞서 디지털 통신에 대한 개념적인 설명을 하려고 합니다. 앞으로 진행하게 될 프로젝트는 주로 I2C와 SPI 통신을 이용하게 될 것 같으니 이 두 가지 통신에 대해서 간략하게 설명드리겠습니다.


  I2C와 SPI 통신은 센서들과 아두이노 보드를 간단히 연결해서 사용할 수 있는 통신 방식입니다. 즉, 하나의 마이크로컨트롤러에 여러 개의 센서들, 또는 또 다른 마이크로컨트롤러를 연결하고 있는 모습을 보입니다. 이것을 Master-Slave 구조라고 하는 데, 하나의 마이크로컨트롤러(Master)에 다른 여러 장치(Slave)를 연결해 놓은 구조라고 볼 수 있습니다. 아두이노에서는 I2C와 SPI를 라이브러리로 제공하고 있어서 사용자는 라이브러리를 호출해서 사용하기만 하면 됩니다. 그래서 디지털 통신을 이용할 때 아두이노 연결과 라이브러리 사용 방법만 알면 되는데, 두 통신에 대해서는 비교해서 설명해드릴게요.


  먼저 I2C 통신은 복잡한 센서 값들을 처리해야 하는 경우 칩에서 센서 값들을 계산한 뒤에 메인 MCU에게 결과 값을 전달해주는 방식을 말합니다. 여기서 메인 MCU라는 건, 아두이노 시작하기에서 제가 아두이노의 심장과 같다고 했던 마이크로컨트롤러를 말해요.


I2C 통신도 Master-Slave 구조를 가지고 있지만 SPI 통신과는 다른 구조를 보이고 있습니다.



위의 구조와 같이 아두이노에 신호선 2개를 연결합니다. 신호선 하나는 SCL이고, 다른 하나는 SDA라고 하는데, SCL은 클럭신호용으로, SDA는 데이터 송수신용으로 사용됩니다. 그래서 I2C 방식은 SDA 한개의 전선으로 양방향 데이터 송수신을 하므로 통신 속도가 SPI보다는 상대적으로 느릴 수 있습니다. 또한 데이터의 송신과 수신을 동시에 수행할 수도 없죠. 대신에 I2C 방식은 센서를 하나 추가로 연결할 때 전선 한개를 버스에 연결하기만 하면 되는 장점이 있습니다.


 SPI 통신은 마찬가지로 Master-Slave 구조를 가지고 있지만 I2C와는 조금 다르게 연결되어 있습니다. 아래의 그림을 보시면 I2C 방식과는 다르게 어떻게 연결되어 있는지 확인하실 수 있습니다.


                                  


연결하는 선의 숫자와 연결 방법이 조금 다르죠? SPI 방식은 I2C 방식과는 다르게 2개의 선을 데이터 송수신에 사용합니다. 이 두개의 선을 MOSI와 MISO라고 하는데, 데이터 송수신을 2개로 나누어서 하니 I2C 방식보다는 통신 속도가 빠른 것이 장점입니다. 또한 데이터 송수신을 동시에 수행할 수도 있습니다. 그러나 SPI 방식은 하나의 센서를 추가하고 싶을 때 하나의 연결선으로 해결이 되었던 I2C와는 달리 연결해야할 숫자가 조금 더 많다는 단점이 있습니다. 그렇기 때문에 주로 SPI는 이더넷이나 메모리 카드와 같이 고속 통신이 필요한 경우에 많이 쓰입니다.

 

 이제까지 디지털 통신과 통신 규약 2가지에 대해서 간략하게 알아보았으니 앞으로의 프로젝트에서 이 통신 규약을 사용하여 프로젝트를 진행해보도록 합시다.

댓글 0

MADE BY

김민정

사물인터넷, 아두이노