Bakır tel üzerinden veri iletim hızlarını anlama


11

Sensörleri bir Arduino'ya bağlamak için farklı yollar araştırıyorum ve i2c popüler bir yöntem gibi görünüyor. 400 veya 100kbps veri hızı ile sadece kısa mesafelerde (en fazla birkaç metre) güvenilir olduğunu okudum. Gigabit Ethernet gibi bakır üzerinden diğer veri iletimlerine kıyasla bu protokolün sınırlarının neden bu kadar düşük olduğunu anlamakta zorlanıyorum. Kapasitans, voltaj düşmesi ve direnç gibi nedenler gördüm, ancak cat5 / 6 üzerinden Ethernet tüm bu sorunlara maruz kalmıyor mu? Temel olarak, bazı bakır tellerden bir voltajı niçin atmanın, bu farklı metodolojileri karşılaştırırken neden daha tutarlı sonuçlar (bant genişliği, mesafe) vermediğini bilmek istiyorum.


Sıklıkla göz ardı edilen, belirtilen sınırlamalara sahip birçok ana protokol vardır. Ethernet, tekrarlayıcı olmadan sadece 30 ft için güvenilirdir. USB 10 metrenin altında. Bu, insanların sınırları zorlamadığı anlamına gelmez. Bunlar, verilerin ne kadar hızlı / güvenilir olması gerektiğine ve crc kontrolünün veri yükünü karşılayıp karşılayamayacağınıza bağlı olarak uygulama kararlarıdır.
mreff555

Sadece I2C'nin bu şekilde kullanılması amaçlanmamış olsa da, 100 metreden fazla kullanmanın kesinlikle mümkün olduğunu belirtmek isterim. (Ethernet ile aynı teorik maksimum mesafeye sahiptir). Bununla birlikte, ya çok düşük bir baudratınız olacak, VEYA çekme akımlarınız gülünç olacaktır.
Opifex

@Opifex Saçma hız!
DKNguyen

1
Bu bir cevap değil ve belki de bariz olduğunu söylüyorum, ancak I2C'deki (veya başka bir protokoldeki) sınırlar esasen tel malzemesi ve protokol nedeniyle. Sorunuzun en önemli yanı "X yöntemi bakırdan A'yı alırsa, Y ve Z de A'yı alamaz mı?" bu doğal olarak doğru değil.
dwizum

6
30ft ile mi demek istediniz: 328ft / 100m @ mreff555 Bu bükümlü çift ethernet için spesifikasyon, eski koaksiyel ethernet daha da uzundu (10base2 için 200m, 10base5 için 500m).
Mark Booth

Yanıtlar:


14

Shannon Teoremi, bir kablo üzerindeki en büyük bilgi bant genişliği sınırını belirler. İşte bunun hakkında daha fazla bilgi: https://www.gaussianwaves.com/2008/04/channel-capacity/

tl; dr sürümü: Shannon-Hartley Denklemi:

  • C=BlÖg2(1+SN-)(1)

B Hz, S cinsinden bant genişliği olduğu yerlerdeSN- , sinyal-gürültü oranıdır.

I2C açıkçası bir kablo için Shannon sınırına yakın bir yerde değil. Bunun yerine, mütevazı G / Ç ve kontrol gereksinimlerine sahip küçük cihazlardan oluşan bir ağ için uygulamayı kolaylaştırmak için açık toplayıcı veri yolu kullanan kasıtlı olarak yavaş zamanlamaya (100/400 kbit / s) sahip hafif bir protokoldür. I2C tarafından belirtilen yavaş çalışma çoğu sinyal bütünlüğü sorununu önler.

1 Mbit ve 3.2 Mbit / s hızları kullanan daha hızlı I2C varyantları vardır. Bunlar, normal I2C'ye göre yerleşim ve sonlandırmaya daha fazla dikkat gerektirir ve elbette daha sıkı ve daha zorlu bir zamanlamaya sahiptir.

Gıda zincirini Shannon-Wise olarak yükselten Gbit Ethernet, iş hacmine ulaşmak için birçok teknik kullanır:

  • Diferansiyel sinyalleme
  • Birden çok çift (4)
  • PAM-5 adı verilen çok seviyeli sinyalizasyon
  • Preemphasis / Deemphasis
  • Uyarlamalı Eşitleme

Bu teknikler, kabloyla konuşmak için hızlı, büyük karışık sinyalli bir ADC / DAC bloğu ve onu yönetmek için oldukça ağır sinyal işleme de dahil olmak üzere çok fazla silikon alır. Buna, daha karmaşık bir yazılım yığını sürün. Bu, Ethernet'i düşük uçlu bir mikro denetleyici için bir yonga üstü blok olarak biraz yapar (bazıları bunun yerine harici bir PHY kullanmayı tercih eder). Ancak olgunluğu onu daha büyük Çip Üzerindeki Sistemlerin erişebileceği bir yere yerleştirir.

Zaten Shannon sınırına ne kadar yaklaşıyoruz? Daha fazla bilgi için: https://pdfs.semanticscholar.org/482f/5afbf88a06d192f7cb052f543625c4b66290.pdf


Hah, vudu var: Ön vurgu ve vurgu. Böylece ethernet sadece kare darbeler ya da hatta sinüs dalgaları göndermez ve hedefe ulaştığında çok fazla bozulmayacağına dua eder. Bir analog dalga şekli şekillendiriyor ve çizgiyi aşağıya gönderiyor.
DKNguyen

3
@DKNguyen 100 megabit veya daha hızlı Ethernet için gerçek voodoo alıcıda. Uyarlamalı eşitleme algoritmaları kullanılır, bu günlerde genellikle dijital olarak uygulanır; alınan sinyal bir ADC ve ardından bazı DSP donanımları (hepsi $ 0.50 PHY cihazınızın içinde) besler. Daha yeni bir yüksek hızlı protokoldeki teknoloji yine büyük ölçüde daha sofistike.
scary_jeff

Uyarlanabilir eşgörünüm için Thx @scary_jeff. hatırlatma. Cevabıma ekledi.
hacktastical

6

İletim için sadece bakır kablodan daha fazlası var. Ethernet'in arkasındaki donanımı gördünüz mü? Muhtemelen hayır, çünkü bağırsaklar her zaman bir IC'de gizlendiğinden, olup bitenler için herhangi bir taban seviyesi devre bulmak son derece zordur. Şimdiye kadar bulduğum en yakın, görünüşe göre isteğe bağlı olmayan ethernet için gerekli manyetikler. Bu, ethernet donanımıyla fiziksel olarak neler olup bittiğine dair bir ipucu.

Bunu şu şekilde düşünün: Hava bir ortamdır. Neden köpekler birbirleriyle konuştuğunda aktarılabilecek bilgi türü, insanlar birbirleriyle konuştuğundan daha azdır? Havadan bazı basınç dalgaları göndermek neden bu iki hayvan türü arasındaki iletişimde daha tutarlı sonuçlar vermiyor?

I2C (ve diğer birçok protokol) için sınırlayıcı faktörlerden bazıları şunlardır:

  1. açık kollektör
  2. empedans uyumu yok
  3. dengeli iletim yok
  4. hata kontrolü yok
  5. basit kodlama şeması
  6. nispeten yüksek voltaj seviyeleri (voltaj adımınızın büyük olması gerekmiyorsa, dV / dT'nizin daha yüksek hızlar için yüksek olması gerekmediğinden daha hızlı iletebilirsiniz)
  7. izolasyon yok
  8. tek kutuplu voltajlar (muhtemelen bir şekilde yardımcı olan +/- 2,5V'de ethernet iletir)
  9. Slave'in aktarımı master tarafından saatlenir, bu yüzden temelde saatin veri sinyalinden daha hızlı bir gidiş dönüş yapması gerekir

Bunların hepsi işleri basitleştirmek için iyidir. Yüksek veri hızları veya uzun mesafeli iletim için çok iyi değil.

Muhtemelen bilmediğim donanımda başka voodoolar da var.


6

Birkaç basit kural: Zemin diye bir şey yoktur. Tüm teller antenlerdir. Tüm teller iletim hatlarıdır. Her zaman gürültü vardır.

Bir tel, sinyal yükselme süresine kıyasla kısasa, iletim hattı empedans uyumsuzluklarını ve yansımalarını (karmaşık sonlandırmalar ve darbe şekillendirme gerektiren Ethernet'ten farklı olarak) göz ardı edersiniz. Tel uzunsa, tel ve toprak diferansiyellerindeki indüklenen voltajların uzak uçtaki dijital sinyal seviyelerinizi belirsiz veya yanlış hale getirme olasılığı daha yüksektir. Ancak Ethernet, oluşan gürültü ve toprak referans problemlerini büyük ölçüde azaltarak bükümlü çift diferansiyel sinyal kullanır. Ethernet alıcısı, tipik dijital girişlerden ziyade daha hassas analog girişler kullanır, böylece daha fazla hat kaybına izin verir. Gürültü istatistiklerinin üstesinden gelmek için bu Ethernet kodlamasını ve hata düzeltmesini ekleyin ve daha güvenilir ve daha hızlı gidebilirsiniz.


5

I2C açık bir drenaj barasıdır, aktif olarak düşük çekilir, ancak yukarı çekme (en azından normal 100kHz, 400kHz varyantları için) pasif dirençlerdir.

Bu nedenle, çekme dirençlerinin otobüs kapasitansını ne kadar hızlı şarj edebileceğine bağlı olarak şeyin ne kadar hızlı çalışabileceğine dair bir sınır vardır, bazen çekme değerlerini düşürerek biraz daha hız alabilirsiniz, ancak bu, düğümlerin batması gerektiği anlamına gelir. daha düşük bir mantık elde etmek için daha akım .... Veya başka bir şekilde gidebilir, daha düşük güç kaybı için daha yüksek değer çekme dirençleri kullanımına izin vermek için veri yolunu yavaşlatabilirsiniz (bkz. örneğin PM veri yolu).

Bir kapsamı ateşlemek ve I2C'deki düşen kenarın yükselen olandan çok daha keskin olduğunu not etmek öğreticidir.

Amaçlanan kullanım için, temel olarak sıcaklık sensörleri ve tek bir karttaki (veya en fazla tek bir kasadaki) küçük yapılandırma cihazları, uygulama karmaşıklığı, düşük pim sayısı ve basit donanım arasındaki tatlı noktayı hemen hemen vurur. Tasarım amacı "Hızlı, uzun mesafe veri bağlantıları" değildi ve SPI ile başa çıkmak için genellikle daha kolay olduğunu düşündüğüm her şey için, I2C amaçlanan kullanım durumuna gerçekten çok iyi uyuyor.

Mesafeler arttığında, başka bir şey daha iyi bir uyum sağlar, ancak mütevazı eeprom / sıcaklık / cihaz konfigürasyon arayüzlerine sahip bir kartta makul derecede iyi sonuç verir (PHY yönetim arayüzünün I2C gibi LOT gibi göründüğüne dikkat edin).


2

Farklı sonuçlar, sürücü devresinin her teknoloji için farklı olmasıdır.

100kHz I2C tipik olarak sinyali yüksek bir düzeye getirmek için bir çekme direnci ve sinyali düşük bir düzeye getirmek için açık tahliye sürücüleri kullanır.

Çekme dirençleri tipik olarak birkaç kilo-ohm'dur. Bir kablo ne kadar uzun olursa, o kadar fazla kapasiteye sahip olur. Çizginin 0'dan 1'e geçmesi için geçen süre, hattaki toplam kapasitans ve çekme direnci değeri ile orantılı olacaktır. Yaklaşık T = 2 * R * C aralığında bir yerde yaklaşık doğru olur.

Örneğin, ayak başına 20pF kapasitansa sahip 10 ayaklı bir kablonuz varsa ve 10K çekme direnci kullandıysanız, düşükten yükseğe doğru geçiş yapmak için T = 2 * 20pF / ft * 10 ft * 10K = 3.6us gerekir.

Bu durumda, 3.6us'tan daha geniş bir sıfır biti takip eden tek bir bitiniz olamazdı, bu nedenle iletim hızınız 277kHz ile sınırlı olacaktır.

Gerçek bir I2C sisteminde I2C spesifikasyonu ayrıca veri ve saat geçişleri etrafında kurulum ve bekleme sürelerini zorunlu kılar. O zamanlar yüzlerce nanosaniye veya mikrosaniye. Zamanlama, cihazların ucuz bir şekilde (peni) uygulanabilmesi ve çok az güç (miliwatt) tüketebilmesi için çok yavaş yapıldı.

Diğer yandan Ethernet, kablo kapasitansına rağmen daha hızlı çalışabilir çünkü bir çekme direnci kullanmaz. Kabloya yüksek veya düşük aktif olarak gider. Sürücü düşük empedanslıdır ve herhangi bir hat kapasitansını çok hızlı bir şekilde şarj edebilir. Tabii ki her şeyin bir bedeli var. Ethernet genellikle yüzlerce mW güç tüketir ve uygulanması için port başına en az birkaç dolar maliyeti vardır.

I2C'ye benzer bir kurulum daha hızlı çalışabilir mi, elbette, 10K çekmeyi 100 ohm olarak değiştirin ve şimdi 10 ft kabloya yükselme süreniz 3,6us'tan 36ns'a düşer. Daha sonra muhtemelen 10MHz'de çok fazla sorun olmadan çalışabilirsiniz (normal I2C çiplerinin bu kadar hızlı konuşamaması dışında).

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.