Saya perhatikan bahwa pada Windows XP dan 7 (dan 2 komputer yang berbeda masing-masing) saya dapat mengatur untuk mendapatkan bahwa "Perangkat ini dapat bekerja lebih cepat jika Anda menghubungkannya ke port USB 2.0 berkecepatan tinggi" notifikasi untuk muncul jika saya menghubungkan kabel sangat lambat (atau berjuang sedikit melakukannya hanya dengan satu tangan). Jika saya menghubungkannya dengan cukup cepat atau normal, dengan kedua tangan, tidak ada pemberitahuan. Dalam kedua kasus tersebut, semua perangkat tersebut tampaknya berfungsi secara normal.
Apa yang saya pikir terjadi adalah bahwa kontak antara kabel akan terputus untuk waktu yang cukup selama koneksi lambat / canggung bahwa pengontrol USB berpikir itu bukan 2.0 tetapi lebih lambat. Tetapi mengapa itu berpikir demikian? Atau mengapa itu tidak hanya mengatakan "Anda buruk dalam menghubungkan kabel, silakan cabut dan coba lagi"?
Jawaban:
Pesan mengacu pada negosiasi kecepatan data kecepatan penuh (FS) lama 12 Mbit / s, bukan kecepatan data (HS) kecepatan tinggi yaitu 480 Mbit / s. Pasti sangat sulit untuk mendapatkan efek ini dari port USB2. Protokol USB2.0 HS terbentuk setelah negosiasi yang cukup rumit antara perangkat dan host, karena pada awalnya setiap perangkat HS bertindak sebagai perangkat FS.
Proses normal adalah sebagai berikut:
Perangkat berkemampuan HS menarik garis D + setelah mendapat sinyal VBUS dengan resistor 1-1.5kΩ ke 3.3V. Seperti halnya perangkat FS akan lakukan.
Host port mendeteksi D + = high, dan setelah penundaan minimal 100ms de-bouncing, host menyatakan status USB_RESET di bus, mendorong D + dan D-line ke ground dengan driver 45Ω selama 10 atau 50ms.
Jika perangkatnya FS, ia tidak melakukan apa-apa dan menunggu sampai akhir USB_RESET.
Jika perangkat HS, itu akan mendorong D- tinggi menggunakan driver HS (sumber 18mA) sekitar 1 ms. Ini akan membuat pulsa dengan amplitudo sekitar 800mV (18mA menjadi 45Ω load) yang disebut "Chirp-K";
Setelah mendeteksi AKHIR Kicauan-K, jika tuan rumah mampu mode HS, ia menggerakkan sinyal ini kembali (sama 18mA ke dalam beban 45 own sendiri), sekarang sekitar 50μs. Jika itu adalah host FS, ia mengabaikan Chirp-K, dan melanjutkan sebagai FS.
Kemudian, jika tuan rumah mampu mode HS, ia mengalihkan drive-nya ke kabel D +, membentuk "Chirp-J", lagi untuk 50μs;
Host mengulangi pola 50μs bolak-balik ini untuk seluruh durasi status USB_RESET (10 ms pada port hub, 50 ms pada port hub root);
Setelah tiga chirp-K / J bergantian, perangkat akan mengenali bahwa host adalah HS, dan beralih ke mode HS itu sendiri. Ini berarti menyalakan terminasi HS pada ujung perangkat, yang membuat resistansi kawat total menjadi 22Ω, dan amplitudo sinyal kicauan turun hingga 400mV, ke level pensinyalan HS standar.
Host melanjutkan dengan paket HS bingkai awal (SOF), dan memulai proses enumerasi dalam mode HS.
Sekarang siapa pun dapat menebak bagian mana dari goyangan yang melanggar protokol ini, dan menjadikan host untuk menandai port sebagai FS.
sumber
FS
adalah "kecepatan penuh" (USB 1.0, 12 Mbit / s),HS
adalah "kecepatan tinggi" (USB 2.0, 480 Mbit / s) danSS
akan menjadi "Kecepatan Super" (USB 3.0, 5 Gbit / s).Saat Anda mencolokkan perangkat di port USB2, komputer pertama-tama mencoba untuk menegosiasikan koneksi menggunakan protokol data USB2.
Ketika itu gagal, ia mencoba lagi menggunakan protokol data USB1.
Dugaan terbaik saya adalah bahwa koneksi fisik (karena menggoyangkan kontak) belum stabil selama negosiasi USB2. Jadi jatuh kembali ke USB1, meskipun perangkatnya adalah perangkat USB2.
Cukup lucu Windows menyadari bahwa perangkat harus mampu kecepatan USB2 (informasi yang didapat dari driver) dan Windows menyimpulkan bahwa port USB yang Anda gunakan adalah port USB1 yang lambat. Windows sepertinya tidak memeriksa apakah port itu sendiri berkemampuan USB2.
Dan itulah mengapa Anda mendapatkan pesan kesalahan yang agak menyesatkan.
PS Baru saja mencobanya sendiri dengan mesin Windows 10: Efek yang sama di sana.
sumber
Bisa jadi Anda memasukkannya cukup lambat sehingga Windows telah menyelesaikan proses berjabat tangan dengan pengontrol dan bahwa pada saat itu kontak yang diperlukan untuk komunikasi USB 2.0 tidak menyentuh. Itu mungkin dapat menyebabkan Windows salah mengartikan perangkat USB 2.0 sebagai 1.1. perangkat karena tidak akan ada respons pada rel yang ditandai hanya ada pada USB 2.0 ke atas.
sumber