Организация канала интерфейса RS-232
В системе «Орион» интерфейс RS-232 используется для подключения пульта контроля и управления «С2000»/«С2000М» к СОМ-порту компьютера с установленным на нем АРМ «Орион»/«Орион Про».
В системе «Орион» интерфейс RS-232 используется для подключения пульта контроля и управления «С2000М» к СОМ-порту компьютера с установленным на нем АРМ «Орион»/«Орион Про».
В системах, допускающих работу под управлением АРМ «Орион»/«Орион Про» без резервирования пультом «С2000»/«С2000М» (например, в системах охранной сигнализации или контроля доступа), интерфейс RS-232 используется для подключения преобразователя интерфейса «С2000-ПИ» или «ПИ-ГР» к СОМ-порту компьютера. К преобразователю, в свою очередь, подключаются приборы системы «Орион» по интерфейсу RS-485.
RS-232 имеет следующие ограничения: максимальная длина – 15 м и соединение только типа «точка-точка», т.е. непосредственно подключить несколько пультов к одному СОМ-порту нельзя.
В простейшем случае к компьютеру подключается только один пульт. Эта схема приведена на рис.
Недостатком такой схемы является отсутствие гальванической изоляции между приборами и компьютером. Схема подключения пульта к компьютеру с использованием повторителя интерфейсов «С2000-ПИ», обеспечивающего гальваническую изоляцию, приведена на рис.
ВНИМАНИЕ! Во избежание гальванической связи между компьютером и приборами пульт, повторитель и приборы нельзя подключать к одному источнику питания. Питание на пульт и «С2000-ПИ» должно подаваться от отдельного источника. Пульту должен быть присвоен сетевой адрес, и установлен режим «КОМПЬЮТЕР» для работы по интерфейсу RS-232.
С помощью преобразователей интерфейсов RS-232/RS-485 с автоматическим переключением приема/передачи (например, «С2000-ПИ») можно подключить несколько пультов к одному СОМ-порту компьютера. Один преобразователь следует подключить к СОМ-порту компьютера, остальные — к пультам по интерфейсу RS-232, а затем объединить преобразователи по интерфейсу RS-485 (см. схему на рис. ниже). Кроме того, преобразователи обеспечат гальваническую изоляцию компьютера от пультов и приборов.
Для работы по интерфейсу RS-232 каждому пульту нужно задать уникальный сетевой адрес и режим «КОМПЬЮТЕР».
При использовании АРМ «Орион» к одному СОМ-порту можно подключить до 127 устройств. Либо это будет один пульт «С2000»/ «С2000М» и до 126 приборов, схема как на рис. выше. Либо это будет несколько пультов с подключёнными приборами, как на рис. При этом общее количество и пультов, и приборов не должно превышать 127. В такой системе все приборы и пульты должны иметь уникальные сетевые адреса от 1 до 127, т.е. адреса приборов, подключенных к разным пультам, не должны пересекаться.
При использовании АРМ «Орион Про» к каждому COM-порту можно подключить либо до 127 приборов (приборы подключаются через преобразователи интерфейсов «ПИ-ГР», «С2000-ПИ» или «C2000 USB»), либо до 127 пультов «С2000» или «С2000М». К каждому пульту при этом можно подключить до 127 приборов. При организации системы по второму варианту компьютер опрашивает не приборы, а пульты. Пульты, в свою очередь, опрашивают подключённые к ним приборы. Каждому пульту должен быть задан сетевой адрес (от 1 до 127). Адресация приборов в системе имеет 3 уровня (номер COM-порта, адрес пульта, адрес прибора), поэтому адреса приборов, подключённых к разным пультам, могут пересекаться, как и адреса пультов, подключённых к разным COM-портам компьютера. Максимальное количество устройств, подключаемых к одному компьютеру с «Оперативной задачей Орион Про», на сегодняшний день составляет 1024.
Как уже было сказано, такая схема (рис. выше) применяется в случае, если к COM-порту нужно подключить несколько устройств. На текущий момент АРМ «Орион» поддерживает только один СОМ-порт. АРМ «Орион Про» поддерживает до 20 физических СОМ-портов и до 127 виртуальных СОМ-портов. При использовании АРМ «Орион Про» каждый пульт можно подключать к своему COM-порту (используя схему с гальванической изоляцией или без).
В настоящее время не все компьютеры имеют СОМ-порт. Для решения задачи подключения приборов системы «Орион» к компьютеру с АРМ можно применить USB-COM преобразователи, например, «USB-RS485», а также PCI-плату расширения портов. Основные достоинства данных PCI-плат:
- возможность использовать до 8 COM-портов;
- высокая скорость передачи данных;
- поддержка интерфейса RS-232/RS-485.
Специалистами компании «Болид» была протестирована плата расширения COM-портов MOXA CP 118U (см. рис.).
Она позволяет подключать приборы по интерфейсу RS-485 напрямую к ПК с АРМ «Орион Про» (без использования преобразователя интерфейса), а также подключать несколько пультов (каждый к своему СОМ-порту).
Подключение приборов к компьютеру через пульты «С2000»/«С2000М» позволяет большую часть функций управления приборами переложить с АРМ на пульты. Здесь важно учитывать, что каждый пульт может управлять только подключёнными к нему приборами, поэтому взаимодействие приборов, подключённых к разным пультам, возможно только через АРМ. При неисправности компьютера каждый пульт будет управлять подключёнными к нему приборами в соответствие с запрограммированной в нем базой данных. То есть система распадается на несколько независимых подсистем. Полученные от приборов сообщения сохраняются в кольцевом энергонезависимом буфере пультов, объем которого составляет 32000 событий (для «С2000М» вер.4.хх). При восстановлении работы компьютера эти сообщения будут вычитаны АРМ.
Допустим, в системе используется несколько приборов «С2000-КДЛ», релейных блоков «С2000-СП1», клавиатур «С2000-К» и блоков индикации «С2000-БИ». Причём из-за ограниченного размера базы данных пульта требуется использовать несколько пультов «С2000»/«С2000М». Каждый пульт организует взаимодействие только подключённых к нему приборов. В частности, он позволит отображать на блоках индикации состояния своих разделов, управлять этими разделами с клавиатур и с самого пульта, автоматически управлять релейными выходами своих блоков «С2000-СП1» от своих разделов. Взаимодействие приборов, подключённых к разным пультам, возможно только через АРМ. При отключении компьютера с работающим на нем АРМ эта связь нарушается. Поэтому если требуется, например, организовать релейный выход, который должен отрабатывать состояние всех шлейфов сигнализации системы, и этот выход должен работать при отключении компьютера, лучше его организовать путём монтажного объединения выходов каждой подсистемы (параллельного или последовательного, в зависимости от требуемой тактики работы выхода).
При подключении к АРМ нескольких подсистем следует использовать пульты «С2000М», так как при использовании пультов «С2000» будут следующие ограничения:
- Невозможно организовать централизованный контроль доступа;
- Управлять взятием/снятием с охраны разделов с клавиатур «С2000-К» и блока «С2000-4», прибора «С2000-КДЛ» и т.п. можно только в рамках одной подсистемы на пульте «С2000». Это означает, что с какой-либо клавиатуры «С2000-К» можно управлять взятием/снятием с охраны разделов того пульта, к которому подключена клавиатура. Управление с этой клавиатуры приборами, подключёнными к другим пультам, невозможно. Из оперативной задачи АРМ можно управлять взятием/снятием с охраны разделов всех подсистем. При использовании пульта «С2000М» первое ограничение снимается. Что касается второго, то можно управлять взятием/снятием с охраны разделов одной подсистемы с помощью всех приборов другой подсистемы, за исключением клавиатур «С2000-К». Например, используя считыватели устройств «С2000-4», «С2000-2», «С2000-КДЛ». Также можно управлять взятием/снятием с охраны разделов одной подсистемы с пульта «С2000М» другой подсистемы. Клавиатуры «С2000-К» так же, как и в первом случае, работают только в рамках своей подсистемы.
Помимо схемы, представленной на рис. выше, подключить несколько пультов «С2000М» к компьютеру с АРМ можно при помощи ЛВС и преобразователей «С2000-Ethernet» (см. рис.).
Основными достоинствами ЛВС являются:
- повсеместное использование сетей Ethernet;
- высокая помехозащищенность;
- высокая скорость передачи данных.
Также при использовании «С2000-Ethernet» возможно объединение приборов ИСО «Орион» через глобальную сеть Internet используя VPN туннель (см. рис.).
Для трансляции по указной схеме необходима устойчивая связь между VPN шлюзами (зависит от характеристик выделенных каналов Internet). В «С2000-Ethernet» имеется поддержка прямой передачи данных по ЛВС, т.е. на стороне ПК с АРМ используется только сеть Ethernet, а ПО формирует один виртуальный COM-порт для группы удаленных «C2000-Ethernet» (см. рис.). При этом повышается быстродействие и упрощается монтаж системы, т.к. на стороне АРМ нет необходимости использовать COM-порт.
Ещё одним вариантом подключения пульта «С2000М» к компьютеру с АРМ является использование волоконно-оптической линии связи и преобразователей «RS-FX-MM» (для многомодовых ВОЛС), «RS-FX-SM40» (для одномодовых ВОЛС).
Основные достоинства ВОЛС:
- высокая помехозащищенность;
- искро-взрывобезопасность;
- высокая степень защиты передаваемой информации;
- высокая скорость передачи данных.
Максимальная длина передачи данных для преобразователя «RS-FX-MM» составляет 2 км, для преобразователя «RS-FX-SM40» — 40 км.
Организовать связь сетевого контроллера (компьютера с установленным АРМ «Орион»/ «Орион Про» или пульта «С2000»/«С2000М») с удаленными приборами ИСО «Орион» можно также с помощью стандартного цифрового канала связи в потоке Е1.
Основными достоинствами цифровых каналов связи являются:
- высокая помехоустойчивость;
- высокая степень защиты передаваемой информации;
- высокая скорость передачи данных;
- слабая зависимость качества передачи от длины линии связи.
Специалистами компании «Болид» была проверена работа системы «Орион» с применением мультиплексоров «ГМ-2» фирмы «Зелакс» для передачи сообщений по цифровому каналу связи в потоке Е1 (рис. ниже).
Обращаем Ваше внимание на то, что развёрнутые протоколы испытаний устройств передачи данных по различным каналам связи, о которых дальше будет идти речь, с необходимыми настройками можно найти на сайте bolid.ru в разделе «Техническая поддержка»/ «Рекомендации по применению».
Распиновка разъема RS232
9-и контактная (DB9) версия RS232
25-и контактная (DB25) версия RS232
На схеме 25-и контактного разъема RS232 черным цветом отмечены выводы, общие для обоих типов разъемов. На рисунке и таблице ниже показана распайка переходника с 25-контактного разъема на 9-и контактный.
Пробуем что-то сделать
Может показаться странным что примитивные RS232 устройства так сложно и дорого подключить по нормальному если по сути там обычно простые протоколы и примитивный физический уровень. А все потому что обычно подобные аппаратные комплексы используются в коммерческих доходных сферах и покупка оборудования по таким ценам оправдана, а само оборудование уже перешло в разряд специального. Спец оборудование = спец цена вопроса.
Однако все это не мешает попробовать собрать свой бюджетный велосипед. Бонусом получим возможность менять поведение такого своеобразного RS232 мультиплексора и полностью обойдем проблему написания USB драйверов. HID профиль поддерживается почти везде.
Однажды я прочел отличную статью автора RaJa До этого я интересовался USB, но до практики не доходило. В наличии у меня было несколько дешевых отладочных плат, китайских клонов Blue Pill на микроконтроллере Stm32f103c8t6. Сама история и идея создания этой платы очень интересная, стоит поинтересоваться.
Этот микроконтроллер отличается тем что имеет три UART и аппаратную поддержку USB. Это то что может быть нам интересно в разрезе нашей задумки, а вообще микроконтроллер на этой плате, работает на частоте 72Mhz и по характеристикам порвет любое Arduino схожего формфактора. Но самое главное преимущество это повсеместная распространенность этой платы. Я не знаю более простых и дешевых способов пощупать «железный» USB.
Добавив три дешевых преобразователя RS232toUART MAX2323 и немного «рассыпухи» можно собрать своеобразный конвертер интерфейса 3хRS232 USB.
В моем случае нужно было подключить три RS232 устройства к Raspberry Pi 3. Если использовать обычные RS232 USB переходники то в итоге сталкиваешься с тем что в системе куча одинаковых устройств к которым не понятно что подключено и все это дико глючит, а выглядит еще более печально.
Если вы немного капнете в сторону какие микросхемы USB to UART доступны повсеместно, то обнаружите что там полно подделок. Думаю не стоит объяснять как это все потом себя ведет с оригинальными драйверами. И никто не сможет гарантировать вам что даже брендовые переходники вдруг не закупят левую партию микросхем. Удешевление производства оно происходит повсеместно.
В итоге придумалась примерно такая простая схема коммутации ее даже можно изобразить в стиле Arduino:
Я отломал резистор который подтягивает D+ к питанию и сделал эту подтяжку управляемой с помощью транзистора. Она отвечает за опознание устройства на USB шине.
Распиновка разъемов RS232 в программе (Fritzing) где я набрасывал схему странноватая, но думаю никому не составит труда найти ее в интернете, контакты задействованы как обычно 2,3 и 5. А еще удобнее будет использовать платы конвертера UART to RS232 котором уже присутствует разъем RS232.
Low Level
Код для микроконтроллера я писал и отлаживал с помощью IDE EmBitz (если честно то я был удивлен как легко завелась эта IDE, особенно после танцев с бубном вокруг CooCox. ). За основу взял проект из статьи выше. Это первый пример который у меня заработал сразу после заливки.
Я добавил работу с тремя UART и изменил структуру HID репортов так чтобы обмен с ПК шел всегда по 64 байта с контрольной суммой (crc8).
Попытался организовать автопереподключение устройства если соединение по USB не прошло корректно. Не претендую на супер алгоритм, должен признать что не являюсь специалистом по USB. Отдельный транзистор, отображенный на схеме, управляемый отдельным пином B5 подтягивает одну из сигнальных линий USB к питанию что имитирует включение устройства и хост проводит инициализацию устройства. Если попытка не удачная то происходит переподключение.
Было замечено что в Linux (Raspbian) процент не успешных подключений значительно меньше чем в Win 10, возможно этот результат получился из-за моих локальных технических условий.
Общий алгоритм похож на примитивный маршрутизатор, принимая пакет по USB мы смотрим какому UART оно предназначено и пересылаем туда, в обратную сторону аналогично. Есть немного обработки самих пакетов но это относится к конкретному RS232 оборудованию которое я подключал. Это были: экран покупателя Datecs dpd-201, стационарный лазерный сканер штрихкодов Datalogic Magellan 8300 и весы Digi DS890.
На фото выше тестовый образец устройства содержит еще DC-DC шим преобразователь питания на микросхеме MP2307.
Это нужно для того чтобы питать устройство от напряжения 10-24В (входное) и иметь возможность подключить дисплей покупателя который питается от такого же напряжения. После DC-DC шим преобразователя поулчаем 3.3В для всех остальных модулей. Для этого дисплея так же установлен «телефонный» разъем вместо RS232, не хотелось перепаивать стоковый штекер.
High level
Вторая часть софта это примеры и тесты собранные в сумбурный проект на Java написанный IDE IDEA. Предполагается что работа с устройством интегрируется в софт высокого уровня используя различные обертки по работе с USB стеком в зависимости от языка на кортом этот софт пишется. Сейчас сложно найти такой ЯП чтобы под него не существовало таких оберток. Отдельно для староверов отмечу что java и usb совместимы если готовить правельно, это доказано практикой и используется в коммерческом проекте.
В процессе тестирования выяснилось что работа в Linux и Windows с USB HID несколько отличается, работа отлаживалась через две библиотеки usb4java и hid4java. Работа через последнюю используется в Linux (Raspberry Pi 3).
Разница заключается в том что в Windows можно обратится напрямую к USB устройству даже если оно зарегистрировано как HID и писатьчитать его конечные точки (endpoint). В Linux же приходится работать с hid устройством. То есть устанавливается стандартный драйвер hid и всё, работайте только с ним пожалуйста. Работа таким образом происходит немного медленнее чем напрямую, но напрямую тоже возможно если убедить систему не ставить драйвера. Это реально.
Как и обещал не растягиваю статью и не привожу подробное описание кода, те пару человек кому интересно могут посмотреть проекты и поиграться в живую, а остальным думаю будет полезнее принять к сведению что есть такое решение и прибегнуть к более глубокому изучению в случае необходимости.
Работа с оборудованием через порт RS-232
Ниже приведены основные моменты так или иначе касающиеся возможных вопросов и/или проблем при работе с оборудованием ОГМД через порт RS-232, а также ответы на наиболее часто задаваемые потребителями вопросы. Для более подробной информации см. РЭ на соответствующие изделия.
1. Настройки порта RS-232 на ПК должны соответствовать приведенным ниже:
Скорость: 57600
Биты данных: 8
Четность: Нет
Стоповые биты: 1
Управление потоком: Нет
2. Распайка кабеля должна соответствовать показанной на рисунке и/или приведенной в таблице. Не обеспечивают стабильную работу кабели, имеющие дополнительные перемычки между контактами одного и того же разъема, особенно со стороны ПК. Также, в частности, неприменимы кабели для порта RS-232 от оборудования Watson в связи с «прямым» соединением цепей RX/TX ( контакты 2-2 ; 3-3 ; 5-5).
Основной вариант кабеля
Возможные варианты распайки
Цоколевка разъема RJ-45
3. Длина кабеля должна быть по возможности минимальной, т.к. не все аппаратные драйвера портов RS-232 стороннего оборудования (в т.ч. системных плат или плат расширения ПК) обеспечивают стандартные (достаточные) уровни сигналов интерфейса.
4. При наличии в оборудовании ОГМД второго порта RS-232 его сигналы RX2/TX2 выведены на выводы того же разъема, в контакты 7 и 8 (7 ≡ 2, 8 ≡ 3; подробнее см. «Руководство по эксплуатации» на соответствующее оборудование).
5. При отсутствии в ПК аппаратного порта RS-232, что особенно актуально для современных ноутбуков, допустимо использование конверторов USB/RS-232.
При этом требуется соблюдение нескольких условий:
1) наличие в операционной системе ПК корректно установленных драйверов конвертора;
2) конвертор должен быть подключен к ПК и опознан операционной системой ДО запуска программы мониторинга;
6. Также, независимо от использования конвертора USB/RS-232 или наличия в ПК аппаратного порта RS-232, необходим выбор корректного номера порта ( COM1, COM2 и т.д.) в случае, если их доступно более одного.
Внимание! Интерфейс RS-232 не обеспечивают гальванической развязки оборудования ОГМД и ПК, а его устройство не предусматривает режима «горячего» подключения. Кроме того, в связи с особенностями схемотехники большинства импульсных БП, схемная земля ПК (общий провод вторичных напряжений питания системного блока; гальванически он же — цепь «SG» порта RS-232) может иметь ненулевой потенциал относительно земли, достигающий половины выпрямленного фазного напряжения сети.
Выравнивание разности потенциалов между схемными землями (SG) соединяемых устройств ( · от Admin · в Мониторинг, Техподдержка, ЦТЭ ОГМД, ЧаВо
Кабельные соединения между последовательными портами
Кабель от одного последовательного порта всегда соединяется с другим последовательным портом. Внешний модем или другое устройство, которое подсоединяется к последовательному порту имеет встроенный в него последовательный порт. Для модемов кабель имеет прямую разводку: контакт 2 идет к контакту 2, и т.д. Модем называется DCE устройством (Data Communications Equipment — оборудование передачи данных), а компьютер называется DTE устройством (Data Terminal Equipment — оборудование отображения данных). Для соединения устройств типа DTE-в-DCE необходимо использовать прямой кабель. Для соединения DTE-в-DTE необходимо использовать нуль-модемный кабель (иначе называемый перевернутый кабель). Существует несколько способов разводки таких кабелей (смотрите примеры в разеделе «Кабели последовательного интерфейса «)
Работа по последовательному интерфейсу имеет свои преимущества. Одна из причин это то, что все сигналы однонаправленные. Если контакт 2 отправляет данные (и не позволяет принимать другие сигналы) то очевидно, что нельзя подсоединить к контакту 2 контакт того же типа. Если вы все же сделаете это, то вы не смоежет не отсылать, ни принимать сигналы по этой линии. Есть два разных способа соединения устройств. Один из них подразумевает соединение двух устройств разного типа, когда контакт №2 одного отсылает данные на контакт №2 второго (который принимает этот сигнал). Это путь, когда вы соединяете компьютер (DTE) и модем (DCE). Также существует второй путь в котором устройства могут быть одного типа: соедините контакт отправки данных №2 с контактом №3, принимающим данные устройства того же типа. Это путь, когда можно соединять два компьютера (DTE-в-DTE). Тип кабеля, использумый в этом случае называется null-modem cable (нуль-модемный кабель) поскольку он соединяет два компьютера без использования модемов. Нуль-модемный также иногда называют перевернутым кабелем, т.к. провода между контактами 2 иd 3 идут наоборот. Пример выше приведен для контактов 25-ти контактного разъема, но также соответственно можно использовать и 9-ти контактный разъем.