Bir USB kablosunda, D + ve D-kablolarını değiştirmek doğru mudur?


54

D + ve D- nin farklı sinyaller olduğunu duydum, bir USB cihazını bilgisayara bağlarken bunları değiştirmem önemli mi?


İlginç Soru ... Tüm Geçerli Diferansiyel Protokoller için Geçerli .. CAN gibi!
Swanand

Yanıtlar:


58

özet

Boş duruma girerken ve çıkarken, polarite önemlidir ve D + ve D-çizgilerini değiştirmek sorunlara neden olur.

Veri iletimi

USB verileri NRZ kodludur, öyle ki "Bir" fiziksel seviyedeki bir değişiklik ile gösterilmez ve "Sıfır" fiziksel seviyedeki bir değişiklik ile temsil edilir (aşağıdaki şekle bakınız). Bu nedenle sinyalin tersine çevrilmesi (örneğin, D + ve D- 'nin değiştirilmesiyle) veri iletimi sırasında işlevsel bir değişiklik yapmaz. Ancak, veri iletiminden önce ve sonra cihazla iletişimi kesebilecek sorunlar olabilir.

Boşta Durumdan Çıkma

Ana bilgisayar, her veri hattında 15 kΩ dirençli direnç içerir. Hiçbir cihaz bağlı değilken, bu her iki veri hattını da "tek uçlu sıfır" durumuna (USB belgelerinde SE0) çeker ve sıfırlama veya bağlantısız bağlantıyı gösterir. Bir USB cihazı, 1,5 kΩ direnç ile veri hatlarından birini çeker. Bu, ana bilgisayardaki aşağı çekme dirençlerinden birini güçlendirir ve veri hatlarını "J" adı verilen boşta bir durumda bırakır. USB 1.x için veri hattı seçimi, cihazın hangi sinyal hızlarında olduğunu gösterir; tam bant genişlikli cihazlar D + yüksek çekerken, düşük bant genişlikli cihazlar D− yüksek çekiyor.

Veriler NRZI kodluyken, senkronizasyon dizisi ve EoP sabit durumlar (J / K / SE0) cinsinden tanımlanır. D + ve D- değiştirildiğinde, J durumu K ile değiştirilir ve SE0 hala SE0'dir (her iki hat da düşük). Böylece senkronizasyon sırası ve EoP inversiyonda yanlış olur. USB 1.x'te, D + ve D- değiştirilirse, tam bant genişlikli cihazlar düşük bant genişliği ve bunun tersi olarak tanınır. Böylece cihaz, ana bilgisayar ile aynı hızda iletişim kurmayacaktır.

Boş Duruma Girme

EOP (paketin sonu) adı verilen bir USB paketinin ucu, vericinin 2 bit süren SE0 (D + ve D− maks. Bundan sonra, verici D + / D− çizgilerini sürmeyi durdurur ve yukarıda belirtilen yukarı çekme dirençleri onu J (boşta) durumda tutar.

D + / D-swapplı bir sürücüde, ana bilgisayar doğru (SE0, SE0, J) yerine sırayı (SE0, SE0, K) görecektir. Ana bilgisayar daha sonra sorunlara neden olabilecek paketin sonunu tanımakta başarısız olabilir.

görüntü tanımını buraya girin

Sonuç

Cihaz ve ana bilgisayar kesinlikle USB spesifikasyonlarına uyuyorsa, D + ve D-pinlerini değiştirmek arızaya neden olur. Ev sahibinin tasarımcısının böyle bir arıza modu öngördüğü ve onun için uygunluğa sahip olduğu düşünülebilir. Ancak bu şekilde değiştirilmiş bir kablonun pratikte işlevsel olup olmayacağı, kesinlikle şartnamelere uygun olmayacaktır.

Başka bir üye, Andrew Kohlsmith, USB hub'ının pimleri yanlışlıkla değiştirildiğinde bunu yaşadı. Sorun kendini göstermeyen bağlı cihazlar olarak ortaya koydu. USB cihazı açık olduğunu ancak göbeğin akış yukarı tarafındaki bilgisayar tarafından (sunucuya doğru şekilde bağlanmış) hiç tanınmadığını gösterecekti.

Kaynak: wikipedia

Düzenleme: yorum yapanlara teşekkür ederiz. Yardımcı notlarınıza vurgu ve detaylar ekledim.


2
Konağın, hattın çekildiği düşük / tam hızı farklılaştırdığına dikkat edilmelidir. D + / D-hatlarını değiştirirseniz, cihaz ana bilgisayar ile aynı hızda iletişim kurmaz. Ayrıca, veriler NRZI ile kodlanmış olsalar da, senkronizasyon dizisi ve EoP, J / K / SE0 cinsinden tanımlanır ve inversiyonda yanlış olur.
avakar

2
D + / D'yi değiştirmenin işlevsel olmayan bir USB arabirimiyle sonuçlandığını deneyimle konuşabilirim. Üzerinde USB hub bulunan bazı prototipleri elden geçirmek zorunda kaldım. Çok eğlenceli değil.
akohlsmith

@avakar Ayrıntılar için teşekkürler. Sanırım cevap kısaca bunun çoğunu kapsıyordu, ancak daha açık olması için daha fazla ayrıntı eklemeye çalışacağım.
travisbartley

@Andrew Kohlsmith Bu yararlı bir bilgidir. Hatırlayabilirsen, sana birkaç sorum olacak. Cihaz veya göbek pimi değiştirdi mi? Hata nasıl ortaya çıktı? Cihazı bağladığınızda, hatalı çalıştığı algılanmadı mı ya da tanınmadı mı? Sorunu nasıl teşhis ettiniz? Herhangi bir detay yardımcı olacak, bilgilerinizi cevaba eklemeye çalışacağım.
travisbartley

2
@ trav1s Hub tarafındaki D + / D- değiştirdim. Sorun, cihazın ortaya çıkmaması olarak kendini gösterdi. USB anahtarının güç verildiğini ancak göbeğin akış yukarı tarafındaki (ana bilgisayara doğru bir şekilde bağlanan) bilgisayar tarafından tanınmadığını gösterir. Teşhis yazmaktan utanıyorum, bunun bir hub yapılandırma / yazılım sorunu olduğunu düşünerek çok zaman geçirdim. Sonunda telleri izledim ama en son yaptım çünkü USB'nin ethernet gibiydi ve pimleri otomatik olarak değiştirebildiğine ikna oldum. Ben hatalıydım. :-)
akohlsmith

1

Aygıtların yalnızca d + ve d- değiştirildiğinde, düşük hızda pazarlık yaptıklarını gördüm. Bu, tam hızlı (12 mbps) bir cihaz ve VIA yonga seti tabanlı bir port ile yapıldı.


2
Bu @ trav1s USB 1.x hakkında söylediklerini doğruladı.
Vaibhav Garg,
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.