Введение
Протокол 1-wire широко используется в современных системах сбора данных и управления производством. К недостаткам подобных решений следует отнести необходимость применения специализированной микросхемы преобразователя команд для протокола 1-wire и отсутствие гальванической развязки [1]. Предлагаемый адаптер позволяет устранить данные недостатки и тем самым расширить сферу применения изделий, работающих с протоколом 1-wire.
Отличительным признаком протокола 1-wire является простой набор команд физического уровня подключения, который состоит из двух сигналов «0» и «1» с разной длительностью и отдельного сигнала сброса шины. Это позволяет достаточно просто перенести все команды в сигналы стандарта RS-485 [2].
В данной работе представлена схема адаптера для обмена данными между компьютером и устройством 1-wire с использованием команд интерфейса RS-485. Приведено описание принципа перехода от обмена данными с использованием одного порта на использование двух портов. Для тестирования устройства прилагается программа [3], которую можно скачать на сайте www.soel.ru.
Принципиальная схема 1-wire адаптера
Для согласования одновременной передачи и приёма данных по протоколу 1-wire используются два канала RS-485. Один из них работает на передачу, а второй – на приём. По сути это является «усиленным» вариантом протокола RS-232 и аналогом протокола RS-422. Схема адаптера, представленная на рисунке 1, выполнена в редакторе DipTrace 2.4.0.2 и доступна для скачивания по ссылке [3]. Рассмотрим основные узлы адаптера.
Оптическая пара V01 служит для передачи данных в шину 1-wire. Для согласования сигналов со стороны выхода RS-485-2-out включена распространённая микросхема U2 (sr485), представляющая собой преобразователь уровня сигналов RS-485 и управляемый переключатель передачи данных. Микросхема работает без переключения режимов направления передачи данных.
Оптическая пара V02 служит для приёма данных от шины 1-wire. Cо стороны входа RS-485-in включена такая же согласующая микросхема U1. Микросхема работает без переключения режимов передачи данных. Выход RO используется для индикации приёма данных. Приём данных и наличие питания индицируется светодиодом D1. Допускается использовать только высокоскоростные оптические пары с задержкой на переключение не более 1–2 мкс.
Приём информации из шины 1-wire выполняет операционный усилитель U3, работающий в режиме компаратора и настроенный на среднее значение напряжения питания 2,5 В. Операционный усилитель обеспечивает помехозащищённость и согласование с принимающей оптопарой V02.
Определение значения «0» или «1» импульсного сигнала по «среднему уровню» амплитуды сигнала позволяет получить максимально возможную длину подключения. К шине 1-wire и интерфейсу RS-485 подключены источники питания. Все микросхемы адаптера должны иметь фильтрующие конденсаторы ёмкостью не менее 100 нФ. Схема не критична к используемой элементной базе, допускается замена элементов на любые зарубежные или отечественные аналоги. В данной работе использованы распространённые преобразователи USB-RS-485, которые через данный адаптер работают с шиной 1-wire [4]. Питание +5 В доступно непосредственно от интерфейса USB.
Программное обеспечение
В тестируемой конфигурации в шину 1-wire было включено четыре датчика DS18B20, измеряющих температуру окружающей среды. Программа написана на языке программирования Форт [5]. Текст программы (файл 1wire2RS-485_v1.f), исполняемый файл (файл 1wire2RS-485_v1.exe) и компилятор языка Форт (файл 100_spf4.exe) доступны в архиве [3]. Программа может быть перенесена на любой другой язык программирования и на любую операционную систему, поскольку работа с портами RS-485 широко освещена в технической литературе.
Для работы программы требуется открыть два устройства с доступом по протоколу RS-485. На рисунке 2 приведён фрагмент окна диспетчера устройств с двумя подключёнными адаптерами USB-RS-485, которым соответствуют порты COM99 и COM100. Для демонстрации работы адаптера разработана тестовая программа [3]. На рисунке 3 показано окно работающей программы с портами COM99 и COM100.
Необходимо отметить, что все существующие адаптеры 1-wire построены на использовании только одного порта COM или USB. Однако алгоритм опроса устройства 1-wire и все существующие коды запросов и ответов остаются прежними. Необходимо только в самом нижнем уровне доступа ввести разделение на передачу данных с одного порта и приёма данных с другого.
Если адаптер подключён правильно, то при передаче данных на один порт такой же сигнал придёт и на другой. Таким способом можно определять работоспособность адаптера. В тестовом меню эту проверку можно выполнить нажатием клавиши «1» – «автоопределение» портов адаптера.
В настоящее время существует целый класс устройств интерфейса LAN-RS-485 для промышленного применения, которые поддерживают работу с двумя и более портами [6]. При использовании интерфейса TCP/IP-RS-485 требуется обратить внимание на возможность программирования скорости порта в режиме передачи данных. Для формирования сигнала сброса шины 1-wire обычно используется переход на меньшую скорость порта и последующую передачу одного байта. Функция изменения скорости может отсутствовать в некоторых аппаратных реализациях.
Заключение
Очевидным достоинством предложенной схемы адаптера 1-wire c гальванической развязкой является отказ от специальных программируемых интерфейсных микросхем. Это повышает ремонтопригодность и надёжность системы. Вторым достоинством схемы является возможность наращивания количества точек доступа и возможность работы в параллельном режиме с дублированием, что позволяет ввести избыточность аппаратной поддержки и реализовывать системы с «горячим» резервированием.
На рисунке 4 приведена блок-схема сети 1-wire, где один персональный компьютер управляет и считывает данные, а второй осуществляет контроль работы сети. В случае необходимости контролирующий компьютер берёт на себя функции считывания данных.
Отсутствие наработанного программного обеспечения сдерживает построение систем с «двухпортовой» реализацией адаптера. Однако создание программного обеспечения для данного типа адаптеров не должно вызвать больших трудностей, поскольку алгоритм опроса устройств 1-wire остаётся без изменений. Все ранее готовые программы обращения через один порт без проблем модифицируются для работы с двумя портами, где один порт только читает, а другой только передаёт данные.
Литература
- https://www.chipfind.ru/datasheet/assp/ibuttons/
- http://www.bookasutp.ru/Chapter2_3.aspx
- http://shabronov_s2.dyn-dns.ru/temp/sintep_v3_4spf/publ/adapter_1wire_v2.zip
- https://www.aliexpress.com/popular/usb-rs485-converter.html
- http://www.forth.org.ru/
- https://consteel-electronics.ru/preobrazovateli/Ethernet/Ethernet-RS-485?yclid=7649842954622221283
Если вам понравился материал, кликните значок - вы поможете нам узнать, каким статьям и новостям следует отдавать предпочтение. Если вы хотите обсудить материал - не стесняйтесь оставлять свои комментарии : возможно, они будут полезны другим нашим читателям!