SCLK : 신호 동기화를 위한 Clock임.(보통 Master에서 내보냄)
MOSI : Master Out Slave In. 마스터에서 슬레이브로 데이터를 전송하는 선.
MISO : Master In Slave Out. 슬레이브에서 마스터로 데이터를 전송하는 선.
SS : Slave Select. 또는 Chip Select라고도 함. Master장치가 여러개의 Slave 장치와 통신할 때 하나를 선택하여 통신을 하는데 그 때 선택을 하는 역할의 신호선.
4-wire 구성 : SS로 Slave에 data 전송 시작을 알리고 슬레이브와 통신함.
3-wire 구성 : 슬레이브의 SS를 GND에 묶어두면 슬레이브는 항상 data를 받을 상태가 됨.
multiple slaves : SS로 전송할 슬레이브를 선택하고 선택된 슬레이브와 통신함.
각 장치들은 Shift Register들이 있고 마스터의 Shift Register 있는 값이 슬레이브의 Shift Register에 전송시켜 동시에 슬레이브의 Shift Register의 있는 값 또한 마스터로 전송됨. 결과적으로 마스터, 슬레이브의 레지스터의 값을 서로 바꿔치기 하는 것임.
마스터가 데이터를 전송하면 슬레이브는 보낼 데이터가 없더라도, 불필요한 가비지 값(쓰레기값)이라도 무조건 마스터에 전달됨. 마스터는 슬레이브로부터 받은 쓰레기값이 필요없으면 그냥 버림.
1 Clock의 신호마다 1bit의 data가 이동됨.
SS를 High->Low로 떨어트려 Slave Select를 함.
Clock을 인가함.
마스터가 슬레이브로 데이터를 전송함과 동시에 슬레이브도 마스터에게 데이터를 전송함.