Какие интерфейсы относятся к внутренним rs 485 usb
В современной технике все большее значение приобретает обмен информацией между различными устройствами. А для этого требуется передавать данные как на небольшие расстояния, так и на значительные, порядка километров. Один из таких видов передачи данных – связь между устройствами по интерфейсу RS-485.
![схема подключения rs 485 и rs 232 - распиновка]()
Организация интерфейса RS-485.
Главное отличие RS-458 от RS-232 – все приемники и передатчики работают на одну пару проводов, являющуюся линией связи. Провод земли при этом не используется, а сигнал в линии формируется дифференциальным методом. Он передается одновременно по двум проводам («А» и «В») в инверсном виде.
Если на выходе передатчика – логический «0», то на проводник «А» выдается нулевой потенциал. На проводнике «В» формируется сигнал «не 0», то есть – «1». Если передатчик транслирует «1», получается все наоборот.
В итоге получаем изменение напряжения сигнала между двумя проводами, представляющими собой витую пару. Любая наводка, попадая в кабель, изменяет напряжение относительно земли одинаково на обоих проводах пары. Но напряжение полезного сигнала формируется между проводами, а поэтому – ничуть не страдает от потенциалов на них.
Распиновка нуль-модемного кабеля DB9 для RS-232
Таблица с распиновкой разъемов DB9 и DB25.
DB9 | DB25 | Обозначение | Название | Описание |
---|---|---|---|---|
1 | 8 | CD | Carrier Detect | Обнаружение несущей |
2 | 3 | RXD | Receive Data | Прием данных |
3 | 2 | TXD | Transmit Data | Передача данных |
4 | 20 | DTR | Data Terminal Ready | Готовность оконечного оборудования |
5 | 7 | GND | System Ground | Общий провод |
6 | 6 | DSR | Data Set Ready | Готовность оборудования передачи |
7 | 4 | RTS | Request to Send | Запрос на передачу |
8 | 5 | CTS | Clear to Send | Готов передавать |
9 | 22 | RI | Ring Indicator | Наличие сигнала вызова |
Для работы с устройствами RS-232 обычно необходимо всего 3 контакта: RXD, TXD и GND. Но некоторые устройства требуют все 9 контактов для поддержки функции управления потоком передачи данных.
Требования к кабельным соединениям.
Для соединения устройств интерфейсом RS-485 используются кабели «витая пара». Хоть для передачи данный достаточно одной пары проводов, обычно применяются кабели минимум с двумя, чтобы был заложен резерв.
Для лучшей защиты от помех кабели экранируются, при этом экраны на всей линии соединяют друг с другом. Для этого на объединяемых устройствах помимо выводов «А» и «В» имеется клемма «СОМ». Заземляется линия только в одной точке, обычно в месте расположения контроллера, модема или компьютера. В двух точках это делать запрещено, чтобы избежать наводок, которые неизбежно пойдут по экрану из-за разности потенциалов в точках заземления.
Кабели соединяют только последовательно друг с другом, делать ответвления нельзя. Для согласования линии в ее конце подключается резистор с сопротивлением 120 Ом (это волновое сопротивление кабеля).
В целом монтаж кабельных линий интерфейса – простое занятие. Гораздо сложнее будет настроить аппаратуру, для чего понадобятся люди со специальными знаниями.
Для лучшего понимая работы интерфейса RS-485 предлагаем Вам посмотреть следующее видео:
Вы можете узнать больше о последовательных интерфейсах, а потом подобрать оборудование для работы с последовательными интерфейсами в нашем каталоге.
Управление потоком в RS-232
Для того чтобы не потерять данные существует механизм управления потоком передачи данных, позволяющий прекратить на время передачу данных для предотвращения переполнения буфера обмена.
Есть аппаратный и программный метод управления.
Аппаратный метод использует выводы RTS/CTS. Если передатчик готов послать данные, то он устанавливает сигнал на линии RTS. Если приёмник готов принимать данные, то он устанавливает сигнал на линии CTS. Если один из сигналов не установлен, то передачи данных не произойдет.
Программный метод вместо выводов использует символы Xon и Xoff (в ASCII символ Xon = 17, Xoff = 19) передаваемые по тем же линиям связи TXD/RXD, что и основные данные. При невозможности принимать данные приемник передает символ Xoff. Для возобновления передачи данных посылается символ Xon.
Порядок обмена данными между устройствами по RS-485.
Все устройства, объединяемые интерфейсом RS-485, имеют всего два клеммы: «А» и «В». Для подключения к общей сети эти клеммы соединяются в параллельную цепь. Для этого от одного устройства к другому прокладывается цепочка кабелей.
При этом возникает необходимость упорядочить обмен данными между устройствами, установив очередность передачи и приема, а также – формат пересылаемых данных. Для этого служит специальная инструкция, называемая протоколом.
Протоколов обмена данными по интерфейсу RS-485 существует много, наиболее часто используемый – Modbas. Вкратце рассмотрим, как работает простейший протокол, и какие еще проблемы приходится решать с его помощью.
Для примера разберем сеть, в которой одно устройство собирает данные с нескольких источников данных. Это может быть модем и группа электросчетчиков. Для того, чтобы знать, от какого счетчика пойдут данные, каждому приемопередатчику присваивается номер, уникальный для данной сети. Номер присваивается и приемопередатчику модема.
Когда приходит пора собирать данные о расходе электроэнергии, модем формирует запрос. Сначала передается стартовый импульс, по которому все устройства понимают, что сейчас придет кодовое слово – посылка из последовательности нулей и единиц. В ней первые биты будут соответствовать номеру абонента в сети, остальное – данные, например, команда передать требуемую информацию.
Все устройства принимают посылку и сравнивают номер вызываемого абонента со своим собственным. Если они совпадают – выполняется команда, переданная в составе запроса. Если нет – устройство игнорирует его текст и не делает ничего.
При этом во многих протоколах посылается назад подтверждение, что команда принята к исполнению или выполнена. Если ответа нет, передающее устройство может повторить запрос определенное количество раз. Если реакции так и не последует, генерируются сведения об ошибке, связанные с неисправностью канала связи с молчащим абонентом.
Ответа может не последовать не только при поломке. При наличии сильных помех в канале связи, которые все-таки проникают туда, команды могут не доходить до пункта назначения. Еще они подвергаются искажениям и не правильно при этом распознаются.
Неверного выполнения команды допустить нельзя, поэтому в данные посылки вводят заведомо избыточную информацию – контрольную сумму. Она подсчитывается по определенному закону, прописанному в протоколе, на передающей стороне.
Описание интерфейса RS-232
Интерфейс RS-232 (TIA/EIA-232) предназначен для организации приема-передачи данных между передатчиком или терминалом (англ. Data Terminal Equipment, DTE) и приемником или коммуникационным оборудованием (англ. Data Communications Equipment, DCE) по схеме точка-точка.
Скорость работы RS-232 зависит от расстояния между устройствами, обычно на расстоянии 15 метров скорость равна 9600 бит/с. На минимальном расстоянии скорость обычно равна 115.2 кбит/с, но есть оборудование, которое поддерживает скорость до 921.6 кбит/с.
Интерфейс RS-232 работает в дуплексном режиме, что позволяет передавать и принимать информацию одновременно, потому что используются разные линии для приема и передачи. В этом заключается отличие от полудуплексного режима, когда используется одна линия связи для приема и передачи данных, что накладывает ограничение на одновременную работу, поэтому в полудуплексном режиме в один момент времени возможен либо прием, либо передача информации.
Информация по интерфейсу RS-232 передается в цифровом виде логическими 0 и 1.
Логической «1» (MARK) соответствует напряжение в диапазоне от −3 до −15 В.
Логическому «0» (SPACE) соответствует напряжение в диапазоне от +3 до +15 В.
В дополнение к двум линиям приема и передачи, на RS-232 имеются специальные линии для аппаратного управления потоком и других функций.
Для подключения к RS-232 используется специальный разъем D-sub, обычно 9 контактный DB9, реже применяется 25 контактный DB25.
Разъемы DB делятся на Male – «папа» (вилка, pin) и Female – «мама» (гнездо, socket).
Содержание:
Структура передаваемых данных в RS-232
Стартовый бит (start bit) - бит обозначающий начало передачи, обычно равен 0.
Данные (data bits) – 5, 6, 7 или 8 бит данных. Первым битом является менее значимый бит.
Например, сокращение 8Е1 обозначает, что передается 8 бит данных, используется бит четности в режиме EVEN и стоп бит занимает один бит.
Основные отличия RS-232, RS-422 и RS-485
Под обозначениями RS-232, RS-422 и RS-485 понимаются интерфейсы для цифровой передачи данных. Стандарт RS-232 более известен как обычный СОМ порт компьютера или последовательный порт (хотя последовательным портом также можно считать Ethernet, FireWire и USB). Интерфейсы RS-422 и RS-485 широко применяются в промышленности для соединения различного оборудования.
В таблице приведены основные отличия интерфейсов RS-232, RS-422 и RS-485.
Название | RS-232 | RS-422 | RS-485 |
---|---|---|---|
Тип передачи | Полный дуплекс | Полный дуплекс | Полудуплекс (2 провода),полный дуплекс (4 провода) |
Максимальная дистанция | 15 метров при 9600 бит/с | 1200 метров при 9600 бит/с | 1200 метров при 9600 бит/с |
Задействованные контакты | TxD, RxD, RTS, CTS, DTR, DSR, DCD, GND* | TxA, TxB, RxA, RxB, GND | DataA, DataB, GND |
Топология | Точка-точка | Точка-точка | Многоточечная |
Макс. кол-во подключенных устройств | 1 | 1 (10 устройств в режиме приема) | 32 (с повторителями больше, обычно до 256) |
* Для интерфейса RS-232 не обязательно использовать все линии контактов. Обычно используются линии данных TxD, RxD и провод земли GND, остальные линии необходимы для контроля над потоком передачи данных. Подробнее вы узнаете далее в статье.
Информация, передаваемая по интерфейсам RS-232, RS-422 и RS-485, структурирована в виде какого-либо протокола, например, в промышленности широко распространен протокол Modbus RTU.
Распиновка прямого кабеля DB9 для RS-232
![RS485 RS232 2]()
Интерфейс RS-232 — младший брат RS 485.
Нельзя хотя бы коротко не упомянуть об интерфейсе RS-232, который еще называют последовательным. Разъем под соответствующий порт имеют некоторые ноутбуки, а некоторые цифровые устройства (те же терминалы релейной защиты) снабжаются выходами для связи с помощью RS-232.
Для того, чтобы обмениваться информацией, нужно уметь ее передавать и принимать. У RS-232 для этого есть передатчик и приемник сигналов. Они имеются в каждом устройстве. Причем выход передатчика одного устройства (TX) соединяется со входом приемника другого устройства (RX). И, соответственно, по другому проводнику аналогичным образом сигнал движется в обратную сторону.
При этом обеспечивается полудуплексный режим связи, то есть, приемник и передатчик могут работать одновременно. Данные по кабелю RS-232 могут в одно и то же время перемещаться и в одну, и в другую сторону.
Недостаток этого интерфейса – низкая помехозащищенность. Это происходит из-за того, что сигнал в соединительный кабель и на прием, и на передачу формируется относительно общего провода – земли. Любая наводка, существующая даже в экранированном кабеле, может привести к сбою связи, потере отдельных битов информации. А это недопустимо при управлении сложными и недешевыми механизмами, где любая ошибка – авария, а потеря связи – длительный простой.
Поэтому RS-232 в основном применяется для небольших временных подключений ноутбука к цифровому устройству, например, для установки начальной конфигурации или исправления ошибок.
Распайка кабеля DB9 для RS-232
Существует три типа подключения устройств в RS-232: терминал-терминал DTE-DTE, терминал- коммуникационное оборудование DTE-DCE, модем-модем DCE-DCE.
Кабель DTE-DCE называется «прямой кабель», потому что контакты соединяются один к одному.
Кабель DCE-DCE называется «нуль-модемный кабель», или по-другому кросс-кабель.
Ниже приведены таблицы распиновок всех перечисленных типов кабеля, и далее отдельно представлена таблица с переводом основных терминов на русский язык.
Программы для работы с COM-портами
На компьютере интерфейсы RS-232/422/485 будут представлены как обычный СОМ порт. Соответственно подойдут почти любые программы и утилиты для работы с COM портом.
Каждый производитель выпускает свое ПО для работы с COM портом.
Например, MOXA разработала набор утилит PComm Lite, одна из которых позволяет работать с СОМ портом.
Последнее время я делаю по большей части промышленные устройства и все чаще там используется именно 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 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!
А я встрял на три года, как минимум, ежемесячной пахоты над статьями :)))))))))))) Спасибо вам за такой мощный пинок.
Решил поделиться с общественностью одной из возможных реализаций преобразователя USBRS485 на базе микросхемы FT232RL:
Понадобился тут по работе преобразователь USBRS485. Чтобы как можно скорее (что неудивительно), да размерами поменьше. Плюс гальваноразвязка не требуется. На местный радиорынок немедленно был заслан знающий человек – оценить обстановку и узнать что почем. Каково же было мое удивление, когда тот вернулся ни с чем. Нету, говорит, таких. Вот мобильников, говорит – гора. А преобразователей – нет.
Данная новость меня безумно обрадовала, т.к. на локальном диске Д давно (еще, наверное, с начала осени) валяется незаконченный проект именно такого преобразователя. И даже кой-какая документация собрана была. Ну а тут – такое совпадение!
Надо сказать, я даже не стал лазать по Интернету в поисках готового девайса. Ибо за два дня (в которые требовалось уложиться) все равно, наверное, ничего не успели бы привезти. Поэтому я сразу открыл свой незаконченный проект и сделал «Выделить всё => Удалить». Потому что плата там закладывалась односторонняя, да плюс одна из микросхем была в корпусе DIP-8, что, согласитесь, целям миниатюризации преобразователя ну никак не соответствует. Благополучно удалив результаты прошлых трудов, я начал проектировать преобразователь заново.
Поскольку девайс надо было сделать побыстрее, то вполне логичное решение – использовать давно любимую мной микросхему FT232RL. Тем более, что в документации на нее есть страница 27 (в другой редакции – 28), на которой приведена практически готовая схема проектируемого преобразователя:
И я эту страницу из даташита даже перевел ранее (вернее, пересказал своими словами). Чтобы не раздувать объем заметки о таком проекте-малыше, здесь я решил только вкратце описать принцип действия данной схемы.
Итак, с учетом всего вышеперечисленного итоговая схема разрабатываемого преобразователя стала выглядеть следующим образом:
Перемычка «TERM» (Terminator) служит для подключения/отключения согласующих резисторов (терминаторов) с номинальным значением сопротивления равным 120 Ом. Терминатор должен быть подключен, если преобразователь физически находится на одном из концов шины RS485 (см. пересказ). В противном случае согласующий резистор необходимо отключить.
Можно заметить, что под терминатор на схеме заложено аж два резистора в параллель. Сделал так потому, что внезапно обнаружил исчезновение в моей кассе резисторов номиналом 120 Ом. Зато номинал 240 Ом присутствует в достаточном количестве. Ну и вот – поэтому на схеме два резистора вместо одного:).
Резисторы R3 и R4 я обычно в схемы на SP481 (вернее, ее аналогах) не закладываю. Честно говоря, это вообще первый проект, где предусмотрена их установка. Однако, люди бывалые говорят, что при достаточно протяженной линии RS485 часто бывает необходима установка данных резисторов, ибо в противном случае с шины в USB-порт начинает валиться всевозможная абракадабра.
Естественно, под вышеприведенную схему незамедлительно была разведена
печатная плата. Корпуса элементов для поверхностного монтажа, под которые разрабатывалась плата:
— резисторы: 1206;
— конденсаторы: 1206 либо 0805;
— светодиод: 1206 либо 0805;
— микросхема преобразователя TTL/RS485: SOIC-8.
Габаритные размеры печатной платы и собранного преобразователя:
После изготовления печатной платы можно приступать к установке и монтажу деталей. Собранный преобразователь не нуждается в настройке. Необходимо лишь установить драйвера для микросхемы FT232 после того, как девайс будет воткнут в разъем USB компьютера. Ну и снять или надеть перемычку «TERM» в зависимости от расположения преобразователя на шине RS485.
На сегодня всё. Желаю удачи при работе с шиной RS485!
Содержание архивов (также прилеплены к заметке):
PI-5_Hardware.zip:
ПИ-5.pdf – схема преобразователя;
ПИ-5_ЛУТ.lay – печатная плата преобразователя (вариант для «утюжников»);
ПИ-5_ФР.lay – печатная плата преобразователя (вариант для «шаблонщиков»).
Платы нарисованы в «САПР» «Sprint Layout 5.0» (бесплатная гляделка).
Решил поделиться с общественностью одной из возможных реализаций преобразователя USBRS485 на базе микросхемы FT232RL:
Понадобился тут по работе преобразователь USBRS485. Чтобы как можно скорее (что неудивительно), да размерами поменьше. Плюс гальваноразвязка не требуется. На местный радиорынок немедленно был заслан знающий человек – оценить обстановку и узнать что почем. Каково же было мое удивление, когда тот вернулся ни с чем. Нету, говорит, таких. Вот мобильников, говорит – гора. А преобразователей – нет.
Данная новость меня безумно обрадовала, т.к. на локальном диске Д давно (еще, наверное, с начала осени) валяется незаконченный проект именно такого преобразователя. И даже кой-какая документация собрана была. Ну а тут – такое совпадение!
Надо сказать, я даже не стал лазать по Интернету в поисках готового девайса. Ибо за два дня (в которые требовалось уложиться) все равно, наверное, ничего не успели бы привезти. Поэтому я сразу открыл свой незаконченный проект и сделал «Выделить всё => Удалить». Потому что плата там закладывалась односторонняя, да плюс одна из микросхем была в корпусе DIP-8, что, согласитесь, целям миниатюризации преобразователя ну никак не соответствует. Благополучно удалив результаты прошлых трудов, я начал проектировать преобразователь заново.
Поскольку девайс надо было сделать побыстрее, то вполне логичное решение – использовать давно любимую мной микросхему FT232RL. Тем более, что в документации на нее есть страница 27 (в другой редакции – 28), на которой приведена практически готовая схема проектируемого преобразователя:
И я эту страницу из даташита даже перевел ранее (вернее, пересказал своими словами). Чтобы не раздувать объем заметки о таком проекте-малыше, здесь я решил только вкратце описать принцип действия данной схемы.
Итак, с учетом всего вышеперечисленного итоговая схема разрабатываемого преобразователя стала выглядеть следующим образом:
Перемычка «TERM» (Terminator) служит для подключения/отключения согласующих резисторов (терминаторов) с номинальным значением сопротивления равным 120 Ом. Терминатор должен быть подключен, если преобразователь физически находится на одном из концов шины RS485 (см. пересказ). В противном случае согласующий резистор необходимо отключить.
Можно заметить, что под терминатор на схеме заложено аж два резистора в параллель. Сделал так потому, что внезапно обнаружил исчезновение в моей кассе резисторов номиналом 120 Ом. Зато номинал 240 Ом присутствует в достаточном количестве. Ну и вот – поэтому на схеме два резистора вместо одного:).
Резисторы R3 и R4 я обычно в схемы на SP481 (вернее, ее аналогах) не закладываю. Честно говоря, это вообще первый проект, где предусмотрена их установка. Однако, люди бывалые говорят, что при достаточно протяженной линии RS485 часто бывает необходима установка данных резисторов, ибо в противном случае с шины в USB-порт начинает валиться всевозможная абракадабра.
Естественно, под вышеприведенную схему незамедлительно была разведена
печатная плата. Корпуса элементов для поверхностного монтажа, под которые разрабатывалась плата:
— резисторы: 1206;
— конденсаторы: 1206 либо 0805;
— светодиод: 1206 либо 0805;
— микросхема преобразователя TTL/RS485: SOIC-8.
Габаритные размеры печатной платы и собранного преобразователя:
После изготовления печатной платы можно приступать к установке и монтажу деталей. Собранный преобразователь не нуждается в настройке. Необходимо лишь установить драйвера для микросхемы FT232 после того, как девайс будет воткнут в разъем USB компьютера. Ну и снять или надеть перемычку «TERM» в зависимости от расположения преобразователя на шине RS485.
На сегодня всё. Желаю удачи при работе с шиной RS485!
Содержание архивов (также прилеплены к заметке):
PI-5_Hardware.zip:
ПИ-5.pdf – схема преобразователя;
ПИ-5_ЛУТ.lay – печатная плата преобразователя (вариант для «утюжников»);
ПИ-5_ФР.lay – печатная плата преобразователя (вариант для «шаблонщиков»).
Платы нарисованы в «САПР» «Sprint Layout 5.0» (бесплатная гляделка).
Распиновка разъема DB9 для RS-232
Где необходимо передавать данные по RS 485.
Один из самых распространенных примеров применения устройств для обмена данными – дистанционные системы учета электроэнергии. Электросчетчики, объединяемые в единую сеть, рассредоточены по шкафам, ячейкам распределительных устройств и даже подстанциях, находящимся на значительном удалении друг от друга. В этом случае интерфейс служит для отправки данных от одного или нескольких устройств учета.
Система «один счетчик – один модем» активно внедряется для передачи данных в службы энергосбытовых компаний от узлов учета частных домов, небольших предприятий.
Другой пример: получение данных от микропроцессорных терминалов релейной защиты в режиме реального времени, а также централизованный доступ к ним с целью внесения изменений. Для чего терминалы обвязываются через интерфейс связи аналогичным образом, а данные от него поступают в компьютер, установленный у диспетчера. В случае срабатывания защиты оперативный персонал имеет возможность сразу же получить информацию о месте действия и характере повреждения силовых цепей.
Но самой сложной задачей, решаемой интерфейсами связи, являются системы централизованного управления сложными производственными процессами – АСУ ТП. У оператора промышленной установки на столе есть компьютер, на дисплее которого он видит текущее состояние процесса: температуры, производительность, включенные и отключенные агрегаты, их режим работы. И имеет возможность всем этим управлять легким щелчком мыши.
Компьютер же обменивается данными с контроллерами – устройствами, преобразующими команды от датчиков на язык, понятный машине, и обратное преобразование: от языка машины в команды управления. Связь с контроллером, а также – между разными контроллерами, осуществляется через интерфейсы связи.
Описание интерфейса RS-485
В промышленности чаще всего используется интерфейс RS-485 (EIA-485), потому что в RS-485 используется многоточечная топология, что позволяет подключить несколько приемников и передатчиков.
Интерфейс RS-485 похож на RS-422 тем что также использует дифференциальный сигнал для передачи данных.
- RS-485 с 2 контактами, работает в режиме полудуплекс
- RS-485 с 4 контактами, работает в режиме полный дуплекс
В режиме полный дуплекс можно одновременно принимать и передавать данные, а в режиме полудуплекс либо передавать, либо принимать.
В одном сегменте сети RS-485 может быть до 32 устройств, но с помощью дополнительных повторителей и усилителей сигналов до 256 устройств. В один момент времени активным может быть только один передатчик.
Скорость работы также зависит от длины линии и может достигать 10 Мбит/с на 10 метрах.
Напряжение на линиях находится в диапазоне от −7 В до +12 В.
Стандарт RS-485 не определяет конкретный тип разъема, но часто это клеммная колодка или разъем DB9.
Распиновка разъема RS-485 зависит от производителя устройства и указывается в документации на него.
Подключение RS-485 устройств с 2 контактами.
Подключение RS-485 устройств с 4 контактами.
Для согласования линии на больших расстояниях в RS-485 также ставят согласующие резисторы 120 Ом в начале и в конце линии.
Описание интерфейса RS-422
Скорость передачи данных в RS-422 зависит от расстояния и может меняться в пределах от 10 кбит/с (1200 метров) до 10 Мбит/с (10 метров).
В сети RS-422 может быть только одно передающее устройство и до 10 принимающих устройств.
Линия RS-422 представляет собой 4 провода для приема-передачи данных (2 скрученных провода для передачи и 2 скрученных провода для приема) и один общий провод земли GND.
Скручивание проводов (витая пара) между собой позволяет избавиться от наводок и помех, потому что наводка одинаково действует на оба провода, а информация извлекается из разности потенциалов между проводниками А и В одной линии.
Напряжение на линиях передачи данных может находится в диапазоне от -6 В до +6 В.
Логическому 0 соответствует разница между А и В больше +0,2 В.
Логической 1 соответствует разница между А и В меньше -0,2 В.
Стандарт RS-422 не определяет конкретный тип разъема, обычно это может быть клеммная колодка или разъем DB9.
Распиновка RS-422 зависит от производителя устройства и указывается в документации на него.
При подключении устройства RS-422 нужно сделать перекрестие между RX и TX контактами, как показано на рисунке.
Т.к. расстояние между приемником и передатчиком RS-422 может достигать 1200 метров, то для предотвращения отражения сигнала от конца линии ставится специальный 120 Ом согласующий резистор или "терминатор". Этот резистор устанавливается между RX+ и RX- контактами в начале и в конце линии.
Читайте также: