Half-duplex: transmisión y recepción pero no simultánea.
Full-duplex: transmisión y recepción simultánea.
Comunicaciones en función de número de hilos:
Puerto serie: Los datos se envían bit a bit en un solo cable (o en dos si la transmisión es dúplex. Truquillo: poner a trabajar varios puertos serie “colaborativamente”: PCIe (1 lane, 2 lanes, 8 lanes, 16 lanes…) (lane = carril)
Puerto paralelo: Los datos se envían varios a la vez (por ejemplo, 8 bits). Como necesita más hilos, tiene problemas de interferencias cuando se aumenta la distancia.
Comunicaciones en función de reloj:
Comunicación síncrona: Existe una señal de reloj (CLK) que marca el ritmo al que se transmiten los bits.
Comunicación asíncrona: No existe una señal de reloj de sincronización.
Puertos serie más populares
Puertos serie para comunicación directa con procesadores y microcontroladores:
USB(Universal Serial Bus). PCs, routers, microcontroladores. No es del todo barato, así que escasea bastante. Tiene:
RS232. Muy popular en industrial. Lo usan PCs (cada vez menos), routers (a veces en conector RJ-45), microcontroladores. Por norma general, usa conectores DB-9 (9 pines). CTS (Clear To Send), RTS (Request to Send), Rx, Tx, GND. Más info.
Niveles de voltaje de -12 y 12 V.
TTL/UART. Similar a RS232, pero en niveles TTL, normalmente 0-3.3V. La conversión es sencilla. Algunos PL2303, CP2102.
Niveles de voltaje de 0 y 3,3V.
Tanto en RS232 como en UART es necesario distinguir entre DTE”Data Terminal Equipment” y DCE”Data Circtuit-terminating Equipment”. El DCE ofrece una consola, y el DTE se conecta a esa consola (mediante PuTTY, screen /dev/tty.usbserial-141110 115200,cs8…).
Ejemplos:
PC conectándose a BASH Raspberry mediante cable USB a UART. El PC es DTE y la Raspberry es DCE.
Raspberry programando ESP32. La Raspberry es DTE y la ESP32 es DCE.
I2C (Inter-Integrated Circuit): Periféricos de microcontroladores. Displays, ventiladores.
SPI (Serial Peripheral Interface) (tarjetas SD y otras memorias tipo flash). SCK (reloj), MOSI (master out, slave in), MISO (master in, slave out), CS (chip select)