Estaba intentando descubrir las razones reales por las que las señales USB se convierten a RS232 en serie. Llegué a comprender que (si no me equivoco), el USB es más rápido y sincrónico, mientras que los chips utilizan UART, que necesita el protocolo RS232.
RS232 es un estándar extremadamente antiguo desarrollado en los (relativamente) primeros días de la informática. Se ha extendido para hacer muchas cosas para las que no estaba destinado y se le agregaron "bits adicionales". Si bien RS232 es correctamente el estándar relacionado con la interfaz y los niveles, el término se ha extendido para cubrir la mayoría de los aspectos de la interfaz, la velocidad de datos, el protocolo de comunicaciones básico, los conectores y más.
USB es un estándar mucho más moderno. Proporciona un sistema de transferencia de datos en distancias cortas a velocidades mucho más altas de lo que RS232 está destinado a hacer.
Las principales razones de los convertidores de USB a RS232 existentes son
-
En una etapa, casi todas las "PC" tenían una interfaz seriel, esencialmente una interfaz RS232. La mayoría de las "PC" modernas ya no son interfaces RS232. El euqipment más antiguo con una interfaz RS232 a menudo, pero no siempre, puede conectarse a una PC mediante un convertidor RS232 a USB.
-
El procesamiento & la sobrecarga de complejidad en el mantenimiento de una "pila USB": la interfaz del software a un puerto USB, es considerable y no es fácil de manejar ni para los programadores de nivel de entrada ni para los equipos de extremo inferior. Los requisitos de interfaz para RS232 son muy modestos tanto en complejidad de código como en tamaño de código. Son "lo suficientemente fáciles de programar" y se acomodan lo suficiente en el extremo inferior de los procesadores, incluso con recursos de hardware mínimos. Incluso los procesadores en los que ni Olin ni Wouter pudieron implementar el USB pueden manejar las comunicaciones en serie asíncronas, que es el corazón de RS232.
¿Todos los chips están diseñados para la comunicación de datos serie TTL (RS232)? ¿Es ese el motivo por el que el USB nunca se usa directamente para la comunicación de datos con circuitos integrados?
Esa pregunta es un poco confusa. RS232 es una interfaz serial por defecto. Normalmente se utilizaron niveles de 1 ~ = - 12 voltios lógicos y 0 ~ = +12 voltios lógicos. Algunas variantes utilizan la lógica 1 = + 5V y la lógica 0 = 0 voltios (es decir, nominalmente (solo) niveles TTL). Esto facilita el uso de circuitos integrados lógicos estándar que funcionan con 5V. Se pueden usar convertidores muy simples para interactuar con una verdadera interfaz RS232 en muchos casos. Este es un método de operación marginal cuando se trabaja con una interfaz RS232 "verdadera" y necesita cuidado y comprensión para funcionar bien, y puede que no funcione en algunos casos. TTL a TTL funciona lo suficientemente bien para la mayoría de los propósitos.
Y una cosa más relacionada. Cuando estamos cargando croquis (código) en el microcontrolador Arduino, primero configuramos la velocidad de transmisión, es decir, 9600. Creo que esta es la velocidad de transferencia de datos de USB a Arduino.
9600 baudios fue una tasa de datos muy estándar históricamente. Se usa principalmente porque es un compromiso entre lo más rápido posible para ser útil y lo suficientemente lento para trabajar la mayor parte del tiempo. Se puede usar mucho más lento (por ejemplo, 300 baudios) y algo más rápido (115.200 baudios [¿Te sientes afortunado, Punk?)). Por lo general, las tasas de datos aumentan o disminuyen por factores de 2, por ejemplo, 300, 600, 1200, 2400, 4800, 9600, .... El hecho de que se utilicen 115,200 en algunos casos y NO es un poder de 2 multiplicadores le dice algo acerca de la suerte que puede tener.
Si el USB se convierte a RS 232 antes de llegar al UART de ATMEGA, ¿qué está cambiando? ¿Nivel de voltaje? Baudrate? ¿Sigue siendo la velocidad en baudios 9600 en la UART?
Todo está cambiando :-).
-
RS232 es un sistema de alimentación de voltaje no balanceado relativo a tierra. +/- 12V o 5 / - V o ....
El USB es un sistema de voltaje diferencial de + / -% V nominalmente alrededor de un voltaje central de 2.5V, pero eso no es parte del sistema de señalización.
-
USB es multipunto. RS232 está nominalmente entre 2 equipos, pero esto se ha extendido en algunos de los estándares no estándar.
-
RS232 es tan tonto como vienen. La única información de control en el estándar básico se relaciona con la temporización asíncrona, la longitud de bits y el número de bits de inicio y parada y quizás la paridad.
USB tiene una gran cantidad de información de control (o un flagelo) como parte del estándar.
-
La velocidad de datos RS232 es la que configuró. Por lo general, 300, 1200, 8600, ... PERO podría ser de 237,4 baudios si lo desea.
La velocidad de transmisión no es significativa en un nivel de transferencia de datos para USB. Las velocidades de datos aumentan a medida que el estándar se transforma, inicialmente alrededor de 12 Mbps con USB1 y ahora más de 1 GB / s en la última versión.