I2C와 SPI
I2C란?
의미
Inter-Integrated Circuit의 약자로 IC사이 통식 링크를 제공하는 양방향 2와이어 직렬 버스이다.
특징
-동기 통신 프로토콜이다.
-반이중 통신이다.
직렬로 데이터를 전송한다.
장점
-2개의 입출력 핍을 이용해 장치들의 반이중통신이 가능하다.
-시스템 동작 중에도 I2C통신 버스에 새 장치의 추가 및 제거가 가능하다.
-하드웨어 구성이 간단하며 대화형 동작이 가능하다.
단점
-데이터 전송 속도가 비교적 저속이다.
-전이중 통신이 불가능하다.
-슬레이브의 주소 값이 7bit로 제한되어 있기 때문에, 슬레이브 장치를 동시에 최대 128개까지만 연결할 수 있다.
와이어별 역할
첫번째 가닥은 SDA선으로 이 선은 데이터를 주고 받기 위한 선이다.
두번째 가닥은 SCL선으로 이 선은 타이밍을 동기화 하기 위한 클럭 선이다.
구성
하나의 마스터와, 다른 하나의 슬레이브로 구성이 되며 슬레이브는 128개까지 구성이 가능하다.
즉 메인에 ECU가 있으면, 그 외 여러가지 디바이스들이 묶여 통신이 가능하다는 이야기이다.
주의 해야 할 점
I2C는 풀업 저항이다. 이 저항을 다는 이유는 I2C통신을 위해 SDA선과 SCL선이 모두 기본으로 High상태가 되어야 한다. 풀업 저항은 이를 High상태로 만들어 준다. 또한 한가닥의 선우로 Tx,Rx를 하기 때문에 Floating현상이 발생 함을 방지하기 위해 풀업 저항을 달기도 한다.
SPI란?
의미
Serial Peripheral Interface Bus의 약자로 아키텍처 전이중 통신 모드로 동작하는 모토로라 아키텍처에 이름을 딴 동기화 직렬 데이터 연결 표준이다.
특징
-동기 통신 프로토콜이다.
-전이중 통신이다.
-직렬 데이터 전송이다.
장점
-완전한 전이중 통신이다.
-전송되는 비트에 대한 완전한 프로토콜 유연성을 갖고있다.
-전송기가 필요하지 않다.
-매우 단순한 하드웨어 인터페이스 처리가 가능하다.
-IC패키지에 4개의 핀만 사용한다.
-최대 클럭이 재한되지 않아 속도 제한이 없다.
-Push-Pull출력을 이용하여 상호간에 같은 전압을 사용하여 시그널 정합성과 고속을 지원한다.
-I2C보다 소비 전력이 적다.
-슬레이브는 마스터가 보내주는 클럭만을 사용하고 정확성이 떨어져도 문제 없다.
단점
-하드웨어 슬레이브 인식이 없다.
-슬레이브에 의한 하드웨어 흐름제어가 없다.
-오류 검사 프로토콜이 정의되어 있지 않다.
-노이즈 스파이크에 영향을 받는 경향이 있다.
-RS-232,CAN버스보다 비교적 더 짧은 거리에서 동작한다.
-하나의 마스터 장치만 지원한다.
-인밴드를 통해 주소가 지원되지 않아 다 수의 슬레이브를 사용 시 별도의 아웃밴드를 통해 슬레이브를 선택해야 한다.
-Hot플러그를 지원하지 않는다.
주의 해야 할 점
-SPI의 구조와 동작에 대해서 이해해야한다.
-TXE와 RXBE, BSY가 무엇인지 알아야 한다.
-플래그를 사용할 타이밍을 알아야 한다.
-데이터를 보낸 다음엔 무조건 데이터를 읽어야한다.