Прошло более 10 лет (с тех пор, как я разработал оборудование с RS-232), а мы все еще используем RS-232?

Есть ли альтернативы этому древнему, но до сих пор популярному способу общения?

Ответы (8)

Прошло более 10 лет, а мы все еще используем RS-232?

Это всего лишь стандарт связи, причем очень простой.

Ваше утверждение не сильно отличается от «Прошло более 10 лет, а мы все еще используем провода?» Несмотря на то, что доступны оптические и радиочастотные решения, проводная связь по-прежнему имеет ряд явных преимуществ, как и RS-232.

Основные преимущества

  • Это дешево
  • Это тривиально легко использовать
  • Он использует меньше проводов, чем параллельная передача данных
  • Он работает на больших расстояниях (измеряется в сотнях футов/десятках метров , а не в дюймах/см для большинства сигналов TTL/CMOS)
  • Он широко используется во многих продуктах
  • Проблемы с совместимостью возникают редко
  • Он стандартизирован, и UART включен во все, кроме самых простых микроконтроллеров.
  • Доступно множество конвертеров для преобразования его в другие стандарты (например, USB).
  • Использует тривиальное кодирование NRZ, поэтому его легко интерпретировать даже без UART.

Недостатки включают

  • Медленный
  • Не указывает протокол или более высокие уровни коммуникационного стека.
  • Стандартные разъемы громоздки.
  • Не подает питание
  • Нет стандартного механизма идентификации (т. е. невозможно подключить его и сообщить хосту, что было подключено, и его возможности)

Есть ли альтернативы этому древнему, но до сих пор популярному способу общения?

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

Мы могли бы перечислить тысячи стандартов связи, которые можно было бы использовать вместо RS-232, но суть в том, что RS-232 не был заменен или вытеснен. USB ближе всего к нему, но он сильно ограничен с точки зрения расстояния, стоимости, простоты использования и включения кремния в большинство микроконтроллеров.

Однако у USB есть и другие существенные преимущества, которых нет у RS-232. Они не заменяют друг друга и успешно сосуществуют на многих компьютерах.

Ключевым моментом является то, что RS-232 — это инструмент, и как таковой он не так уж плох и не нуждается в замене. В наши дни он используется все реже, поскольку людям нужны более продвинутые функции, более высокие скорости или есть какие-то другие требования, которые RS-232 не выполняет.

Но это не означает, что он должен или исчезнет, ​​потому что все еще есть много новых приложений, где RS-232 идеально подходит.

Что значит - всего 10 лет. RS-232 был определен в 1962 году и приближается к своему 48-летию.

RS-232 использует простой метод асинхронной последовательной передачи данных, для которого требуется очень мало кремния, его легко кодировать в программном обеспечении и использовать на микропроцессорах с небольшим объемом ОЗУ или программной памяти. В прошлом у него также было то преимущество, что все компьютеры и тупые терминалы имели интерфейсы RS-232, поэтому его использование для отладочного вывода не составляло труда.

Если вам нужна более высокая скорость или передача на большие расстояния, вы просто заменяете линейные драйверы дифференциальными драйверами/приемниками RS-422 или RS-485, и никаких изменений в программном обеспечении не требуется.

Реализация USB на крошечных микроконтроллерах просто невозможна. Накладные расходы на обработку/память/кремний слишком высоки.

SPI или I2C возможны (и используются в некоторых местах), но интерфейсные карты для вашего ПК необычны и дороги. I2C имеет неприятное состояние блокировки, из-за которого он может умереть, если часы останавливаются на полпути через цикл вывода данных подчиненного устройства, а бит данных низкий.

Почему вы говорите, что I2C «умирает» в этом сценарии? Это правда, что запуск передачи, когда предыдущее состояние шины неизвестно, может потребовать отправки до девяти тактовых импульсов, но с этим можно справиться, если подпрограмма i2c_start проверяет состояние линии данных и выводит до девяти тактовых импульсов, если он низкий. (остановите вывод импульсов, как только он станет высоким). Даже мой код 6502 I2C делает это. Есть ли какое-то другое проблемное состояние, о котором вы думаете?
Это сценарий и лечение, о которых я говорил. Если вы используете встроенное периферийное устройство I2C или (Atmel)TWI, вам может потребоваться переназначить используемые контакты порта, а затем вручную переключить линию синхронизации девять раз, чтобы выйти из блокировки, прежде чем переназначить контакт обратно для функции I2C. Все немного сумбурно.
В этом есть смысл. Обычно я использую мастера I2C, поэтому мне не часто приходится сталкиваться с этой проблемой, но я вижу, что для людей, использующих мастер I2C с аппаратной поддержкой, это может быть проблемой. Мне было интересно, не имеете ли вы в виду другую проблему «блокировки I2C», которую я наблюдал при попытке запустить полноскоростную (400 кГц) шину I2C, когда одним подчиненным устройством на шине является микро, чьи системные часы работают на низком уровне. режим питания (6МГц вместо 24МГц). Поскольку I2C поддерживает рукопожатие, единственные ограничения того, насколько быстро шина может безопасно «попытаться» пройти, если мастер поддерживает рукопожатие, ...
... должно быть связано с дифференциальным временем нарастания SCK/SDA (если, например, SCK будет расти быстрее, чем SDA, отключение SDA, а затем слишком быстрое отключение SCK после этого может привести к ложному запуску). Однако кажется, что некоторые подчиненные реализации I2C не будут квитировать импульсы SCK, которые не являются низкими в течение нескольких их внутренних тактовых циклов, и могут быть перегружены, если кто-то попытается поговорить на полной скорости с другими устройствами на шине. Грр...
  • Очень надежный.
  • Легко реализовать.
  • В большинстве случаев требуется всего 3 провода.
  • Использует широкий размах напряжения.
  • Он имеет много устройств, которые использовали его.
    • мыши
    • принтеры у меня есть по крайней мере один
    • модемы
    • сканеры
    • сканеры штрих-кода
    • мультиметры
    • Единицы GPS
    • различное научное оборудование
  • Может использоваться для передачи данных между двумя компьютерами с заменой всего нескольких проводов. (Просто попробуйте это с USB)
  • Был реализован во многих различных микроконтроллерах
  • Не требует дорогого кабеля. За исключением экстремальных обстоятельств, включая высокие скорости.
  • Вы можете легко сделать свой собственный кабель, без специальных инструментов.
  • Можно легко адаптировать для более длинных кабельных трасс, используя сигнализацию RS-422 или RS-485.

Откровенно говоря, с этой записью я был бы удивлен, если бы она вообще когда-нибудь исчезла.

Дифференциальная сигнализация - ерунда.
@community, @starblue только что применил технику под названием «сарказм». Вроде, как бы, что-то вроде.

Есть много альтернатив. USB - это тот, который, кажется, наиболее часто используется в настоящее время. I2C - это другое.

RS-232 все еще существует по устаревшим причинам. Если вы можете смириться с мешаниной различных скоростей передачи данных, стоповых битов, настроек четности и конфигураций проводки, на самом деле это довольно простой, надежный и надежный интерфейс для приложений с низкой скоростью передачи данных.


Недавно я слушал подкаст, в котором обсуждалась обработка звука на семинаре. Все аудиопрофессионалы по-прежнему используют разъемы XLR и обычные микрофонные кабели — технологию, которой не менее 50 лет , хотя доступны и более новые альтернативы. Они используют его, потому что он стабилен, проверен, надежен и соответствует отраслевым стандартам.

Отличие последовательной связи UART от различных уровней напряжения, используемых для ее передачи: RS232, RS485, LVDS.

Последовательная связь UART надежна и проста.

Многие системы преобразуют RS-232 в USB с помощью преобразователя IC. Наиболее популярными являются устройства FTDI. FTDI продает кабель с разъемом USB на одном конце и шестиконтактным разъемом на другом (FTDI TTL-232R-3V3). Это преобразует USB в RS232 на уровнях TTL .

FTDI также производит микросхему для выполнения той же функции — FTDI FT232RL. Это в SMD корпусе. Вы подключаете входы данных к разъему USB, а выходы к RS232 на уровнях TTL . Кабель находится в диапазоне от 15 до 20 долларов. IC составляет около $ 2,50 (100). IC требует полдюжины пассивов. Мне также нравится добавлять TVS IC.

Если вам нужно получить истинные уровни RS232, вам понадобится микросхема драйвера.

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

На практике вы обнаружите, что эти преобразователи не лишены проблем - например, они раскрывают реальность того, что USB на самом деле медленнее , чем обычные скорости последовательной передачи данных для определенного типа трафика запроса / ответа! И нет, «большое количество UART» не будет единственным оправданием — простота имеет гораздо более широкую привлекательность.

Я поклонник USB <--> Serial IC, он выполняет всю грязную работу по внедрению USB, и вы можете накачать битрейт до экстремальных уровней (официальный RS232 достигает максимума, 115k? Я видел USB<- -> серийный номер на несколько мбит/сек раньше)

Какие устройства вы используете?
RS232 может работать значительно быстрее, чем 115k. Раньше я запускал RS232 на MBAUD, это просто ошибка расстояния и часов.

Сигнализация уровня напряжения RS232 становится все менее распространенной, поскольку все больше и больше устройств предназначены для подключения к порту USB, а не к порту RS-232. Однако общий асинхронный сигнальный протокол 8-N-1 позволяет отправлять данные в полнодуплексном режиме с предсказуемой синхронизацией и без вставки байтов. Байт может быть запущен в любой желаемый момент, когда линия в противном случае простаивает, и нет опасности опустошения данных. Аппаратное обеспечение для поддержки сигнализации 8-N-1 распространено и дешево, и, хотя протокол не совсем оптимален, многие изменения, которые улучшат его для одних приложений, сделают его хуже для других. Единственным существенным недостатком 8-N-1 является то, что он требует, чтобы обе стороны связи имели стабильные часы, которые являются известными (обычно целыми) кратными желаемой скорости связи.

Между прочим, большинство асинхронных аппаратных средств 8-N-1 допускают по крайней мере один тип внеполосной сигнализации: длинный перерыв. Хотя иногда было бы полезно иметь еще несколько типов внеполосной сигнализации, полезно иметь хотя бы один.