|
Помехозащищенный 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, 12:59
|

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

|
Цитата(Atlantis- @ Sep 3 2015, 22:13)  За счет заданных таймаутов между кадрами? Нет. За счет механизма, гарантированно обеспечивающего очистку входного буфера приемника в начале каждого кадра передатчика. Когда начинает работать передатчик, весь мусор, наведенный помехами, будет вычищен. Поэтому сам пакет от передатчика будет принят приемником правильно. Конструкция этого механизма не единственно возможная, однако принцип очистки приемника должен соблюдаться. Цитата(zltigo @ Sep 3 2015, 22:18)  стандарт RS422 номирует ТОЛЬКО уровни сигналов и ничего более Ваши высказывания про якобы "далеко не всегда включенные передатчики RS-422" являются чистым бредом. Нет там таких уровней сигнала, есть или 0 или 1. И если производители делают микросхемы, совместимые с RS-422, но имеющие вдобавок еще третье состояние передатчика, то сам стандарт RS-422 от этого ни на йоту не изменяется.
|
|
|
|
Сообщений в этой теме
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          zltigo QUOTE (Atlantis- @ Sep 3 2015, 15:43... Sep 3 2015, 13:42           =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 >
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|