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.
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.