Hardware serial bus types
I2C:
- 2 lines: SCL (serial clock), SDA (serial data)
- default is high, pulled low for 0
- clock rising edge determines bit boundaries
SPI
- two lines for sending/receiving data – full duplex
- 4 lines: MISO, MOSI, SCK, CS
UART
- 2 lines: Rx, Tx
- asynchronous – no clock line
- but timing-sensitive: both devices know baud rate (transmission rate) ahead of time, and number of bits per message