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

Странное поведение схемы с RS-422 интерфейсом

On 2/1/2023 at 11:36 PM, Arlleex said:

Сигнальной, да, земли - ее нет. К сожалению, ее как не было 20 лет назад - так и не будет. Только 2 витых провода - A и B.

Как нет?  А как в итоге в реальных условиях, на расстояние сигнал передаете? Корпус машины/заземление/экран?

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

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


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

1 час назад, std сказал:

Как нет?  А как в итоге в реальных условиях, на расстояние сигнал передаете? Корпус машины/заземление/экран?

А в чем удивление? Тот же CAN вполне себе обходится без общего провода - только витая пара.

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


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

В 02.02.2023 в 21:59, Arlleex сказал:

А в чем удивление? Тот же CAN вполне себе обходится без общего провода - только витая пара.

В CAN-стандарте конкретный физический уровень не определяется (только требования к нему).

Но большинство физик в витую пару тянут CAN-H и CAN-L к середине напряжения питания

image.thumb.png.50ec669059f442088553a9facd38af8e.png

Поэтому уровень там примерно в районе 2.5 В при питании 5В.

В отличии от RS485 - шина без активных передатчиков летает безнаказанно от минус 7 до плюс 12 В.

Недавно с такой же проблемой боролся: передатчик после стопового бита отпускал кратковременно шину.

И одновременно с этим попались экземпляры ADM485, которые нулевое дифференциальное напряжение на входе устойчиво трактовали как лог. 0.

image.thumb.png.97100af1283fbdc8991588be4024c254.png

Вот картинка по 4 образцам (R - это реф от надежного поставщика, 1-2-3 - какие-то "проблемные" ADM485)

На вход B подавалось смещение (ось X) от -5 до +10В, а на входе A была пила от -2 до +2 В.

Диф.сигнал по оси Y.

Видно, что только экземпляр R имеет петлю гистерезиса включающую в себя нулевое дифференциальное смещение на всем интервале допустимых VCM. Т.е. только он не переключает выход приемника RXD, а сохраняет предыдущее значение.

Для экземпляра 1 это условие выполняется при VCM меньше -2.5 В
(зеленая жирная линия).

Для экземпляра 2 это условие выполняется при VCM больше +2.5 В
(красная жирная линия).

Для экземпляра 3 это условие выполняется при VCM больше +5.0 В
(синяя жирная линия).

Обычно VCM в реальных системах находится в диапазоне 0 .. +5 В (желтая жирная линия). Т.е. экземпляр 2 иногда может паузы передатчика воспринимать за логическую 1, и обмен может вестись корректно, если VCM при этом будет по какой-то причине выше +2.5 В.

Экземпляр 1 на рабочем диапазоне VCM всегда будет выдавать логический 0.

Экземпляр 3 на рабочем диапазоне VCM от +2.5 В до +5.0В может сохранять логическую 1, и вести обмен корректно, но уровень переключения 1→0 настолько близок к нулю, что любая помеха может переключить приемник RXD.

Я согласен, что нужно бороть протокольными методами (включать передатчик на какое время перед отправкой посылки) и/или добавлять несколько FF в начало.

Но тут проблема, что передатчик "дурной", и ничего с этим не поделать.

Были бы Phy с гистерезисом приемника, включающим 0 на входе (а еще лучше -200 мВ), но увы.

Остается только растяжка.

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


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

3 hours ago, Arlleex said:

А в чем удивление? Тот же CAN вполне себе обходится без общего провода - только витая пара.


Не обходится. Стандарт CAN, 485 указывает и требует наличие общего провода. 
Стандартов выходило несколько.  Для 485 нужны поздние стандарты TIA/EIA, в них это указано. В ранних нет.
Для CAN нужны стандарты "физики" ISO 11898-2,  ISO 11898-3, которые не являются частью спецификации BOSCH. 

Можно привести аргументацию а зачем изолированным трансиверам GND на ISOL стороне? или зачем трансиверам GND на входе?
отладки с GND на клемниках, референс схемы на которых указан GND, спец.кабели с тремя проводниками, NMEA2000, земли дифсигналов USB/SATA/PCIE..
Но я попробую объяснить иначе.

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

Вот поэтому 485/422 без третьего проводника способен работать, но работает не в дифференциальном режиме. 
Отсюда возникают проблемы с помехозащищенностью, скоростью и прочие.

 

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


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

4 hours ago, std said:

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

Поддерживаю. Из этих соображений вывожу на клеммы не только А и В, но и питание трансивера +Uisol и 0Visol. Тогда и растяжку можно сделать, и дренаж подключить.

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


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

В 03.02.2023 в 03:32, std сказал:

Вот поэтому 485/422 без третьего проводника способен работать, но работает не в дифференциальном режиме. 
Отсюда возникают проблемы с помехозащищенностью, скоростью и прочие.

Это, принципиально неверно. Приемники и передатчики RS485/RS422 всегда работают в диффиренциальном режиме.

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

 

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

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


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

On 2/3/2023 at 5:32 AM, std said:

Вот поэтому 485/422 без третьего проводника способен работать, но работает не в дифференциальном режиме. 

Насколько помню, напряжения на линиях А и В приёмник оценивает относительно половины своего напряжения питания, создавая так называемую расщеплённую "землю". Поэтому, как я понимаю, он работает в дифференциальном режиме.

 

P.S. В каком-то даташите была структурная схема приёмника. Найти бы, чтобы снять все сомнения.

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


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

7 минут назад, tonyk_av сказал:

Насколько помню, напряжения на линиях А и В приёмник оценивает относительно половины своего напряжения питания, создавая так называемую расщеплённую "землю". Поэтому, как я понимаю, он работает в дифференциальном режиме.

Нет. Он работает, именно, по разности напряжений. Абсолютные значения Ua и Ub его "не интересуют".

Искажения и помехи могут возникать, когда Ua и Ub приближаются к границам разрешенного диапазона напряжений, для данного драйвера....

 

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


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

13 hours ago, quark said:

Абсолютные значения Ua и Ub его "не интересуют".

Ua и Ub измеряются относительно середины напряжения питания, а потом вычисляется их разность. Никаких противоречий нет. Поищу даташиты, в которых это показано.

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


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

17 часов назад, tonyk_av сказал:

Ua и Ub измеряются относительно середины напряжения питания, а потом вычисляется их разность. Никаких противоречий нет. Поищу даташиты, в которых это показано.

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

Все напряжения, обозначеные в даташитах конкретных драйверов, указываются относительно его собственного "земляного" вывода GND. В том числе, напряжения на линиях входов А и B приемника - Ua и Ub, соответственно. А так же, напряжение питания драйвера VDD (или VCC).

Когда-то драйверы RS485/RS422 имели двухполярное питание, подключаемое (условно) к выводам +V и -V. Например, +12В и -12В. Так называемая "середина напряжения питания" драйвера, в этом случае, действительно, формально совпадала с GND, при условии |+V|=|-V|. Большинство современных драйверов имеет однополярое питание, подключаемое к выводам GND и VDD. Поэтому, так называемая "середина напряжения питания" драйвера никогда не совпадает с GND.

Вне зависимости от того, какое питание использует драйвер (однополярное или двухполярное), диапазон разрешенных значений напряжений для Ua и Ub, указывается относительно GND. Он может быть симметричным, например от -12В до +12В, тогда "середина диапазона" (а не питания, в общем случае), вновь будет формально совпадать с GND. А может быть и несимметричным, например от -8В до +12В, тогда такого совпадения не будет.

Поэтому, такие термины, как "середина напряжения питания" или "середина диапазона" - лучше не использовать.

 

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

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


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

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

Встал вопрос тестирования линии в помеховой обстановке в своих  лабораторных условиях. Может кто подскажет несложный способ навести управляемые помехи на линию связи?

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

Видел на фотках установки по наведению помех в отчётах проверок на электромагнитную совместимость. Вот что-то подобное. Может ещё питать не от лабораторников надо попробовать. 

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

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


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

10 часов назад, uni сказал:

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

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

RS485 это очень устойчивый интерфейс. RS422 - еще круче. Чтобы "завалить" их, надо очень постараться. Если все сделано правильно, то будет работать всегда.

 

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

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


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

В 08.02.2023 в 01:12, uni сказал:

Может кто подскажет несложный способ навести управляемые помехи на линию связи?

Самый простой - разряд конденсатора или пьезозажигалки рядом с линией.

 

 

В 08.02.2023 в 01:12, uni сказал:

Встал вопрос тестирования линии в помеховой обстановке в своих  лабораторных условиях.

По какому ГОСТ заявлены требования заказчика, по тому и тестировать.

В ГОСТ описаны все требования к тестирующим схемам и оборудованию.

 

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


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

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

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

Гость
Ответить в этой теме...

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

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

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

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

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

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