Cineva m-a întrebat zilele trecute cum funcționează un FTDI USB către serial UART și mi-am dat seama că nu știam. M-am uitat la fișa tehnică pentru FT232R iar diagrama bloc nu m-a ajutat cu adevărat. Poate cineva să mă explice sau să mă lege de o explicație bună?

Comentarii

  • Mai multe explicații decât implementează partea dispozitivului unui dispozitiv USB CDC? en.wikipedia.org/wiki/USB_communications_device_class
  • @kenny, de fapt, nu ' t. Folosește un profil propriu, motiv pentru care trebuie să instalați drivere pentru al utiliza (cel puțin pe Windows).
  • @avakar, folosește drivere pe toate sistemele de operare, unele sunt doar preîncărcate.

Răspuns

Cipurile FTDI implementează stiva de protocol USB. Responsabilitatea acestui hardware este de a spune computerului dvs. ce este (folosind unele informații de identificare), astfel încât computerul dvs. să poată încărca driverul potrivit pentru acesta și, de asemenea, să gestioneze tranzacțiile de date cu computerul acolo după – căutați punctele finale USB pentru o mai bună explicație a acestor procese.

Odată ce aceste drivere sunt încărcate, aceasta va specifica un set de comenzi pe care computerul dvs. îl poate utiliza pentru a interoga cipul. Acest hardware are grijă de o parte a ecuației (comunicarea cu computerul dvs.). Cealaltă parte a acestuia ar fi niște hardware dedicat pentru gestionarea protocolului UART, care include logică, buffere și drivere de linie și tipurile. Setul de comenzi menționat anterior ar fi folosit pentru a citi sau a scrie pe hardware-ul UART. Probabil ar trebui menționat faptul că dispozitivele USB sunt interogate de PC, așa că în cazurile în care utilizați cod care se bazează pe evenimente, PC-ul dvs. face de fapt unele sondaje pentru a determina dacă au sosit date noi – acest lucru poate fi diferit de un serial nativ port, nu știu.

Logica de mai sus poate fi implementată fie ca un ASIC dedicat, fie utilizând un nucleu de microcontroler dezactivat care execută firmware pe ROM. Dacă este într-adevăr un nucleu de microcontroler, atunci eu imaginați-vă că UART este conectat la acesta ca periferic.

Comentarii

  • Și cât de sigur sunteți că nu există ' Se execută un program de firmware? Microcontrolerele necesită, de obicei, mai puține porți logice decât implementarea ASIC dedicată-hardware echivalentă. Este ' foarte greu să spui unui microcontroler dintr-un ASIC, dacă firmware-ul microcontrolerului nu este ' accesibil utilizatorului.
  • @Ben: Știi ce? ldn ' nu am spus asta. Răspunsul a fost editat din cauza ignoranței mele. M-am dus cu presupunerea mea intestinală după ce m-am uitat la diagrama bloc, dar presupun că ar fi mai bine să abstractizez oricum orice detaliu potențial de uC. Presupun că doar cei de la FTDI ar ști și presupun că se reduce la costurile de licențiere de bază față de timpul de dezvoltare internă.
  • De obicei, când aveți un " protocol " ajungeți la un program " " pentru a-l gestiona … chiar dacă ' rulează pe un motor îngropat adânc într-un ASIC sau FPGA. Excepția ar fi lucrurile în care viteza orbitor de rapidă depășește complexitatea, unde este posibil să vedeți o mașină de stat sau un paralelism masiv. Între acestea există motoare în care calea de calcul este construită în mod proporțional cu logica de control – un fel de idee originală din spatele procesoarelor DSP

Răspuns

Există „un microcontroler USB în interiorul căruia vorbește un protocol propriu prin USB (de unde este nevoie de drivere) și îl transformă în semnale UART„ normale ”și înapoi.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *