23 votos

¿Cómo funciona un chip FTDI?

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

3 votos

¿Más de una explicación que implementa el lado del dispositivo de un dispositivo USB CDC? es.wikipedia.org/wiki/clase_de_comunicaciones_USB

2 votos

@kenny, en realidad, no lo hace. Utiliza un perfil propietario, por lo que es necesario instalar controladores para utilizarlo (al menos en Windows).

3 votos

@avakar, utiliza drivers en todos los SO, algunos sólo vienen precargados.

16voto

kender Puntos 18446

Los chips FTDI implementan la pila de protocolos USB. La responsabilidad de este hardware es decirle a tu PC lo que es (usando alguna información de identificación) de manera que tu ordenador pueda cargar el controlador adecuado para él, y también gestionar las transacciones de datos con el PC a partir de entonces - busca puntos finales USB para una mejor explicación de estos procesos.

Una vez cargados esos controladores, se especificaría un conjunto de comandos que su PC puede utilizar para consultar el chip. Este hardware se encarga de una parte de la ecuación (la comunicación con el PC). El otro lado de la ecuación sería un hardware dedicado a gestionar el protocolo UART que incluye lógica, búferes y controladores de línea y otras cosas. El conjunto de comandos mencionado anteriormente se utilizaría para leer o escribir en el hardware UART. Probablemente debería mencionarse que los dispositivos USB son sondeados por el PC, así que en los casos en los que estás usando código basado en eventos, tu PC está haciendo algún sondeo para determinar que han llegado nuevos datos - esto puede ser diferente a un puerto serie nativo, no lo sé.

La lógica anterior puede implementarse como un ASIC dedicado o utilizando un núcleo de microcontrolador reducido que ejecute el firmware en la ROM. Si se trata de un núcleo de microcontrolador, imagino que la UART está conectada a él como un periférico.

1 votos

¿Y qué certeza tienes de que no se está ejecutando un programa de firmware? Los microcontroladores suelen requerir menos puertas lógicas que la implementación equivalente de ASIC de hardware dedicado. Es muy difícil distinguir un microcontrolador de un ASIC, si el firmware del microcontrolador no es accesible para el usuario.

1 votos

@Ben: ¿Sabes qué? Probablemente no debería haber dicho eso. La respuesta ha sido editada debido a mi ignorancia. Fui con mi suposición instintiva después de ver el diagrama de bloques, pero supongo que sería mejor para abstraer cualquier detalle potencial uC de todos modos. Supongo que sólo los de FTDI sabría, y supongo que se reduce a los costos de licencia de núcleo frente a en el tiempo de desarrollo de la casa.

2 votos

Normalmente, cuando se tiene un "protocolo" se termina con un "programa" para manejarlo... incluso si se ejecuta en un motor enterrado en lo más profundo de un ASIC o FPGA. La excepción serían las cosas en las que la velocidad cegadora supera a la complejidad, donde es probable que veas una máquina de estado o un paralelismo masivo. En medio están los motores en los que la ruta de cálculo se construye de forma desproporcionada con respecto a la lógica de control, algo así como la idea original de los procesadores DSP.

3voto

Martin Thompson Puntos 6509

Hay un microcontrolador USB en el interior que habla un protocolo propietario a través de USB (de ahí la necesidad de controladores) y lo convierte en señales UART "normales" y viceversa.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X