Alguém me perguntou outro dia como funciona um FTDI USB para UART serial, e percebi que não sabia. Olhei a folha de dados do FT232R e o diagrama de blocos realmente não me ajudou. Alguém pode me explicar ou me vincular a uma boa explicação?
Comentários
- Mais uma explicação do que implementa o lado do dispositivo de um dispositivo USB CDC? en.wikipedia.org/wiki/USB_communications_device_class
- @kenny, na verdade, não ' t. Ele usa um perfil proprietário, por isso você precisa instalar drivers para usá-lo (pelo menos no Windows).
- @avakar, ele usa drivers em todos os SOs, alguns vêm pré-carregados.
Resposta
Os chips FTDI implementam a pilha de protocolos USB. A responsabilidade deste hardware é dizer ao seu PC o que é (usando algumas informações de identificação) de modo que seu computador possa carregar o driver correto para ele, e também gerenciar as transações de dados com o PC depois – procure terminais USB para uma melhor explicação desses processos.
Uma vez que esses drivers são carregados, isso especifica 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 seu PC). O outro lado seria algum 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 ser mencionado que os dispositivos USB são monitorados pelo PC, então, nos casos em que você está usando um código baseado em eventos, o seu PC está realmente fazendo algumas pesquisas para determinar se novos dados chegaram – isso pode ser diferente de um serial nativo porta, eu não saberia.
A lógica acima pode ser implementada como um ASIC dedicado ou usando um núcleo de microcontrolador reduzido que executa firmware em ROM. Se for realmente um núcleo de microcontrolador, então eu imagine que o UART está conectado a ele como um periférico.
Comentários
- E que certeza você tem de que não existe ' um programa de firmware está sendo executado? Os microcontroladores geralmente exigem menos portas lógicas do que a implementação de hardware dedicado ASIC equivalente. É ' muito difícil diferenciar um microcontrolador de um ASIC, se o firmware do microcontrolador não está ' acessível ao usuário.
- @Ben: Sabe de uma coisa? Provavelmente deveria ldn ' não disse isso. A resposta foi editada devido à minha ignorância. Fui com minha suposição intuitiva depois de olhar para o diagrama de blocos, mas suponho que seria melhor abstrair quaisquer detalhes de uC em potencial de qualquer maneira. Suponho que apenas os da FTDI saberiam, e suponho que se reduza aos custos de licenciamento principal em comparação ao tempo de desenvolvimento interno.
- Normalmente, quando você tem um " protocolo " você acaba com um " programa " para lidar com isso … até se ' está funcionando em um motor enterrado profundamente em um ASIC ou FPGA. A exceção seriam coisas em que a velocidade incrivelmente rápida supera a complexidade, em que é provável que você veja uma máquina de estado ou um paralelismo maciço. No meio estão os mecanismos em que o caminho de computação é construído fora de proporção com a lógica de controle – mais ou menos a ideia original por trás dos processadores DSP
Resposta
Há um microcontrolador USB dentro do qual fala um protocolo proprietário sobre USB (daí a necessidade de drivers) e os converte em sinais UART “normais” e vice-versa.