Yanıtlar:
USB yarı çift yönlü olduğu için iletim hızı önemlidir: bir yanıt iletmek için veri yolu döndürülmeli ve veriler diğer yönde aktarılmalıdır. Böylece ev sahibi veri gönderir ve bir onay veya yanıt bekler. Tüm transferler ev sahibi tarafından kontrol edilir. Cihaz daha sonra yanıt vermek için belirli bir (oldukça kısa) süreye sahiptir. Bu süre kabaca 5 metrelik bir kablo boyunca iki sinyal açma süresidir.
(Şu an referans bulamıyorum, ancak ilgili spesifikasyonlar herkese açık)
Düzenleme: Bu bölümü bulmak için psmears sayesinde
Kablolar ve Uzun Mesafeli Çözümler
- Neden kablo uzunluğu sınırları var ve bunlar nedir?
C: Kablo uzunluğu, yansımaların bir sonraki bit gönderilmeden önce vericiye yerleşmesini sağlamak için 26ns kablo gecikme spesifikasyonu ile sınırlandırılmıştır. USB kaynak sonlandırma ve voltaj modu sürücüleri kullandığından, durum böyle olmalıdır, aksi takdirde yansımalar yığılıp sürücüyü patlatabilir. Bu, hat voltajının bitin sonuna kadar tamamen yerleştiği anlamına gelmez; en kötü durumun sonlanması ile. Bununla birlikte, bitin sonunda yansıma genliğinin yönetilebilir seviyelere düşürüldüğü kadar sönümleme olmuştur. İletim hattı etkilerinin düşük hız sinyallerini etkilemesini önlemek için düşük hızlı kablo uzunluğu 18ns ile sınırlandırılmıştır.
- 5 metreden daha uzun bir kablo yapmak istiyorum, neden çalışmıyor?
C: Spesifikasyonu ihlal etseniz bile, kelimenin tam anlamıyla sizi çok ileri götürmez. En kötü gecikme süreleri olduğu varsayıldığında, 5 hub'ın ve kabloların altındaki tam hızlı bir aygıt 280ps zaman aşımı marjına sahiptir. Bu marjı 0ps'ye düşürmek size sadece fazladan 5 cm verir, bu da zahmete değmez.
Bu yüzden cevabım sadece yarı sağda: gidiş dönüş limiti, en kötü durumdaki hub ve kablo zinciri için, toplam 25 m derinlik için.
Dan Neely USB her zaman daha fazla hız için tam dubleks isteseydim yazıcılar vb klavyeler, fareler gibi "yavaş" çevre birimleri için en düşük maliyetli bir çözüm olması gerekiyordu bu doğru da ve daha mesafe, 100baseT ethernet doğal bir seçimdir.
Bu sayfaya bakın, /superuser/64744/maximum-length-of-a-usb-cable .
S1: Cihazımı bağlamak için ne kadar kablo kullanabilirim? A1: Pratikte, USB özelliği tam hızlı aygıtlar arasındaki kablonun uzunluğunu 5 metreyle (16 fit 5 inç'in biraz altında) sınırlar. Düşük hızlı bir cihaz için sınır 3 metredir (9 feet 10 inç).
S2: Neden 3 veya 5 m'den daha uzun bir kablo kullanamıyorum? A2: USB'nin elektrik tasarımı buna izin vermiyor. USB tasarlandığında, USB veri hatlarındaki elektromanyetik alanların yayılmasını, bir USB kablosunun maksimum uzunluğunu 4 metrelik bir aralıkla sınırlayacak şekilde yaymaya karar verildi. Bu yöntemin bir takım avantajları vardır ve USB bir masaüstü ortamı için tasarlandığından, aralık sınırlamalarının kabul edilebilir olduğu varsayılmıştır. İletim hattı teorisini biliyorsanız ve bu konuda daha fazla ayrıntı istiyorsanız, geliştiricilerle ilgili SSS'nin USB sinyalleri bölümüne göz atın.
En azından kelimenin olağan anlamında değil, USB "tamponlamak" mümkün değildir. Tipik olarak tamponlama, elektriksel amplifikasyon ve belki de sinyal rejenerasyonu anlamına gelir.
USB ile, ana bilgisayar veri yolunun tamamını kullanır. Bir ana bilgisayar bir istek gönderir ve aygıtın ana bilgisayara bir yanıt yayınlaması gerekir. Yanıtın başlangıcı, istek iletimi bittikten sonra belirli bir süre içinde ana bilgisayara ulaşmalıdır. Bir kablonun çok uzun olması durumunda, yayılma gecikmesi yanıtın ana bilgisayara zamanında ulaşması için çok uzundur.
Bu nedenle geçici çözümler var ve arabellekleme ek gecikmeler eklediğinden hiçbiri basit "arabelleğe alma" içermiyor ve ana bilgisayarı daha uzun bir gecikmeye daha toleranslı hale getirmemiz gerekiyor.
İki geçici çözüm sınıfı vardır:
Fiziksel veya sanal hub'lar ekleyen geçici çözümler. Bir ana bilgisayar veri yolunda bir hub numaralandırıyorsa, hub'ın kendisi fazladan bir gecikme ekler ve hub ile ana bilgisayar arasında potansiyel olarak tam uzunlukta başka bir kablo vardır. Hub'dan aşağı akış takan cihazlara yönelik talepler ek gecikmelerle planlanır.
Kablonun her 4 metninde, seri olarak 7 hub'a kadar tek bağlantı noktalı bir hub takabilirsiniz. Sınırlama, ana bilgisayardan nihai cihaza 7 seviye göbeğidir, bu nedenle, kontrolünüzün önünde herhangi bir göbek varsa, göbek sayısını buna göre azaltmanız gerekir. Birçok USB ana bilgisayar, tek seviyeli bir dahili hub içerir, bu nedenle gerçekçi bir sınır, seri olarak 6 hub ile 28 m kablo olacaktır. İlki hariç tüm hub'lar kendi kendine çalışan gibi davranmak zorunda kalacaklar.
Doğrudan ana bilgisayara giden fişe, preemfizi ile daha beefier bir alıcı-verici ile sanal hub'lar ekleyebilir, daha sonra USB trafiğini daha uzun bir kablo üzerinden iletebilirsiniz. Böyle bir uzatılmış kablonun sonunda cihaz tarafından alınan sinyaller spesifikasyon dahilinde olduğu sürece ve alıcınız standart cihaz tarafından gönderilen verileri uzun bir kablo üzerinden kurtarabildiği sürece, sorun olmaz. Sanal hub'lar, ana bilgisayarın uzun gecikmeye izin verecek şekilde eklenir - ancak elbette fiziksel hub'lar yoktur, sadece bunların kimliğine bürünülür.
Daha yüksek bir protokol düzeyinde "yavaş" görünen bir aygıtı taklit eden geçici çözümler. Bazı Cat-5 USB “genişleticileri” bu şekilde çalışır. Burada beş ortak var: gerçek ana bilgisayar (rHost), gördüğü taklit bir aygıt (eDev), uzun bir kablo, taklit bir ana bilgisayar (eHost) ve kablonun uzak ucunda gören aygıtlar (rDev) .
Başlangıçta eDev orada değilmiş gibi davranıyor. Bir zamanlar eHost bir rDev'in takılı olduğunu görür. Onu numaralandırır ve verileri eDev'e iletir. EDev daha sonra bir plug-in olayı öykünür ve rHost bunu numaralandırır. RHost, rDev'i gördüğüne inanıyor, ama sadece eDev oradaymış gibi davranıyor. Benzer şekilde, rDev bunun bir rHost gördüğünü düşünüyor, ama bu sadece bir eHost varmış gibi davranıyor.
Sonunda, rHost, orada olduğunu düşündüğü rDev'e bazı transferler yapmak istiyor. IN aktarımları için eDev'de veri yokmuş gibi davranır (bir NAK ile yanıtlar). Aktarım isteği, rDev ile yeniden çalıştırılan eHost'a iletilir. Bunun sonuçları, ev sahibinin bir sonraki aktarma girişiminde bulunduğunda sonuçları kullanan eDev'e iletilir.
OUT transferleri için eDev, rDev'in davranışının ne olacağını tahmin etmelidir. Burada denenebilecek çeşitli buluşsal yöntemler ve davranışlar vardır. Bunun bir yolu, eDev'in daima verileri alması ve bir ACK ile yanıt vermesidir. Aktarım eHost'a yönlendirilir ve aktarım rDev'e tekrar aktarılır. İdeal olarak, rDev sonunda veriyi tüketir ve ACK yapar. Bu başarılı olmazsa veya rDev bir STALL ile yanıt verirse, eDev'in yapabileceği en iyi şey ana bilgisayardan bir sonraki aktarımda bu şekilde davranmaktır. Alternatif olarak, eDev her zaman aktarımı NAK yapabilir, genellikle konağın aynı aktarımı daha sonra tekrar deneyeceğini varsayar. Orijinal aktarım NAK-ed olmasına rağmen, aktarımı rDev ile yürüten eHost'a iletilir. RDev'in yanıtı ne olursa olsun, eDev'in öğrenir öğrenmez yanıtı olur.
Gerçekçi uygulamalar, bir NAK tarafından ertelenebilecek tüm transferler için rDev'e tam gidiş dönüş içeren muhafazakar buluşsal yöntemlerle başlayacaktır. Aktarımlar ilerledikçe, rDev'in beklenen davranışı öğrenilebilir ve eDev daha az muhafazakar hale gelebilir. "Genişletici", daha iyi performans sunmak için standart USB sınıflarının bilgisini ve satıcıya özgü bazı sınıf / cihaz bilgisini / kara listelerini / beyaz listelerini de kullanabilir.
Çoğu kablo üzerinden veri iletimi şeması, kablonun "karakteristik empedansı" (bunu direnç olarak düşünün, ancak AC için geçerlidir) için bir spesifikasyon da dahil olmak üzere, bunların nasıl uygulanacağını açıklayan iyi bir uluslararası kabul görmüş standarda sahiptir, sonlandırma empedansı ( bağlantının sonunda, sinyalin kabloyu gönderene doğru geri sıçramasını önlemek için gerekli olan 'direnç', genellikle belirli bir 'dönüş hızı' (sinyallerin bir kanaldan geçişi için geçen süre) 0-durumundan 1-durumuna veya tam tersi) ve dolayısıyla saniyede 0/1 (yani kbps / Mbps / Gbps) arasındaki maksimum geçiş sayısı ve dolayısıyla kablonun sinyal bütünlüğü bozulmadan ne kadar süre geçebileceğini & şeyler düzgün çalışmıyor.
USB ile karşılaştırıldığında, RS232 kablo tipi, karakteristik empedans, dönüş hızı, kablo uzunluğu, konektör tipi ile ilgili tüm özelliklere sahiptir. Elbette, 25 pimli ve 9 pimli 'D' konektörler yaygındı, ancak gerçekte RS232, başka türlü söylenecek gerçek bir spesifikasyona sahip olmayan her türlü konnektör ve kablo ve ürüne tasarlandı. Pratikte, RS232 ile genellikle saniyede daha düşük bir bit (aka 'baud') hızına düşerek daha uzun mesafelere gidebilirsiniz. Ulaşabileceğiniz maksimum mesafe, korumalı olsun olmasın, kablonun empedansı, sonunda sonlandırma vb.
ve RS232'yi USB ile karşılaştırırken, 1960'lardan 115k2'de (nadir istisnalar hariç) büyük bir 'standart' ile karşılaştırıyorsunuz, 1990'lar ve 2000'lerden 1,5Mbps'de başlayan , sonra 12Mbps (yaklaşık 100x daha hızlı), daha sonra 480Mbps (yaklaşık 5000x daha hızlı), ancak bu, kablo parametrelerinin ve kablo uzunluğunun güvenilir bir şekilde çalışmasında önemli bir rol oynadığı anlamına geliyordu . Bir masaüstü çevresel bağlantı standardı olarak tasarlandı, bu yüzden 5m kabul edilebilir olarak kabul edildi ve daha sonra kablolar, konektörler ve hızların tüm parametreleri o noktadan belirlendi. USB'yi yavaşlatmanın bir yolu varsa, muhtemelen daha uzun kablolarda (tekrarlayıcı olmadan) çalışmasını sağlayabilirsiniz.