PHPoC provides Serial Peripheral Interface (SPI) as one of methods to communicate with other serial device.
SPI requires 4 signal lines between a master and a slave.
| Label | Name | Description |
|---|---|---|
| SCK | Serial Clock | clock for synchronization |
| MOSI | Master Output, Slave Input | master's transmission line |
| MISO | Master Input, Slave Output | slave's transmission line |
| SS | Slave Select | master's slave select line |

A master's three lines except for SS are commonly connected to all slaves while SS is separately connected to individual slave. Therefore, a master which has three slaves should have at least three SS ports. To select a slave, the master outputs LOW to the line which is connected to the slave and output HIGH to the other lines. That means a master can communicate with a single slave at a time. After finishing communication, the master outputs HIGH to the line.
There are four SPI modes (0 ~ 3) according to the sampling methods.

A master and a slave should be set to have the same bit transmission order. There are two ways: One is to send LSB first and the other is to send MSB first.
Data buffer of a master and a slave has a type of ring buffer. Thus, sending and receiving data are simultaneously implemented at all times. The following figure shows data flow in case of sending LSB first.
