Максимальная потенциальная скорость для последовательного порта rs232

Какова потенциальная максимальная скорость для последовательного порта rs232 на современном ПК? Я знаю, что спецификация говорит, что это 115200 бит/с. Но я считаю, что это может быть быстрее. Что влияет на скорость порта rs232? Я считаю, что это кварцевый резонатор, но я не уверен.

Ответ 1

Это относится к исходному IBM PC. Инженеры, которые его проектировали, нуждались в дешевом способе создания стабильной частоты. И обратился к кристаллам, которые широко использовались в то время, использовались в любом цветном телевизоре в США. Кристалл, созданный для запуска схемы осциллятора с частотой цветовой синхронизации в стандарте телевизора NTSC. Который составляет 315/88 = 3,579545 мегагерц. Оттуда он сначала прошел через программируемый разделитель, тот, который вы изменили, чтобы установить скорость передачи. Сам UART затем делит его на 16, чтобы генерировать тактику субдискретизации для строки данных.

Таким образом, самая высокая скорость, которую вы можете получить, - это установить делитель на наименьшее значение, 2. Который производит 3579545/2/16 = 111861 бод. Ошибка 2.3% от идеальной скорости. Но достаточно близко, тактовая частота не обязательно должна быть точной. Точка асинхронной сигнализации, A в UART, стартовый бит всегда повторно синхронизирует приемник.

Получение реального оборудования RS-232, работающего на скорости 115200 бод, является серьезной проблемой. Электрический стандарт очень чувствителен к шуму, нет попытки отменить индуцированный шум и не пытаться создать линию передачи, согласованную импедансом. Максимальная рекомендуемая длина кабеля при 9600 бодах составляет всего 50 футов. На 115200 только очень короткие кабели будут делать на практике. Чтобы идти дальше, вам нужен другой подход, например дифференциальные сигналы RS-422.

Это все древняя история и больше не относится к современному оборудованию. Истинное серийное оборудование на базе чипа UART, такого как 16550, быстро исчезает и заменяется эмуляторами USB. У которых есть собственный драйвер для эмуляции последовательного порта. Они принимают выбор скорости передачи, но просто игнорируют его для самой шины USB, она применяется только к последнему полудюймову в подключаемом устройстве. Независимо от того, принимает или не принимает драйвер 115200, поскольку максимальное значение является деталью реализации драйвера, они обычно принимают более высокие значения.

Ответ 2

Максимальная скорость ограничена спецификациями оборудования UART.

Я считаю, что "классический" ПК UART (16550) в современные реализации могут обрабатывать не менее 1,5 Мбит/с. Если вы используете последовательный адаптер на основе USB, то не задействовано 16550, и, конечно же, ограничение устанавливается конкретным чипом (ами), используемым в адаптере.

Я регулярно использую ссылку RS232, работающую со скоростью 460 800 бит/с, с адаптером на базе USB.

В ответ на комментарий о тактировании (с оговоркой: я разработчик программного обеспечения): асинхронная последовательная связь не передает часы (асинхронную часть там) вместе с данными. Вместо этого передатчик и приемник должны заранее договориться о том, какой битрейт использовать.

Начальный бит в строке данных сигнализирует начало каждого "символа" (обычно байта, но с битами пуска/остановки/четности, обрамляющего его). Затем приемник начинает выборку строки данных, чтобы определить, является ли ее 0 или 1. Эта выборка обычно выполняется по меньшей мере в 16 раз быстрее, чем фактическая скорость передачи, чтобы убедиться, что она стабильна. Таким образом, для UART, сообщающего с частотой 460 800 бит/с, как я упоминал выше, приемник будет сэмплировать сигнал RX примерно на 7,4 МГц. Это означает, что даже если вы синхронизируете фактический UART с необработанной частотой f, вы не можете ожидать, что он будет надежно получать данные с такой скоростью. Есть накладные расходы.

Ответ 3

Да, можно работать на более высоких скоростях, но основным ограничением является среда, в шумной среде будет больше поврежденных данных, ограничивающих скорость. Другим ограничением является длина кабеля между устройствами, вам может потребоваться добавить ретранслятор или другое устройство для усиления сигнала.