Como funciona um chip FTDI?

20

Alguém me perguntou outro dia como funciona um USB FTDI para serial UART, e eu percebi que não sabia. Olhei para a folha de dados do FT232R e o diagrama de blocos não me ajudou muito. Alguém pode me explicar ou me ligar a uma boa explicação?

aloishis89
fonte
3
Mais uma explicação do que implementa o lado do dispositivo de um dispositivo USB CDC? pt.wikipedia.org/wiki/USB_communications_device_class
kenny
11
@kenny, na verdade, não. Ele usa um perfil proprietário, e é por isso que você precisa instalar drivers para usá-lo (pelo menos no Windows).
Avakar 17/05
2
@avakar, ele usa drivers em todos os sistemas operacionais, alguns vêm pré-carregados.
Kortuk 17/05

Respostas:

15

Os chips FTDI implementam a pilha de protocolos USB. A responsabilidade deste hardware é informar ao seu PC o que é (usando algumas informações de identificação), de modo que o computador possa carregar o driver correto para ele e também gerenciar as transações de dados com o PC depois - consulte os pontos de extremidade USB para uma melhor explicação desses processos.

Uma vez carregados esses drivers, isso especificaria um conjunto de comandos que seu PC pode usar para consultar o chip. Este hardware cuida de um lado da equação (comunicação com o seu PC). O outro lado seria um hardware dedicado para gerenciar o protocolo UART, que inclui lógica, buffers e drivers de linha e os tipos. O conjunto de comandos mencionado anteriormente seria usado para ler ou gravar no hardware UART. Provavelmente, deve-se mencionar que os dispositivos USB são pesquisados ​​pelo PC; portanto, nos casos em que você está usando código baseado em eventos, seu PC está fazendo algumas pesquisas para determinar a chegada de novos dados - isso pode ser diferente de um serial serial nativo. porto, eu não saberia.

A lógica acima pode ser implementada como um ASIC dedicado ou usando um núcleo de microcontrolador despojado que executa o firmware na ROM. Se é realmente um núcleo de microcontrolador, imagino que o UART esteja conectado a ele como periférico.

Jon L
fonte
E até que ponto você tem certeza de que não há um programa de firmware sendo executado? Os microcontroladores geralmente exigem menos portas lógicas do que a implementação equivalente de hardware dedicado da ASIC. É realmente difícil distinguir um microcontrolador de um ASIC, se o firmware do microcontrolador não estiver acessível ao usuário.
Ben Voigt
@ Ben: Você sabe o que? Eu provavelmente não deveria ter dito isso. A resposta foi editada devido à minha ignorância. Eu segui meu pressuposto depois de olhar para o diagrama de blocos, mas suponho que seria melhor abstrair qualquer detalhe potencial da UC de qualquer maneira. Suponho que apenas aqueles da FTDI saberiam, e suponho que tudo se reduz aos custos de licenciamento principais versus o tempo de desenvolvimento interno.
Jon L
11
Geralmente, quando você tem um "protocolo", você acaba com um "programa" para lidar com isso ... mesmo se estiver rodando em um mecanismo enterrado profundamente em um ASIC ou FPGA. A exceção seriam coisas em que a velocidade incrivelmente rápida supera a complexidade, onde é provável que você veja uma máquina de estado ou um paralelismo maciço. Entre eles estão os mecanismos em que o caminho da computação é construído fora de proporção com a lógica de controle - tipo da ideia original por trás dos processadores DSP
Chris Stratton
2

Há um microcontrolador USB dentro do qual fala um protocolo proprietário sobre USB (daí a necessidade de drivers) e converte isso em sinais UART "normais" e vice-versa.

Martin Thompson
fonte