USB kablosu maksimum uzunluğu neden RS232'den daha kısadır?


9

Kablo 5 metreden uzunsa neden USB sinyalini arabelleğe almamız gerekiyor?
Bunun nedeni bir sinyal voltajı düşmesidir?
Bu akımları sürdüğü için mi?


1
RS232

Yanıtlar:


16

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

  1. 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.

  1. 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.


şapka bir 20m USB kablosu yapar biridir. ne olurdu? voltajın değişmediğini ve hızın önemli olduğunu söylüyorsunuz. Peki 20m kablo kutusunda ne olur ve USB çalışmıyor?
user16307

2
Ana makine bir istek gönderir, zamanında yanıt alamaz ve diğer tarafta cihazı numaralandırmaz.
pjc50

4
Bundan emin misin? Başı olarak , USB spec sinyalin standart 5m kablosu / m den az 5,2 ns alır, böylece kablo boyunca sinyalin yayılma gecikmesi <26ns (Tablo 7-9), olmalıdır. Gidiş-dönüş gecikmesi için sınır yaklaşık 1.5 μs'dir. Bu hızda sinyalin 100 metreden uzun bir kablo üzerinden dışarı çıkıp geri dönmesi için bolca zaman vardır. USB Uygulayıcıları Forumu 5 metrelik sınırlamanın farklı bir nedenini sunuyor.
psmears

USB 1.0-2.0'ın ilk günden beri tam dubleks yerine yarı dubleks olmasının bir nedeni var mı (USB 3.0 gibi)? Başka bir deyişle, yarıdan tam çift yönlü baskıya göre pratik avantajlar var mı?
tigrou

1
@tigrou daha geniş kapsamlı USB1, RS232 / PS2 / LPT / Oyun bağlantı noktalarını rekabet edebilecek kadar ucuz olması gerektiğinden, mümkün olan her yerde basit seçenekleri kucakladı. Silikon yıllar içinde çok daha ucuz hale geldi; ancak hedeflenen uygulamalar için 'yeterince iyi' olması için gereken minimum fiyattan daha yüksek bir fiyata sahip olmak USB2'nin FireWire'ı öldürmesine neden oldu; ve Thunderbolt gittikçe ölü doğuyor gibi görünüyor.
Dan Is Fiddling By Firelight

10

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.


1
hala sisli bilgi bir şey açıklamıyor
user16307

10
Size sisli olabilir, ancak bu formatın izin verdiği odada sinyal teorisini açıklamanın kolay bir yolu yoktur.
Wouter van Ooijen

5
Bu cevabın sınırlamaların var olmasının belirli nedenlerine işaret ettiğini düşünüyorum. Bir web araması yaparak bu alanları daha da keşfetmek oldukça kolaydır. Örneğin iletim hattı teorisi üzerine. Bu yüzden bu cevabı gönderdim.
Mattias Johansson

1
Nadiren aşağı indiririm, bu yüzden şimdi haklı göstermek zorunda hissediyorum. Wouter van Ooijen'in yorumunun aksine, bu cevabın "USB kablo uzunluğu sınırlaması" nı aramak için olası bir öneriden daha somut bir şey sağladığını düşünmüyorum. Ayrıca, atıfta bulunduğunuz cevap ölü bir bağlantı içerir ve bu nedenle daha fazla okuma önerisi o kadar da yararlı değildir. Doğru orijinal kaynağı bulmuş ve bundan alıntı yapmış olsaydınız, psmears ve pjc50'nin yaptığı gibi, bu farklı bir mesele olurdu - çünkü bu aslında bu sınırlamanın neden var olduğuna dair ayrıntılar sağlar.
Oleksandr R.

5

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:

  1. 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.

    1. 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.

    2. 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.

  2. 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.


Alternatif hub'lar otobüsle çalışıyormuş gibi davranamaz mı? Otobüsle çalışan bir hub'ın kendi kendini besleyen bir hub'a güç sağlayabileceğini düşünüyorum, değil mi?
supercat

Otobüsle çalışan bir şey yok - bir ACK'ye yanıt olarak toplam gecikme.
pjc50

@supercat Evet, alternatif taklit merkezler olabilir. Rol yapma aygıt ağacı, ana bilgisayara uyumlu göründüğü sürece, bunu nasıl yaptığınız önemli değildir.
Monica'yı

@ pjc50 USB spesifikasyonuna göre maksimum ACK gecikmesi yaklaşık 400ns'dir. Zaman sinyali her iki yönde 40 metre bakır yol alabilir. Burada sınırlayıcı bir faktör değil.
ZAB


2

Ç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.


2
RS232 115K'da "devrilmiş" olabilir, ancak bir teleprinter ile modem arasındaki saniyede 110 veya 300 bit bağlantı olduğunu hatırlıyorum . Sinyaller dengesizdi, voltaj -12V'den + 12V'a sallandı ve bükülü çift veya sonlandırma veya ekranlama yoktu. Bu hızda ve bu kadar kısa mesafelerde, telin özellikleri hiçbir şey ifade etmiyordu. Daha sonra, insanlar yüzlerce metreden daha yüksek hızlarda göndermek istediğinde, RS422 ve RS485'i aldık, bu da iletim hattı hakkında çok daha fazla şey söyledi.
Solomon Slow
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.