¿Cómo funciona un chip FTDI?

20

Alguien me preguntó el otro día cómo funciona un USB FTDI a UART en serie, y me di cuenta de que no lo sabía. Miré la hoja de datos del FT232R y el diagrama de bloques realmente no me ayudó. ¿Alguien puede explicarme o vincularme a una buena explicación?

aloishis89
fuente
3
¿Más explicación que la que implementa el lado del dispositivo de un dispositivo USB CDC? en.wikipedia.org/wiki/USB_communications_device_class
kenny
1
@kenny, en realidad, no lo hace. Utiliza un perfil propietario, por lo que necesita instalar controladores para usarlo (al menos en Windows).
avakar
2
@avakar, utiliza controladores en todos los sistemas operativos, algunos solo vienen precargados.
Kortuk

Respuestas:

15

Los chips FTDI implementan la pila de protocolo USB. La responsabilidad de este hardware es decirle a su PC qué es (utilizando cierta información de identificación) de modo que su computadora pueda cargar el controlador adecuado para él, y también administrar las transacciones de datos con la PC después de eso: busque puntos finales USB para una mejor explicación de estos procesos.

Una vez que se cargan esos controladores, esto especificaría un conjunto de comandos que su PC puede usar para consultar el chip. Este hardware se encarga de un lado de la ecuación (comunicación con su PC). El otro lado sería un hardware dedicado para administrar el protocolo UART que incluye lógica, buffers y controladores de línea y todo tipo. El conjunto de comandos mencionado anteriormente se usaría para leer o escribir en el hardware de UART. Probablemente debería mencionarse que los dispositivos USB son sondeados por la PC, por lo que en los casos en los que está utilizando un código basado en eventos, su PC está realizando algunas encuestas para determinar que han llegado nuevos datos; esto puede ser diferente de una serie nativa puerto, no lo sabría.

La lógica anterior se puede implementar como un ASIC dedicado o mediante el uso de un núcleo de microcontrolador reducido que ejecuta el firmware en la ROM. Si de hecho es un núcleo de microcontrolador, entonces imagino que el UART está conectado a él como un periférico.

Jon L
fuente
¿Y qué tan seguro está de que no se está ejecutando un programa de firmware? Los microcontroladores generalmente requieren menos puertas lógicas que la implementación equivalente de hardware dedicado ASIC. Es realmente difícil distinguir un microcontrolador de un ASIC, si el firmware del microcontrolador no es accesible para el usuario.
Ben Voigt
@Ben: ¿Sabes qué? Probablemente no debería haber dicho eso. La respuesta ha sido editada debido a mi ignorancia. Seguí mi supuesto instinto después de mirar el diagrama de bloques, pero supongo que de todos modos sería mejor abstraer cualquier detalle potencial de CC. Supongo que solo los que están en FTDI lo sabrían, y supongo que todo se reduce a los costos básicos de licencia en comparación con el tiempo de desarrollo interno.
Jon L
1
Por lo general, cuando tienes un "protocolo" terminas con un "programa" para manejarlo ... incluso si está funcionando en un motor enterrado en un ASIC o FPGA. La excepción serían cosas en las que la velocidad cegadoramente rápida supera la complejidad, donde es probable que vea una máquina de estados o un paralelismo masivo. En el medio hay motores donde la ruta de cálculo se construye fuera de proporción con la lógica de control, una especie de idea original detrás de los procesadores DSP
Chris Stratton,
2

Hay un microcontrolador USB dentro que habla de un protocolo propietario sobre USB (de ahí la necesidad de controladores) y lo convierte en señales UART "normales" y viceversa.

Martin Thompson
fuente