Перейти к содержанию
    

Гость @Ark
Конвертер USB-RS485 ничем особенно не отличается от конвертера RS232-RS485. В последних прием-передача задается явным образом при помощи одного из сигналов управления модемом, типа, RTS.

Не вводите людей в заблуждение. Управление направлением передачи с помощью сигнальных линий порта, типа RTS - это специальный, частный случай такого управления. Универсальные конверторы RS232-RS485 не зависят сигнальных линий RS232, которых может и не быть в наличии, если абонент не ПК. Они вырабатывают сигнал управления направлением передачи по RS-485 самостоятельно, автоматически.

У конвертора FTDI передатчиком управляет пин CBUS2 чипа FT232RQ. То есть, передатчик RS485 находится под полным контролем ПК, так что проблем никаких не наблюдается.

Аналогично. Сигнал управления направлением передачи по RS485 вырабатывается чипами FTDI самостоятельно, ПК в этом деле не участвует. Когда в приемном буфере FTDI со стороны USB появляются байты для передачи - включается передатчик, и начинается передача. При опустошении буфера и отсутствии поступления байтов со стороны USB, передатчик выключается немедленно после завершения передачи последнего байта. Естественно, что он не делает ни каких дополнительных пауз ни до, ни после обмена - когда передатчик удерживается во включенном состоянии, а передачи нет. То есть, то, на чем построены ваши "продвинутые" алгоритмы работы с "мусорной" линией - не предусмотрено к реализации универсальными преобразователями USB-RS485.

 

 

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

Это Вы мне? По моему, явно не по адресу. Я, как раз, сторонник стандартных подходов к стандартным проблемам, использующий, в основном, готовые стандартные протоколы и стандартные универсальные преобразователи.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не вводите людей в заблуждение. Управление направлением передачи с помощью сигнальных линий порта, типа RTS - это специальный, частный случай такого управления. Универсальные конверторы RS232-RS485 не зависят сигнальных линий RS232, которых может и не быть в наличии, если абонент не ПК. Они вырабатывают сигнал управления направлением передачи по RS-485 самостоятельно, автоматически.

Почему Вы считаете, что кастрированный прибор без сигналов управления направлением передачи является более универсальным, чем прибор, имеющий в своем составе такие сигналы?

Приведите, пожалуйста, пример прибора, имеющего RS-232 интерфейс, состоящий только из RX/TX. Неужели таких много?

 

Это Вы мне? По моему, явно не по адресу. Я, как раз, сторонник стандартных подходов к стандартным проблемам, использующий, в основном, готовые стандартные протоколы и стандартные универсальные преобразователи.

Ну конечно же не Вам. А людям, которые намеренно выбирают суперуниверсальную материальную базу, плохо подходящую для решения конкретно их задачи (конвертер RS485/232 без управления направлением), а после этого начинают героически преодолевать непонятно откуда возникшие трудности. Назовем их "Злобные Буратины".

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Управление направлением передачи с помощью сигнальных линий порта, типа RTS - это специальный, частный случай такого управления. Универсальные конверторы RS232-RS485 не зависят сигнальных линий RS232, которых может и не быть в наличии, если абонент не ПК. Они вырабатывают сигнал управления направлением передачи по RS-485 самостоятельно, автоматически.

На рынке чего только не найдешь, вплоть вот до такого хлама:

 

post-2483-1350647808_thumb.png

 

Причем, не самый дешевый. Если пипл хавает, почему бы и нет... "Миллионы леммингов не могут ошибаться" (с)

 

А вот здесь приведен более канонический и робастный вариант, в котором передатчик управляется при помощи RTS: http://www.rs232-to-rs485.com/

 

Сигнал управления направлением передачи по RS485 вырабатывается чипами FTDI самостоятельно, ПК в этом деле не участвует.

Вы, наверное, удивитесь, когда узнаете, что управление передатчиком в чипе FT232R сделано при помощи пина, функция которого не определена раз и навсегда, а может быть выбрана пользователем. Ознакомьтесь с аппликухой FTDI AN-232R-01 "Bit Bang Modes for the FT232R and FT245R", там вы узнаете как это можно сделать. А в руководстве программиста для драйвера D2XX вы найдете практическое руководство, как выдавать бит-банг сигналы, при помощи которых можно произвольно, по собственному усмотрению, включать и выключать передатчик RS485 в конверторе USB-RS485 фирмы FTDI.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Дык я же писал про случай, когда, считай вообще ничего не работает, но работать надо, пусть и медленно. Про методы выгодного разменивания скорости на помехоустойчивость, в общем, писал. А речь, в основном, пошла про RS-485 :) Если, скажем, оперативка контроллера отказала (частично, конечно), никакой модбас не вывезет.

 

AHTOXA, спасибо, показал, как выделить старт-бит, делая байтовую "паузу" при непрерывном потоке.

 

А по сабжу - про Хэмминга с Ридом-Соломоном я, конечно загнул. Но если по-быстрому - Баркер. 11 бит и привет, с этим справится и мега на 16Мгц и UART на 4800 ;)

 

Детерминированность обеспечивается заголовками.

Изменено пользователем Stas-

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
Приведите, пожалуйста, пример прибора, имеющего RS-232 интерфейс, состоящий только из RX/TX.

Неужели таких много?

Предостаточно. К ним же можете отнести приборы, которые довольствуются "заглушками" на сигнальных линиях порта. Если такие приборы, явно или неявно, допускают полудуплексный режим работы - например, используют протоколы обмена, построенные по принципу "запрос-ответ" - то подключить их к линии RS-485 с помощью универсальных конверторов RS232-RS485 не составляет проблемы. Это может потребоваться для увеличения расстояния, защиты от помех и прочее... Все, якобы "канонические" преобразователи с "ручным управлением", здесь не применимы в принципе.

Вы, наверное, удивитесь, когда узнаете, что управление передатчиком в чипе FT232R сделано при помощи пина, функция которого не определена раз и навсегда, а может быть выбрана пользователем...

Вы даже можете так не мучиться с перепрограммированием FTDI и написанием собственных драйверов, а задействовать для управления передатчиком в преобразователе одну из сигнальных линий виртуального COM-порта. Благо, что все они транслируются через FT232R в штатном режиме и имеют выходы на соответствующих пинах. Получится, практически, то же самое. Хочется надеятся, что все проблемы, которые вы создаете подобными подходами для программистов, они рано или поздно решат. Но про универсальность применения сего устройства, скорее всего, придется забыть. Получится еще один преобразователь, "заточенный под Модбас"...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Приведите, пожалуйста, пример прибора, имеющего RS-232 интерфейс, состоящий только из RX/TX. Неужели таких много?

Предостаточно. К ним же можете отнести приборы, которые довольствуются "заглушками" на сигнальных линиях порта.

Вы не поняли мой вопрос. Я спросил не о приборах, в которых Вы героически не используете заложенные возможности (ставя "заглушки"), а о промышленно выпускаемых приборах, имеющих RS-232, но не обеспечивающих дополнительно как минимум сигнал управления направлением передачи.

Из Вашего ответа я делаю вывод, что такая возможность есть в окружающих Вас приборах. Но вы ее не используете. Это как-то противоречит Вашему мировоззрению? использование стандартных путей, заложенных производителем?

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

 

На рынке чего только не найдешь, вплоть вот до такого хлама:

Причем, не самый дешевый. Если пипл хавает, почему бы и нет... "Миллионы леммингов не могут ошибаться" (с)

Угу. и таких довольно много. Что грустно- часто пока не привезут и осциллографом не ткнешь, непонятно честный он или такой как на картинке.

Но реально 90% пользователей не нуждаются в использовании тех преимуществ, которые имеет "честный" адаптер по сравнению с таким "подтяжечным". Вот и получается по формуле "зачем платить больше".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
Я спросил ... о промышленно выпускаемых приборах, имеющих RS-232, но не обеспечивающих дополнительно как минимум сигнал управления направлением передачи. Из Вашего ответа я делаю вывод, что такая возможность есть в окружающих Вас приборах. Но вы ее не используете. Это как-то противоречит Вашему мировоззрению? использование стандартных путей, заложенных производителем?...

Простите, Вам каждый производитель промышленного прибора, использующего RS-232 это гарантирует? Или через одного? Гарантировать он может только соблюдение стандартов. Стандарт на RS-232 не предусматривает стандартного сигнала, специально предназначенного для управления направлением передачи в полудуплексном режиме. Так как он является полнодуплексным. Задействование одной из сигнальных линий для этих целей - это часто встречающееся, но не стандартное решение. Никто, ни один производитель не обязан Вам этого гарантировать, согласно стандарта.

Изменено пользователем @Ark

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

AHTOXA, спасибо, показал, как выделить старт-бит, делая байтовую "паузу" при непрерывном потоке.

Обратите внимание, что для того, чтобы это работало, надо при получении framing error ждать единицы, и уже затем начинать ждать старт-бит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
Так вот я и задаю вам этот самый второй вопрос. Правильно ли я понял, что персонально вы используете протоколы, которые рассчитывают на "помехоустойчивость линии во всех ее рабочих состояниях"?

Использую самые различные. Причем, выбирать приходится не всегда мне. Использую и Modbus, и гораздо менее защищенные от ошибок протоколы, там, где это позволяет линия связи и условия конкретной задачи. Такой ответ Вас устроит?

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Простите, Вам каждый производитель промышленного прибора, использующего RS-232 это гарантирует? Или через одного? Гарантировать он может только соблюдение стандартов. Стандарт на RS-232 не предусматривает стандартного сигнала, специально предназначенного для управления направлением передачи в полудуплексном режиме. Так как он является полнодуплексным. Задействование одной из сигнальных линий для этих целей - это часто встречающееся, но не стандартное решение. Никто, ни один производитель не обязан Вам этого гарантировать, согласно стандарта.

 

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

 

То есть, согласно стандарту, RS232 информирует о желании что-то передать посредством RTS, а начинает передавать только при приеме CTS.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
По какому такому канону сигнал "хочу передавать" нельзя использовать для включения передатчика? В полудуплексных системах это можно трактовать одновременно как сигнал "не хочу принимать". Ну а CTS полезен для подтормаживания потока, очень пользительно бывает (но к полудуплексной линии связи отношения не имеет)

По такому канону, что в RS232, есть две основные сигнальные пары DTR-DSR и RTS-CTS, одна из которых предписана для управления потоком по линии приемника, а другая - по линии передатчика. И, в принципе, они независимы друг от друга, так как имеем дело с полным дуплексом. И, как Вы правильно заметили, они не обязательно напрямую включают/выключают соответствующие передатчики, а представляют собой два отдельных дополнительных служебных канала, организованных по принципу "запрос(требование) - ответ(подтверждение)". То есть, как мгновенная реакция на запрос не только не обязательна, так и допускается просто игнорирование требования в определенных ситуациях. И на сколько я помню (могу ошибиться), использование этих механизмов при обмене носит факультативный (опциональный), т.е. необязательный характер.

Изменено пользователем @Ark

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в RS232, есть две основные сигнальные пары DTR-DSR и RTS-CTS, одна из которых предписана для управления потоком по линии приемника, а другая - по линии передатчика.

В RS232 нет понятий "приемника" и "передатчика". Вместо этого есть понятия "терминального оборудования" (DTE, обычно это комп) и "комуникационное оборудование" (DCE, обычно это модем, и т.п.).

 

DTR-DSR не предназначены для управления потоком. Они предназначены для определения готовности устройств - например, обозначают, что устройства включены. Для управления потоком предназначены RTS-CTS. Использование DTR-DSR для управления потоком встречается, однако является отступлением от стандарта.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Гость @Ark
В RS232 нет понятий "приемника" и "передатчика"...

Да что Вы говорите! :biggrin: А выводы TX и RX в каждом устройстве - это что такое по Вашему?

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

P.S. Кому очень интересно, рекомендую обратиться непосредственно к тексту стандарта.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Приходится констатировать, что про RS-232 вы ничего не знаете, помимо популяризаторского хлама для ламеров. И про функцию RTS вы имеете превратное представление, и про отсутствие полудуплексного режима в стандарте жестоко ошибаетесь. Учите матчасть:

 

post-2483-1350706217_thumb.png

 

Если не умеете читать по-английски, дайте знать, я вам переведу.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И про функцию RTS вы имеете превратное представление, и про отсутствие полудуплексного режима в стандарте жестоко ошибаетесь. Учите матчасть:

Бесполезно. @Ark уже определился в этой жизни- только RX/TX, все остальные сигналы бесполезны и вредны, и легко заменяются подтяжками-заглушками :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...