Dalam kabel USB, apakah boleh menukar D + dan kabel D?


54

Saya mendengar bahwa D + dan D- adalah sinyal diferensial, apakah penting jika saya menukar mereka ketika menghubungkan perangkat USB ke komputer?


Pertanyaan Menarik ... Berlaku untuk Semua Protokol Diferensial yang Valid .. seperti BISA!
Swanand

Jawaban:


58

Ringkasan

Saat memasuki dan keluar dari kondisi idle, polaritas penting dan menukar D + dan D-line akan menyebabkan masalah.

Transmisi data

Data USB diberi kode NRZ sedemikian rupa sehingga "Satu" diwakili oleh tidak ada perubahan tingkat fisik, dan "Nol" diwakili oleh perubahan tingkat fisik (lihat gambar di bawah). Oleh karena itu, membalikkan sinyal (misalnya, dengan menukar D + dan D-) tidak menghasilkan perubahan fungsional selama transmisi data. Tetapi mungkin ada masalah sebelum dan sesudah pengiriman data yang dapat mematikan komunikasi dengan perangkat.

Keluar dari Status Idle

Tuan rumah mencakup resistor pull-down 15 kΩ pada setiap jalur data. Ketika tidak ada perangkat yang terhubung, ini menarik kedua jalur data rendah ke dalam apa yang disebut "nol ujung tunggal" (SE0 dalam dokumentasi USB), dan menunjukkan koneksi reset atau terputus. Perangkat USB menarik salah satu jalur data yang tinggi dengan resistor 1,5 kΩ. Ini mengalahkan salah satu resistor pull-down di host dan meninggalkan garis data dalam keadaan siaga yang disebut "J". Untuk USB 1.x, pilihan jalur data menunjukkan kecepatan sinyal apa yang mampu dilakukan perangkat; perangkat bandwidth penuh menarik D + tinggi, sedangkan perangkat bandwidth rendah menarik D− tinggi.

Sementara data dikodekan NRZI, urutan sinkronisasi dan EoP didefinisikan dalam hal kondisi tetap (J / K / SE0). Ketika D + dan D- diaktifkan, keadaan J diaktifkan dengan K dan SE0 masih SE0 (kedua garis rendah). Jadi urutan sinkronisasi dan EoP akan menjadi salah pada inversi. Di USB 1.x, jika D + dan D- bertukar, perangkat bandwidth penuh dikenali sebagai bandwidth rendah dan sebaliknya. Jadi perangkat bahkan tidak akan berkomunikasi dengan kecepatan yang sama dengan tuan rumah.

Memasuki Status Idle

Akhir paket USB, disebut EOP (end-of-packet), ditunjukkan oleh pemancar yang mengemudikan 2 bit kali SE0 (D + dan D− keduanya di bawah maks) dan 1 bit waktu keadaan J. Setelah ini, pemancar berhenti menggerakkan garis D + / D− dan resistor penarik yang disebutkan di atas menahannya dalam status J (idle).

Dengan driver bertukar D + / D, host akan melihat urutan (SE0, SE0, K) dan bukannya yang benar (SE0, SE0, J). Tuan rumah kemudian mungkin gagal mengenali akhir paket, yang akan menyebabkan masalah.

masukkan deskripsi gambar di sini

Kesimpulan

Jika perangkat dan host mematuhi spesifikasi USB secara ketat, menukar D + dan D-pin akan menyebabkan kegagalan. Bisa dibayangkan bahwa perancang host meramalkan mode kegagalan seperti itu, dan dibangun dalam kompatibilitas untuk itu. Tetapi apakah kabel yang ditukar itu akan berfungsi atau tidak dalam praktiknya, tentu saja kabel itu tidak akan mematuhi spesifikasi.

Anggota lain, Andrew Kohlsmith, mengalami ini ketika pin dari hub USB secara tidak sengaja ditukar. Masalahnya memanifestasikan dirinya sebagai perangkat yang terhubung tidak muncul. Perangkat USB akan menunjukkan itu bertenaga tetapi tidak dikenali sama sekali oleh komputer di sisi hulu hub (yang ditransfer dengan benar ke host).

Sumber: wikipedia

Sunting: terima kasih kepada mereka yang berkomentar. Saya menambahkan penekanan dan detail dari catatan bermanfaat Anda.


2
Perlu dicatat bahwa tuan rumah membedakan kecepatan rendah / penuh dengan garis yang ditarik. Jika Anda menukar saluran D + / D, perangkat bahkan tidak akan berkomunikasi dengan kecepatan yang sama dengan tuan rumah. Selain itu, sementara data dikodekan NRZI, urutan sinkronisasi dan EoP didefinisikan dalam istilah J / K / SE0 dan akan menjadi tidak benar pada inversi.
avakar

2
Saya dapat berbicara dari pengalaman bahwa bertukar D + / D- menghasilkan antarmuka USB yang tidak berfungsi. Saya harus mengerjakan ulang beberapa prototipe yang memiliki hub USB. Tidak terlalu menyenangkan.
akohlsmith

@avakar Terima kasih atas perinciannya. Saya pikir jawabannya mencakup sebagian besar dari itu, tetapi saya akan mencoba untuk menambahkan lebih detail sehingga lebih jelas.
travisbartley

@Andrew Kohlsmith Ini adalah informasi yang berguna. Jika Anda ingat, saya punya beberapa pertanyaan untuk Anda. Apakah perangkat atau hub memiliki pin swap? Bagaimana kesalahan itu terwujud? Ketika Anda menghubungkan perangkat, apakah itu tidak dikenali atau dikenali sebagai tidak berfungsi? Bagaimana Anda mendiagnosis masalahnya? Setiap detail akan membantu, saya akan mencoba menambahkan informasi Anda ke jawabannya.
travisbartley

2
@ trav1s Saya telah menukar D + / D- di sisi hub. Masalahnya memanifestasikan dirinya sebagai perangkat tidak muncul. Kunci USB akan menunjukkan itu bertenaga tetapi tidak dikenali sama sekali oleh komputer di sisi hulu hub (yang ditransfer dengan benar ke host). Diagnosis Saya malu untuk menulis tentang, saya menghabiskan banyak waktu berpikir itu adalah masalah konfigurasi hub / perangkat lunak. Pada akhirnya saya melacak kabel tetapi saya melakukannya terakhir karena saya yakin USB seperti ethernet dan bisa menukar pin secara otomatis. Saya salah. :-)
akohlsmith

1

Saya telah melihat perangkat bernegosiasi sebagai kecepatan rendah hanya ketika d + dan d- ditukar. Ini dengan perangkat kecepatan penuh (12mbps) dan port berbasis chipset VIA.


2
Itu menguatkan apa yang dikatakan @ trav1s tentang USB 1.x.
Vaibhav Garg
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.