nowornever

SPI 통신 본문

Study

SPI 통신

JohnnyKoo 2013. 4. 15. 17:02

SPI 통신에 대해서 알아봅시다.


SPI 은 Serial to Peripheral Interface  의 약자입니다. 모토로라에 의해 개발된 HW/FW 통신 프로토콜인데 그 후에 산업용으로 쓰이게 됩니다. SPI  는 "4 wire" serial bus 라고 불리기도 합니다. 

자, 그럼 이녀석은 왜 필요할까요? SPI는 컨트롤러와 peripheral device (주변장치) 사이의 4-wire serial 통신 인터페이스를 담당합니다. 이렇게 원래 주변기기와의 통신을 위해 개발되었지만 두개의 processor 사이의 통신도 가능합니다. 


SPI의 Data 및 제어라인과 기본 연결:

SPI 프로토콜은 4개의 신호라인으로 나뉘게 되는데요

1. Master Out Slave In (MOSI) -  MOSI 신호는 마스터에 의해 만들어지고 슬레이브가 받게 됩니다. 


2. Master In Slave Out (MISO) -  슬레이브는 MISO 를 만들어서 마스터가 받게 됩니다. 


3. Serial Clock (SCLK or SCK) -  SCLK 혹은 SCK 라고 불리는 이 녀석은 마스터가 마스터와 슬레이브 사이의 데이터 전송을 동기화 하기 위해 만듭니다. 


4. Slave Select (SS) from master to Chip Select (CS) of slave - S SS->CS SS 신호는 각각의 슬레이브/주변장치를 선택하기 위해 마스터쪽에서 만들어집니다. SS/CS 는 Active Low 입니다.


embedded system diagram

이 4개의 신호 중에서 특히 MOSI 와 MISO 이 두 개는 데이터 라인으로 불립니다. 그리고 SS 와 SCLK 는 제어라인으로 불립니다.

SPI-bus 통신은 하나의 마스터와 여러개의 슬레이브로 구성될 수 있습니다. 보통 하나의 SPI 장치가 SPI 마스터로 동작되며 SCLK, 클럭 신호를 생성하여 데이터 흐름을 제어합니다. 또, SS 를 통해 통신하고 싶은 슬레으브를 활성화 하기도 하죠.

그래서 어떻게 통신하는데?:


통신은 언제나 마스터에 의해 시작됩니다. 마스터는 frequency 를 이용하여 클럭을 설정하는데 이 frequency 는 슬레이브 장치가 지원할 수 있는 최대 크기의 frequency 와 같거나 작습니다. 마스터는 그 다음에 특정한 슬레이브-주변장치의 chip 선택(SS) 을 pulling 하여 "low" 상태로 만듬으로써 통신하기를 원하는 슬레이브를 선택하게 됩니다. 만약, 기다리는 시간이 필요하다면 (예를 들면 analog-to-digital 변환) 마스터는 반드시 clock 사이클을 시작하기 전까지 필요한 주기의 시간을 기다려야 합니다.


출처: http://www.eeherald.com/section/design-guide/esmod12.html

번역: 구일모

'Study' 카테고리의 다른 글

magnetic sensor intro  (0) 2013.04.26
C 프로그래밍 - 비트 제어  (0) 2013.04.23
my Baby  (0) 2013.04.12
Shift Register (쉬프트 레지스터) 역할  (0) 2013.04.10
GCC 컴파일 과정  (0) 2013.03.20