Come funziona un chip FTDI?


20

Qualcuno mi ha chiesto l'altro giorno come funziona un FTDI da USB a UART seriale e mi sono reso conto che non lo sapevo. Ho guardato il foglio dati per FT232R e lo schema a blocchi non mi ha davvero aiutato. Qualcuno può spiegarmi o collegarmi a una buona spiegazione?


3
Più di una spiegazione che implementa il lato dispositivo di un dispositivo USB CDC? en.wikipedia.org/wiki/USB_communications_device_class
kenny

1
@kenny, in realtà no. Utilizza un profilo proprietario, motivo per cui è necessario installare i driver per usarlo (almeno su Windows).
avakar,

2
@avakar, utilizza i driver su tutti i sistemi operativi, alcuni sono già precaricati.
Kortuk,

Risposte:


15

I chip FTDI implementano lo stack del protocollo USB. La responsabilità di questo hardware è di dire al tuo PC di cosa si tratta (utilizzando alcune informazioni di identificazione) in modo tale che il tuo computer possa caricare il driver giusto per esso, e anche di gestire le transazioni di dati con il PC dopo di esso - cercare endpoint USB per una migliore spiegazione di questi processi.

Una volta caricati quei driver, questo specifica un set di comandi che il tuo PC può usare per interrogare il chip. Questo hardware si occupa di un lato dell'equazione (comunicazione con il tuo PC). L'altro lato sarebbe un hardware dedicato per gestire il protocollo UART che include logica, buffer e driver di linea e ordinamento. Il set di comandi menzionato in precedenza verrebbe utilizzato per leggere o scrivere sull'hardware UART. Dovrebbe probabilmente essere menzionato che i dispositivi USB sono sottoposti a polling dal PC, quindi nei casi in cui si sta utilizzando un codice basato su eventi, il PC sta effettivamente eseguendo il polling per determinare l'arrivo di nuovi dati - questo potrebbe essere diverso da un seriale nativo porto, non lo saprei.

La logica di cui sopra può essere implementata come ASIC dedicato o utilizzando un core di microcontrollore ridotto che esegue il firmware sulla ROM. Se è davvero un core di microcontrollore, allora immagino che l'UART sia collegato ad esso come una periferica.


E quanto sei sicuro che non sia in esecuzione un programma firmware? I microcontrollori in genere richiedono meno porte logiche rispetto all'implementazione equivalente dell'hardware dedicato ASIC. È davvero difficile distinguere un microcontrollore da un ASIC, se il firmware del microcontrollore non è accessibile all'utente.
Ben Voigt,

@Ben: sai una cosa? Probabilmente non avrei dovuto dirlo. La risposta è stata modificata a causa della mia ignoranza. Sono andato con il mio intuito dopo aver visto lo schema a blocchi, ma suppongo che sarebbe meglio astrarre qualsiasi potenziale dettaglio degli Stati Uniti comunque. Suppongo che solo quelli della FTDI lo sapessero, e suppongo che si riduca ai costi di licenza core rispetto ai tempi di sviluppo interni.
Jon L

1
Di solito, quando si dispone di un "protocollo", si finisce con un "programma" per gestirlo ... anche se è in esecuzione su un motore nascosto in un ASIC o FPGA. L'eccezione sarebbero le cose in cui la velocità accecante supera la complessità, dove è probabile che tu veda una macchina a stati o un parallelismo massiccio. Nel mezzo ci sono motori in cui il percorso di calcolo è costruito in modo sproporzionato rispetto alla logica di controllo - una sorta di idea originale dietro i processori DSP
Chris Stratton,

2

C'è un microcontrollore USB all'interno che comunica un protocollo proprietario su USB (da qui la necessità di driver) e lo converte in segnali UART "normali" e viceversa.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.