USB 2.0 çarpışmaları nasıl önledi?


33

USB 3.0 prizlerinin pinlerine baktığımda, ayrı iletim ve alım çiftleri olduğunu görebiliyorum, ancak USB 2.0 için yalnızca bir "veri" pin çifti var. USB 2.0, aygıtların aynı anda iletişim kurmamasını nasıl sağlar?


2
CSMA / CD gibi şeylere bakmak da ilginizi çekebilir, bu diğer durumlarda nasıl çözülür
PlasmaHH

1
Ayrı iletim / alım çiftleri tüm çatışmaları çözmez. Bir pendrive'ınız ve bir modeminiz olduğunu hayal edin, her ikisi de ana bilgisayara bir miktar veri göndermek ister, bu yüzden ikisi de iletime başlar. Nerede? Aynı çifti: ev sahibi alma. Çatışma hala orada. Bu USB'nin nasıl çalıştığı değil, ancak tam olarak 10/100 Ethernet'in nasıl çalıştığıdır: her yöne kendi çiftleri vardır ancak göbek üzerindeki "çarpışma" ışığı yanıp sönmeye devam eder.
Ajan_L

Yanıtlar:


67

USB kesinlikle master-slave. Ana makine iletmesini söylemedikçe cihaz iletmez.

"Kesinti" olarak adlandırılan mod bile gerçekten sorgulayıcıdır: örneğin, her 8 milisaniyede bir (veya bir oyun fareniz varsa daha az), PC fareye "konumunuzun ne olduğunu" sorar ve fare yanıt verir.

Örneğin, bir USB seri arayüzünüz varsa. Arabirim seri hattan veri aldığında, PC'ye iletmez. Bunun yerine, bilgisayarın işlemi başlatmasını ve verileri istemesini bekleyecektir.

Bu web sayfasının , değiştirilen paketler hakkında iyi bir açıklaması var. Temel olarak, USB'nin mümkün olan en basit ve en ucuz çevre aygıtının çalışmasına izin vermek için uygulandığını unutmayın; bu, zekanın çoğunun ana bilgisayar, ana bilgisayar usb denetleyicisi, işletim sistemi ve sürücülerinde olduğu anlamına gelir. Bu spec okurken çok belirgindir.

Firewire (örneğin) tamamen farklı bir felsefeye sahiptir, çok daha güçlüdür, çoklu ana sistemdir, böylece cihazlar bir ana bilgisayar / ana sistemden yardım almadan birbirleriyle konuşabilir. Aslında felsefesinde USB'den ziyade üst üste bindirilmiş sabit senkronize transferli token ring gibi bir şeye daha yakındır. Ancak "multi master", karmaşık bir yazılım yığını çalıştıran cihazlarda güçlü bir mikrodenetleyici gerektirdiği anlamına gelir. Bu nedenle daha pahalıdır ve bu nedenle kameralar ve hızlı sabit disk muhafazaları gibi pahalı ürünlerle sınırlıdır. Bir firewire faresi bir anlam ifade etmiyor, çok pahalı olurdu. FireWire'ın başarısız olmasının sebeplerinden biri de bu.


3
Mükemmel açıklama ve FireWire ile çok uygun bir karşılaştırma (ve evet, hadi gerçekçi bir şekilde, bir otobüste en fazla 5 cihaz için bir token-tabanlı arbiting ağı oluşturalım).
Marcus Müller,

3
Bu iyi bir cevap, ama numaralandırmadan bahsetseniz daha eksiksiz olacağını düşünüyorum. Hangi aygıtların tahkim yeteneği olmayan dinamik bir ağa bağlandığını keşfetmek (örneğin, çok ana ağın sahip olacağı gibi) önemsiz bir sorundur ve birçok yönden USB'nin neden gerçek bir veri yolu topolojisi kullanamadığını tanımlar.
Jon,

Teşekkürler;) Yine de ana bilgisayardan numaralandırma ile ilgili kanlı detayları bilmiyorum. Ancak IMO'nun USB'nin gerçek nedeni, 1990'ların ortalarında tasarlanmış olmasıydı ve o zamanlar mikrodenetleyiciler bugün olduğundan daha pahalıydı ve ucuz cihazlara giden yol onları mümkün olduğunca az RAM ve kodla aptal yapmaktı. olabildiğince. Ayrıca, çok iyi çalışıyor, tatlı bir noktaya çarptı.
peufeu

5
Yanlış, USB bir veri yolu . Sadece daha bilinen "lineer" veri yolunun karşısındaki gibi farklı bir topolojiye (yıldız) sahiptir. Tüm USB 2.0 (HS) ana bilgisayar işlemleri yıldızın tüm bölümlerinde yayınlanır, bu nedenle "doğrusal" veriyolundan çok farklı değildir. Doğrusal veriyoluna benzer şekilde, tüm cihazlar veri yolu etkinliğini neredeyse aynı anda görür. Tek fark, cihaz yanıtlarının farklı dallarda oturan bazı diğer cihazlar tarafından görülmemesidir.
Ale..chenski

2
@rahuldottech o terbiyeli serin oluyor eğer çalışırsa , ancak FireWire özellikle WRT Tak ve içinde çok daha az güvenilir USB den oldu. Ve USB ile, ekstra bir hub kullanarak birçok sürücüyü tek bir porta kolayca bağlayabilirsiniz. Performansta bir tradeoff var, ancak güvenilirlik ve kolaylık artıyor.
leftaroundabout

18

USB çerçevesinde cihazlar aynı anda iletişim kuramazlar, çünkü yalnızca "USB ana bilgisayarı" konuşmalarına izin verdiğinde "konuşur". Ve USB host başka bir cihazın yalnızca ilk cihazla sıralı işlem protokolü tamamlandığında "konuşmasına" izin verir. Ve USB cihazlarının kendi başlarına "konuşmak" için hiçbir araçları yoktur, USB'de aktif bir kesme mekanizması yoktur. Kısaca, bu disiplinin uygulanma mekanizması aşağıdaki gibidir.

USB 2.0 aygıtları bağlandıktan sonra, ana bilgisayar bunları her aygıta benzersiz adresler atayarak numaralandırır.

Veri yolundaki her işlem USB ana bilgisayarı tarafından başlatılır.

Her USB işleminin başlığında belirli bir cihaz adresi bulunur. İşlemler tüm USB ağacı üzerinden yayınlandığında bile (belirli ana bilgisayar denetleyicisi örneğinde), yalnızca eşleşen adrese sahip cihaz işleme yanıt verir ve verileri alır ya da verilerle yanıt verir.

Daha sonra "ortaklar" bağlantısı, verileri başarıyla kimin aldığına dair bir onay gönderir. Tüm işlem, işlemin bütünlüğünü sağlamak için tanımlanmış belirteç sırası, zaman aşımı ve hata düzeltme kodları ile oluşturulmuş protokolü izler.

Diğer tüm cihazlar, yalnızca kendilerine yönelik olmayan trafiği dinliyor ve görmezden geliyor.

Bu konuda "yarı çift yönlü" arayüz.


1
USB protokolüne aşina değil, bu yüzden ev sahibi cevap verdiği doğru cihazı nasıl biliyor?
Derek,

@Derek 朕 會 功夫, host bunu biliyor çünkü cevap vermesi gereken tek cihaz bu, başka kimsenin cevap vermeyeceği. USB 2.0 işlemleri "atomiktir", ertelenmiş yanıtlar yoktur, her şey zaman aşımına dayanır. Hiçbir zamanında yanıt (tamamlanmayan işlem), yeniden denenmesine neden olmaz.
Ale ... chenski

Takip etmek için sorum şu ki, her cihaz aynı veri yoluna bağlı olduğundan, aynı zamanda başka bir cihaz gibi davranmamı engelleyen şey nedir?
Derek,

7
@Derek 朕 會 功夫: Hiçbir şey. Bu nedenle, alışılmadık pazarlardan edindiğiniz rastgele USB anahtarlarını takmazsınız. Onlara güvenemezsin.
Monica ile Hafiflik Yarışları

7
@Derek 朕 會 功夫, kötü niyetli niyet dışında, bir USB cihazının numaralandırma sırasında bir adresi kabul etmesi gerekir ve başka bir cihazın hepsi ana bilgisayar tarafından kontrol edilen farklı bir adresi olacaktır. Bu, birkaç bellek modülünün paralel bir veri yoluna bağlanmasından farklı değildir, ancak her modül yalnızca kod çözücü / yonga seçimine yanıt verir. Ve eğer iki USB cihazı yanlışlıkla cevap verirse (örneğin, adres ataması ile karıştırılan ana bilgisayar), veri yolu üzerinde bir çarpışma karışıklığı olacak ve hiçbir paket CRC'yi geçmeyecek (her USB tokenine eklenmiş) ve karşılık gelen bağlantı noktası büyük hatalar nedeniyle devre dışı bırakılabilir
Ale ... chenski
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.