Я хотел бы избежать использования преобразователей 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 несимметричен)
. Кроме того, драйверы и приемники делают умные вещи для улучшения качества фронтов, таких как предыскажения.
Кенни
Турбо Дж
Турбо Дж
ВопросЧеловек
ДиБоско