Я хотел бы избежать использования преобразователей RS-232 между двумя микроконтроллерами на двух разных платах. По разным причинам поддерживаются только UART, например, без SPI или I2C, и я буду использовать кабель CAT5E для разъемов RJ45 между платами. Скорость передачи данных составит 115200 бит / с, возможно, до 921600 бит / с. Земля связана с сигналами UART.
Несмотря на то, что в настоящее время я работаю с той длиной, которая мне нужна, для моего собственного образования, есть ли способ оценить максимальную длину кабеля, при которой это будет надежно?
Ответы:
Нет единого безопасного ответа. Это во многом зависит от длины кабеля, окружающих электрических помех и скорости, с которой вы хотите идти. Ethernet использует кабель CAT5 для передачи со скоростью 10 Мбит / с для самого медленного диапазона, поэтому 1 Мбит / с легко выполнимо, если принять надлежащие меры предосторожности . Обратите внимание, что в Ethernet каждый сигнал получает свою собственную витую пару, и каждая пара осторожно подключается к характеристическому сопротивлению кабеля на каждом конце. Каждая пара приводится в движение по-разному и интерпретируется по-разному, а также сконструирована таким образом, что она не может вызывать контуры заземления.
Если вы сделаете все это, вы сможете передавать данные со скоростью 1 Мбит / с по кабелю CAT5 на большие расстояния, например 1000 метров. По мере того, как вы будете делать меньше этих вещей, полезное расстояние будет уменьшаться. Например, если это просто плата для платы в одном и том же шасси, вам, вероятно, не нужно делать ничего особенного. Если вы выходите за пределы устройства, то драйверы и приемники дифференциальной линии могут быть полезны.
Попробуйте что-то в вашей настройке и посмотрите на сигналы на приемном конце, чтобы получить представление о запасе шума, при необходимости отрегулируйте. Может быть, использовать протокол, который может обнаруживать и устранять ошибки, и отслеживать, как часто это происходит. Есть слишком много способов перечислить здесь без дополнительной информации.
источник
Ethernet использует дифференциальную сигнализацию, сигнал TTL является односторонним.
Ethernet использует предварительное выделение, TTL - нет.
Ethernet - текущий режим, TTL - режим напряжения.
В Ethernet используется тачник модуляции, который уменьшает количество фронтов, а ваш TTL - нет (стандарт ASYNC, конечно, нет)
Драйвер Ethernet и приемник согласованы по сопротивлению с кабелем, если не будет тщательно продумано, TTL не будет (и если бы это было так, то это не было бы TTL!)
Ethernet использует симметричный сигнал (с использованием скемблинга) для создания четной плотности. Серийный ASYNC имеет встроенное смещение, которое заряжает кабель и должно быть преодолено, чтобы получить сигнал на другом конце.
По этим причинам то, что вы можете получить 145 м от Ethernet со скоростью 1 Гбит / с, не означает, что вы получите то же самое (или даже в 1000 раз меньше) из 3,3 В сигнала TTL по тому же кабелю.
Я рекомендую использовать драйвер дифференциальной сигнализации, такой как RS422, именно для этого он предназначен. Действительно, RS422, хотя и работает при более низком напряжении, лучше подходит для длительных пробегов из-за дифференциальной сигнализации (RS232 является односторонним).
Кроме того, драйверы и приемники делают умные вещи для улучшения качества краев, такие как предварительное выделение.
источник