nowornever
SPI 통신 본문
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 입니다.
이 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 |