Этот вопрос мне пришлось задать себе лет десять назад или больше. Работа, которую надо было сделать, заключалась в дарении второй жизни диспетчерскому щиту. Это такая штука во всю стену, состоящая из лампочек и выключателей с переключателями. Думаю, не ошибусь, предположив, что щиты стали делать с тех пор, как появились лампочки, поскольку выключатели к тому времени, наверняка, уже были известны. А тяга к прекрасному, вообще, пришла к людям из далекой древности.
Сейчас многие предпочтут щитам дисплейные панели. Но будут ли любители дисплеев в большинстве, зависит от многого, нам неведомого. Но сейчас речь не об этом.
Каждый, кто может в течение пяти минут поддерживать разговор об электропроводке, сразу скажет мне, что щит состоит из плоских панелей, на которых размещены выключатели и лампочки, а также из ящика со множеством проводов. Ведь лампочка без проводов только для того и годится, чтобы ее или тупо разбить или, если подойти творчески и включить воображение, разместить у самого пытливого во рту и довольно быстро узнать, где находится травмпункт.
Все так и было, куча проводов, уходящих из ящика к выключателям и лампочкам, только лампочки — маленькие. Видимо, внучки знаменитой лампочки Ильича.
И вот, помнится, глянул за окно, а там 21-й век. Стало быть надо все делать заново и по-другому. Вместо лампочек — экономичные светодиоды. Вместо проводов — проводки. Вместо одного ящика — много-много маленьких ящичков, контроллеров, стало быть.
Оказалось, что если каждый контроллер сможет обслуживать четыре светодиода и два переключателя то это будет выглядеть оптимальненько. В смысле, не так ужасающе. А если через все контроллеры будет проходить шина питания и информационная шина, всего четыре провода, то появится некое изящество. Оказалось также, что контроллеров потребуется 104 штуки. По-хорошему, тут надо было бы поставить и решить задачу коммивояжера. И тогда, возможно, контроллеров потратили бы меньше. Но было не до хорошего.
К тому времени я уже знал, что такое CAN и уровень моего уважения к фирме Bosch был много выше, нежели у повара приличного ресторана или аккуратной домохозяйки. А производители автомобилей BMW, я уверен, даже ходили к инженерам Bosch в гости.
Controller Area Network, как сказали бы иностранцы, на мой взгляд, как техническое решение, возникло из желания сделать что-то, наконец, хорошо. Не скрою, все прелести результатов работы инженеров почувствуешь не сразу, как осилишь два тома стандарта, а значительно позже. Когда пообщаешься с очевидцами, опросишь свидетелей. Сейчас томов прибавилось, но, может быть, можно сразу начинать с третьего, поскольку, теперь оно называется CAN_FD. Однако, позвольте продолжить.
Еще до столкновения со щитом мне пришлось столкнуться с чужими инженерными решениями на тему использования CAN, а также наделать и своих ошибок. Ошибки обычно появляются в перерывах между чтением инструкций и изучением описаний. Хорошо, что только со второго раза они выглядят как грабли.
Теперь несколько тысяч слов для читателя, который терпимо относится к занудам и не считает их врагами.
Видео:Лекция 256. Интерфейс RS-485Скачать
CAN можно установить там, где раньше работал RS485 на витой паре. Витая пара — это не непременное условие, просто удобно сравнивать. Используя витую пару, по CAN, как и по RS485, можно передать сообщения от управляющего контроллера к подчиненному и получить ответ. Сходство бросается в глаза, но, давайте лучше остановимся на отличиях. Кое-какие из отличий могут нести знак минус для некоторых из читателей. Но им бы я посоветовал не огорчаться, а вспомнить закон Ломоносова.
Благодаря синхронной организации протокола разрешение коллизий на шине реализовано аппаратно, на лету, так сказать. Ниже отмечено, к чему это приводит и что это дает непоседливому инженеру.
Можно получить сообщение и без запроса.
Не надо ждать, когда ответ будет готов, можно спросить в это время еще кого-то.
Подчиненный контроллер тоже может спросить и получить ответ.
Из-за синхронной работы длина шины CAN обратно пропорциональна скорости передачи или типа того.
Максимальная скорость составляет 1 Мбод (10 — на подходе).
То, что сообщение не исказилось при передаче отправляющий знает сразу после последнего бита. Точнее, это знают все на шине.
Если сообщение исказилось для одного, попытка не засчитывается всеми.
Если сообщение удалось передать в шину, то абонент не получит его лишь при условии, что сломался.
Количество контроллеров на шине не должно превышать 127.
Сообщения ограничены по длине. Они состоят из идентификатора, указателя длины в байтах и блока данных, именно с таким количеством байт, как указано. Есть еще несколько служебных битов, но о них пока помолчим, поскольку сервис должен быть ненавязчивым. Идентификатор может быть размером 11 или 29 бит. Блок данных может содержать от 0 до 8 байт (64 — на подходе).
Для конкретики приведу немного цифр. Если хочется работать на скорости 1Мбод, то длина шины не должна быть больше 35 метров (некоторые предпочитают 40, то есть, погорячее). Если необходимо передать что-то на расстояние до 8 км, то скорость не должна превышать 5 Кбод. Кстати, читатель вправе спросить, почему килобод, а не килобит? Потому, что не все боды становятся битами. Как-то так.
Как можно распорядиться всеми этими совсем не секретными ингредиентами? Те, кто во всем видят игру в кубики, сразу вспомнят, что есть такая замечательная вещь, как CANopen и еще много красивых сочетаний и аббревиатур и нечего изобретать велосипед. Таким мне часто хочется ответить: «Разве не похожа на велосипед та яичница из двух яиц, которую многие готовят себе на завтрак? Почему бы не сходить в общепит и не взять себе омлет?». Но я лучше промолчу и продолжу, не отвлекаясь на выкрики из зала.
Читайте также: Чернитель для шин hi gear
В те времена, когда 29 битовый идентификатора еще не успели придумать, существовал только 11 битовый. Одни его стали использовать, чтобы запихнуть туда название (номер) нужного вида данных. Другие использовали как адрес контроллера, к которому обращаются. И то и другое имело смысл. Например, можно спросить так:
- А подай-ка нам, милейший, шато тринадцатого года в литровой бумажной упаковке.
Заверните мне, пожалуйста, то, что спрятано у вас на самой нижней полке справа.
Кстати, в CAN может сработать и такая конструкция:
Всем лежать! А ты быстро складывай все с полок мне в сумку.
Но этой конструкцией часто не попользуешься, поскольку после придется какое-то время ждать.
Ждать пока все ответы не выстроятся один за другим и не поступят в распоряжение запрашивающего контроллера. Мы уже ушли от кино, если что.
Меня в моем случае устроил бы вариант идентификатора в качестве адреса. Из 11 бит требовалось 7 и еще 4 оставалось на то, чтобы сделать одни сообщения более срочными по сравнению с другими, а также пометить часть контроллеров как главные.
Некоторое неудобство перекочевало сюда из RS485, а именно, адреса надо было устанавливать вручную на каждом контроллере. Затем проверять и переустанавливать. И, возможно, вернуться к предыдущему шагу и повторить.
К счастью, к тому времени уже существовали два обстоятельства.
Первое — уже появился 29 битный идентификатор. А второе то, что многие производители микроконтроллеров стали считать хорошим тоном условие, чтобы каждый чип имел свой уникальный и довольно длинный номер.
Видео:лекция 403 CAN шина- введениеСкачать
Теперь в длинном идентификаторе можно было 24 бита смело отвести для уникального адреса. Еще 5 оставалось, для заботы о том, чтобы поезда различались срочностью, направлением (туда, обратно), наличием вагона-ресторана и вагонов с повышенным комфортом.
Если перестать дурачиться и сделаться серьезным, назвать подчиненных контроллеров агентами, а остальных боссами, то можно составить таблицу. Она будет показана немного позже.
Еще немного про адресацию. Уникальный номер чипа, как правило, занимает количество битов значительно превышающее 24, например, 96 у STM32FXXX. Поэтому необходимо как-то получить 24 из 96. Я выбрал операцию XOR. Вы можете выбрать что-то другое, но небольшая проблема останется. Это совпадения адресов после редуцирования.
Вероятность появления этой проблемы крайне мала, но она есть. Она решаема, но добавляет работы наладчикам. Здесь надо вспомнить, что сообщения CAN могут не содержать данных совсем. Это нам и пригодиться при решении. Оно состоит из следующих действий.
Управляющий контроллер (босс) отправляет широковещательный запрос, на который должны ответить все агенты (это запрос с нулевым адресом). Ответные сообщения с нулевой длиной данных и совпадающими адресами не испортят друг-друга, а достигнут босса в виде одного.
Теперь останется подсчитать сколько получено ответов и сколько их должно быть. Если эти два числа совпадают, значит все в порядке. Если ответов меньше чем контроллеров, то налицо совпадение адресов и наладчикам есть работа. А если ответов больше, нежели контроллеров, то надо подумать о диссертации, поскольку, вы — на пороге открытия.
Если изменение длины сообщения рассматривать как некоторые вариации его смысла, то можно получить дополнительные возможности, о которых позже расскажу, если мама не позовет кушать.
Еще из интересного, если использовать и короткие и длинные идентификаторы одновременно, то можно получить, например, адресацию групп или частично широковещательные запросы. Но не будем пока углубляться.
Вернемся к кодированию идентификатора.
Для целей адресации в расширенном идентификаторе отведено 24 бита, а в стандартном – шесть. Адрес со значением 0x000000 является широковещательным для расширенного идентификатора. Для стандартного идентификатора нулевой адрес (6 его бит) также считается широковещательным. Пять начальных (старших) битов в длинном и коротком идентификаторе, называются заголовком, влияют на смысл сообщения и обозначаются буквами NVADR:
Конечно, для диспетчерского щита потребовалось реализовать только часть этой схемы. В первом проекте со щитом (или на щите, как правильно?) использовались чипы Cortex от NXP, а в следующих проектах (были и такие) уже применялись M0 от STMicroelectronics.
Видео:интерфейс rs 485 и микроконтроллерыСкачать
Пару слов об использовании коротких идентификаторов. Те шесть бит, которые отводятся для адресации, адресуют не контроллер, а группу. Эта группа при старте сначала у всех нулевая. Далее производится конфигурирование агентов, после которого часть из них или все становятся принадлежащими своей группе. Теперь запросом к группе, мы получаем ответы тех агентов, которые мы собрали в эту группу.
Теперь, немного о том, что добавляется, если по-разному трактовать сообщения с различной длиной данных. Например, запрос с нулевой длиной хорошо помогает при отладке, как уже упоминалось выше. Запрос с длиной 3 обслуживает пространство байтовых переменных размером 16384. Запрос с длиной 4 делает то же самое, но предназначен для агента-шлюза, который обслуживает CAN шину второго уровня. Эта шина может состоять из одного-двух агентов, зато удаленных на пару километров.
Запрос с длиной 5 и 6, аналогично, предназначены для пространства двухбайтовых переменных размером 4194304. Два бита используются не для адресации. Один бит управляет записью-чтением. Другой сигнализирует об ошибке.
Далее 7 и 8 обслуживают четырех байтовые слова. Их тоже 4194304.
Эти пространства являются общими для всех агентов. Каждый из них, в зависимости от предназначения, использует только отрезок пространства переменных. Контроллер для измерения температуры в двух точках представлен на фото. Это для отладки и тестирования.
Читайте также: W204 сброс давления шин
Соединяются контроллеры плоским шлейфом на 6 жил. На питание идут сдвоенные. Микросхема о двадцати ногах — это STM32F042.
С обратной стороны присутствует MAX3051, формирователь CAN в корпусе SOT23-8.
Ну вот, мама кушать зовет.
CAN против RS 485: почему тенденция направлена в сторону CAN
В отличие от предыдущих стандартов физического уровня, в частности RS‑423, RS‑422 и RS‑232, появление RS‑485 стало поистине эволюционным этапом. Системы связи с поддержкой данного стандарта представляют собой многоточечную систему и имеют до 32 узлов в одиночной системе (с репитерами до 256).
Примерно в то же время, когда создавались упомянутые выше интерфейсы, используемые в таких приложениях, как компьютерные клавиатуры и мыши, принтеры и оборудование для промышленной автоматизации, интерфейс CANbus проектировался как автомобильная коммуникационная платформа, предложенная Робертом Бошем (Robert Bosch), владельцем компании Robert Bosch GmbH, для снижения стоимости производства авто. Эта шина стала альтернативой традиционным толстым многожильным автомобильным кабелям и упростила их прокладку благодаря применению многоузловых шин. Впервые представленный в модели BMW‑850 в 1986 году, автомобильный CAN-интерфейс сэкономил в ней более 2 км различных проводов! Кроме того, было значительно сокращено количество разъемов, а оценочная экономия веса машины составила 50 кг [1] . Так сложилось, что RS‑485 был предназначен для нужд промышленного рынка, а CAN — для автомобильного и транспортного сегмента, но постепенно он нашел место и в приложениях, скажем так, вне своей юрисдикции, то есть в автомобильной и аэрокосмической отраслях.
Видео:Трансиверы CAN шины TJA1050, MCP2551 как альтернатива RS485Скачать
Благодаря своей высокой устойчивости при эксплуатации в непростых условиях, характерных для автомобильных приложений, возможностям защиты от сбоев и уникальной обработке сообщений CANbus теперь используется там, где прежде никогда не был распространен. Нынешние рыночные тенденции демонстрируют все более широкое внедрение CANbus, порой заменяющего RS‑485 в традиционных индустриальных программах.
Согласно рыночным отчетам, применение CANbus увеличивается в разы, что является исключительным фактом для рынка интерфейсов. И хотя отчеты не разделяют промышленные и автомобильные рынки, многие согласны с тем, что промышленные рынки составляют около 20–30% от общего объема выпускаемой продукции. Рост использования интерфейсов в автомобильной промышленности можно объяснить распространением электроники, установленной сегодня в автомобилях. Современные автомобили имеют сложные микропроцессорные системы, необходимые для таких функций, как резервные камеры, автоматическая парковка, информационно-развлекательные системы, распознавание слепых зон и многое другое. Появление данных подсистем связано с увеличением числа датчиков и микроконтроллеров в авто, требующихся для обработки информации от всех сложных систем, действующих внутри машины. Еще в 1990‑х годах многие автопроизводители начали переход от ручного переключения передач к автоматическим, а позже и к коробкам передач с электронным управлением, основанным на поступающих на микроконтроллер данных о скорости, положении дроссельной заслонки и информации от барометрических датчиков. Сегодня на одном транспортном средстве можно насчитать свыше 100 датчиков и микроконтроллеров, многие из которых общаются по шине CAN. Даже полностью электрический автомобиль Tesla S имеет внутри 65 микроконтроллеров [2].
На индустриальном рынке также наблюдается рост внедрения интерфейса CAN. Промышленные CAN-приложения имеют достаточно широкий охват и устанавливаются в самых разнообразных приложениях — от коммерческих беспилотных летательных аппаратов (дронов) до элементов управления лифтом и даже газонокосилками коммерческого назначения. Поставщики микросхем признают этот факт и разрабатывают продукты для удовлетворения все возрастающей потребности в CAN вне традиционного рынка автомобильной промышленности. Другой фактор, способствующий увеличению применения CAN в индустриальной сфере, — это переход многих инженеров‑автомобилестроителей в промышленный сегмент, где они, естественно, применили свой опыт работы с шиной CAN и ее уникальные преимущества. Еще одна причина внедрения интерфейса CAN на промышленном рынке связана с присущей ему отказоустойчивостью и способностью эффективно обрабатывать кадры сообщений на многоузловой шине.
Для того чтобы объяснить преимущества CAN по отношению к RS‑485, лучше всего оценить сходства и различия между двумя стандартами — ISO 11898-2-2016 [3] и TIA/EIA‑485 (сейчас действует ANSI TIA/EIA‑485‑A ) соответственно. Оба стандарта определяют уровни приемопередатчиков, которые представлены на диаграмме (рис. 1) для стороны передачи.
Оба протокола имеют дифференциальный выходной сигнал. Выход RS‑485 представляет собой классический дифференциальный сигнал, в котором один сигнал является инвертированным, или зеркальным отражением другого. Выход A — неинвертирующая линия, а выход B — инвертирующая линия. Дифференциальный диапазон +1,5…+5 В равен логической 1 или значению, а пределы –1,5…–5 В — логическому 0 или пробелу. Сигнал с уровнем, лежащим в диапазоне –1,5…+1,5 В, считается как неопределенный. Важно отметить, что когда RS‑485 не используется, то его выход пребывает в состоянии высокого импеданса.
У шины CAN выходной дифференциальный сигнал несколько иной. Так, здесь предусмотрено два выхода в виде CANH- и CANL-линий данных, которые являются отражением друг друга (рис. 1) и представляют собой инвертированную логику. В доминирующем состоянии (бит нуля, используемый для указания приоритета сообщения) CANH-CANL определяются как 0, когда напряжение на них составляет +1,5…+3 В. В рецессивном состоянии (1 бит и состоянии незанятой шины) сигнал драйвера определяется как логическая 1, когда дифференциальное напряжение находится в диапазоне –120…+12 мВ или в приближении к нулю.
Рис. 1. Сравнение допустимых уровней выходных дифференциальных сигналов драйверов RS 485 и CAN
Для стороны приемника стандарт RS‑485 определяет входной дифференциальный сигнал, когда он находится в пределах ±200 мВ…+5 В. Для CAN входной дифференциальный сигнал составляет +900 мВ…+3 В, а рецессивный режим находится в диапазоне –120…+500 мВ. Когда шина пребывает в режиме ожидания или когда не загружена и трансивер находится в рецессивном состоянии, напряжения на линиях CANH и CANL должны быть в рамках 2–3 В.
Читайте также: Шины kormoran all seasons
Как RS‑485, так и CAN имеют необходимый технологический запас по уровням распознавания для работы в приложениях, в которых сигнал может быть ослаблен из-за характеристик и качества используемого кабеля (экранированного или неэкранированного) и длины кабелей, что может сказаться на емкости подключения системы. Для сравнения допустимых уровней входных дифференциальных сигналов со стороны приемника RS‑485 и CAN следует обратиться к рис. 2.
Видео:MCP2515, контроллер CAN шины с интерфейсом SPIСкачать
Рис. 2. Сравнение допустимых уровней входных дифференциальных сигналов для RS 485 и CAN со стороны приемника
Кроме того, оба стандарта имеют нагрузочные согласующие резисторы с одинаковым значением 120 Ом, устанавливаемые на концах линии. Эти резисторы необходимы, чтобы обеспечить согласование линии связи по волновому сопротивлению линии передачи и тем самым избежать отражения сигнала. Другие технические характеристики, такие как скорость передачи данных и количество допустимых узлов, носят информационный характер, а не являются строгими требованиями, подлежащими обязательному выполнению. Для удовлетворения нужд рынка большинство выпускаемых RS‑485- и CAN-трансиверов превышает стандартную скорость передачи данных и допустимое количество узлов. Например, интегральный полудуплексный трансивер RS‑485 индустриального класса из микросхемы MAX22500E [4] от компании Maxim достиг скорости в 100 Мбит/с. А новый стандарт CAN-FD, ISO 11898-2:2016, хотя и определяет временные характеристики для скоростей 2 и 5 Мбит/с, но не ограничивает скорость передачи данных значением 5 Мбит/с. CAN-трансиверы превысят требования своего стандарта так же, как и приемопередатчики RS‑485. Что касается устойчивости к синфазному сигналу, параметр CMR (Common-Mode Range, диапазон синфазных напряжений) для RS‑485 составляет –7…+12 В и для CAN –2…+7 В.
Однако многим приложениям требуется более высокая производительность в части CMR, что относится к обоим типам рассматриваемых интерфейсов. Это связано с тем, что они в основном используются для многоузловых шин, а их узлы могут иметь источники питания с разными силовыми трансформаторами или кабели находиться в непосредственной близости к оборудованию с достаточно мощными переменными электромагнитными полями, способными повлиять на заземление между узлами системы. Таким образом, учитывая множество самых различных приложений, работающих в жестких условиях индустриальной среды, часто требуется более высокая устойчивость CMR, выходящая за пределы стандартных уровней –7…+12 В.
Для решения этой проблемы существуют приемопередатчики RS‑485 и CAN нового поколения, которые имеют значительно более широкий диапазон устойчивости к воздействию синфазной помехи, а именно до ±25 В. На диаграмме, приведенной на рис. 3, представлен флуктуирующий диапазон синфазного сигнала для приемопередатчика RS‑485. Несмотря на то, что сигнал синфазного напряжения растет вверх и вниз, пока уровень синфазного напряжения (VCM) находится в пределах допустимого диапазона, он не влияет на дифференциальный сигнал шины и приемник способен принимать и распознавать сигнал на линии без ошибок. Диаграмма на рис. 3 показывает допустимый диапазон изменения синфазного сигнала для RS‑485.
Рис. 3. Пояснение параметра CMR на примере трансивера RS 485
Еще одна особенность, присущая как приемопередатчикам CAN, так и RS‑485, — защита от сбоев. Устройства с защитой от ошибок имеют внутреннюю цепь защиты от воздействия повышенного напряжения на выходы драйвера входа приемника. Это необходимо, чтобы уберечь устройства от случайных коротких замыканий между локальным источником питания и линиями передачи. В данном направлении микросхемы компании Maxim занимают лидирующее положение в отрасли. Они, как, например, широко используемая и в настоящее время MAX13041, гарантируют уровни защиты от сбоев до ±80 В и даже с некоторым дополнительным запасом до полного пробоя и выхода цепи защиты из строя [5]. Причем важно то, что этот уровень защиты гарантируется независимо от того, подано питание на трансивер или он обесточен.
Среди основных причин того, почему в индустриальных приложениях предпочтение отдается CAN-, а не RS‑485‑трансиверам, следует назвать и способ обработки сообщений на шине. В мультиузловой системе, используемой для общения с микропроцессором RS‑485, могут быть случаи, когда несколько сообщений отправляются одновременно. Что иногда приводит к коллизиям, иначе известным как конкуренция. Если подобное происходит, состояние шины может оказаться неверным или неопределенным, что вызовет ошибки данных. Кроме того, такая конкуренция может повредить или ухудшить параметры производительности, когда несколько трансиверов RS‑485 на шине находятся в одном, а один приемопередатчик — в противоположном состоянии. Тогда от одиночного передатчика RS‑485 может потребоваться довольно значительный ток, который, вероятно, вызовет отключение микросхемы из-за превышения максимально допустимой температуры или даже приведет к необратимому повреждению системы. Здесь CANbus по сравнению с протоколом RS‑485 имеет большое преимущество. С помощью CANbus удается разрешить проблему передачи нескольких сообщений на линии путем ранжирования каждого из них.
Рис. 4. Формат кадра передачи данных CAN
Перед тем как приступить к работе по проектированию системы, инженеры назначают разные уровни задач. Ранее упоминалось, что CAN имеет доминантное и рецессивное состояние. Во время передачи сообщение с более высоким назначенным доминантным состоянием «выигрывает» конкуренцию и будет продолжать передачу, в то время как другие узлы с более низким приоритетом будут видеть доминирующий бит и прекратят передавать данные. Этот метод называется арбитражем, где сообщения приоритетны и принимаются в порядке их статуса. Узел, который проигрывает в результате более низкого назначенного приоритета, повторно отправит свое сообщение, когда его уровень окажется доминирующим. Это продолжается для всех узлов, пока они не выполнят передачу. На рис. 4 более подробно рассмотрен формат кадра данных сообщения в протоколе CAN. Эта временная диаграмма и таблица 1 наглядно демонстрируют, где и как происходит арбитраж.
Таблица 1. Формат кадра передачи данных в протоколе CAN
Видео:Что такое интерфейс RS485? Интерфейс RS485 и оборудование BolidСкачать
- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
📸 Видео
Лекция "Интерфейсы (часть I). RS-232/422/485. SPI"Скачать
Цифровые интерфейсы и протоколыСкачать
05 Интерфейс RS 232 и RS 485Скачать
Подробно про CAN шинуСкачать
Экспресс диагностика CAN шины на автомобиле. №21Скачать
RS232,RS485 Подключение CAN LOGСкачать
CAN шина на осциллографе FINIRSI ADS1013DСкачать
Лекция 18: RS485Скачать
Урок №18. Цифровые интерфейсы современного автомобиля: шины данных CAN и LINСкачать
RS-485. Обзор интерфейса передачи данныхСкачать
Интерфейсы RS-485Скачать
Шина CAN. Часть 1. Разбираемся как работает CAN bus, разберем кадр данных до "костей".Скачать
Интерфейс RS485.Скачать
7. Подключение Modbus-модулей к шине RS-485Скачать