Современная электроника №8/2021

ИНЖЕНЕРНЫЕ РЕШЕНИЯ 28 WWW.SOEL.RU СОВРЕМЕННАЯ ЭЛЕКТРОНИКА ◆ № 8 2021 Четырёхканальный ретранслятор 1-Wire на основе 12F629 Cистемы сбора данных часто сталкиваются с проблемой длинной линии, которая может решаться разными техническими методами. В данной работе приведено описание схемы и программного обеспечения метода ретрансляции сигнала для линии интерфейса 1-Wire на основе микроконтроллера 12F629 на четыре независимых направления. Представлен процесс ретрансляции данных для температурных датчиков DS1820, которые удалены на расстояние, превышающее допустимую длину линии, и поэтому не имеют условий устойчивой работы из-за искажений в кабеле. Ретрансляция сигналов создаёт альтернативу замене специальных микросхем коммутации интерфейса 1-Wire DS2409, выпуск которых прекращён. Работа микроконтроллеров данной серии в качестве ретрансляторов сигналов интерфейса 1-Wire позволяет добавлять новые функции систем измерения и оставить старые элементы интерфейса. Сохраняется наработанное программное обеспечение информационных систем, устраняется монополизм производителей специализированных микросхем и расширяется функциональность систем телеметрии. Андрей Шабронов (shabronov@ngs.ru ) Функциональная схема ретрансляции данных интерфейса 1-Wire на МК 12F629 Согласно информационной моде- ли связи OSI [1] существуют семь уров- ней взаимодействия между компьюте- рами, или, в нашем случае, имеется два участка: компьютер – МК, МК – датчик DS1820. Поскольку нижний физиче- ский уровень интерфейса 1-Wire дву- направленный, ретрансляция данных может существовать только на верх- нем, протокольном уровне обмена или сеанса. Необходимо выполнить ретрансляцию как повторение сеан- са обмена, т.е. задействовать все уров- ни взаимодействия. На рис. 1 показана функциональная схема одного канала и временны ′ е диаграммы сеанса полу- чения данных через ретранслятор на основе МК 12F629. Ретранслятор на МК 12F629 имеет свой уникальный номер по стандар- ту 1-Wire и определяется как устрой- ство, которого нет в существующей базе производителя. При опреде- лении программой производителя выдаётся сообщение о ретранслято- ре как о метке с неизвестного устрой- ства. На рис. 2 представлена группа устройств c указанными номера- ми, которые определила программа iButton Viewer. Крайний байт справа идентифици- рует функцию устройства, а именно: ● 6C3C01D6077F6F28 – цифровой дат- чик температуры DS1820; ● DE00000003C47D1F – «ветвитель» ли- нии 1-Wire DS2409; ● 5C000003F2B39609 – адаптер 1-Wire DS9097U; ● 90012F6290040C5F – МК 12F629, ко- торый не определяется программой, так как ретранслятора нет в базе про- изводителя устройств. Видно, что программа определи- ла два датчика температуры с бай- том 0x28 и два ветвителя c байтом 0x1F, но отображено в развёрнутом виде на рис. 2 только по одному най- денному устройству. Таким образом, ретранслятор можно определить име- ющимся и разработанным ранее про- граммным обеспечением. Датчики также определяются этим программ- ным обеспечением и затем переклю- чаются в линии каналов ретрансля- ции. Идентификационный номер 0x5F для ретранслятора автор уста- новил выше номеров известных на данный момент устройств. Опреде- ление подключаемых каналов и их коммутация построены по аналогии с ветвителями DS2409. Используют- ся два байта контроля и управления: первый для определения состояния и второй для подключения к кана- лу. Для выбора канала задаётся байт подключения, который определяется как: 0xCC – 1-й канал MAIN, 0x33 – 2-й канал AUX, 0xCF – 3-й канал MAIN2, 0x3F – 4-й канал AUX2. Пакет доступа к датчику DS1820 с номером 6C3C01D6077F6F28, если он подключён к 3-му каналу ретран- слятора МК 12F629 с номером 90012F6290040C5F, выглядит так: <RST>–0x55–<90012F6290040C5F> 0xCF–0xFF–0xDF–<6C3C01D6077F6F28> , где: ● <RST> – последовательность байт ко- манды сброса, которая зависит от ти- па адаптера; ● 0x55 – стандартный байт «назначить устройство 1-Wire», все последую- щие 8 байт – это номер адресуемого устройства на шине 1-Wire. В данном примере это <90012F6290040C5F>; ● 0xCF – байт назначает 3-й канал MAIN2 для работы в ретрансляци- онном режиме; ● 0xFF – байт определения состояния. Он возвращает данные о наличии 0 В или +5 В на выходах МК для кон- троля возможности последующей ретрансляции. Следовательно, если определится 0 В, то этот канал не- исправен, и, возможно, какой-либо датчик замкнул линию. Кроме того, всегда возвращается 7-й бит = 0, если производится запрос, ретранслятор в наличии и отвечает; ● 0xDF – байт команды на передачу данных. Всего используется три ко- манды для управления режимом ре- трансляции, которые определяют- ся соответствующим битом в байте. Все другие биты должны быть равны единице: − 1011-1111=0xBF, 6-й бит = 0 – вы- полняется команда сброса всех ре- жимов МК и установка выходных уровней в +5 В; − 1101-1111=0xDF, 5-й бит = 0 – вы- полняется назначение номера тем- пературного датчика, ретранслиру- емого в используемый канал; − 1110-1111=0xEF, 4-й бит = 0 – выпол- няется приём данных ранее назна- ченного температурного датчика. В алгоритме работы с датчиками требуется убедиться в исправности МК ретранслятора, передав номер и получив байт ответа. Далее – передать пакет с командой и номером датчика,

RkJQdWJsaXNoZXIy MTQ4NjUy