|
Помехозащищенный 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. На что надо обратить внимание, какие есть тонкости при организации такой линии связи? Впервые сталкиваюсь с этим, поэтому извиняюсь за, может быть, глупые или детские вопросы.
|
|
|
|
|
 |
Ответов
|
Nov 20 2015, 15:50
|
Местный
  
Группа: Участник
Сообщений: 491
Регистрация: 18-05-11
Пользователь №: 65 102

|
Подскажите пожалуйста один момент при применении RS-485. Там надо переключать направление передачи данных. У меня два МК, первый соединен с USB и по сути передает второму МК команды и принимает от него данные. Я пока придумал такую логику, интересно насколько она верна. После сброса, включения питания, USB-МК настроен как передатчик (в смысле, находящийся на его стороне ресивер настроен как передатчик), второй МК настроен как приемник, ждет команд. USB-МК отправляет команду (или серию команд), направление передачи пока не переключаем, поскольку ответа не будет. Когда все во втором МК настроено, USB-МК посылает первый запрос данных, в прерывании по окончанию передачи - переключается на прием. Соответственно, второй МК после принятия такого запроса сразу же переключается на передачу, запускает таймер, который отсчитав 1 мс переключает МК на прием. Соответственно, время 1 мс выбрано потому что запросы данных будут приходить от USB-МК именно с такой частотой.
В принципе можно наверно вообще все команды привязать к этому принципу...то есть послал команду (USB-МК), переключился на прием, а второй МК переключает по таймеру всегда...
|
|
|
|
|
Nov 24 2015, 10:10
|

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

|
Цитата(Atlantis- @ Nov 21 2015, 02:20)  После сброса, включения питания, USB-МК настроен как передатчик (в смысле, находящийся на его стороне ресивер настроен как передатчик), второй МК настроен как приемник, ждет команд. USB-МК отправляет команду (или серию команд), направление передачи пока не переключаем, поскольку ответа не будет. Когда все во втором МК настроено, USB-МК посылает первый запрос данных, в прерывании по окончанию передачи - переключается на прием. Соответственно, второй МК после принятия такого запроса сразу же переключается на передачу, запускает таймер, который отсчитав 1 мс переключает МК на прием. Соответственно, время 1 мс выбрано потому что запросы данных будут приходить от USB-МК именно с такой частотой. Потенциальна проблема заключена в переходном периоде, когда один узел переключается с приема на передачу, а другой - с передачи на прием. С одной стороны, нельзя чтобы оба передатчика оказались включены одновременно, это криминал. С другой стороны, промежуток времени, когда оба передатчика выключены, должен быть коротким. А насколько коротким? Что произойдет за время, пока оба передатчика выключены? 1. Если помех мало, то ничего не произойдет. Резисторы подтяжки удерживают линию связи в пассивном состоянии, если нет помех, то вообще никто ничего не заметит. Если же помехи есть, то вероятность появления ложного сигнала пропорциональна "плотности" помех, а также пропорциональна длительности "опасного" интервала. 2. Если длительность "опасного" интервала очень мала, то приемник может "ничего не заметить" даже если помеха навелась прямо на этот интервал. Это зависит от того, как устроен приемник UART-а. Приемники "для оффисных применений" детектируют старт-бит по фронту, а сэмплируют принимаемые биты один раз ровно в середине бит-интервала. Совсем хреновые воплощения могут запустить прием по короткому фронту (помехового)сигнала, после чего даже не проверять уровень старт-бита в середине стартового бит-интервала. Приемники для индустриальных применений трижды сэмплируют данные в середине каждого бит-интервала, включая старт-бит. Можно надеяться, что и фронт сигнала они определяют по трем выборкам, хотя в даташитах подробности реализации как правило не раскрываются. При бодовой скорости 1 Mbps длительность помехи, которая может быть отсеяна "хорошей" реализацией UART-а, составляет малую долю микросекунды. Имеет ли смысл закладываться на этот механизм? Можно ли программно обеспечить "опасное" время, когда оба передатчика выключены, порядка 0.2-0.3 мкс? Нет, конечно. 3. Если длительность "опасного" интервала больше, чем в п.2, то в момент переключения коварная помеха может создать как минимум ложный старт-бит. Конечно, чем длиннее интервал переключения, тем больше вероятность, что это произойдет. Тем не менее, ложный старт-бит может появится, а значит, UART может принять ложный байт. Что с ним делать? Протоколы типа Modbus RTU устроены так, что ложно принятый в это время байт будет гарантированно отброшен. Самопальные протоколы такого как правило не умеют, они надеются на резисторы подтяжки, плюс, иногда (как в вашем случае) надеются на то, что вероятность этого события мала, поскольку длительность "опасного" интервала мала. Однако это паллиатив, т.е. всего лишь припарка, не более того. Правильное решение - когда ложный сигнал будет принят, но он будет отброшен. После этого совершенно не играет роли, насколько долог или короток был "опасный" интервал.
|
|
|
|
Сообщений в этой теме
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 2 2015, 21:45... Sep 3 2015, 08:39 Atlantis- Цитата(=AK= @ Sep 3 2015, 11:39) Развязка... Sep 3 2015, 09:55  =AK= Цитата(Atlantis- @ Sep 3 2015, 19:25... Sep 3 2015, 10:12   Atlantis- Цитата(=AK= @ Sep 3 2015, 13:12) Я вам об... Sep 3 2015, 10:30    =AK= Цитата(Atlantis- @ Sep 3 2015, 20:00... Sep 3 2015, 10:47     Atlantis- Цитата(=AK= @ Sep 3 2015, 13:47) На шине ... Sep 3 2015, 11:08      =AK= Цитата(Atlantis- @ Sep 3 2015, 20:38... Sep 3 2015, 11:14       Atlantis- Цитата(=AK= @ Sep 3 2015, 14:14) Это назы... Sep 3 2015, 11:26        =AK= Цитата(Atlantis- @ Sep 3 2015, 20:56... Sep 3 2015, 11:55         Atlantis- Цитата(=AK= @ Sep 3 2015, 14:55) и понять... Sep 3 2015, 12:43          =AK= Цитата(Atlantis- @ Sep 3 2015, 22:13... Sep 3 2015, 12:59          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 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 Сергей Борщ Проблемы на ровном месте. 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
|
|
|