Serie es una palabra paraguas para todo lo que es "Multiplexión por división de tiempo", para utilizar un término costoso. Significa que los datos se envían distribuidos a lo largo del tiempo, más a menudo un bit después de otro. Todos los protocolos que estás nombrando son protocolos en serie.
UART , para el transmisor de receptor asíncrono universal, es uno de los protocolos serie más utilizados. Es casi tan viejo como yo, y muy simple. La mayoría de los controladores tienen un UART de hardware a bordo. Utiliza una sola línea de datos para transmitir y otra para recibir datos. La mayoría de las veces, los datos de 8 bits se transfieren de la siguiente manera: 1 bit de inicio (nivel bajo), 8 bits de datos y 1 bit de parada (nivel alto). El bit de inicio de nivel bajo y el bit de parada de nivel alto significan que siempre hay una transición de alto a bajo para iniciar la comunicación. Eso es lo que describe UART. No hay nivel de voltaje, por lo que puede tenerlo a 3.3 V o 5 V, cualquiera que sea su microcontrolador. Tenga en cuenta que los microcontroladores que desean comunicarse a través de UART tienen que estar de acuerdo con la velocidad de transmisión, la velocidad de bits, ya que solo tienen los bits de inicio en el borde inferior para sincronizarse. Eso se llama comunicación asíncrona.
Para la comunicación a larga distancia (que no tiene que ser cientos de metros), el UART de 5 V no es muy confiable, por eso se convierte a un voltaje más alto, generalmente de +12 V para un "0" y -12 V para un "1". El formato de datos sigue siendo el mismo. Luego tienes RS-232 (al que deberías llamar EIA-232, pero nadie lo hace)
La dependencia de tiempo es uno de los grandes inconvenientes de UART, y la solución es USART , para el transmisor de receptor sincrónico / asíncrono universal. Esto puede hacer UART, pero también un protocolo síncrono. En síncrono no solo hay datos, sino también un reloj transmitido. Con cada bit, un pulso de reloj le dice al receptor que debe bloquear ese bit. Los protocolos síncronos necesitan un mayor ancho de banda, como en el caso de la codificación Manchester, o un cable adicional para el reloj, como SPI e I2C.
SPI (Interfaz Periférica Serial) es otro protocolo serial muy simple. Un maestro envía una señal de reloj, y con cada pulso de reloj se desplaza un bit hacia el esclavo, y un bit hacia adentro, proveniente del esclavo. Por lo tanto, los nombres de las señales son SCK para reloj, MOSI para Master Out Slave In y MISO para Master In Slave Out. Al usar señales SS (Selección de esclavo), el maestro puede controlar más de un esclavo en el bus. Hay dos formas de conectar varios dispositivos esclavos a un maestro, uno se menciona anteriormente, es decir, mediante el uso de la selección de esclavos, y el otro es el encadenamiento en margarita, usa menos pines de hardware (líneas de selección), pero el software se complica.
I2C (el Circuito Inter-Integrado, pronunciado "I squared C") también es un protocolo síncrono, y es el primero que vemos que tiene algo de "inteligencia"; los otros modificaron y modificaron los bits, y eso fue todo. I2C utiliza solo 2 cables, uno para el reloj (SCL) y otro para los datos (SDA). Eso significa que el maestro y el esclavo envían datos a través del mismo cable, nuevamente controlado por el maestro que crea la señal del reloj. I2C no utiliza Selecciones de esclavos por separado para seleccionar un dispositivo en particular, pero tiene direccionamiento. El primer byte enviado por el maestro contiene una dirección de 7 bits (para que pueda usar 127 dispositivos en el bus) y un bit de lectura / escritura, que indica si los siguientes bytes también provendrán del maestro o si deben provenir del esclavo. Después de cada byte, el receptor debe enviar un "0" para confirmar la recepción del byte, que el maestro enclava con un noveno impulso de reloj. Si el maestro desea escribir un byte, se repite el mismo proceso: el maestro coloca bit tras bit en el bus y cada vez emite un impulso de reloj para indicar que los datos están listos para ser leídos. Si el maestro quiere recibir datos solo genera los pulsos de reloj. El esclavo tiene que cuidar que el siguiente bit esté listo cuando se da el pulso de reloj. Este protocolo está patentado por NXP (anteriormente Phillips), para ahorrar costos de licencias, Atmel usa la palabra TWI (interfaz de 2 cables) que es exactamente igual que I2C, por lo que cualquier dispositivo AVR no tendrá I2C pero tendrá TWI.
Dos o más señales en el mismo cable pueden causar conflictos, y tendría un problema si un dispositivo envía un "1" mientras que el otro envía un "0". Por lo tanto, el bus está cableado con OR: dos resistencias elevan el bus a un nivel alto y los dispositivos solo envían niveles bajos. Si quieren enviar un alto nivel simplemente liberan el autobús.
TTL (Transistor Transistor Logic) no es un protocolo. Es una tecnología más antigua para la lógica digital, pero el nombre se usa a menudo para referirse a la tensión de alimentación de 5 V, a menudo se refiere incorrectamente a lo que debería llamarse UART.
Sobre cada uno de estos, puedes escribir un libro, y parece que estoy bien encaminado. Este es solo un resumen muy breve, háganos saber si hay cosas que necesitan aclaración.