Подключение rs485 к компьютеру через com порт
А ещё такой вопрос. В документации на АС3-М написано, что устройство имеет согласующие резисторы. На какой номинал они должны быть настроены и от чего это зависит.
Схема подключения внешнего устройства с RS-485:
Закупили два прибора, установили, подключили, не работает. Проверили кабель связи, на одном конце закоротили две жилы на другом измерили сопротивление, прибор показал 45Ом. Перенесли компьютер из офиса к линии, соединили COM кабелем без АС3-М, всё работает. Пробовали подбирать подтягивающие сопротивления, никакого эффекта. Что делать?
UPort – это преобразователь USB в RS-232/422/485 производства MOXA, который добавляет СОМ порты на ПК.
Комментарии ( 28 )
Вроде-бы что нового можно узнать о таком простом интерфейсе? Но даже тут кое-что для себя почерпнул.
Спасибо!
Хорошо. Так на какой номинал нужно установить сопротивление резисторов и как узнать волновое сопротивление кабеля?
Как проверить RS-422 интерфейс?
Для проверки RS-422 можно также воспользоваться простым способом: достаточно замкнуть контакты TD+ на RD+ и TD- на RD-. Тогда все переданные данные будут приняты обратно.
Убедитесь, что UPort настроен на RS-422.
В терминале видны данные, которые мы отправили в СОМ порт.
Падение напряжения на кабеле при пиковом потреблении устройств
При выборе кабеля питания (или общего кабеля для питания и данных), нужно обратить внимание на:
- значение пикового потребления устройств,
- сечение и длину кабеля,
- напряжение блока питания.
При неправильном выборе кабеля и напряжения блока питания может произойти следующая ситуация: в момент пикового потребления на проводах питания случится бо́льшая, чем обычно, просадка напряжения; напряжение на самом устройстве станет меньше допустимого, и устройство отключится. Обычно после этого устройство само включается обратно, и в итоге возникает проблема, которую сложно диагностировать.
Пример расчета падения напряжения на кабеле
Дано: К кабелю КИС-В 2х2х0,60 общей длинной 50 метров подключено 5 шт датчиков MSW2 и 2 модуля реле MRM2-mini от блока питания 12В.
Пиковая потребляемая мощность (в момент включения реле) P = 5 * 0.5 W + 2* 2.5 W = 7.5 W., при этом средняя ~3W
Потребляемый средний ток I = P/U = 3 W/12 V =0.25 A и пиковый до 0.6А.
Сопротивление провода с d=0,6 mm составит R = 6 Ohm на 100 метров (туда и обратно).
Падение напряжения на кабеле (худший случай - все устройства на конце кабеля) будет V = I*R = 0.25*6 = 1.5 V в среднем и пиковое 3.6 V
На устройствах останется соответственно 10.5 V и 8.4 V, Но для питания нужно не менее 9V. Это приведет к нестабильной работе. В среднем все работает, но одновременное включение реле вызовет перезагрузку устройств.
Что можно сделать:
- Взять кабель с большим сечением жил.
- Использовать блок питания на 24V. Ток будет в два раза меньше (I = P/U = 0.3 A), падение напряжения на кабеле тоже меньше (1.8V), а запас по питанию будет очень большим (22V).
Подключение устройств
Так как все устройства соединяются общей шиной, следите за качественным соединением всех узлов линии:
- при обрыве линии устройства за обрывом не будут работать
- при коротком замыкании не будут работать все устройства.
Рекомендуем использовать штыревые наконечники под обжимку (НШВИ). Это позволяет легко подключать-отключать устройства без потери работоспособности остальных устройств на шине.
Провод A на всех устройствах подключается к клеммнику с маркировкой А, провод B - всегда к B. На Wiren Board рядом с клеммниками А и В расположены клеммники GND и Vout - можно сразу подключить линии питания (сначала проверьте требования к питанию ваших устройств!).
Клемма общего провода обозначается, в зависимости от оборудования, как SC, SG, G, GND, ground или reference. На контроллерах Wiren Board эта клемма обозначена как GND. При подключении к изолированному порту, нужно подключаться к изолированной земле данного порта (клеммы "GND iso").
Лайфхак: так как внутри Wiren Board стоит растяжка линий, после подключения его к шине напряжение на линии A будет больше, чем на B примерно на 0.5 В. Поэтому, подключая периферийные устройства, вы легко можете определить линии шины вольтметром. Но, конечно, цветовое кодирование проводников более предпочтительно.
Последнее время я делаю по большей части промышленные устройства и все чаще там используется именно RS-485. Потому как он используется как физический для множества протоколов, принятых в проме, таких, например, как MODBUS или ProfiBUS.
▌Принцип работы
Интерфейс RS485 хорош тем, что он, по сути дела, является дифференциальным вариантом RS-232 и его можно вешать на банальный USART любого микроконтроллера.
Физически он состоит из двух линий связи. А и B. Наличие земли желательно, но вовсе не обязательно. Отсутствие земли чаще всего чревато тем, что входящие данные будут иногда начинаться с нуля. Т.е. шлешь строку 0xBA 0xDF 0xF0 0x0D, а приходит 0х00 0xBA 0xDF 0xF0 0x0D, а дальше все нормально.
Исходный входной сигнал разделяется на два сигнала и они улетают вдаль по двум свитым проводам, витой паре.
По линии А идет прямой UART, как он есть, а по линии В его зеркальная копия. А в приемнике, на дифференциальном операционном усилителе, одно вычитается из другого и получается исходный сигнал.
Зачем это сделано? Зачем вообще такие сложности? Линия может длиться километры, да, для RS485 длина сегмента допускается до 1200 метров. На таком расстоянии сигнал, если его послать по одному проводу и земле, упадет на сопротивлении линии и до приемника дойдут считанные доли вольта. Тут же, у нас компаратор на входе усилит разность сигнала даже крошечной величины, восстановив исходный сигнал. Нет нужды четко соглассовывать уровень земли приемника и передатчика, на большом расстоянии это может быть тяжело решаемой задачей.
Это первое, но куда более важным является то, что таким образом намного увеличивается помехозащищенность самой линии. Ведь если рядом будет какая-то электромагнитная помеха, которая наведет на наш длиннющий провод колебание напряжения, то, так как оба провода идут рядом, во втором проводе наведется ТОЧНО такая же помеха. А поскольку у нас на входе сигнал разностный А-B, из помехи в проводе А будет вычтена такая же помеха в проводе В и она обнулится.
По такому же принципу, дифференциальной линии, делают очень многие критичные к помехам цепи. USB, Ethernet, LVDS да много где… где то линия одна, как в USB, где то их несколько, как в Ethernet или LVDS. Но суть остается той же.
Естественно по данной линии связи передача может идти только в одну сторону. Т.е. RS485 у нас полудуплексный. Мы вначале в него орем, а потом слушаем что нам ответили с другой стороны. Общаться в обе стороны, как в UART по Rx и Tx не выйдет. Ну или придется пускать уже четыре провода, одна для передачи, другая для приема.
В обычно в трансивере 485 интерфейса передатчик и приемник в одном корпусе, на одной линии, а направление выбирается ногой, уровень на которой определяет в каком режиме микросхема в приеме или в передаче.
На одной линии может висеть несколько приемников и передатчиков. Они подключаются просто параллельно.
Разумеется общаться они могут строго по одному и общий галдеж в линии приведет к полной неработоспособности всей сети. Никакого аппаратного арбитража на основе «приоритета нуля», как в I2C тут нет.
▌Железо
Классической микросхемой такого интерфейса служит MAX485 или ST485, или ADM485… В общем, если видите на плате восьминожку с надписью что-то там 485 — скорей всего это оно :)
Она подключается к USART микроконтроллера и еще нужна одна нога, чтобы указывать направление обмена. Прием у нас или передача.
Кроме микросхемы конвертера, содержащей в себе два компаратора-усилителя, нужные еще два резистора подтяжки и один терминатор, они задают первоначальное смещение линии и подавляют отражение.
Разберемся сначала с резистором-терминатором.
Сигнал идет по проводу быстро, но не мгновенно, более того, он дойдя до конца линии может отразиться и пойти обратно. Как вода в желобе, пускаешь по желобу волну, волна дошла до стенки и пошла обратно. И эта волна может столкнуться с волной следующего импульса, смешаться и получить полную кашу на выходе. Разумеется эти эффекты возникают только при длинных линиях (В ТОЭ прям есть раздел такой — длинные линии, разбирающий все эти волновые эффекты), либо на высоких частотах. Так как с ростом частоты «длинной» может стать линия даже в 5см, например, когда речь идет о гигагерцах.
Поскольку у нас RS485 может работать до скорости вплоть до 10Мбит, а дальность свыше километра, то такие эффекты могут возникнуть. Чтобы подавить отраженную волну и нужен резистор-терминатор. Он стоит у приемника между линиями А и В. Его сопротивление обычно 120ом. Это не спроста так, все дело в том, что волновое сопротивление витой пары, как правило, 120 ом и чтобы погасить волну резистор должен быть с ней согласован.
Но если у вас скорость 9600, а дальность десяток метров, то на это можно смело забить. В этом случае терминатор может даже мешать, излишне нагружая линию низкоомным сопротивлением. Но я все равно всегда развожу его и если не нужно, то просто не впаиваю.
Линию А подтягиваем вверх, а линию В вниз. Через резисторы в 1.2кОм с обеих концов.
Единственно, что у такого решения есть минус — через эти резисторы будет всегда течь ток и увеличивать потребление. Что может быть критичным для систем с батарейным питанием, но использующем RS485. Странная экзотика, но чего в жизни не бывает?
В этом случае можно использовать микросхемы с системой true failsafe, например MAX3080. Она позволяет отказаться от резисторов смещения, т.к. они мало того, что встроены в микросхему, так еще и пороги срабатывания там другие. И при обрыве или КЗ линии будут гарантировано давать 1 на выходе.
▌Защита
Так как линия у нас длинная, то на нее наводится всякая фигня. И естественно она прилетает нам в схему, учиняя беспредел. Первое с чем стоить бороться — перенапряжения. Для защиты от этого применяют супрессоры. Это такие мощные стабилитроны, часто собранные в одном корпусе встречно друг другу. И при превышении напряжения они открываются и стравливают перенапряжение в землю или питание, смотря как включено. А там с этой энергией разберутся конденсаторы и блок питания.
Разумеется поможет это только от кратких перенапряжений, от помех. От длительных перенапряжений нужны уже предохранители. Плавкие или самовосстанавливающиеся. Т.е. если что-то начало нам гнать в линию высокое напряжение, то вначале сработает супрессор, высадив его на землю, а потом выжгется предохранитель. Я использую SMBJ-5.0 супрессоры.
Также я ставлю варистор между А и В. Можно и двунаправленный супрессор поставить, но варистор компактней. Это резистор который пробивается на высоком напряжении. Резко уменьшая свое сопротивление с мегаомов до десяток ом. А потом вновь становится обрывом. У меня под это дело чтото вроде JMV0805S5R6T661 который открывается от 5.6 вольт и способен пережить 40А в пике.
Последнее время я не экономлю и делаю полноценную развязку интерфейсной части. Ставя туда питание на AM1D-0505SZ и изолируя интерфейс через ADM2483. Это RS485 трансивер со встроенной опторазвязкой.
Работает просто песня :)
▌Кабель, земля и экран
Вообще, на короткие расстояния, десятки метров, и при небольшой скорости, по 485 интерфейсу можно гнать сигнал через любое говно. Даже через старую, советскую плоскую телефонную лапшу. На практике же, для физического уровня приходится использовать все что под руку попадается и уже проложено на объекте. Например, кабель видеонаблюдения, с волновым сопротивлением в 75 Ом, но ему требуются низкоомные же терминаторы в 75 Ом, что снижает количество девайсов на одном сегменте — трансивер просто не вытащит по току. Второй популярный пример — комповая витуха, у ней волновое сопротивление 100Ом, что уже лучше. И сами кабели дешевые, но у них тонкая жила и по этому высокое сопротивление. Есть и специализированный кабель для RS485 с волновым сопротивлением в 120Ом, как по стандарту. Правда он дорогой, не всегда доступен и зачастую не нужен :)
Для улучшения качества передачи данных хорошо бы использовать экранированный провод. При этом оплетка кабеля подключается к заземлению, а к GND через резистор ом в сто (в случае опторазвязки — к изолированной GND) с одной стороны (. ) только с одной стороны! Чтобы не было протекания разных токов по ней.
Если же у нас есть земляной провод, то можно задействовать и его. В данном случае его называют дренажным. Его задача уравнивать потенциалы земель. И он подключается к земле устройства (при опторазвязке к изолированной земле) через сопротивление в сотню ом. Резистор тут надо выбирать хотя бы на пол ватта.
▌Борьба с граблями
Ну и напоследок еще парочка мелких граблей на которые можно наступить, так что лучше их сразу убрать. В момент передачи, микросхема MAX485 держит выход DO в HiZ, и вам туда может нателепать разного мусора. Поэтому линию RxD микроконтроллера подтягиваем к питанию. Либо включаем подтяжку внутри контроллера. Но я всегда это делаю внешним резистором. Надежней.
А линию DE/RE следует подтягивать к нулю. Зачем? А чтобы пока контроллер не стартанул, не проинициализировался и не привел свои ноги в нужный режим этот вывод не телепался без дела и не слал в линию разный мусор.
При перед передачей никогда не помешает сделать синхронизацию кадров. Т.е. передачи нет, все участники сети сидят и слушают. И вдруг какая-то помеха пробилась и сделал старт бит в линию. Естественно все «слушатели» начнут принимать данные и получат мусор. Да хоть тот самый ноль, о котором я выше говорил. Чтобы им и ограничилось крайне желательно сделать следующее. Переводим линию прием/передача в режим передачи, при этом у нас на TxD единичка, т.к. мы еще ничего не шлем. Но драйвер RS485 при этом выдаст уже уровни в линию. Ждем паузу, равную времени передачи двух трех байтов, чтобы весь мусор прошел и не затесался в нашу передачу и только после этого засылаем первый байт нашей передачи в UART. Это повышает надежность и качество передачи на порядок.
А еще не помешает контроль четности, и прочие методы анализа качества принятых данных. Расскажу об этом вследующий раз, когда буду разбирать MODBUS.
Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!
А я встрял на три года, как минимум, ежемесячной пахоты над статьями :)))))))))))) Спасибо вам за такой мощный пинок.
Последовательный порт (далее ПП) удобный инструмент для общения между разными периферийными устройствами (как собранные самостоятельно на основе какого-нибудь МК, так и заводские: принтеры, осциллографы и т.д.) с одной стороны, и ПК с другой. На сегодняшний день наиболее популярные из всех ПП являются RS232 стандарт (переводится как «Recommended Standard») за его простоту и USB стандарт («Universal Serial BUS») за его резвость.
USB бесспорно вещь полезная, но жудко навороченная. Поскольку многим самодельным устройствам бешенный обмен данными с ПК неособо нужон, тогда на помощи приходит простой, надежный и многоопытный RS232 Интерфейс.
По RS232 стандарту устройства участвующие в обмене данными бывают двух типов:
Data Terminal Equipment (DTE) (устройство отдающее команды — ведущий) и
Data Circuit-Terminating Equipment (DCE) (периферия, обслуживающая хозяина — ведомый). Нередко, некоторые периферийные устройства ведут себя как DTE (например осциллографы, или наши с вами девайсы).
Типы соединения
Модемное соединение — подрозумеваеи наличие некой иерархии, тоесть в случае когда в обмене данными участвуют больше чем два устройства им необходим некий арбитр (модем), разрешающий в определенный момент времени отсылать данные только одному устройству (в то время как читать могут хоть все остальные). Модемом может быть что угодно: отдельный девайс, или один из участников обмена данными, главное недопустить потери данных.
В случае когда устройств только два, или есть явный ведущий которого слушаются все остальные, никакого посредника им не нужно, а это означает что к их общению больше никто не подключится, и никакого арбитра в лице модема им не надо ( в отличие от предыдущего типа соединения, когда к одному принтеру можно подключить штук 10 ПК ). Опять-же главное недопустить одновременной отправки данных — в определенный момент времени, общатся может только одна пара устройств. Такое соединение называется нуль-модемное соединение:
Типы передач данных
Минимальное количество проводков необходимое для обмена данными равно двум (этокий жадный изврат), если передача является односторонней ([Tx, GND]). В случае когда необходимо полноценное — двухстороннее общение число проводков возростает аж до трех ([Rx, Tx, GND]). Большинство периферийных устройств поддерживают одновременную передачу и прием данных — full-duplex, но если один из собеседников на такое не способен, обмен переходит в разряд неполноценных — half-duplex (пока один не закончил передачу/прием другой пляшит под его дудку).
Распиновка COM разъёма
В столбце Signal Name, DATA Terminal можно заменить на ПК (то есть Data Terminal Ready соответствует ПК готов к работе), а DATA Set на Периферия.
Как следует из предыдущей таблицы, все пины делятся на управляющие (control pins) и транспортные (Data pins). Каждый пин в определенный момент времени может находьтся только в одном из двух состояний: активном (on) или неактивном (off). Чтобы не запутатся, и както защитить данные от помех, разработчики решили что во время передачи данных они были сначало усилены (+5В –> +12В, 0В –> -12В ) а потом инвертированы, в то время как c управляющими сигналами они долго не парились и просто их усилели (тоесть положительное стало еще положительней а отрицательное — отрицательнее, относительно общего провода).
Назначение управляющих пинов ([RTS, CTS], [DTR, DSR] и [CD, RI]) сводится к следующему:
• Отслеживать состояние собеседника
• Отслеживать поток данных
Пара [RTS, CTS] — используется для обозначения готовности данной пары устройств к передачи/приему соответственно.
1. DTE устройство устанавливает RTS = on, сигнализируя о том что оно готово к приему данных. Если устройство получило достаточное количество данных то устанавливаем RTS =off.
2. DCE устройство устанавливает CTS =on, сигнализируя о том что оно готово к приему данных. Если устройство получило достаточное количество данных то устанавливаем CTS =off.
Кто каким пином будет управлять (тоесть кому быть DTE а кому DCE) решать вам. Соответственно программы управления этими устройствами должны выставить RTS(выход)/CTS (вход), или наоборот, иначе могут быть глюки.
Пара [DTR, DSR] — большинство устройств используют эти пины для сигнализирования что они подключены и готовы к работе.
1. DTE устройство устанавливает DTR=on, сообщая DCE устройству что оно готово к работе. Соответственно когда DTE устанавливает DTR=off, то оно больше не желает (или не может) общатся (положила трубку :) )
2. DCE устройство устанавливает DSR=on, сообщая что оно подключено, а когда DSR=off – оно отключено.
Такой метод контроля потока данных называется – hardware handshaking (чтото вроде аппаратное управление). Пары [DTR, DSR] и [RTS, CTS] могут быть с легкостью взаимо-заменены без всякого ущерба.
Пара [CD, RI] – используется для обозначения (в тот самом случае когда один принтер на отару кампов) что в данный момент линии передачи данных кем-то заняты.
Как правило этой парой управляет модем, но не обязательно.
• St – Стартовый Бит (начало передачи данных) – логический ноль
• 0..8 – позиция бита (данных) в пакете (позиция «0» – LSB)
• P – бит парности (проверка успешной передачи данных)
• Sp1,Sp2 – стоп биты (завершают передачу пакета) – логическая единица
• [] – в скобках обозначены биты которые могут отсутствовать
(биты данных с 5 по 8 так или иначе будут переданы, но не рассмотрены — мусор)
• IDLE – ожидание (логическая единица)
Как я уже говорил, во время передачи — данные инвертируются, так что если будете проверять осциллографом как отсылается пакет — не пугайтесь.
Поскольку MAX232 поддерживает аппаратное управление COM портом, и если с разводкой данной схемы проблем нет, почемуб и не использовать эту возможность, вдруг когда пригодится (не пропадать же добру). В противном случае, можно обойтись без аппаратного управления, как зачастую и происходит.
Софт
UPD: заменил вывод cout на printf, и убрал флаги RxClear и TxClear
ПП по сути является фаилом из которого ведется чтение/запись, поэтому основные операции которые применяются над ПП можно группировать следующим способом:
Также много интересного можно узнать на следующих сайтах: Programming Serial Connections , Serial programming in win32 OS
Запихните предыдущий код в хидэр фаил, например с именем COM_INIT.h и можно использовать ПП.
Надеюсь эти скромные знания кому-то помогут. Если есть вопросы попытаюсь ответить.
Как проверить RS-232 интерфейс?
Для проверки RS-232 можно воспользоваться простым способом: достаточно замкнуть контакты RX и TX между собой. Тогда все переданные данные будут приняты обратно.
Если у вас полный RS-232 или нужно использовать аппаратный контроль за передачей данных, тогда вам нужно распаять специальную заглушку. В ней должны быть соединены между собой следующие контакты:
На примере PComm Lite это будет выглядеть так.
Убедитесь, что UPort настроен на RS-232.
Откройте программу PComm Terminal Emulator, во вкладке Port Manager откройте СОМ порт, соответствующий UPort. Скорость и другие параметры можно оставить по умолчанию.
Однако, если вы подключаете внешнее устройство к СОМ порту, эти параметры должны совпадать с параметрами внешнего устройства.
Мы отправили несколько единиц в СОМ порт и получили их обратно, также видим одинаковые значения счетчиков TX и RX, что подтверждает получение всех отправленных данных.
Если вы хотите отображать текст, который печатаете, то вам нужно включить функцию Local echo на вкладке Terminal при открытии порта. Важно: после включения функции Local echo, если вы замкнули TX и RX, то текст в терминале удвоится, потому что будет отображен вводимый символ и тот, который получен обратно.
Как проверить RS-485 интерфейс?
Интерфейс RS-485 может быть реализован на 2 или 4 контактах.
Для варианта RS-485 с 4 контактами проверка сводится к тем же действиям что и в RS-422 с таким же подключением контактов TD+ на RD+ и TD- на RD.
Для варианта RS-485 с 2 контактами нужно использовать внешнее устройство для проверки работы. Это может быть второй порт UPort или заведомо исправное устройство с RS-485.
Убедитесь, что UPort настроен на RS-485 и правильно указано количество контактов.
Выбор кабеля
Сигнал шины RS-485 | Провод |
---|---|
данные A | бело-зелёный |
данные B | зелёный |
питание (12В или другое) | оранжевый |
питание (12В или другое) | бело-оранжевый |
не используется | синий |
не используется | бело-синий |
земля питания (GND) | бело-коричневый |
земля питания (GND) | коричневый |
Используйте экранированный кабель парной скрутки: данные RS-485 (линии A и B) должны идти по витой паре, а экран уменьшит помехи от силовых цепей. При монтаже удобно использовать кабель с гибкими жилами. Также для прокладки шины можно использовать обычную витую пару CAT5 для Ethernet.
Величину резистора выбирают в зависимости от волнового сопротивления используемого кабеля. Для систем промышленной автоматики используются кабели с волновым сопротивлением от 100 до 150 Ом, однако кабели, спроектированные специально для интерфейса RS-485, имеют волновое сопротивление 120 Ом. На такое же сопротивление обычно рассчитаны микросхемы трансиверов интерфейса RS-485. Поэтому сопротивление терминального резистора выбирается равным 120 Ом, мощность - 0,25 Вт.
Подробней про интерфейсы читать тут: Тык
P.S. Все это за 5 минут легкого гугления. Несложно же, почему сами не попробовали?
Распиновка разъема UPort 1150
Распиновка переходника UPort 1150 с DB9 на клеммную колодку.
Схема подключения внешнего устройства с RS-422:
Подтягивающие и согласующие резисторы
В некоторых моделях UPort есть встроенные резисторы, которые обеспечивают правильную работу линий RS-422/485.
Согласующий резистор или терминатор 120 Ом – ставится в начале и конце линии для предотвращения отражения сигнала от конца линии и искажения полезного сигнала в RS-422/485.
При большой длине линии связи (более 100 метров) возникают эффекты длинных линий, которые связаны с индуктивностью и ёмкостью кабеля. Получается, что сигнал, переданный в линию с одной стороны, начинает искажаться по мере распространения в другую сторону. Поскольку на практике кабель на всей длине имеет одинаковые параметры погонной ёмкости и индуктивности, это свойство кабеля характеризуют волновым сопротивлением. Поэтому, если на приёмном конце кабеля использовать резистор с сопротивлением, равным волновому сопротивлению кабеля, то негативные резонансные явления значительно ослабляются.
Подтягивающие резисторы (pull high/low resistors) – предназначены для ограничения тока, протекающего по сигнальным цепям, и чтобы сделать состояние цифрового входа по умолчанию высоким или низким.
Цифровой вход нельзя напрямую подключить к питанию без ограничения тока, а также нельзя оставлять вход без подключения к чему либо, т.к. возможны ложные изменения состояния входа из-за внешних наводок.
Цепь с подтягивающим резистором можно представить в виде делителя напряжения из двух резисторов — одного подтягивающего и другого на месте кнопки.
Логический вход имеет ёмкость относительно земли, что влияет на время нарастания или спада сигнала при размыкании кнопки. Время спада или нарастания — это время между размыканием кнопки и достижением сигнала порогового напряжения, при достижении которого логическим входом фиксируется изменение логического состояния с высокого «1» на низкий «0» или наоборот.
Время спада и нарастания — зависит от произведения сопротивления, ёмкости и коэффициента, который учитывает пороговое напряжение. При подключении различных устройств значение ёмкости изменяется, это ведет к изменению формы сигнала, что может негативно сказаться на правильном определении уровня сигнала.
Поэтому иногда требуется подстройка значений подтягивающих резисторов, для восстановления формы сигнала. Ниже пример того, как может выглядеть сигнал при разном значении подтягивающего резистора:
Обычно значения подтягивающих резисторов по умолчанию оптимальны, но если форма сигнала сильно искажена или данные передаются с ошибками, то вам следует изменить значения подтягивающих резисторов.
Ниже показан пример расположения переключателей для изменения значений подтягивающих резисторов.
Оглавление:
Структурная схема подключения UPort 1150 выглядит так:
Для работы с UPort 1150 необходимо установить драйвер ( Driver for UPort 1000 Series ).
После установки драйвера в диспетчере устройств мы увидим новый СОМ порт.
В разделе Многопортовые последовательные адаптеры, мы можем настроить СОМ порт, а именно выбрать номер СОМ порта и тип интерфейса.
Рекомендации по устранению неисправностей
Структурная схема подключения устройства с СОМ портом к ПК выглядит так:
- Если вы настроили подключение, но оно у вас не работает, убедитесь, что ваш конвертер работает и настроен правильно. Рекомендации по проверке RS-232/422/485 даны выше.
- Проблема может быть в подключении к конечному устройству, проверьте распиновку конвертера и конечного устройства.
- Проблема может быть в отличающихся параметрах СОМ порта на конвертере и конечном устройстве: скорости, четности, типе интерфейса, протоколе данных и т.д.
- Также можно изменить номинал подтягивающих резисторов и добавить согласующий резистор (для RS-422/485).
- Проблема может быть в программном обеспечении, попробуйте использовать другое ПО для проверки, например PComm Lite.
Устройства RS-485 устанавливаются на общую шину. Шина использует две линии для данных (A и B) и одну для земли (общий провод). Общий провод нужен для выравнивая потенциалов устройств. Его можно не подключать, если устройства уже имеют общую землю и стоят в одном щите. A и B обязательно должны быть проложены витой парой. Кабель экранированный, заземлен в одной точке (неважно в какой).
Часто удобно проложить сразу линию для питания. Т. е. использовать кабель с двумя витыми парами А/B и V+/GND.
По стандарту RS-485 шина должна быть проложена без ответвлений и на концах линии должны быть терминирующие резисторы (100-120 Ом). Топологии звезда или кольцо не допускаются.
Но если скорость передачи будет не выше 115200, то переотражения от ответвлений и нетерминированых концов быстро затухают и на работу не влияют.
Наши рекомендации по тому, насколько можно отойти от стандарта RS-485 без потери работоспособности:
- А и B витой парой - обязательно. Даже в щите на короткие расстояния лучше использовать витую пару - силовое оборудование может наводить помехи.
- Общий провод (GND) - обязательно, если земли устройств разные (питаются от разных БП). Можно без него, если у устройства изолированный порт RS-485.
- Экран - для небольших расстояний (10 м) при отсутствии источников помех экран можно не использовать.
- Ответвления от шины - допустимы ответвления до 50 м при скорости не выше 115 200.
- Терминатор на концах линии - при скорости < 115 200 можно обойтись, при скорости 115200 - хотя бы с одного конца должен быть. На длинных линиях и низкой скоростью может даже ухудшать работу. Если контроллер подключен к середине шины, то терминатор нужно отключить.
Сигнал на линии с терминаторами. Желтая - линия А передатчика, голубая - А приемника, розовая - В приемника, синяя - разность А-B - т.е. сигнал. Длина кабеля 600 метров, частота 115200.
Сигнал без терминаторов в середине линии — ситуация плохая, однако ж работает.
Примеры марок кабелей
Схема подключения внешнего устройства с RS-232:
com порт и rs485
Добрый день.
Помогите решить такую проблему.
У нас имеется линия металлообработки Salvagnini 1991 года выпуска, внутри установлен промышленный компьютер. В офисе находится персональный компьютер с установленным программным обеспечением для составления программ. У компьютера линии имеется com порт и
у офисного компьютера также имеется com порт. Расстояние между ними 200 метров. Можем ли мы соединить эти два компьютера с помощью двух АС3-М (RS232 к com порту, а RS485 между АС3-М) и что для этого нужно. Спасибо.
Читайте также: