Bagaimana cara kerja chip FTDI?

20

Seseorang bertanya kepada saya beberapa hari lalu bagaimana USB FTDI ke serial UART bekerja, dan saya sadar saya tidak tahu. Saya melihat datasheet untuk FT232R dan diagram blok tidak benar-benar membantu saya. Adakah yang bisa menjelaskan atau menghubungkan saya dengan penjelasan yang bagus?

aloishis89
sumber
3
Lebih banyak penjelasan daripada mengimplementasikan sisi perangkat dari perangkat CDC USB? en.wikipedia.org/wiki/USB_communications_device_class
kenny
1
@kenny, sebenarnya, tidak. Itu menggunakan profil berpemilik, itulah sebabnya Anda perlu menginstal driver untuk menggunakannya (setidaknya pada Windows).
avakar
2
@avakar, ini menggunakan driver pada semua OS, beberapa hanya datang dimuat.
Kortuk

Jawaban:

15

Chip FTDI menerapkan tumpukan protokol USB. Tanggung jawab perangkat keras ini adalah untuk memberi tahu PC Anda apa itu (menggunakan beberapa informasi identifikasi) sehingga komputer Anda dapat memuat driver yang tepat untuknya, dan juga untuk mengelola transaksi data dengan PC di sana setelahnya - cari titik akhir USB untuk penjelasan yang lebih baik tentang proses ini.

Setelah driver tersebut dimuat, ini akan menentukan set perintah yang dapat digunakan PC Anda untuk menanyakan chip. Perangkat keras ini menangani satu sisi persamaan (komunikasi dengan PC Anda). Sisi lain dari itu akan menjadi beberapa perangkat keras khusus untuk mengelola protokol UART yang mencakup logika, buffer dan driver garis dan sejenisnya. Set perintah yang disebutkan sebelumnya akan digunakan untuk membaca atau menulis ke perangkat keras UART. Mungkin harus disebutkan bahwa perangkat USB disurvei oleh PC, jadi dalam kasus di mana Anda menggunakan kode yang berdasarkan peristiwa, PC Anda sebenarnya melakukan beberapa polling untuk menentukan bahwa data baru telah tiba - ini mungkin berbeda dari serial asli port, saya tidak akan tahu.

Logika di atas dapat diimplementasikan baik sebagai ASIC khusus atau dengan menggunakan inti mikrokontroler yang dilucuti yang menjalankan firmware pada ROM. Jika itu memang inti mikrokontroler, maka saya membayangkan UART terhubung dengannya sebagai periferal.

Jon L
sumber
Dan seberapa yakin Anda bahwa tidak ada program firmware yang dijalankan? Mikrokontroler biasanya memerlukan gerbang logika lebih sedikit daripada implementasi perangkat keras khusus ASIC yang setara. Sangat sulit untuk mengetahui mikrokontroler dari ASIC, jika firmware mikrokontroler tidak dapat diakses pengguna.
Ben Voigt
@ Ben: Anda tahu? Saya mungkin tidak seharusnya mengatakan itu. Jawaban telah diedit karena ketidaktahuan saya. Saya pergi dengan asumsi usus saya setelah melihat diagram blok, tapi saya kira akan lebih baik untuk abstrak setiap rincian UC potensial. Saya kira hanya orang-orang di FTDI yang akan tahu, dan saya kira itu turun ke biaya lisensi inti vs dalam waktu pengembangan rumah.
Jon L
1
Biasanya, ketika Anda memiliki "protokol" Anda berakhir dengan "program" untuk menanganinya ... bahkan jika itu berjalan pada mesin yang terkubur dalam-dalam di ASIC atau FPGA. Pengecualian akan menjadi hal-hal di mana kecepatan sangat cepat mengalahkan kompleksitas, di mana Anda cenderung melihat mesin keadaan atau paralelisme besar-besaran. Di antaranya ada mesin di mana jalur penghitungan dibangun keluar dari proporsi ke logika kontrol - semacam ide asli di belakang prosesor DSP
Chris Stratton
2

Ada mikrokontroler USB di dalamnya yang berbicara protokol milik melalui USB (maka kebutuhan untuk driver) dan mengubahnya menjadi sinyal UART "normal" dan kembali lagi.

Martin Thompson
sumber