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

Помехозащищенный RS-485

Здравствуйте!

Мне нужно соединить два STM32F1 5-ти метровым кабелем. При этом один из МК будет подключен к USB, питаться тоже все будет от USB и предполагается гальваническая развязка по USB.

В итоге по 5-ти метровому проводу будут передаваться данные (скорость 1 Mbps) и питание.

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

Собственно предполагаю использовать RS-485 и исходя из этого есть вопросы:

1. Какой приемопередатчик RS-485 лучше выбрать? Видел много всяких типа MAX485, ST485, ADM485 и остальные

2. Нужна ли гальваническая развязка? При условии, что питание и земля все равно будут общими.

3. Во многих приемопередатчиков пишут, что есть встроенная защита, надо ли ставить дополнительно TVS-диоды?

4. Поскольку питание от USB, можно ли как то прикинуть ток потребляемый RS-485? Например так можно I=q/t=q*f=C*U*f ?

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

 

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


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

1 Какой вам больше нравится, соответствующий вашей скорости передачи.

2 Нет.

3 Встроенная защита и TVS бывают разные, не известно от чего вы хотите защититься. Ёмкость мощных TVS может быть проблемой на Мбитных скоростях.

4 Ток зависит от "растяжек", терминаторов, длины линии, выбранных драйверов... Я думаю стоит ориентироваться на пру десятков мА.

5 Ёмкость линии, терминаторы. 1 Мбит не так уж много, 5м не так уж далеко. :rolleyes:

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


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

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

Пару десятков, говорите? Драйвера (только передатчики) с 5V питанием, на короткую линию согласованную 100 омами, только в линию будут гнать до 100mA, не считая всего остального. Ну а ток при коротком замыкании линии обычен под 200mA.

 

 

 

 

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


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

1 Какой вам больше нравится, соответствующий вашей скорости передачи.

2 Нет.

3 Встроенная защита и TVS бывают разные, не известно от чего вы хотите защититься. Ёмкость мощных TVS может быть проблемой на Мбитных скоростях.

4 Ток зависит от "растяжек", терминаторов, длины линии, выбранных драйверов... Я думаю стоит ориентироваться на пру десятков мА.

5 Ёмкость линии, терминаторы. 1 Мбит не так уж много, 5м не так уж далеко. :rolleyes:

1. Я видел, существуют трансиверы с питанием 3,3 вольта. Это как то снижает помехозащищенность? Еще нашел статью, в которой описывают "полностью защищенные трансиверы" MAX13443E. По скорости мне подходит и защита радует, но цена...в 5-10 раз обычных. Стоит оно того?

2. Точно не надо? На форуме писали, что без развязки может сбиваться процессор или вообще сгореть.

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

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


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

1. Я видел, существуют трансиверы с питанием 3,3 вольта. Это как то снижает помехозащищенность?

2. Точно не надо? На форуме писали, что без развязки может сбиваться процессор или вообще сгореть.

1. Я бы использовал именно 3.3в драйверы, в 5вольтовых нет никакой нужды. На помехозащищенность думаю если и влияет, то не значительно. К тому же с учетом замечания zltigo применение 3.3в драйверов позволит снизить общее потребление.

2. Объясните как по-вашему влияет гальваническая изоляция на "горючесть" процессора?

 

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


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

1. Я видел, существуют трансиверы с питанием 3,3 вольта. Это как то снижает помехозащищенность?

Никак не меняют. Уровни по стандарту RS-485 в любом случае одинаковы

Еще нашел статью, в которой описывают "полностью защищенные трансиверы" MAX13443E. По скорости мне подходит и защита радует, но цена...в 5-10 раз обычных. Стоит оно того?

Та защита имеет смысл на длинных линиях в сотни-тысячи метров, у вас всего 5 метров.

2. Точно не надо? На форуме писали, что без развязки может сбиваться процессор или вообще сгореть.

Может, если связанные процессоры питаются от разных источников не имеющих гальваническую связь.

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

Если у вас 5 метров в лабораторных условиях - подойдет любой подходящий по скорости.

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


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

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

Если у вас 5 метров в лабораторных условиях - подойдет любой подходящий по скорости.

Условия операционной и работа электрокоагулятора. Например USB вылетает в таких условиях, поэтому помехи, думаю, серьезные и хотелось бы защититься максимально возможно.

1. Я бы использовал именно 3.3в драйверы, в 5вольтовых нет никакой нужды. На помехозащищенность думаю если и влияет, то не значительно. К тому же с учетом замечания zltigo применение 3.3в драйверов позволит снизить общее потребление.

Да дело еще в том, что у меня все питается от 3,3 и не хотелось бы городить дополнительные преобразователи.

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


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

желательно, чтобы под влиянием помех как минимум не вылетало USB.

Это самое сложное. USB время от времени может вылетать сам по себе, безо всяких помех, просто от багов в софте Виндовс. Худо-бедно можно использовать WinUSB, при этом очень желательно подстраховаться самодельным вочдогом, который сделает детач-аттач при потере связи по USB.

 

У меня в лаборатории на столе лежит некое устройство, которое верещит, когда обнаруживает, что в USB потерялись 8 или более SOF-ов подряд. Как известно, спецификация USB допускает потерю до 5 SOF-ов. Так вот, в среднем несколько раз в неделю это устройство верещит, иногда несколько раз в день. Без каких бы то ни было помех. Ну а как там виндовс на такие потери и прочие глюки USB реагирует - это можно только догадываться. Виндовый СDС класс драйвер - это полное дерьмо, он накрывается медным тазом в среднем примерно раз в месяц, COM порт исчезает, а детач-аттач не помогает, надо физически передергивать кабель.

 

1. Какой приемопередатчик RS-485 лучше выбрать? Видел много всяких типа MAX485, ST485, ADM485 и остальные

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

 

2. Нужна ли гальваническая развязка? При условии, что питание и земля все равно будут общими.

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

 

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

 

3. Во многих приемопередатчиков пишут, что есть встроенная защита, надо ли ставить дополнительно TVS-диоды?

На 5 м - не надо.

 

4. Поскольку питание от USB, можно ли как то прикинуть ток потребляемый RS-485? Например так можно I=q/t=q*f=C*U*f ?

При работе на линию с терминаторами с обоих сторон куча тока уйдет в терминаторы. Пример: размах сигнала 2.5В, линия с волновым сопротивлением 120 Ом, два терминатора по 120 Ом - нагрузка 60 Ом, 2.5/60 = 41 мА на одни только терминаторы.

 

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

Чтобы обеспечить хороший уровень помехоустойчивости обмена по RS485, необходимо использовать соответствующий протокол, например, Modbus RTU. С самопальным протоколом, который "надеется" на одни только растягивающие резисторы, помехоустойчивость будет хуже в сотни раз. Впрочем, даже такой уровень помехоустойчивости, сам по себе достаточно вшивый, скорей всего окажется на порядок или на два лучше, чем помехоустойчивость USB.

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


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

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

Развязка по USB есть - ADUM4160 и по питанию - трансформатор, я спрашивал нужна ли еще дополнительно развязка по RS-485 при условии, что питание все равно будет передаваться по тому же кабелю.

Чтобы обеспечить приемлемый уровень помехоустойчивости обмена по RS485, необходимо использовать соответствующий протокол, например, Modbus. С самопальным протоколом, который "надеется" на одни только растягивающие резисторы, помехоустойчивость будет хуже в сотни раз. Впрочем, даже такой, достаточно вшивый, уровень помехоустойчивости может оказаться на порядок или на два лучше, чем помехоустойчивость USB.

Предполагается постоянная передача данных с датчиков и потеря данных или порча не страшна - вычисляется по контрольной сумме и просто отбрасывается испорченный пакет. Главное чтобы эти потери не были систематическими и помехи не выводили устройство из строя.

 

 

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


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

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

Я вам об этом и толкую. Вшивые самопальные протоколы RS-485 не обеспечивают доставку данных в условиях сильных помех, у них вообще все пакеты будут "битыми" и окажутся отброшенными. А Modbus RTU в таких условиях будет работать как ни в чем ни бывало.

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


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

Я вам об этом и толкую. Вшивые самопальные протоколы RS-485 не обеспечивают доставку данных в условиях сильных помех, у них вообще все пакеты будут "битыми" и окажутся отброшенными. А Modbus RTU в таких условиях будет работать как ни в чем ни бывало.

Не совсем понял. Если пройдет помеха и данные исказятся, то не сойдется контрольная сумма и пакет будет отброшен в любом случае. Как это будет работать как ни в чем ни бывало?

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


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

Не совсем понял. Если пройдет помеха и данные исказятся, то не сойдется контрольная сумма и пакет будет отброшен в любом случае. Как это будет работать как ни в чем ни бывало?

 

Не диво, этого не понимают большинство создателей самопала для RS-485.

 

На шине RS-485 есть два состояния:

1) когда все передатчики выключены (бОльшую часть времени шина находится именно в этом состоянии)

2) когда один из передатчиков включен.

 

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

 

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

 

У cоздателей Modbus RTU было достаточно мозгов, чтобы создать протокол, на который вообще никак не действуют помехи в первом состоянии. В нем, чтобы испортить пакет данных, помеха должна пересилить включенный передатчик. Помехоустойчивость RS-485 c Modbus RTU сравнима с помехоустойчивостью RS-422 и даже превышает ее, поскольку передатчики RS-485 мощнее.

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


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

На шине RS-485 есть два состояния:

1) когда все передатчики выключены (бОльшую часть времени шина находится именно в этом состоянии)

2) когда один из передатчиков включен.

 

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

Так можно в самопальном протоколе один из передатчиков всегда держать включенным?

 

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


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

Так можно в самопальном протоколе один из передатчиков всегда держать включенным?

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

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


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

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

Помехоустойчивость канала связи и протокол это все-же разные вещи.

, например, Modbus RTU.

Как человек почти вся жизнь занимающийся всевозможными связными потоколами могу точно сказать, что Modbus RTU есть натуральное дерьмо. Это, конечно, не означает, что хуже "изобрести" нельзя, но на профессионально рожденный пртокол он ни как не тянет. Ну и протоколах - автор не говорил, ни то, что у него пакетный обмен ни то, что master-slave. Так что о протоколе разговор отдельный. Ну и на "5 метров" дуплексный RS422 почти наверняка будет предпочтительный.

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


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

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

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

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

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

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

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

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

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

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