конвертер интерфейсов что это такое
Для чего нужны преобразователи и повторители интерфейсов
Всем привет! С вами снова инженер Рик. Сегодня я расскажу о том, что такое повторители и преобразователи интерфейса и зачем они нужны.
Но для начала напомню о том, что такое разветвители интерфейсов — пригодится. Это устройства, с помощью которых появляется возможность передавать определенный сигнал на другие приборы. Кроме того, с помощью разветвителя можно объединять, переключать приборы предприятия.
Что такое преобразователи и повторители интерфейса
Преобразователи и повторители интерфейса отличаются тем, что позволяют преодолевать ограничения сред, а также усиливают сигнал и восстанавливают его в случае сбоя. Устройство бывает однопортовое и многопортовое.
Преобразователь интерфейса
По сути, устройство преобразовывает сигнал оборудования с интерфейсом RS-232, RS −485, RS-422 и помогает подключить огромное количество приборов разных производителей, которые требуют индивидуального подхода, к одной компьютерной сети. Благодаря этому, передача данных осуществляется на большие расстояния без потери качества сигнала.
Где их используют
Оборудование часто используют как для промышленных, так и для бытовых целей. Предприятия химической, энергетической и нефтегазовой отрасли применяют преобразователи и повторители интерфейса для автоматизации многих процессов. Кроме того, устройства повсеместно используются в транспортной сфере и сфере торговли.
Предназначение повторителей и преобразователей
Преобразователи могут трансформировать сигналы интерфейса. Процесс происходит за счет конвертирования информации в определенную форму, которую в последующем можно применить в необходимой среде. Повторитель предназначен для построения распределенных линий связи. Совместно с разветвителями, прибор создает большую длину сети и число подключившихся устройств. Кроме того, устройство используют для обеспечения гальванических развязок сигналов. Это значит, что благодаря гальванической изоляции линий интерфейса, повторитель способен присоединять приборы, которые не имеют общего заземления.
Пример гальванической развязки
Преобразователи и повторители интерфейса можно крепить на DIN-рейку или устанавливать в любом месте. Зависеть будет только от выбранной модели.
При выборе устройства обязательно обратите внимание на следующие критерии:
Главное отличие промышленных преобразователей и повторителей — особые требования надежности. При необходимости устройство способно перейти в режим самотестирования и выдать отчет о возможной неисправности. Электросовместимость прибора также должна поддерживать высокие стандарты, а именно IEC и CISPR.
Виды устройств
Существует множество видов повторителей и преобразователей. Модели, которые можно увидеть у продавцов:
Условия, при которых устройство будет работать максимально эффективно, описаны в паспорте выбранной модели.
Пример технических характеристик из паспорта прибора
Преобразователи и повторители интерфейса — очень полезны, к их достоинствам относят:
К недостаткам же относят лишь непереносимость влаги. Однако существуют преобразователи и повторители интерфейса, которые изготавливают в пластмассовом корпусе. Современная пластмасса защищает прибор от пыли, грязи и перепадов температур. Кроме того, существуют преобразователи, которые нацелены на работу именно на водных судах, поэтому повышенная влажность им не страшна.
Перед тем, как выбирать подходящее устройство, определите задачи, которое оно должно решать. Необходимо увеличить расстояние передачи сигнала или количество принимаемых устройств? В зависимости от ситуации, выбирайте повторитель или преобразователь интерфейса. Например, для железнодорожного транспорта при необходимости выбирают виброустойчивый преобразователи и повторитель интерфейса, чтобы снизить риск поломки прибора. А для нефтегазовой отрасли обязательным условием оборудования является взрывозащищенность.
В производстве важно, чтобы каждая система работала бесперебойно: передавала информацию, получала данные, обрабатывала их даже в случае, если произойдет сбой. Повторители и преобразователи помогут решить ряд задач, автоматизировать процессы и значительно повысить скорость и качество работы производства.
Для чего нужен преобразователь интерфейсов?
Сегодня, когда есть такое разнообразие всевозможных устройств, очень важным вопросом является организация их совместимости. Различные производители выпускают множество устройств, которые имеют различное назначение и, соответственно, без надлежащей совместимости этих устройств, они не смогут корректно работать. Организация взаимодействия различных устройств – это задание преобразователя интерфейсов.
Преобразователь интерфейсов являет собой программно-аппаратный комплекс, имеющий большое количество портов, как входных, так и выходных (Ethernet, R-422, RS-232, RS-485). Соединить эти порты недостаточно для того, чтобы несовместимое между собой оборудование начало работать должным образом. Очень важно организовать связь на уровне программном. Устройства разных типов и стандартов передают данные согласно различным технологиям. Именно поэтому, преобразователь интерфейсов организовывает адаптацию данных, которые передаются между разными частями системы с разного рода протоколами с целью обеспечения успешного принятия и расшифровки этих данных элементом, который использует другой протокол.
Особенностью преобразования данных с помощью программного интерфейса является то, что оно обеспечивается на программном уровне. Преобразователь интерфейсов определяет вид протоколов, которые используются в системе, и осуществляет выбор алгоритма для согласования этих протоколов. Покупатели сталкиваются с разными типами интерфейсов. Их разделяют на типы согласно разным характеристикам. Например, согласно стандарту. Стандарт преобразователя интерфейсов – это, иными словами, перечень типов устройств и типов протоколов, для которых преобразователь интерфейсов выполняет трансформацию.
Преобразователи интерфейсов имеют также разную скорость передачи данных, то есть, максимальное количество данных, которые передаются в системе на протяжении единицы времени. Эти устройства также имеют различное допустимое расстояние передачи. Последнее характеризируется максимальной степенью удалённости системных узлов, между которыми выполняется передача данных на высоком уровне, без каких-либо потерь их целостности. Преобразователи интерфейсов можно также классифицировать по типу передаваемых данных. Разные интерфейсы определяют разные параметры системы, по которым будет передаваться информация. Данные также могут передаваться по разным типам среды, поэтому разные преобразователи интерфейсов имеют разные линии передачи. Отличаются также схемы, по которым осуществляется соединение элементов системы, а также количество драйверов и приёмников, которые имеют разные преобразователи интерфейсов.
Преобразователи интерфейсов – это важные устройства, обеспечивающие организацию связи между разными устройствами системы на программном уровне, наряду с соединением портов этих устройств, с целью эффективной и продуктивной организации их функционирования.
Для чего нужны преобразователи интерфейсов
Одной из самых острых и актуальных проблем в области систем связи на сегодняшний день является проблема совместимости различных видов устройств. Это понятно: существует море устройств различного вида и назначения, большое количество компаний, занимающихся их производством, разные стандарты, большей частью никак не совместимые между собой. Выходом из этой ситуации является преобразователи интерфейсов. Они служат для подключения устройств с интерфейсом RS-232/422/485 (систем сбора данных, регистраторов, контроллеров и др.) к последовательному COM-порту компьютера, для обеспечения гальванической развязки интерфейсов, для передачи данных в условиях электромагнитных помех и на большие расстояния. Для корректной совместной работы оборудования мало просто соединить порты, необходимо установить связь на программном уровне, что является более сложной задачей.
Разные стандарты устройств предусматривают передачу данных по различным технологиям. Унифицировать протоколы и привести передаваемые данные к единому виду с помощью преобразователя интерфейсов невозможно. Задача преобразователя – адаптировать вид данных, передаваемых между частями системы с различными протоколами для того, чтобы они были успешно приняты и расшифрованы элементом, использующим другой протокол. Преобразование пакетов передаваемых данных происходит на программном уровне. Помимо непосредственно изменения структуры передаваемых данных, программная составляющая преобразователя интерфейсов отвечает за определение типов протоколов, используемых в системе, и выбор алгоритма для их согласования.
Существуют различные типы преобразователей интерфейсов. Их классификация производится по следующим параметрам:
Преобразователь (конвертор) интерфейсов (медиаконвертор) используется для обеспечения совместимости устройств с разными интерфейсами или изменения физического способа передачи информации.
Рис. 1 Рис. 1. Типовая структура двунаправленного преобразователя интерфейсов RS-232 в RS-485 и RS-422 типа NL-232C
Преобразователи интерфейса часто используют в качестве удлинителей интерфейса, т. е. для увеличения расстояния, на которое можно передать информацию. Например, для удлинения порта RS-232 можно использовать преобразователь RS-232 в RS-485, который обеспечивает дальность до 1,2 км, и на приемном конце сделать обратное преобразование из RS-485 в RS-232. Аналогично можно использовать оптоволоконный интерфейс или CAN. Однако чаще для удлинения интерфейсов используют преобразование в промежуточный нестандартный канал передачи, использующий повышенную мощность сигнала и позволяющий передавать данные на расстояние, например, до 20 км по медному кабелю.
Преобразователь RS-232 в оптоволоконный интерфейс
Оптоволоконный канал имеет ряд неоспоримых преимуществ, связанных с оптическим способом передачи информации:
Преобразователь USB в RS-232, RS-485, RS-422
Преобразователь из USB в RS-232/422/485 гораздо сложнее, чем описанные выше. Сложность появляется вследствие того, что для шины USB стандартом установлен определенный порядок обмена пакетами данных и пакетами квитирования с устройствами USB. Поэтому побитовая ретрансляция становится невозможной и в преобразователе интерфейсов большую роль играет модификация драйверов порта.
Преобразователи из USB в RS-232/422/485 используются, когда компьютер имеет недостаточное количество портов RS-232/422/485, но есть неиспользуемые порты USB. При подключении к компьютеру преобразователя и установки соответствующих драйверов в операционной системе появляется новый виртуальный COM-порт, который со стороны программного и аппаратного интерфейса ничем не отличается от обычного.
Адресуемые преобразователи интерфейса
Адресуемый преобразователь интерфейса может выполнять часть сетевых функций: проверку доступности канала, состязание за доступ к каналу, разбивку данных на кадры, обнаружение и коррекцию ошибок, повторную передачу в случае обнаружения ошибок. В частности, адресуемый преобразователь RS-232 в CAN выполняет все функции физического и канального уровня CAN, в соответствии со стандартом, однако он не выполняет функций уровня приложений, как это делают межсетевые шлюзы. Наиболее распространены адресуемые преобразователи интерфейса RS-232 в RS-485, которые позволяют подключить к сети на основе интерфейса RS-485 такие устройства, как вольтметр, аппарат для считывания штрих-кодов, кассовый аппарат или ПЛК с интерфейсом RS-232. Для подключения нескольких таких устройств к компьютеру без адресуемых преобразователей потребовалось бы несколько COM-портов, по количеству RS-232 устройств. Дополнительные COM-порты можно получить с помощью преобразователей USB в RS-232 или с помощью многопортовых сетевых карт. Увеличить количество USB портов можно также с помощью USB-хабов.
Вторым вариантов является подключение устройств с портом RS-232 к общей шине RS-485 с помощью адресуемого преобразователя. Обращение к таким устройствам выполняется по адресу, записанному в ППЗУ преобразователя. Использование шины RS-485 вместо нескольких портов RS-232 позволяет также отнести устройство на расстояние до 1,2 км от компьютера и расположить его в любом удобном месте. Примером адресуемого преобразователя может быть модуль NL-232AC фирмы НИЛ АП, структурная схема которого не отличается от структуры обычного безадресного преобразователя, отличие содержится только в микропрограммном обеспечении. Настройка модуля (установка адреса, скорости обмена, длины поля данных, режима четности, количества стоповых битов и др.) выполняется командами в ASCII-кодах, которые посылаются в модуль через порт RS-232.
Функцию адресуемого преобразователя можно реализовать с помощью универсального контроллера, имеющего соответствующие порты. Контроллер, содержащий программу преобразования портов, называют коммуникационным контроллером. Коммуникационный контроллер принимает сигнал через один из своих портов и передает его через другой порт. В общем случае коммуникационный контроллер может также выполнять функции сигнализации состояния шины, несложные функции управления и быть как ведомым, так и ведущим.
Широкое применение нашли адресуемые преобразователи интерфейса RS-232 в Ethernet. Они позволяют подключить устройство с портом RS-232 к компьютеру через сеть Ethernet. Поскольку написание программ для работы с Ethernet портом значительно сложнее, чем с COM, преобразователи RS-232 в Ethernet поставляются с драйверами, которые создают в компьютере виртуальные COM-порты, каждый из которых соответствует устройству RS-232, подключенному к шине Ethernet через адресуемый преобразователь. Это позволяет использовать программы, написанные для работы через COM-порт, в сети Ethernet без какой-либо их модификации. Пользовательское приложение общается с RS-232-устройствами через виртуальный COM-порт, а все сложности Ethernet и стандарта IEEE 802.3 оказываются скрыты в драйверах, поставляемых в комплекте с адресуемым преобразователем.
Конвертер интерфейсов для трансиверов
Конвертер интерфейсов — это устройство, представляющее собой корпус трансивера больших габаритов с портом для установки более миниатюрных трансиверов.
Конвертер интерфейсов включает в себя следующее:
Визуально и конструктивно конвертер интерфейса представляет собой обычный трансивер, за одним исключением — вместо оптических компонентов (лазер, фотоприемник или оптическая сборка) установлен порт для установки другого трансивера. Таким образом, роль оптических компонентов в конверторе интерфейсов выполняет установленный трансивер. Вся диагностическая информация (DDM) передается с установленного трансивера. Конвертер интерфейсов выполняет роль связующего звена между активным сетевым оборудованием (коммутатор, маршрутизатор и т.д.) и установленным трансивером, подавая питание на последний и передавая информацию.
Существует пять типов конвертеров интерфейсов:
Как видно из приведенного списка, конвертеры интерфейсов позволяют использовать современные трансиверы в портах старых форм-факторов активного сетевого оборудования (таких как X2, Xenpak и CFP).
Популярность конвертеров интерфейсов заключается в том, что у операторов связи много морально устаревшего активного сетевого оборудования.
В связи с растущими требованиями к скорости подключения и качеству предоставляемых сервисов, обновление, расширение и перестройка сети провайдера требуется довольно часто, но полная замена оборудования сопряжена с серьезными финансовыми вложениями. Поэтому, совокупная стоимость конвертера интерфейса и необходимого трансивера обходится значительно дешевле, нежели полная замена активного сетевого оборудования и покупка оптических трансиверов к нему.
Кроме того, использование конвертеров позволяет сократить количество используемых форм-факторов трансиверов, что упрощает подбор, поиск нового оборудования, организацию и поддержание ЗИП.
История создания Ethernet-CAN конвертера
Одним ясным солнечным днем по работе понадобился недорогой преобразователь интерфейсов CAN в Ethernet. Естественно поиски начались с готовых решений, но, как нередко это бывает, в итоге было принято решение о разработке собственного образца. Естественно, энтузиазм автора не смог устоять и ограничиться столь «урезанным» функционалом. Что из этого вышло, каким образом и почему — под катом.
Общая сводка. На фото выше представлена 3D модель разработанной мной платы при помощи САПР Altium Designer. Основные характеристики и функционал:
5000 Р. Проект носит open source характер, исходники можно найти на github. То, что получилось в итоге, помимо основного функционала, можно считать неплохой отладочной платой для работы с микроконтроллером STM32.
А теперь к подробностям создания.
Hardware
Изучение данной задачи началось с поиска и оценки готовых решений. Основными требованиями были:
Вот, что я увидел на выводе CANL «ПИРС CAN-Ethernet» при отправке двух байт данных [0xF0] и [0x0A] по TCP\IP:
Порядок бит перевернут, но с этим можно бороться программно, а вот со стартовыми и стоповыми битами через каждый байт что-то сделать на уровне приложения уже сложнее т.к. они вставляются аппаратно.
А вот как должен был выглядеть «истинный» CAN2.0B фрейм с теми же двумя байтами данных:
Как видно из осциллограммы, помимо байт данных в фрейме присутствует немало служебных бит протокола плюс биты стаффинга, а что самое главное – идут они непрерывно без всяких стартовых и стоповых! (Для тех, кому интересно, под спойлером детальное описание данной посылки).
Первые 4 байта – идентификатор фрейма. Подробнее о формате CAN можно узнать из [1]
Таким образом, решить проблему несоответствия CAN и UART фреймов программным способом мне не представлялось возможным и, окинув разочарованным взглядом промежуточные результаты исследований, было принято решение разработки собственного прототипа требуемого устройства.
В связи с тем, что теперь под контроль можно было взять более широкий спектр технических характеристик устройства, добавились следующие требования:
В качестве мозга нового устройства была выбрана небезызвестная платформа STM32F407VET6 [2], обладающая аппаратной поддержкой всех необходимых интерфейсов и неплохим запасом RAM и FLASH памяти. Пошерстив интернет, в качестве PHY Ethernet был выбран трансивер DP83848IVV [3], имеющий хорошую, на мой взгляд, документацию и достаточно примеров схем с подключением и трассировкой. В качестве внешней энергонезависимой памяти для хранения логов я выбрал SPI FLASH 2 MB и SPI EEPROM для хранения разнообразных настроек. Кроме того была добавлена защита питания от перенапряжения, переполюсовки. Через N вечеров и M выходных были составлены принципиальная схема и трассировка печатной платы устройства первой версии. Т.к. места на плате было достаточно, а незадействованные ножки МК оставлять не хотелось, помимо основного функционала на плату были добавлены:
Первая версия PCB-дизайна
Позже были заказаны и собраны два тестовых образца с полным набором периферии для исследований. В целях экономии плата была изготовлена без маски поэтому имеет такой нехарактерный цвет.
При помощи STM32CubeMX я набросал тестовую прошивку с проверкой работоспособности основных периферийный модулей устройства и, в первом приближении, заработало все, кроме запуска МК от внешнего кварца 8 МГц. Оказалось, из-за моей ошибки в составлении спецификации, были напаяны не те нагрузочные конденсаторы. Но это не помешало STM32F407 работать от внутреннего RC-генератора. Когда же я смог пропинговать свое устройство, радости было не сдержать т.к. с трассировкой PHY Ethernet я провозился, наверное, дольше всего. Затем в браузере я увидел свою тестовую http страницу и с тестированием успокоился.
К тому времени, на работе, в закромах нашлась железка способная решить поставленную задачу конвертации в текущем проекте, но, помимо крупных габаритов и стоимости, сев писать для нее прошивку, я столкнулся с проблемами связанными с объемом RAM и урезанным функционалом TCP\IP стека МК LPC2368. Так что желание сделать свое устройство только усиливалось.
Внимательно изучив недостатки первой версии, я, долго не думая, приступил ко второй. И снова захотелось добавить «задел на будущее», вместив в прежний форм-фактор следующие компоненты:
В итоге получился этакий dev-board с возможностью подключения внешних модулей. На этот раз плату заказал в Китае. Сборка производилась у нас.
Вторая версия платы
Ко второй версии я разобрался с 3D моделированием в Altium Designer, что очень помогло в избежании ошибок взаимного расположения компонентов по двум сторонам (оказалось, в интернете уже полно готовых моделек SMD компонентов [4]). Тем самым, все ошибки первой версии были исправлены, нововведения показали свою работоспособность, что очень меня порадовало.
Firmware
Описание кода выходит за рамки данной части, однако пару слов о программной составляющей сказать хочется. В своем устройстве я решил использовать связку FreeRTOS + LwIP стек. Статей про них в достаточном количестве, например, [5] и [6], поэтому прикрутить их к своему проекту не должно составить трудностей. Вкратце, LwIP – TCP\IP стек для встраиваемых систем, характеризующийся малым потреблением RAM и удобным API (есть даже BCD socket оболочка). Я использовал netconn API. Средствами FreeRTOS, вся работа TCP\IP стека помещается в поток отдельный от приложения. Помимо основной работы (соединение внешнего TCP-сервера с CAN шиной) в самостоятельном потоке крутится отдельный веб-сервер для доступа к настройкам устройства. Такой веб-интерфейс предназначен для мониторинга и конфигурации настроек устройства – установки разных режимов работы, скоростей передачи, адресов и т.д. Пока не знаю получится ли сделать и обновление прошивки через него.
Заключение
Это был мой первый (и надеюсь, что не последний) хардверный проект такой сложности и, несмотря на допущенные ошибки, вторую версию платы, думаю, можно считать успешной. На каждой итерации было множество сомнений, но, тем не менее, лишний раз убеждаюсь, что если не пробовать — получаться ничего точно не будет.