Максимальна довжина кабелю для 3.3 V сигналів UART


15

Я хотів би уникати використання перетворювачів RS-232 між двома мікроконтролерами на двох різних платах. З різних причин підтримуються тільки UART, наприклад, немає SPI або I2C, і я буду використовувати кабель CAT5E для гнізд RJ45 між платами. Швидкість передачі даних складе 115200bps, можливо, до 921600bps. Земля з'єднана разом із сигналами UART.

У той час як у мене зараз це працює на потрібні мені довжини, для моєї власної освіти є спосіб оцінити максимальну довжину кабелю, при якій це було б надійним?


Цей lammertbies.nl/comm/info/RS-232_specs.html може бути корисним "Якщо, наприклад, кабель UTP CAT-5 використовується із типовою ємністю 17 пФ / фут, максимально допустима довжина кабелю - 147 футів."
кенні

3
Real RS232 має перепади напруги понад 10 Вольт між знаком і пробілом. А 147 футів - це лише 19200 бод. OP говорить про 3V3 UART та 115200 до 921600 бод: Це буде працювати лише з відносно короткими кабелями.
Turbo J

2
Чи можу я запропонувати перекладачів RS422? Вони б набагато краще підходили до кабелів із крученою парою CAT5E.
Turbo J

На жаль, не варіант.
QuestionMan

У мене виникає питання: чому 422 трансівер не є варіантом?
ДіБоско

Відповіді:


14

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

Якщо ви робите все це, ви можете передавати дані 1 Мбіт / с на кабель CAT5 на великі відстані, наприклад, 1000 метрів. Оскільки ви будете робити менше таких речей, зручна відстань знизиться. Якщо, наприклад, це просто борт, щоб сісти в одне шасі, то, мабуть, не потрібно робити особливих особливостей. Якщо ви виходите за межі пристрою, то драйвери диференціальної лінії та приймачі можуть бути корисними.

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


1
Тільки тому, що ви можете вийти на 145 м від Ethernet, це не означає, що ви отримаєте той самий сигнал від 3,3 В TTL-сигналу вниз по тому ж кабелю тільки тому, що ви використовуєте меншу швидкість передачі, див. Пояснення у моїй відповіді.
Джейсон Морган

2
@Jason: Зауважте, що я не сказав, що ви хочете. Я сказав, що ви можете подорожувати на великі відстані, дотримуючись належних заходів обережності, таких як драйвери та приймачі диференціальних ліній та кінцеві кінці.
Олін Латроп

3
@Olion: Ви, здається, заявляєте, що мова йде більше про характеристики кабелю, а не про те, що 3.3V TTL не проїде далеко вниз по ньому. Для мене це розуміється як пропозиція придбати хороший кабель, який ми обидва знаємо, що це неправильно.
Джейсон Морган

7

Ethernet використовує диференціальну сигналізацію, сигнал TTL є однобічним.

Ethernet використовує попередній наголос, TTL - ні.

Ethernet - це поточний режим, TTL - режим напруги.

Ethernet використовує модуляційний модуль, який зменшує кількість ребер, можливо, TTL не може (стандартний ASYNC, безумовно, не робить)

Драйвер Ethernet і приймач мають імпеданс узгоджений з кабелем, якщо б ретельно не було розроблено, TTL не було б (і якби воно було, то це не було б TTL!)

Ethernet використовує симетричний сигнал (за допомогою шахрайства), щоб створити рівну щільність 1. ASYNC-серій має вбудований ухил, який заряджає кабель, і його потрібно подолати, щоб отримати сигнал з іншого кінця.

З цих причин, саме тому, що ви можете отримати 145m з Ethernet на 1Gbps, це не означає, що ви отримаєте те саме (або навіть в 1000 разів менше) від 3.3V TTL-сигналу вниз по тому ж кабелю.

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


В ОП вже за 3 години до вашої відповіді було заявлено, що приймачі RS422 - це не варіант.
tcrosley

3
Так, я можу читати. Я все ще можу порекомендувати правильне рішення. Тільки тому, що афіша не любить чути правду, це не означає, що її не слід говорити.
Джейсон Морган

2
Чому ти весь час називаєш його TTL? Назва говорить 3.3V, тому це точно не TTL. Привід TTL має дуже асиметричні можливості мийки / джерела, тоді як HCMOS - симетричний. Можна створити різницю у світі за допомогою кабелю.
stevenvh

Що таке "попередній наголос"?
м.Алін

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