|
Помехозащищенный RS-485 |
|
|
|
Sep 2 2015, 12:15
|
Местный
  
Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102

|
Здравствуйте! Мне нужно соединить два 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. На что надо обратить внимание, какие есть тонкости при организации такой линии связи? Впервые сталкиваюсь с этим, поэтому извиняюсь за, может быть, глупые или детские вопросы.
|
|
|
|
|
 |
Ответов
|
Sep 3 2015, 08:39
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(Atlantis- @ Sep 2 2015, 21:45)  желательно, чтобы под влиянием помех как минимум не вылетало USB. Это самое сложное. USB время от времени может вылетать сам по себе, безо всяких помех, просто от багов в софте Виндовс. Худо-бедно можно использовать WinUSB, при этом очень желательно подстраховаться самодельным вочдогом, который сделает детач-аттач при потере связи по USB. У меня в лаборатории на столе лежит некое устройство, которое верещит, когда обнаруживает, что в USB потерялись 8 или более SOF-ов подряд. Как известно, спецификация USB допускает потерю до 5 SOF-ов. Так вот, в среднем несколько раз в неделю это устройство верещит, иногда несколько раз в день. Без каких бы то ни было помех. Ну а как там виндовс на такие потери и прочие глюки USB реагирует - это можно только догадываться. Виндовый СDС класс драйвер - это полное дерьмо, он накрывается медным тазом в среднем примерно раз в месяц, COM порт исчезает, а детач-аттач не помогает, надо физически передергивать кабель. Цитата(Atlantis- @ Sep 2 2015, 21:45)  1. Какой приемопередатчик RS-485 лучше выбрать? Видел много всяких типа MAX485, ST485, ADM485 и остальные Лучше выбрать тот, у которого минимальная приемлемая скорость, от него помех будет меньше. Цитата(Atlantis- @ Sep 2 2015, 21:45)  2. Нужна ли гальваническая развязка? При условии, что питание и земля все равно будут общими. Развязка крайне желательна. В том числе по земле и питанию. Без развязки USB будет вылетать намного чаще. Кроме того желательно погуглить и использовать USB карту с хорошим чипом. Некоторые USB хосты и хабы имеют баги на уровне кремния, при их использовании сбои и зависания возрастают на порядки. Цитата(Atlantis- @ Sep 2 2015, 21:45)  3. Во многих приемопередатчиков пишут, что есть встроенная защита, надо ли ставить дополнительно TVS-диоды? На 5 м - не надо. Цитата(Atlantis- @ Sep 2 2015, 21:45)  4. Поскольку питание от USB, можно ли как то прикинуть ток потребляемый RS-485? Например так можно I=q/t=q*f=C*U*f ? При работе на линию с терминаторами с обоих сторон куча тока уйдет в терминаторы. Пример: размах сигнала 2.5В, линия с волновым сопротивлением 120 Ом, два терминатора по 120 Ом - нагрузка 60 Ом, 2.5/60 = 41 мА на одни только терминаторы. Цитата(Atlantis- @ Sep 2 2015, 21:45)  5. На что надо обратить внимание, какие есть тонкости при организации такой линии связи? Впервые сталкиваюсь с этим, поэтому извиняюсь за, может быть, глупые или детские вопросы. Чтобы обеспечить хороший уровень помехоустойчивости обмена по RS485, необходимо использовать соответствующий протокол, например, Modbus RTU. С самопальным протоколом, который "надеется" на одни только растягивающие резисторы, помехоустойчивость будет хуже в сотни раз. Впрочем, даже такой уровень помехоустойчивости, сам по себе достаточно вшивый, скорей всего окажется на порядок или на два лучше, чем помехоустойчивость USB.
|
|
|
|
|
Sep 3 2015, 09:55
|
Местный
  
Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102

|
Цитата(=AK= @ Sep 3 2015, 11:39)  Развязка крайне желательна. В том числе по земле и питанию. Без развязки USB будет вылетать намного чаще. Развязка по USB есть - ADUM4160 и по питанию - трансформатор, я спрашивал нужна ли еще дополнительно развязка по RS-485 при условии, что питание все равно будет передаваться по тому же кабелю. Цитата(=AK= @ Sep 3 2015, 11:39)  Чтобы обеспечить приемлемый уровень помехоустойчивости обмена по RS485, необходимо использовать соответствующий протокол, например, Modbus. С самопальным протоколом, который "надеется" на одни только растягивающие резисторы, помехоустойчивость будет хуже в сотни раз. Впрочем, даже такой, достаточно вшивый, уровень помехоустойчивости может оказаться на порядок или на два лучше, чем помехоустойчивость USB. Предполагается постоянная передача данных с датчиков и потеря данных или порча не страшна - вычисляется по контрольной сумме и просто отбрасывается испорченный пакет. Главное чтобы эти потери не были систематическими и помехи не выводили устройство из строя.
|
|
|
|
|
Sep 3 2015, 10:30
|
Местный
  
Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102

|
Цитата(=AK= @ Sep 3 2015, 13:12)  Я вам об этом и толкую. Вшивые самопальные протоколы RS-485 не обеспечивают доставку данных в условиях сильных помех, у них вообще все пакеты будут "битыми" и окажутся отброшенными. А Modbus RTU в таких условиях будет работать как ни в чем ни бывало. Не совсем понял. Если пройдет помеха и данные исказятся, то не сойдется контрольная сумма и пакет будет отброшен в любом случае. Как это будет работать как ни в чем ни бывало?
|
|
|
|
|
Sep 3 2015, 10:47
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(Atlantis- @ Sep 3 2015, 20:00)  Не совсем понял. Если пройдет помеха и данные исказятся, то не сойдется контрольная сумма и пакет будет отброшен в любом случае. Как это будет работать как ни в чем ни бывало? Не диво, этого не понимают большинство создателей самопала для RS-485. На шине RS-485 есть два состояния: 1) когда все передатчики выключены (бОльшую часть времени шина находится именно в этом состоянии) 2) когда один из передатчиков включен. В первом состоянии, для того, чтобы создать ложный сигнал, помеха должна пересилить резисторы подтяжки. Во втором состоянии помеха должна пересилить сигнал работающего передатчика RS-485, а он в сотню-другую раз мощнее, чем резисторы подтяжки. Создатели самопальных протоколов чаще всего не различают эти два состояния. Поэтому их протоколы как правило таковы, что помехи, наведенные в первом состоянии, вызывают порчу и отбрасывание пакета. В условиях сильных помех это приводит к тому, что отбрасывается практически каждый пакет. У cоздателей Modbus RTU было достаточно мозгов, чтобы создать протокол, на который вообще никак не действуют помехи в первом состоянии. В нем, чтобы испортить пакет данных, помеха должна пересилить включенный передатчик. Помехоустойчивость RS-485 c Modbus RTU сравнима с помехоустойчивостью RS-422 и даже превышает ее, поскольку передатчики RS-485 мощнее.
|
|
|
|
|
Sep 3 2015, 11:08
|
Местный
  
Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102

|
Цитата(=AK= @ Sep 3 2015, 13:47)  На шине RS-485 есть два состояния: 1) когда все передатчики выключены (бОльшую часть времени шина находится именно в этом состоянии) 2) когда один из передатчиков включен.
В первом состоянии, для того, чтобы создать ложный сигнал, помеха должна пересилить резисторы подтяжки. Во втором состоянии помеха должна пересилить сигнал работающего передатчика RS-485, а он в сотню-другую раз мощнее, чем резисторы подтяжки. Так можно в самопальном протоколе один из передатчиков всегда держать включенным?
|
|
|
|
|
Sep 3 2015, 11:14
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(Atlantis- @ Sep 3 2015, 20:38)  Так можно в самопальном протоколе один из передатчиков всегда держать включенным? Это называется RS-422, у него передатчики вообще не переводятся в третье состояние, они всегда включены. Для него можно любой протокол использовать, он изначально помехоустойчивый. Но это обмен точка-точка, с раздельными витыми парами, одна - на прием, другая - на передачу, дуплекс. А вы вроде как RS-485, то есть шину, многоточку, полудуплекс, собирались использовать? В полудуплексе вам поневоле придется выключать передатчик, иначе будете слышать только себя.
|
|
|
|
|
Sep 3 2015, 11:26
|
Местный
  
Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102

|
Цитата(=AK= @ Sep 3 2015, 14:14)  Это называется RS-422, у него передатчики вообще не переводятся в третье состояние, они всегда включены. Для него можно любой протокол использовать, он изначально помехоустойчивый. Но это обмен точка-точка, с раздельными витыми парами, одна - на прием, другая - на передачу, дуплекс. А вы вроде как RS-485, то есть шину, многоточку, полудуплекс, собирались использовать? Полудуплекс: один МК шлет команду (передатчик1 вкл), выключает передатчик после окончания передачи, второй МК принимает команду и сразу врубает свой передатчик.
|
|
|
|
|
Sep 3 2015, 11:55
|

pontificator
     
Группа: Свой
Сообщений: 3 055
Регистрация: 8-02-05
Из: страны Оз
Пользователь №: 2 483

|
Цитата(Atlantis- @ Sep 3 2015, 20:56)  Полудуплекс: один МК шлет команду (передатчик1 вкл), выключает передатчик после окончания передачи, второй МК принимает команду и сразу врубает свой передатчик. Значит, есть промежуток времени, когда один мк уже закончил передачу и уже выключил свой передатчик, а второй еще не включил свой передатчик. Если в этот промежуток времени влезет помеха и создаст, например, ложный старт для UART-а, то при фиговом протоколе один только этот ложный старт испортит весь пакет. Если помех много, значит, надо считать, что помеха обязательно влезет в этот промежуток. Modbus RTU - это не панацея, а всего лишь пример помехоустойчивого протокола. Если подумать головой, то можно и самопальный придумать ничуть не хуже. Только думать надо именно головой. А для этого желательно сначала изучить Modbus RTU (благо он открытый) и понять, почему он устойчив к помехам. Когда это осознаете, можете изобретать свой самопал. А без изучения, наобум, "на авось" - придумаете очередной отстой.
|
|
|
|
|
Sep 3 2015, 12:43
|
Местный
  
Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102

|
Цитата(=AK= @ Sep 3 2015, 14:55)  и понять, почему он устойчив к помехам. Когда это осознаете, можете изобретать свой самопал. А без изучения, наобум, "на авось" - придумаете очередной отстой. За счет заданных таймаутов между кадрами?
|
|
|
|
|
Sep 3 2015, 13:42
|

Гуру
     
Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244

|
QUOTE (Atlantis- @ Sep 3 2015, 15:43)  За счет заданных таймаутов между кадрами? Да нет, за супер-пупер помехозащищенность тут пытаются выдать САМУЮ МИНИМАЛЬНЕЙШУЮ меру по синхронизации начала фрейма. Ну а по хорошему ловля маркера начала фрейма из мусора при высоком уровне помех должна начинаться с захвата сначала битовой, а потом байтовой синхронизации, и только после этого уже смотреть на начало фрейма. Надеяться на то, что включенный передатчик является гарантией отсутствия помехи на стороне приемника это оптимистично. QUOTE (=AK= @ Sep 3 2015, 15:59)  Ваши высказывания про якобы "далеко не всегда включенные передатчики RS-422" являются чистым бредом. Нет там таких уровней сигнала, есть или 0 или 1. Не недо пытаться выкручиваться. В RS485 тоже "нет таких уровней сигнала, есть или 0 или 1". Сюрприз!!!  Просто везеде есть совершенно реальное состояние - ОТКЛЮЧЕННАЯ линия, она же оборванная  . И никакой стандарт не может этого факта отменить. QUOTE ..имеющие вдобавок еще третье состояние передатчика, то сам стандарт RS-422 от этого ни на йоту не изменяется. Золотые слова  ! НЕ МЕНЯЕТСЯ, по причине того, что он НИКАК не требует НЕОТКЛЮЧЕНИЯ передатчика. Так что и производители и пользователи совершенно законно, сообразуясь со своими разумениями и потребностями, или ИСПОЛЬЗУЮТ, или нет, отключение передатчика в ПОЛНОМ согласии со стандартом.
--------------------
Feci, quod potui, faciant meliora potentes
|
|
|
|
Сообщений в этой теме
Atlantis- Помехозащищенный RS-485 Sep 2 2015, 12:15 skripach 1 Какой вам больше нравится, соответствующий вашей... Sep 2 2015, 13:35 zltigo QUOTE (skripach @ Sep 2 2015, 16:35) ок з... Sep 2 2015, 13:47 Atlantis- Цитата(skripach @ Sep 2 2015, 16:35) 1 Ка... Sep 3 2015, 05:07  skripach Цитата(Atlantis- @ Sep 3 2015, 08:07... Sep 3 2015, 06:39  HardEgor Цитата(Atlantis- @ Sep 3 2015, 11:07... Sep 3 2015, 07:15   Atlantis- Цитата(HardEgor @ Sep 3 2015, 10:15) Вы у... Sep 3 2015, 07:28          =AK= Цитата(Atlantis- @ Sep 3 2015, 22:13... Sep 3 2015, 12:59           =AK= Цитата(zltigo @ Sep 3 2015, 23:12) Не нед... Sep 3 2015, 21:25            Ruslan1 Цитата(=AK= @ Sep 4 2015, 00:25) RS-422 п... Sep 4 2015, 03:56             =AK= Цитата(Ruslan1 @ Sep 4 2015, 13:26) Цитат... Sep 4 2015, 04:06              Ruslan1 Цитата(=AK= @ Sep 4 2015, 07:06) Приемник... Sep 4 2015, 04:27               =AK= Цитата(Ruslan1 @ Sep 4 2015, 13:57) Замеч... Sep 4 2015, 04:44            zltigo QUOTE (=AK= @ Sep 4 2015, 00:25) Вы бы хо... Sep 4 2015, 05:33       zltigo QUOTE (=AK= @ Sep 3 2015, 14:14) В полуду... Sep 3 2015, 11:47       Atlantis- Цитата(=AK= @ Sep 3 2015, 14:14) В полуду... Sep 3 2015, 11:54       zltigo QUOTE (=AK= @ Sep 3 2015, 14:14) Это назы... Sep 3 2015, 12:13 zltigo QUOTE (=AK= @ Sep 3 2015, 11:39) Чтобы об... Sep 3 2015, 11:26 =AK= Учите матчасть. В RS-422 не существут высокоимпеда... Sep 3 2015, 12:24 zltigo QUOTE (=AK= @ Sep 3 2015, 15:24) Учите ма... Sep 3 2015, 12:48 gte Цитата(=AK= @ Sep 3 2015, 16:24) Учите ма... Sep 4 2015, 07:27  =AK= Цитата(gte @ Sep 4 2015, 16:57) Вы в топи... Sep 4 2015, 10:35   zltigo QUOTE (=AK= @ Sep 4 2015, 13:35) а ублюдо... Sep 4 2015, 11:05    =AK= Цитата(zltigo @ Sep 4 2015, 20:35) Так-чт... Sep 5 2015, 01:47     Ruslan1 zltigo, не пытайтесь ответить на весь генерируемый... Sep 5 2015, 07:42 Dog Pawlowa В своем универсальном RS485/RS422 модуле я просто ... Sep 4 2015, 05:36 =AK= Цитата(Dog Pawlowa @ Sep 4 2015, 15:06) И... Sep 4 2015, 05:53 Atlantis- Собираюсь заказать трансиверы ST3485EB.
Смущает, ч... Sep 4 2015, 06:11 Ruslan1 Цитата(Atlantis- @ Sep 4 2015, 09:11... Sep 4 2015, 06:28  Atlantis- Цитата(Ruslan1 @ Sep 4 2015, 09:28) Норма... Sep 4 2015, 07:32   zltigo QUOTE (Atlantis- @ Sep 4 2015, 10:32... Sep 4 2015, 08:22   Ruslan1 Цитата(Atlantis- @ Sep 4 2015, 10:32... Sep 4 2015, 09:52    zltigo QUOTE (Ruslan1 @ Sep 4 2015, 12:52) Да но... Sep 4 2015, 10:30     Atlantis- Цитата(zltigo @ Sep 4 2015, 13:30) Хотело... Sep 4 2015, 13:43      zltigo QUOTE (Atlantis- @ Sep 4 2015, 16:43... Sep 4 2015, 14:05       =AK= Цитата(zltigo @ Sep 4 2015, 23:35) придет... Sep 4 2015, 21:43 Herz =AK=, Вы уже слишком увлеклись грубостями и оскорб... Sep 5 2015, 07:20 =AK= Цитата(Herz @ Sep 5 2015, 16:50) =AK=, Вы... Sep 5 2015, 08:17  Herz Цитата(=AK= @ Sep 5 2015, 11:17) Будьте к... Sep 5 2015, 19:24 Plain Цитата(Atlantis- @ Sep 2 2015, 15:15... Sep 5 2015, 14:10 zltigo QUOTE (Plain @ Sep 5 2015, 17:10) так что... Sep 5 2015, 14:56  Atlantis- Цитата(zltigo @ Sep 5 2015, 17:56) Для тр... Sep 6 2015, 10:56   Ruslan1 Цитата(Atlantis- @ Sep 6 2015, 13:56... Sep 6 2015, 11:24    Atlantis- Цитата(Ruslan1 @ Sep 6 2015, 14:24) Про г... Sep 6 2015, 12:21     =AK= Цитата(Atlantis- @ Sep 6 2015, 21:51... Sep 6 2015, 13:00      Atlantis- Цитата(=AK= @ Sep 6 2015, 16:00) Для пере... Sep 6 2015, 13:58     zltigo QUOTE (Atlantis- @ Sep 6 2015, 15:21... Sep 6 2015, 16:25      Atlantis- Цитата(zltigo @ Sep 6 2015, 19:25) USB эт... Sep 6 2015, 17:45       Владимир Цитата(Atlantis- @ Sep 6 2015, 20:45... Sep 6 2015, 17:52       zltigo QUOTE (Atlantis- @ Sep 6 2015, 20:45... Sep 6 2015, 18:25        Dog Pawlowa Цитата(zltigo @ Sep 6 2015, 21:25) тот-же... Sep 6 2015, 18:31        Atlantis- Цитата(zltigo @ Sep 6 2015, 21:25) Сильно... Sep 7 2015, 05:56         zltigo QUOTE (Atlantis- @ Sep 7 2015, 08:56... Sep 7 2015, 06:12          Atlantis- Цитата(zltigo @ Sep 7 2015, 09:12) Вы в э... Sep 7 2015, 06:23           zltigo QUOTE (Atlantis- @ Sep 7 2015, 09:23... Sep 7 2015, 06:44            Atlantis- Цитата(zltigo @ Sep 7 2015, 09:44) Давайт... Sep 7 2015, 06:55             zltigo QUOTE (Atlantis- @ Sep 7 2015, 09:55... Sep 7 2015, 07:17              Atlantis- Цитата(zltigo @ Sep 7 2015, 10:17) В обще... Sep 7 2015, 07:29             =AK= Цитата(Atlantis- @ Sep 7 2015, 16:25... Sep 7 2015, 07:30              Atlantis- Цитата(=AK= @ Sep 7 2015, 10:30) А нужен ... Sep 7 2015, 07:40          Atlantis- Цитата(zltigo @ Sep 7 2015, 09:12) Вы в э... Sep 7 2015, 11:34           zltigo QUOTE (Atlantis- @ Sep 7 2015, 14:34... Sep 7 2015, 12:10           Dog Pawlowa Цитата(Atlantis- @ Sep 7 2015, 14:34... Sep 7 2015, 12:14            Atlantis- Цитата(Dog Pawlowa @ Sep 7 2015, 15:14) У... Sep 7 2015, 12:42             Alexashka Цитата(Atlantis- @ Sep 7 2015, 15:42... Sep 8 2015, 04:50              Atlantis- Цитата(Alexashka @ Sep 8 2015, 07:50) При... Sep 8 2015, 05:50               Alexashka Цитата(Atlantis- @ Sep 8 2015, 08:50... Sep 8 2015, 09:10              Владимир Цитата(Alexashka @ Sep 8 2015, 07:50) USB... Sep 10 2015, 08:08               dinam Напишу немного практических результатов. Применяем... Sep 10 2015, 08:52 Panych По поводу помехозащищенности и развязок. Уже звуча... Sep 10 2015, 07:34 Atlantis- Цитата(Panych @ Sep 10 2015, 10:34) По по... Sep 10 2015, 09:09  Владимир Цитата(Atlantis- @ Sep 10 2015, 12:0... Sep 10 2015, 09:13 Atlantis- Подскажите пожалуйста один момент при применении R... Nov 20 2015, 15:50 Ruslan1 Atlantis, зачем все это? Не нужно еще один протоко... Nov 21 2015, 11:59 Alexashka Цитата(Atlantis- @ Nov 20 2015, 19:5... Nov 22 2015, 22:36  Atlantis- Цитата(Alexashka @ Nov 23 2015, 01:36) За... Nov 23 2015, 12:41   Alexashka Цитата(Atlantis- @ Nov 23 2015, 16:4... Nov 23 2015, 13:03    Atlantis- Цитата(Alexashka @ Nov 23 2015, 16:03) А ... Nov 23 2015, 14:18     Alexashka Цитата(Atlantis- @ Nov 23 2015, 18:1... Nov 23 2015, 17:16 =AK= Цитата(Atlantis- @ Nov 21 2015, 02:2... Nov 24 2015, 10:10 Сергей Борщ Проблемы на ровном месте. 5 метров кабеля по опера... Nov 21 2015, 14:15 zltigo QUOTE (Сергей Борщ @ Nov 21 2015, 16:15) ... Nov 21 2015, 14:22 Сергей Борщ Фигня какая-то. Если оба передатчика включены и вы... Nov 24 2015, 11:58 Ruslan1 Цитата(Сергей Борщ @ Nov 24 2015, 13:58) ... Nov 24 2015, 12:12  zltigo QUOTE (Ruslan1 @ Nov 24 2015, 14:12) Абсо... Nov 24 2015, 21:22   =AK= Цитата(zltigo @ Nov 25 2015, 07:52) Все ... Nov 25 2015, 01:37    Сергей Борщ Цитата(=AK= @ Nov 25 2015, 04:37) необход... Nov 25 2015, 08:44     =AK= Цитата(Сергей Борщ @ Nov 25 2015, 19:14) ... Nov 25 2015, 09:10 Plain О чём здесь всё ещё спор? Два МК, линия связи с па... Nov 24 2015, 22:24
2 страниц
1 2 >
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|