This is basically all what is defined for the SPI protocol. SPI does not define any maximum data
rate, not any particular addressing scheme; it does not have a acknowledgement mechanism to
confirm receipt of data and does not offer any flow control. Actually, the SPI master has no
knowledge of whether a slave exists, unless ‘something’ additional is done outside the SPI
protocol. For example a simple codec won’t need more than SPI, while a command-response
type of control would need a higher-level protocol built on top of the SPI interface. SPI does not
care about the physical interface characteristics like the I/O voltages and standard used between
the devices. Initially, most SPI implementation used a non-continuous clock and byte-by-byte
scheme. But many variants of the protocol now exist, that use a continuous clock signal and an
arbitrary transfer length.