Розуміння швидкості передачі даних по мідному дроту


11

Я досліджував різні способи підключення датчиків до Arduino, і i2c, здається, є популярним методом. Я читав, що він надійний лише на невеликих відстанях (максимум кілька метрів) зі швидкістю передачі даних 400 або 100 кбіт / с. Мені важко зрозуміти, чому обмеження цього протоколу такі низькі порівняно з іншими передачами даних по міді, як, наприклад, гігабітний Ethernet. Я бачив такі причини, як ємність, падіння напруги та опір, але чи не є Ethernet над cat5 / 6 тим же проблемам? В основному, я хочу знати, чому імпульс деякої напруги на мідному дроті не дає більш послідовних результатів (пропускна здатність, відстань) при порівнянні цих різних методологій.


Існує маса основних протоколів із заявленими обмеженнями, які часто ігноруються. Ethernet надійний лише 30 футів без ретранслятора. USB менше 10 футів. Це не означає, що люди не натискають межі. Це рішення щодо впровадження, що базуються на тому, наскільки швидко / надійно вам потрібні дані та чи можете ви дозволити собі дані накладні перевірки CRC.
mreff555

Я просто хочу зазначити, що незважаючи на те, що I2C не використовується таким чином, це, безумовно, повинно бути можливим використовувати його понад 100 м. (Він має таку ж теоретичну максимальну відстань, як і Ethernet). Однак у вас буде дуже низький боудрат, АБО ваші підтягуючі струми будуть смішними.
Opifex

@Opifex Смішна швидкість!
DKNguyen

1
Це не відповідь, і, можливо, я констатую очевидне, але обмеження в I2C (або будь-якому іншому протоколі) є по суті через провідний матеріал та протокол. Суть вашого запитання, здається, "якщо метод X отримає мені A над міддю, то чи не повинні Y і Z також отримати мене A?" що по суті не відповідає дійсності.
dwizum

6
Під 30 футами, ви маєте на увазі 328 футів / 100 м @ mreff555? Ось специфікація для крученої пари Ethernet, старша коаксіальна ефірна мережа була ще довшою (200 м для 10 баз2, 500 м для 10 баз5).
Марк Бут

Відповіді:


14

Теорема Шеннона встановлює граничну пропускну здатність інформації на кабелі. Ось додаткова інформація про це: https://www.gaussianwaves.com/2008/04/channel-capacity/

тл; версія: рівняння Шеннона-Хартлі:

  • С=Блог2(1+SN)(1)

Де Б - пропускна здатність у Гц, SN - відношення сигнал / шум.

I2C очевидно не знаходиться десь поблизу межі Шеннона для кабелю. Натомість це полегшений протокол із навмисно повільним тимчасовим часом (100/400 кбіт / с) з використанням шини відкритого колектора, щоб полегшити його реалізацію для мережі невеликих пристроїв зі скромними потребами вводу / виводу та управління. Повільна робота, визначена I2C, дозволяє уникнути більшості проблем з цілісністю сигналу.

Існують більш швидкі варіанти I2C, які використовують швидкість 1 Мбіт і 3,2 Мбіт / с. Вони вимагають більшої уваги до планування та завершення, ніж звичайний I2C, і, звичайно, мають більш жорсткі, більш вимогливі терміни.

Просуваючись по ланцюгу харчових продуктів Шеннон, Gbit Ethernet використовує декілька методів для досягнення своєї пропускної спроможності:

  • Диференціальна сигналізація
  • Кілька пар (4)
  • Багаторівнева сигналізація, яка називається PAM-5
  • Преемфаз / деемфаз
  • Адаптивна вирівнювання

Ці методи займають багато кремнію, включаючи швидкий, великий блок змінного сигналу АЦП / ЦАП для розмови з кабелем та деяку досить важку обробку сигналу для управління ним. Додайте до цього набагато складніший стек програмного забезпечення для його керування. Це робить Ethernet як мікросхему на мікросхемах низького класу (деякі з них замість цього використовують зовнішній PHY). Однак його зрілість залишає його в межах досяжності великих систем «на чіпі».

Наскільки близько ми наближаємось до межі Шеннона? Детальніше тут: https://pdfs.semanticscholar.org/482f/5afbf88a06d192f7cb052f543625c4b66290.pdf


Га, ось вуду: попередній наголос і де-наголос. Таким чином, Ethernet не просто посилає квадратні імпульси або навіть синусоїди вниз по лінії і молиться, щоб він не надто спотворився до моменту досягнення пункту призначення. Це формує аналогову форму хвилі і надсилає її по лінії.
DKNguyen

3
@DKNguyen Справжній вуду на 100 мегабіт або швидший Ethernet знаходиться в приймачі. Використовуються алгоритми адаптивного вирівнювання, які часто реалізуються цифровим шляхом; отриманий сигнал подає АЦП з подальшим обладнанням DSP (все це на вашому пристрої $ 0,50 PHY). Технологія в новітньому високошвидкісному протоколі знову істотно вдосконалена.
scary_jeff

Thx @scary_jeff про адаптивний еквівалент. нагадування. Додав це до моєї відповіді.
хактастичний

6

Для передачі є більше, ніж просто мідний кабель. Ви бачили обладнання за Ethernet? Можливо, ні, тому що надзвичайно важко знайти будь-яку схему базового рівня для того, що відбувається насправді, оскільки кишки завжди ховаються далеко в ІС. Найближче, що я коли-небудь знаходив, - це необхідні для Ethernet магнітики, які, очевидно, не є обов'язковими. Це лише натяк на те, що фізично відбувається з апаратним забезпеченням Ethernet.

Подумайте про це так: Повітря - це середовище. Чому тип інформації, яку можна передати, коли собаки розмовляють між собою, набагато менше, ніж коли люди спілкуються один з одним? Чому посилання деяких хвиль тиску через повітря не дає більш послідовних результатів у спілкуванні цих двох видів тварин?

Лише деякі обмежуючі фактори для I2C (та багатьох інших протоколів):

  1. привід з відкритим колектором
  2. відсутність імпедансу
  3. відсутність збалансованої передачі
  4. відсутність перевірки помилок
  5. проста схема кодування
  6. відносно високі рівні напруги (якщо крок напруги не повинен бути таким великим, ви можете передавати швидше, тому що ваш dV / dT не повинен бути настільки високим для більшої швидкості)
  7. немає ізоляції
  8. однополярні напруги (Ethernet передає при +/- 2,5 В, що, мабуть, якось допомагає)
  9. Раб передачі працює так, що ведучий, тому в основному годинник повинен здійснювати кругову поїздку швидше, ніж сигнал даних

Все це добре для того, щоб зробити речі простішими. Не дуже добре для високої швидкості передачі даних або передачі на великі відстані.

Можливо, також існує якийсь інший вуду в апаратному забезпеченні, про яке я не знаю.


6

Кілька простих правил: Не існує такого поняття, як земля. Всі дроти - антени. Всі дроти - лінії електропередачі. Шум завжди є.

Якщо провід короткий у порівнянні з часом підйому сигналу, то ви нехтуєте невідповідностями та відбиттями імпедансу лінії передачі (на відміну від Ethernet, що вимагає складних закінчень та формування імпульсу). Якщо провід довгий, то великі шанси на те, що індуковані напруги на дротяних та заземлювальних рівнях зроблять рівень цифрового сигналу на дальньому кінці невизначеним або невірним. Але Ethernet використовує кручену парну диференціальну сигналізацію, значно зменшуючи індукований шум та проблеми із заземленням. Приймач Ethernet також використовує більш чутливі аналогові входи, а не типові цифрові входи, тим самим дозволяючи більше втрат лінії. Додайте до цього кодування та виправлення помилок Ethernet, щоб подолати статистику шуму, і ви можете надійніше йти швидше та далі.


5

I2C - це відкрита зливна шина , вона активно тягнеться низько, але тягнути вгору (принаймні для звичайних варіантів 100 кГц, 400 кГц) - це пасивні резистори.

Через це існує обмеження на те, як швидко річ може працювати, виходячи з того, наскільки швидко підтягуючі резистори можуть зарядити ємність шини, іноді ви можете отримати трохи більше швидкості, знизивши значення підтягування, але це означає, що вузли повинні зануритися Більше струму, щоб отримати логіку низькою .... Або ви можете піти іншим способом, сповільнити шину, щоб дозволити використання резисторів підвищеного значення для меншої розсіювання потужності (див., наприклад, шина PM).

Це повчально розгорнути область застосування та зауважити, що падаюча грань на I2C набагато гостріша від піднімаючої.

За цільовим призначенням, в основному, датчики температури та невеликі пристрої конфігурації в межах однієї плати (або щонайбільше однієї шасі), це, як виявляється, сильно потрапило в солодке місце між складністю впровадження, низьким числом штифтів та простим обладнанням. Дизайнерський задум не був "Швидкими посиланнями на міжміські дані", і, зважаючи на те, що SPI, як правило, простіше розібратися, I2C дуже добре відповідає своєму призначеному використанню.

Як тільки відстані збільшуються, то щось інше стає кращим, але на платі зі скромними інтерфейсами конфігурації eeprom / температура / пристрій це робить досить добре (Варто зазначити, що інтерфейс управління PHY виглядає багато, як I2C).


2

Результати різні, оскільки схема драйвера відрізняється для кожної технології.

100 кГц I2C зазвичай використовує підтягуючий резистор для підведення сигналу на високий рівень, а драйвери з відкритим зливом ставлять сигнал на низький рівень.

Висувні резистори, як правило, складають кілька кіло-Ом. Чим довше кабель отримує більшу ємність у нього. Час, який потрібен лінії для переходу від 0 до 1, буде пропорційним загальній ємності на лінії та величині резистора підтягування. Десь у діапазоні приблизно T = 2 * R * C було б приблизно правильно.

Наприклад, якщо у вас був 10-футовий кабель, що мав 20 пФ на фут ємності, і ви використовували резистор 10K підтягування, то для переходу від низького до високого знадобиться T = 2 * 20pF / фут * 10 футів * 10 К = 3,6 с.

У цьому випадку ви, очевидно, не могли мати жодного біта після нульового біта, який був шириною менше 3,6US, тому ваша швидкість передачі буде обмежена 277 кГц.

У реальній системі I2C специфікація I2C надає додаткові обов'язки щодо встановлення та утримання часу щодо переходів даних та годинників. Ці часи є або сотнями наносекунд, або мікросекундами. Час роботи був зроблений дуже повільно, щоб пристрої можна було дешевше реалізовувати (копійки) і споживати дуже мало енергії (міліват).

З іншого боку, Ethernet може працювати швидше, незважаючи на ємність кабелю, оскільки не використовує резистор. Він активно запускає високо або низько в кабель. У драйвера низький опір, і він може заряджати будь-яку ємність лінії дуже швидко. Зрозуміло, що все виходить ціною. Ethernet зазвичай споживає сотні МВт електроенергії, і коштує принаймні кілька доларів за порт.

Можливо, установка, схожа на I2C, працює швидше, звичайно, просто змініть 10K на 100 Ом, і тепер ваш час підйому на 10 футів падіння кабелю з 3,6 до 36 секунд. Тоді ви могли, ймовірно, працювати на частоті близько 10 МГц без надто багато проблем (крім того, що звичайні мікросхеми I2C не можуть так швидко говорити).

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.