Jump to content
    

Z-состояние линии RS-485

Всем привет!

Совершенно детский вопрос.
Понадобилось сделать в своем устройстве прием MODBUS по RS485. До этого пром. автоматикой не занимался.
Все понятно и во всем разобрался, кроме одного момента.

Берем стандартный приемник, к примеру, AM26LV32. Когда идет передача кадра все отлично - дифференциальные входные линии прыгают, соответственно работает выход приемника с него все и снимаем.
Но вот источник закончил передачу и перевел линию в Z-состояние. Т.е. дифф. сигнала больше нет, как говорит даташит на AM26LV32 при этом состояние выхода приемника неопределенно (indeterminate), т.е. случайное.
Если оно случайное, то выход микросхемы приемника, к примеру, может постоянно в нуле висеть, что соответствует постоянной задержки при начале кадра, или при помехах "ложный" кадр может наложиться на реальный - т.е. увеличится вероятность потери кадра и т.д.

Подскажите пожалуйста как правильно обработать третье состояние линии, программно приемник полностью мой (сигнал с Modbus ползет на мою ПЛИС).

Также вопрос при full duplex передачи при одном мастере, обязательно ли Tx переводить в Z-состояние по окончании кадра, по идеи лучшая помехоустойчивость будет если Tx будет висеть в "1" между кадрами.

 

Спасибо!

 

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Z-состояние (т.е. высокоимпедансное) там будет, если у всех устройств выключены и приёмники, и передатчики, и терминатор отсутствует. Если же хоть одно стоит на приёме - уже нагрузка в линии, от 12 до 96 кОм. Точнее было бы сказать - "неопределённое состояние". А тут уже решается по-разному. "Fail-safe" трансиверы, "растяжки", если ни того ни другого нет - программная обработка "мусора"...

Share this post


Link to post
Share on other sites

33 minutes ago, Harbinger said:

Z-состояние (т.е. высокоимпедансное) там будет, если у всех устройств выключены и приёмники, и передатчики, и терминатор отсутствует. Если же хоть одно стоит на приёме - уже нагрузка в линии, от 12 до 96 кОм. Точнее было бы сказать - "неопределённое состояние". А тут уже решается по-разному. "Fail-safe" трансиверы, "растяжки", если ни того ни другого нет - программная обработка "мусора"...

что такое растяжки? принудительное приведение дополнительным слабым источником линию в 1 или 0 пока все передатчики спят? пока ее не передавит какой-то передатчик, конечно.

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

Тогда вопрос есть ли какой-то "законный" для данного стандарта способ перевода(подтяжки и т.д.) передающей линии в "1" во время сна всех передающих участников, с которым смогут адекватно работать сторонние приборы, на борту которых Modbus и RS485.

Тот же вопрос и для полудуплексной передачи, там это точно также актуально...

 

Ну меня прям физически ломает работать с интерфейсом, который большую часть своего времени просто болтает на линии мусор, и не потому что прилетела какая-то дикая помеха и надо от нее отстроиться или ее поймать, а просто потому что ну такой вот он)))))

Edited by Quantum1

Share this post


Link to post
Share on other sites

54 minutes ago, Harbinger said:

Z-состояние (т.е. высокоимпедансное) там будет, если у всех устройств выключены и приёмники, и передатчики, и терминатор отсутствует. Если же хоть одно стоит на приёме - уже нагрузка в линии, от 12 до 96 кОм. Точнее было бы сказать - "неопределённое состояние". А тут уже решается по-разному. "Fail-safe" трансиверы, "растяжки", если ни того ни другого нет - программная обработка "мусора"...

 

 

Вроде разобрался fail safe это, выдача, 1 на выходе приемника когда дифференциальное состояние не определено, но....

"A drawback of these failsafe designs is their worst-case noise margin of 10 mV only, thus requiring external failsafe circuitry to increase noise margin for applications in noisy environments "

Т.е. при высоких помехах опять шляпа...

нужно еще и это...

contenteetimes-images-01steve-t-understa

 

 

Ну хоть что то... странно что такие очевидные вещи не прописаны как must have в самом стандарте...

 

 

Теперь последний вопрос с этими добавками адекватно будут работать всякие ПЛК, датчики, АЦП и иные участники пром. автоматизации, на которых указано RS-485 interface compatible... ?  или могут быть проблемы?

Edited by Quantum1

Share this post


Link to post
Share on other sites

2 часа назад, Quantum1 сказал:

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

image.thumb.png.8dd35cdb20471ce8d5e937feee9ab5c6.png

Картинка их документа "MODBUS over serial line specification and implementation guide V1.0". Как видно, в начале кадра есть пауза >=3.5 символа, во время которой передатчик уже включен и линия никуда не болтается. От нее приемник и должен отсчитвать кадр.

Share this post


Link to post
Share on other sites

Just now, Сергей Борщ said:

image.thumb.png.8dd35cdb20471ce8d5e937feee9ab5c6.png

Картинка их документа "MODBUS over serial line specification and implementation guide V1.0". Как видно, в начале кадра есть пауза >=3.5 символа, во время которой передатчик уже включен и линия никуда не болтается. От нее приемник и должен отсчитвать кадр.

Вы верно говорите, но это на линии... а на выходе микросхемы приемника при спящей линии может спокойно висеть 0, можно сказать неограниченное время(с какими то иными 1-ыми всплесками), что будет и должно постоянно приводить к FAIL-приему в софте обработчика приема...

Share this post


Link to post
Share on other sites

57 минут назад, Quantum1 сказал:

Вы верно говорите, но это на линии... а на выходе микросхемы приемника при спящей линии может спокойно висеть 0

Какая спящая линия? Передатчик 485 в паузе передает единицу. Честную единицу. Если приемник 485 в этот момент выдает что-то другое - его надо заменить на исправный. И все. Перед этими 3.5 символами тишины в линии может быть что угодно - за время 3.5 символов тишины любой применик любого УАПП (UART) обязан прийти в исходное состояние (в противном случае - рецепт такой же, как и с приемником 485). 

Share this post


Link to post
Share on other sites

44 minutes ago, Сергей Борщ said:

Какая спящая линия? Передатчик 485 в паузе передает единицу. Честную единицу. 

Нет. Передатчик в паузе переходит в Z-состояние

Share this post


Link to post
Share on other sites

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

Нет. Передатчик в паузе переходит в Z-состояние

Вы на картинку смотрели? Зеленый прямоугольник с надписью "Start" видели? Вот это и есть перевод передатчика в активный режим и держание линии передатчиком в состоянии IDLE, т.е. передача непрерывной стабильной единицы. После передачи, кстати, такой же прямоугольник с надписью "Stop".

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

1 hour ago, Сергей Борщ said:

Вы на картинку смотрели? Зеленый прямоугольник с надписью "Start" видели? Вот это и есть перевод передатчика в активный режим и держание линии передатчиком в состоянии IDLE, т.е. передача непрерывной стабильной единицы. После передачи, кстати, такой же прямоугольник с надписью "Stop".

T2hPr.jpg

 

вы что то путаете, старт бит вообще то "0". состояние ожидания - это обычное высокоимпедансное(т.е. случайное и сильно подверженное наведению помех), из которого приемный софт (если не предприняты меры указанные Harbinger) силиться что то выделить, а по сути копается в мусоре, с вероятностью пропустить полезное....

 

1 hour ago, Harbinger said:

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

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

Edited by Quantum1

Share this post


Link to post
Share on other sites

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

вы что то путаете, старт бит вообще то "0".

При чем здесь стартовый бит? Смотрите обоими глазами на картинку из описания Modbus:

image.thumb.png.8dd35cdb20471ce8d5e937feee9ab5c6.png

Видите зеленые прямоугольники с надписями "Start" и "End"? Теперь читайте по губам: Это пауза в линии, во время которой передатчик принудительно включен и передает единицу. Это вызывает тишину в линии, от которой все и синхронизируется. Перед зеленым прямоугольничком с надписью "Start" и после зеленого прямоугольничка с надписью "End" в линии может твориться все, что угодно, включая ваше Z-состояние.

Share this post


Link to post
Share on other sites

Чтобы не было лишнего мусора нужно выход приемника RS485 подтягивать к 1(ну или к 0 в зависимости от логики) . Иначе при переводе приемника в отключенное состояние на входе МК или своей плисины получите мусор. Остальное что касается линии уже достаточно пояснил Сергей Борщ

 

Share this post


Link to post
Share on other sites

4 часа назад, smart_pic сказал:

Чтобы не было лишнего мусора нужно выход приемника RS485 подтягивать к 1

Чет не понял, при простое выход передачи уарта обязан быть в 1, передатчик RS485 должен быть выключен, какой тут может быть мусор - ума не приложу...

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...