SPI is a synchronous serial communication interface used for short distance communication, usually between devices on a printed board assembly. Because there is no formal SPI standard, a wide variety of protocol options exist. This flexibility means every device defines its own protocol, increasing the development effort of new systems, devices and software.
In automotive safety applications, there is often an independent monitoring device (often termed "safing") which listens to sensor data on the SPI bus. This monitoring device is usually implemented in hardware, and imposes constraints on the SPI protocol.
SafeSPI specifies an SPI interface used in automotive applications. Its main focus is the transmission of sensor data between different devices.
A standard SPI interface consists of 4 ports as shown.
The Serial ClocK (SCK) represents the master clock signal. This clock determines the speed of data transfer and all receiving and sending is done synchronously to this clock. The Chip Select (CS) activates the SPI interface. As long as the CS signal is at high level, the SPI Slave will not accept the SCK signal or the Master-Out-Slave-In input (MOSI), and the Master-In-Slave-Out output (MISO) is in high impedance. When the CS signal is at low level, data can be transferred from the SPI Master to the SPI Slave and vice versa. Commands are transmitted through the MOSI to the SPI Slave and the SPI Slave returns its response through the MISO.
SPI bus systems support several slave devices on one bus by using either multiple chip select lines, one for each slave, or by a logical addressing. For several airbag and safety systems a monitor device is connected as listener to the bus. This device is often an ASIC which needs a dedicated SPI format. An example configuration is depicted here.