Интерфейс 1-wire
Однопроводной интерфейс 1-Wire, разработанный в конце 90-х годов фирмой Dallas Semiconductor Corp., регламентирован разработчиками для применения в трех основных сферах-приложениях:
- приборы в специальных корпусах MicroCAN для решения проблем идентификации, переноса или преобразования информации (технология iButton),
- программирование встроенной памяти интегральных компонентов,
- системы автоматизации (технология сетей
- 1-Wire-сетей).
Если первое применение широко известно на мировом рынке, и уже давно пользуется заслуженной популярностью, а второе с успехом обеспечивает возможность легкой перестройки функций полупроводниковых компонентов с малым количеством внешних выводов, производимых фирмой Dallas Semiconductor Corp., то системы автоматизации на базе 1-Wire-шины еще не получили должного признания. Ранее такая ситуация определялась, крайне ограниченным набором компонентов для организации применений в области автоматизации. Однако, в последнее время появляется все больше сообщений и конкретных примеров использования 1-Wire-интерфейса в самых различных областях, все больше разработчиков проявляют интерес к этой технологии, что связанно, прежде всего, со значительным расширением номенклатуры однопроводных компонентов.
Так в чем же особенность этого сетевого стандарта? Ведь в качестве среды для передачи информации по однопроводной линии чаще всего возможно использование обычного телефонного кабеля и, следовательно, скорость обмена в этом случае не велика. Однако, если внимательно проанализировать большинство объектов требующих автоматизации, то более чем для 60% из них предельная скорость обслуживания в 15,4 кБит/сек будет более чем удовлетворительной. А другие преимущества 1-Wire, такие как:
- простое и оригинальное решение адресуемости абонентов,
- несложный протокол,
- простая структура линии связи,
- малое потребление компонентов,
- легкое изменение конфигурации сети,
- значительная протяженность линий связи,
- исключительная дешевизна всей технологии в целом,
. говорят о необходимости обратить самое пристальное внимание на этот эффективный инструмент для решения задач комплексной автоматизации в самых различных областях деятельности.
Основные принципы
1-Wire-net представляет собой информационную сеть, использующую для осуществления цифровой связи одну линию данных и один возвратный (или земляной) провод. Таким образом, для реализации среды обмена этой сети могут быть применены доступные кабели, содержащие неэкранированную витую пару той или иной категории, и даже обычный телефонный провод. Такие кабели при их прокладке не требуют наличия какого-либо специального оборудования, а ограничение максимальной длины однопроводной линии регламентировано разработчиками на уровне 300м.
Основой архитектуры 1-Wire-сетей, является топология общей шины, когда каждое из устройств подключено непосредственно к единой магистрали, без каких-либо каскадных соединений или ветвлений. При этом в качестве базовой используется структура сети с одним ведущим или мастером и многочисленными ведомыми. Хотя существует ряд специфических приемов организации работы однопроводных систем в режиме мультимастера.
Конфигурация любой 1-Wire-сети может произвольно меняться в процессе ее работы, не создавая помех дальнейшей эксплуатации и работоспособности всей системы в целом, если при этих изменениях соблюдаются основные принципы организации однопроводной шины. Эта возможность достигается благодаря присутствию в протоколе 1-Wire-интерфейса специальной команды поиска ведомых устройств (Поиск ПЗУ), которая позволяет быстро определить новых участников информационного обмена. Стандартная скорость отработки такой команды составляет
75 узлов сети в секунду.
Благодаря наличию в составе любого устройства, снабженного сетевой версией 1-Wire-интерфейса, уникального индивидуального адреса (отсутствие совпадения адресов для приборов, когда-либо выпускаемых Dallas Semiconductor Corp., гарантируется самой фирмой-производителем), такая сеть имеет практически неограниченное адресное пространство. При этом, каждый из однопроводных приборов сразу готов к использованию в составе 1-Wire-сети, без каких-либо дополнительных аппаратно-программных модификаций. Однопроводные компоненты являются самотактируемыми полупроводниковыми устройствами, в основе обмена информацией между которыми, лежит управление изменением длительности временных интервалов импульсных сигналов в однопроводной среде и их измерение. Передача сигналов, для 1-Wire-интерфейса, асинхронная и полудуплексная, а вся информация, циркулирующая в сети, воспринимается абонентами либо как команды, либо как данные. Команды сети генерируются мастером и обеспечивают различные варианты поиска и адресации ведомых устройств, определяют активность на линии даже без непосредственной адресации отдельных компонентов, управляют обменом данными в сети и т.д.
Стандартная скорость работы 1-Wire-сети, которая составляет 15,4Кбит/сек, была выбрана, во-первых, с учетом обеспечения максимальной надежности передачи данных на большие расстояния, и, во-вторых, с учетом быстродействия наиболее широко распространенных типов микроконтроллеров, которые в основном должны использоваться при реализации ведущих устройств однопроводной шины. Это значение скорости обмена может быть уменьшено до любого возможного значения благодаря введению принудительной задержки между передачей в линию отдельных битов данных (растягиванию временных слотов протокола). Или увеличено за счет перехода на специальный ускоренный режим обмена (скорость Overdrive — до 125Кбит/сек), который допускается для отдельных типов однопроводных компонентов на небольшой по расстоянию, качественной, не перегруженной другими приборами линии связи.
При реализации однопроводного интерфейса используются стандартные КМОП/ТТЛ логические уровни сигналов, а питание большинства однопроводных компонентов может осуществляться от внешнего источника с рабочим напряжением в диапазоне от 2,8В до 6,0В. Альтернативой применению внешнего питания служит, так называемый, механизм «паразитного питания», действие которого заключается в использовании каждым из ведомых компонентов 1-Wire-линии электрической энергии импульсов, передаваемых по шине данных, которая аккумулируется специальной, встроенной в прибор емкостью. Кроме того, отдельные компоненты однопроводных сетей могут использовать режим питания по шине данных, когда энергия к приемнику поступает непосредственно от мастера по линии связи, при этом обмен информацией в сети принудительно прекращается.
Пожалуй, особенно привлекательным качеством технологии 1-Wire является исключительная простота настройки, отладки и обслуживания сети практически любой конфигурации, построенной по этому стандарту. Действительно, для начала работы достаточно любого персонального компьютера, недорогого адаптера 1-Wire-линии, а также свободно распространяемой фирмой Dallas Semiconductor Corp. программы iButton Viewer. При наличии этого небольшого числа составляющих контроль и управление сетью практически любой сложности, построенной на базе стандартных однопроводных компонентов, организуется буквально в течение нескольких минут. Программа iButton Viewer, в этом случае, позволяет с максимальным комфортом для разработчика идентифицировать любое из ведомых однопроводных устройств на линии и проверить в полном объеме правильность его функционирования в составе конфигурируемой сети.
Организация ведущих
Отдельные виды адаптеров, которые позволяют наделить любой персональный компьютер возможностью обслуживать в качестве мастера 1-Wire-сеть, выпускаются самой фирмой Dallas Semiconductor Corp. К ним относятся адаптеры для параллельного порта типа DS1410E, для COM-порта типа DS9097E и DS9097U, для USB-порта типа DS9490R. Эти приборы имеют различные функциональные возможности и конструктивные особенности, что обеспечивает разработчику максимальную свободу выбора при конструировании. А наличие у пользователя небольших навыков в создании электронной аппаратуры, позволяет легко произвести самостоятельную сборку схемы простейшего адаптера 1-Wire-сети для компьютера из небольшого числа доступных электронных компонентов.

Часто в качестве ведущего однопроводной шины выступает не компьютер, а простейший универсальный микроконтроллер. Для организации его сопряжения с 1-Wire-сетью используются различные программно-аппаратные методы. От простейшего, когда управляющая программа контроллера полностью реализует протокол 1-Wire-интерфейса на одном из своих функциональных двунаправленных выводов, связанных с однопроводной линией, до вариантов, позволяющих высвободить значительные ресурсы контроллера, благодаря использованию специализированных микросхем сопряжения с 1-Wire-сетью. Такие микросхемы подключаются к процессору, играющему роль ведущего однопроводной шины, через периферийные узлы ввода/вывода, входящие в состав любого универсального микроконтроллера. Например, устройство DS1481 предназначено для подключения непосредственно к функциональным выводам параллельного обмена контроллера.

А для организации мастера однопроводной системы на базе микроконтроллеров с 3хвольтовым питанием поставляются пассивные микросхемы DS1482, выполняющие согласование с уровнями сигналов стандартной 1-Wire-магистрали. Если же мастер однопроводной линии должен быть организован на базе стандартного узла последовательного интерфейса UART микроконтроллера, используется микросхема DS2480В, а микросхема DS2490 адаптирует однопроводную линию для работы от встроенного узла UBS-интерфейса. Обе микросхемы реализуют так называемый программируемый механизм активной подтяжки шины данных 1-Wire-магистрали, обеспечивающий качественную передачу сигналов в длинных проблемных линиях и увеличение нагрузочной способности ведущего по количеству обслуживаемых им ведомых устройств. Кстати большинство выше упомянутых адаптеров для персональных компьютеров, также построены на базе подобных микросхем. Более того, учитывая особенности работы современных операционных сред Windows, использование именно этих компонентов, которые по своей сути являются управляемыми по последовательному интерфейсу цифровыми автоматами, обеспечивает полномасштабное обслуживание однопроводных линий в реальном масштабе времени.

При построении сложных законченных микропроцессорных систем, имеющих дефицит машинного времени для реализации 1-Wire-протокола, наиболее рациональной является идея о возложении отдельной задачи по обслуживанию однопроводной линии на специальный узел заказной или полузаказной СБИС, для последующего сопряжения такого цифрового автомата, через системную магистраль, непосредственно с основным процессорным узлом. Фирма Dallas Semiconductor Corp. даже разработала набор рекомендаций по организации подобного узла под названием DS1WM, который был реализован, в том числе, специалистами Xilinx Inc. в виде законченного практического примера для программируемых перестраиваемых матриц семейств Virtex и Spartan. Более того, и Dallas Semiconductor Corp., которая в том числе известна как поставщик высокоскоростных контроллеров клона MCS51, выпускает специализированный связной микроконтроллер DS80C400, который содержит встроенный в кристалл автомат поддержки 1-Wire-протокола с возможностью реализации механизма активной подтяжки.
Достаточно перспективным представляется также направление, связанное с применением карманных компьютеров (или PDA (Personal Digital Assistant)) популярных платформ PalmOS, Handspring и WinCE/PocketPC для обслуживания однопроводных компонентов, в том числе работающих в составе 1-Wire-сетей. При этом, для подключения PDA к однопроводной шине применяют специализированные адаптеры последовательного порта, которые отличаются малым потреблением и построены на базе схемных решений, использующих выше перечисленные микросхемы сопряжения с 1-Wire-линией. Именно такой подход в настоящее время является наиболее рациональным при организации автономных и мобильных 1-Wire-систем.
Проблема подготовки программного обеспечения для управления мастером линии при обслуживании 1-Wire-сетей, также не представляется неразрешимой. Фирмой Dallas Semiconductor Corp. свободно распространяется профессиональный программный пакет разработчика iButton TMEX SDK, являющийся универсальным средством для профессиональных программистов, который значительно упрощает процесс создания программ для обслуживания однопроводных устройств, подключенных через стандартные типы адаптеров к персональным компьютерам, которые оснащены операционной системой Windows. Он содержит комплект отлаженных драйверов и утилит для реализации полномасштабного 1-Wire-протокола. В качестве среды взаимодействия с разработчиком пакет iButton TMEX SDK использует специальный стандартизованный программный API-интерфейс. Кроме того, с fttp-сервера кампании Dallas Semiconductor Corp. свободно доступен ряд примеров реализации 1-Wire-протокола для некоторых, наиболее популярных видов микропроцессоров, а также готовые библиотеки функциональных программных модулей однопроводного интерфейса для различных программных платформ.
Ведомые однопроводные компоненты
Ведомые однопроводные компоненты, содержащие 1-Wire-интерфейс, выпускаются в двух различных видах. Либо в корпусах MicroCAN, похожих внешне на дисковый металлический аккумулятор, либо в обычных корпусах для монтажа на печатную плату. Футляр MicroCAN полый внутри. Он выполняет функцию защиты содержащегося в нем полупроводникового кристалла однопроводной микросхемы, который соединен с внешним миром лишь через две, изолированные друг от друга, половинки корпуса, являющиеся по существу контактными площадками для подключения однопроводной линии. В подобных «таблеточных» корпусах поставляются, как правило, приборы iButton. Компоненты, которые предназначены для использования в составе 1-Wire-сетей, упаковываются в пластиковые корпуса, используемые для изготовления транзисторов и интегральных схем. Такой подход объясняется тем, что в отличие от устройств iButton однопроводные приборы для 1-Wire-сетей часто имеют более двух выводов. Помимо выводов, которые требуются для обмена данными по однопроводной магистрали, они располагают дополнительными выводами необходимыми, для обеспечения их питания и организации внешних цепей, связывающих такие приборы с объектами автоматизации, например, датчиками или исполнительными устройствами.
К наиболее простым ведомым однопроводным компонентам относятся кремневый серийный номер DS2401 (или модифицированный вариант этого прибора с внешним питанием DS2411) и электронный ключ DS2405, управляемый по 1-Wire-интерфейсу. Первое из этих устройств часто используется в качестве электронной метки, которая позволяет идентифицировать состояние, например, механического переключателя, коммутирующего линию данных однопроводного интерфейса. С помощью DS2405 можно дистанционно осуществить простейшие функции переключения внешнего оборудования, изменяя состояние управляемого ключа относительно возвратного проводника 1-Wire-магистрали.
Однако, наиболее популярными ведомыми компонентами, на базе которых реализовано, пожалуй, наибольшее количество применений, безусловно, являются цифровые термометры типа DS18S20 (более известные под обозначением снятого с производства прибора DS1820, который уже не производится, но успел стать международным брендом). Преимущества этих цифровых термометров с точки зрения организации магистрали, по сравнению с любыми другими интегральными температурными сенсорами, а также неплохие метрологические характеристики и хорошая помехоустойчивость, выводят их на первое место при построении многоточечных систем температурного контроля в диапазоне от -55°С до +125°С. Они позволяют не только осуществлять непосредственный мониторинг температуры в режиме реального времени, но и благодаря наличию встроенной энергонезависимой памяти температурных уставок, могут обеспечивать приоритетную сигнализацию в линию о факте выхода контролируемого параметра за пределы заданных значений. Также, поставляются более совершенные приборы DS18В20, скорость преобразования, в которых определяется разрядностью результата, которая программируется мастером линии непосредственно в ходе их обслуживания. Цифровой код, считываемый с такого термометра, является прямым результатом измеренного значения температуры и не нуждается в дополнительных преобразованиях. А их некалиброванная, но в тоже время более дешевая версия под обозначением DS1822, представляется оптимальным решением для разработчиков недорогих многоточечных систем контроля температурных процессов. Для потребителей, использующих только паразитный режим питания однопроводной линии, кампания Dallas Semiconductor Corp. выпускает экономичные двухвыводные приборы — DS18S20-PAR, DS18B20-PAR, DS1822-PAR. Российской фирмой Rainbow Technologies получен сертификат Госстандарта России об утверждении в качестве средств измерения в том числе однопроводных цифровых термометров DS1822, DS18B20, DS18S20, DS1920, производимых фирмой Maxim Integrated Products, Inc., в состав которой входит Dallas Semiconductor Corp. В подтверждение этого факта имеется документ о том, что данные типы приборов зарегистрированы в Государственном реестре средств измерений под №23169-02 и допущены к применению в Российской Федерации.
Четырехканальный однопроводной АЦП типа DS2450 и двухканальный однопроводной счетчик, совмещенный с буферной памятью, типа DS2423 позволяют решать задачи, связанные с оцифровкой аналоговых и импульсно-временных сигналов. Первое из этих устройств по существу разрешает проблему обслуживания источников аналоговой информации в составе 1-Wire-сетей, к которым относится большинство выпускаемых в настоящее время датчиков различных физических величин (давление, вес, напряжение, влажность, ток, освещенность, ускорение, та же температура, но в диапазонах недоступных для регистрации посредством использования цифровых термометров и т.д.). Второй прибор может с успехом обслуживать многие виды применяемых в технике импульсных сенсоров (различные оптические счетчики, сенсоры количества оборотов, выходной сигнал с расходомеров-вертушек, емкостные датчики влажности, включенные в задающие цепи управляемых генераторов импульсов, счетчики уровня радиации, интегрирующие преобразователи напряжения в частоту и т.д.).
Но все-таки наиболее незаменимыми «кирпичиками», лежащими в основе фундамента однопроводных сетей автоматизации, являются универсальные сдвоенные адресуемые транзисторные ключи типа DS2406P (современная версия широко известных приборов DS2407P).
На базе этих устройств может быть реализована масса применений, и, прежде всего, узлы контроля логических состояний (уровней) и схемы обслуживания датчиков «сухого контакта», а также разнообразные ключевые схемы. Таким образом, именно благодаря использованию этих компонентов осуществляется сбор дискретной информации с территориально рассредоточенных датчиков (мониторов дверей, контакторов положения арматуры, любых датчиков имеющих выход ДА/НЕТ, как-то датчики положения, прохода, присутствия, пожарной и охранной сигнализации и т.д.). Подобные же приборы обеспечивают управление переключением любых видов силового оборудования, которые имеют два рабочих состояния: включено/выключено (нагревателей, кондиционеров, моторов, вентиляторов, арматурных задвижек и т.д.). Кроме того, двунаправленные, индивидуально программируемые выводы DS2406P могут быть использованы для организации медленного последовательного интерфейса между локальным микроконтроллером и 1-Wire-сетью. Не смотря на невысокую скорость при реализации подобного способа обмена информацией по однопроводной сети, когда один бит данных передается за две стандартные посылки, такое решение является приемлемым и достаточно надежным для большого числа конкретных применений.
Тем не менее, самой фирмой Dallas Semiconductor Corp. в качестве стандартного «мостика» обмена между любыми схемами, построенными на микроконтроллерах различных типов, и 1-Wire-сетями рекомендуется применение специализированной двухпортовой статической памяти DS2404. Поскольку к массиву памяти этого прибора возможен доступ, как со стороны однопроводной шины, так и со стороны подчиненного последовательного интерфейса, управляемого микроконтроллером, обмен информацией между ведущим сети и подчиненным интеллектуальным устройством, решающим какую-либо локальную задачу, производится достаточно легко. Более того, благодаря наличию в составе микросхемы DS2404 дополнительного узла часов реального времени и календаря, возможно снабжение данных, сохраняемых процессором в общем массиве памяти, индивидуальными временными метками.
На базе узла часов реального времени кристалла DS2404 кампанией Dallas Semiconductor Corp. выпускается еще два компонента, весьма полезных для создания однопроводных систем автоматизации. Это устройства DS2415 и DS2417. Применяя любой из этих приборов можно организовать дешевые часы/календарь с однопроводным сетевым интерфейсом. Кроме того, второе устройство благодаря наличию в его составе отдельного вывода прерывания, может также дополнительно управлять по времени переключением внешнего оборудования или обеспечивать синхронизацию работы других устройств с процессами, происходящими на 1-Wire-линии.
Значительно расширяет возможности однопроводных сетей по аналоговому управлению рассредоточенным, в том числе силовым, оборудованием цифровой потенциометр DS2890 укомплектованный сетевым 1-Wire-интерфейсом. Используя этот прибор можно создавать самые разнообразные системы удаленного безударного управления, благодаря возможности плавного изменения аналогового регулирующего сигнала по 256 градациям.

При всем многообразии однопроводных компонентов, очевидно, что наиболее универсальным из них является уникальный прибор DS2408. Это индивидуально двунаправленный восьмиразрядный свободно поразрядно программируемый по 1-Wire-шине порт ввода/вывода, который позволяет реализовать любой интерфейс между внешним устройством произвольной модификации и однопроводной линией. Этот прибор имеет двунаправленный вывод внешней синхронизации, обеспечивающий аппаратное тактирование передаваемых или принимаемых данных. Использование микросхемы DS2408 позволяет обеспечить управление посредством 1-Wire-шины: сосредоточенным двунаправленным вводом/выводом по 8 независимым каналам, приводом светодинамических, жидкокристаллических индикаторов и дисплеев различных видов, сканированием матричных клавиатур и дискретных датчиков самых различных типов, а так же позволяет реализовать действительно полномасштабный интерфейс с различными типами микроконтроллеров, как в последовательной, так и в параллельной моде.
Некоторые компоненты 1-Wire-сетей содержат в своем составе массив постоянной (однократно заполняемой пользователем) или энергонезависимой памяти того или иного объема. Это позволяет хранить специальную служебную информацию, связанную с применением конкретного компонента и особенностями его использования (идентификатор, территориальное положение, калибровочные коэффициенты, размерность, значение уставок по умолчанию и т.д.), непосредственно в составе однопроводного прибора. Благодаря этому для организации работы каждой новой однопроводной сети не нужно готовить отдельное специальное программное обеспечение, достаточно иметь одну стандартную программу, которая переконфигурируется в зависимости от специфики конкретной системы (конечно, если память всех компонентов 1-Wire-системы заполнена в соответствии с определенными, заранее оговоренными правилами). Если же в процессе работы системы требуется хранить дополнительные объемы информации, в распоряжении разработчика имеются специальные однопроводные приборы, содержащие как постоянную (DS2502/ DS2505/ DS2506), так и энергонезависимую (DS2430A/ DS2432/ DS2433) память различных объемов.

Целый ряд компонентов семейства iButton в корпусах MicroCAN также может быть использован в составе 1-Wire-сетей в качестве ведомых однопроводных устройств, которые решают специфические задачи идентификации, накопления, хранения и переноса информации. Например, для реализации процедуры идентификации в системах промышленной автоматизации обычно достаточно применения распространенных носимых электронных меток DS1990A. А многоточечный температурный мониторинг легко может быть выполнен сетью из нескольких приборов DS1921# или иначе устройств ТЕРМОХРОН, каждое из которых регистрирует температурные значения, измеренные через определённые, заранее заданные, промежутки времени и сохраняет полученную информацию в собственной энергонезависимой памяти, по существу, являясь программируемым «температурным магнитофоном». Для решения проблемы переноса данных, накопленных автономной 1-Wire-системой, к персональному компьютеру выпускаются разнообразные приборы iButton, которые в этом случае играют роль, так называемых, «транспортных таблеток». К подобным устройствам, прежде всего, относятся приборы энергонезависимой памяти, включающие в состав своей конструкции литиевый элемент питания. Это целый ряд «таблеток» начиная с DS1992 (1Кбит) до DS1996 (64Кбита), и среди них, конечно, модификация DS1994 (4Кбита), содержащая дополнительно узел часов реального времени, удобный для генерации временных меток сохраняемых данных или для организации автономных логгеров ресурса.

Кроме того, для этих же целей могут быть использованы приборы с электрически стираемой памятью типа EEPROM модификаций DS1971(32байта), DS1973(512байт) и DS1977(32Кбайта). При перемещении больших массивов информации «транспортную таблетку» удобно использовать совместно с адаптером USB-порта типа DS9490B, который обеспечивает высокую скорость передачи при обмене данными между устройством iButton и персональным компьютером. Если же речь идет только о решении задачи накопления и хранения данных в 1-Wire-сети, любая из перечисленных выше «транспортных таблеток» может быть легко включена в состав подобной сети. При этом для подключения приборов в корпусах MicroCAN к проводникам однопроводной линии используют специальные защелки типа DS9100 или DS9098P, или же более простые зажимы типа DS9094.
С точки зрения схемотехнической реализации однопроводного интерфейса и устойчивости работы на проблемных линиях все ведомые однопроводные компоненты исторически отличаются друг от друга, делясь при этом на группы:
1. DS2401, DS2405 — первые приборы с 1-Wire-интерфейсом в пластиковых корпусах, полностью аналогичны по схемотехнике первым моделям приборов iButton, которые были ориентированные для работы на коротких шинах (до 1994 года),
2. DS1820, DS2407P, DS2450, DS2404, DS2415, DS2417, DS1920 и т.д. — вторая версия, специально ориентированная для работы на длинных линиях (до 2000 года сейчас эти компоненты в основном снимаются с производства),
3. DS18S20, DS18B20, DS1822, DS2438, DS2406P, DS2409, DS2890, DS1973 и т.д. — третий вариант, более устойчивый к коллизиям на 1-Wire-магистрали по сравнению с предыдущим (с 2000 года),
4. DS2411, DS2408, DS1921#, DS1977 и т.д. — последний вариант, наиболее удачной по надежности схемотехники 1-Wire-интерфейса (c 2003 года).
Линия связи и топология
Большую роль при построении 1-Wire-сетей играет исполнение однопроводной линии связи. Как правило, такие линии имеют структуру, состоящую из трех основных проводников: DATA — шина данных, RET — возвратный или земляной провод, EXT_POWER — внешнее питание не только обслуживаемых ведомых устройств, но и внешних относительно них цепей датчиков и органов управления. В зависимости от способа прокладки, сопряжения с ведомыми устройствами и используемых при прокладке материалов, в соответствии с ниже следующей Таблицей различают три основных варианта качества организации 1-Wire-сетей, каждый из которых подразумевает использование особой технологии и аксессуаров при реализации линии.
| Классификация линии | Длина линии | Количество ведомых устройств | Тип используемого кабеля | Топология | Мастер линии |
| Короткие линии | До 30м | До 50шт. | 4-хпроводный телефонный | Свободная | Пассивная подтяжка (резистор) |
| Средние линии | До 100м | До 200шт. | Витая пара 5 категории | Общая шина | Активная подтяжка (DS2480, DS2490 или специальное схемное решение) |
| Длинные линии | До 300м | До 300шт. | IEEE1394 (Firewire) | Общая шина с единым стволом | Активная подтяжка с учетом тока в линии |

Часто при организации сложных однопроводных сетей, с целью удобства проводки линии связи, уменьшения ее протяженности или снижения электрической нагрузки на линии благодаря уменьшению одновременно работающих на ней устройств, необходимо обеспечить древовидную или лучевую структуру магистрали, значительно отличающуюся от структуры общей шины. Для этого используют ветвления 1-Wire-сетей одного или нескольких уровней. Основным элементом при построении таких ветвей является либо обычный адресуемый ключ типа DS2406, который обеспечивает ветвление благодаря коммутации возвратного провода однопроводной линии, либо специализированный ветвитель DS2409, коммутирующий непосредственно шину данных 1-Wire-линии. Последний вариант является более предпочтительным т.к. компоненты на отключенной ветви, ведомой ветвителем, остаются всегда в активном состоянии. Поочередное обслуживание мастером сети каждой из ветвей, при отключенных остальных ветвях, позволяет значительно увеличить общую длину линии и количество ведомых устройств на ней.
Если же организация 1-Wire-системы на базе персонального компьютера связанна с особыми трудностями, наиболее оптимально использование интеллектуального адаптера для COM-порта типа LINK. Он реализован на базе микропроцессора. При этом, устройство, полностью эмулируя со стороны последовательного порта работу популярного адаптера DS9097U, производства Dallas Semiconductor Corp., и таким образом поддерживая все разработанное ранее для персональных компьютеров программное обеспечение, благодаря встроенным собственным интеллектуальным ресурсам реализует льготный режим работы однопроводных приборов на проблемных 1-Wire-линиях в условиях сложной помеховой обстановки. LINK многократно улучшает механизм активной подтяжки на линии, что позволяет действительно получать идеальные сигналы обмена при длинах кабеля более 300 метров и числе сопровождаемых однопроводных компонентов большем 100шт, а использование процессором прибора алгоритмов цифровой фильтрации многократно улучшает устойчивость обслуживаемой однопроводной линии к электромагнитным помехам.
Применения
О признании однопроводной шины в качестве международного стандарта и серьезности отношения к этому интерфейсу со стороны маститых разработчиков и производителей электроники говорят многочисленные факты. Например, нет практически ни одного универсального микроконтроллера, в литературе по применению которого не обсуждались бы способы организации на его базе мастера однопроводной линии.

Наиболее последовательно отстаивает линию на использование технологии 1-Wire-сетей в области автоматизации американская фирма Embedded Data Systems, LLC (приемница PointSix, Inc.). Можно сказать, что эта кампания сделала себе имя на внедрение и пропаганде достижений однопроводной шины в области автоматизации. И это, не смотря на то, что основной областью ее деятельности является не автоматизация оранжерей и не создание систем пожарной сигнализации, а разработка средств и систем для обслуживания высокотехнологичных отраслей машиностроения и химической промышленности, и даже создание уникального экспериментального и научного оборудования. Подтверждением этому служит широчайший спектр продукции, который выпускается фирмой (разнообразные зонды для измерения высоких и низких температур, датчики влажности, давления и кислотности с особыми функциями, специальные оптические сенсоры, платы сбора информации, устройства сопряжения с различным аналитическим оборудованием и многое другое), причем каждый из приборов содержит элементы однопроводной технологии.

К перспективным примерам в области применения 1-Wire-технологии для автоматизации, несомненно, можно отнести деятельность таких известных мировых производителей как SYSTRONIX или AAG Electronica. LLC.
Линейки законченных инструментальных средств, а также многочисленные примеры их использования, и высокий рейтинг продаж поставляемых изделий, позволяют говорить об успешности и востребованности концепции однопроводной шины применяемой этими фирмами для решения самых разнообразных проблем распределенной автоматизации.

Другим примером, наглядно демонстрирующим на практике возможности технологии однопроводной шины, является проект построения полностью автоматических метеорологических станций (1-Wire Weather Station), который разрабатывался совместно фирмами PointSix, Inc., AAG Electronica LLC, Dallas Semiconductor Corp. и Texas Weather Instruments, Inc. Вначале (еще в середине 90-х годов) было создано несколько экспериментальных систем, построенных на базе ведущего персонального компьютера с адаптером DS9097U, который является сердцем комплекса, из трех термометров DS18S20, выполняющих контроль температуры, микросхемы DS2438 для обслуживания датчика влажности воздуха, компонента DS2423 для определения скорости ветра и 16-ти электронных меток DS2401 определяющих его направление. Эти первые метеосистемы были установлены и успешно испытаны в процессе длительной эксплуатации в штате Техас. Причем отдельные из них комплектовались дополнительными однопроводными решениями, которые обеспечивали контроль сигналов от датчиков: барометрического давления, разрядов молнии, количества осадков на поверхности, солнечной активности, влажности почвы и т.д. Данные со всех сенсоров, регистрируемые каждой из подобных систем, поступали в персональный компьютер и через Интернет транслировались в режиме реального времени на центральный операторский пульт, где выполнялся прием и архивация данных о погоде региона, получаемый благодаря анализу информации от нескольких территориально рассредоточенных станций. После успешного завершения проекта Texas Weather Instruments Inc. уже на протяжении нескольких лет успешно торгует готовыми полностью автоматическими метеостанциями, не требующими обслуживания человеком. Причем популярность подобных устройств настолько велика по всему миру, что фирма Dallas Semiconductor Corp. была вынуждена начать производство специализированного набора микросхем WS-1, который включает комплект однопроводных компонентов, минимально необходимый для построения подобной станции. А полную комплектацию подобных систем для многочисленных пользователей со всего мира, включая платы для самостоятельной сборки, сертифицированные механические и конструкционные элементы, выполняет фирма AAG Electronica LLC.
Довольно перспективной областью, в которой в полной мере используются преимущества технологии 1-Wire-сетей, и которой, особенно много внимания уделяет кампания Dallas Semiconductor Corp. является менеджмент автономных химических источников тока — аккумуляторных батарей. Под менеджментом здесь понимается, — прежде всего, строгая и полная идентификация источников энергии, сохранение в памяти каждого отдельного встроенного в батарею электронного устройства особенностей ее изготовления и индивидуальных технических характеристик, наиболее полный мониторинг их основных эксплуатационных параметров на протяжении всего срока службы, а также формирование корректного управляющего воздействия, связанного с восстановлением заряда обслуживаемого автономного источника энергии. От правильного менеджмента и знания истории эксплуатации батареи во многом зависит выбор алгоритма ее повторного заряда, что непосредственно связанно с эффективностью использования и сроком службы многих типов аккумуляторов. Для этого каждая из батарей многоэлементных энергетических конструкций (особенно для мобильных устройств и средств бесперебойного питания) снабжается индивидуальным однопроводным компонентом, превращаясь по существу в интеллектуальный системный элемент автономного питания. Целый ряд микросхем, выпускаемых фирмой, связан с этим направлением. Dallas Semiconductor Corp. сегодня доминирует на рынке интеллектуальных систем обслуживания автономных источников питания, исповедуя при этом новый комплексный сетевой подход к проблеме менеджмента энергетических элементов. При этом, используются 1-Wire-решения, позволяющие организовать многоточечную шину обслуживания устройств менеджмента и управления зарядом, что дает возможность сопровождать не только отдельные источники энергии, но и целые батареи, составленные из множества отдельных подобных элементов. Более того, подобные устройства способны обеспечить не только идентификацию или простейший температурный контроль аккумуляторов, но и полномасштабный мониторинг их основных параметров (напряжение, ток, разряд, контроль «короткого замыкания» и т.д.) на протяжении всего времени эксплуатации. Результаты, накопленные такими приборами, сохраняются во встроенной энергонезависимой памяти либо в виде гистограммы (DS2436), либо в виде массива последовательных отсчетов «привязанных» к временным меткам (DS2438).

В настоящее время кампания Dallas Semiconductor Corp. выпускает целый ряд прецизионный кристаллов для мониторинга, менеджмента, защиты и управления восстановлением заряда автономных источников питания самых различных типов и назначений (DS2720, DS2740, DS2751, DS2770 и т.д.). К ним, в том числе, относятся кристаллы семейства DS276#, которые в отличие от иных модификаций подобных устройств, требующих внешней обвязки с использованием прецизионных и стабильных пассивных компонентов, обеспечивают более высокую точность при контроле тока, расходуемого контролируемой батареей. Это достигается, в том числе, за счет встроенной калиброванной резистивной схемы (шунта), выполненной по специальной полупроводниковой технологии, а также благодаря наличию в составе подобных приборов специального аппаратно-программного механизма предварительной калибровки.
Ограничения и сопряжение с промышленными сетями
Безусловно, 1-Wire-сети имеют свою нишу для применения при построении систем автоматизации. Бессмысленно всерьез использовать их для передачи больших массивов информации, при построении, к примеру, систем видео-наблюдения или скоростного обмена, связанных с обслуживанием быстрых процессов, или же сравнивать возможности однопроводных сетей с такими мощными сетевыми промышленными интерфейсами, как ProfiBus, FeldBus, LonWorks, CAN, Industrial Internet и т.д. Можно даже сформулировать основные на сегодняшний день ограничения для применения систем на базе однопроводных 1-Wire-сетей в области автоматизации:
- необходимость непрерывной временной синхронизации или синхронной работы отдельных устройств в сети (эта проблема может быть решена вводом в структуру шины сети дополнительной линии для передачи сигнала общей синхронизации),
- низкая скорость обмена информацией, и как следствие невозможность высокой динамики при обслуживании быстрых процессов в режиме реального времени (если контролируемый быстрый процесс является относительно непродолжительным, локальный микроконтроллер в составе однопроводной шины может обслужить его, сохранив результирующие данные в буферной памяти, а затем уже осуществить их передачу непосредственно к мастеру),
- сложность в реализации мультимастерного режима работы сети (специализированный ветвитель 1-Wire-сетей DS2409 разрешает проблему конфликтов между несколькими ведущими на одной однопроводной шине).

Как видно из замечаний приведенных в скобках, даже эти очевидные для 1-Wire-сетей, трудности не являются непреодолимыми. Более того, существуют подходы, позволяющие органично интегрировать медленные однопроводные территориально рассредоточенные структуры в состав таких производительных сетей как CAN и Industrial Internet. Это достижимо благодаря применению специальных аппаратно-программных решений, реализуемых на базе современных микроконтроллеров, а так же уникального инструмента кампании Dallas Semiconductor Corp. — устройства TINI (Tiny InterNet Interface).
TINI400 — это целая микросистема, основой которой является центральный процессор, реализованный на высокопроизводительном сетевом микроконтроллере DS80С400, который объединяет ресурсы целого ряда наиболее распространенных сетевых интерфейсов, как-то: RS232, 1-Wire, CAN 2.0B, Ethernet, не говоря о возможности использования параллельной шестнадцатиразрядной синхронной магистрали, а также автономных узлов для организации стандартных локальных последовательных интерфейсов I2C и SPI. Кроме того, плата TINI400 содержит 1Мбайт программной Flash-памяти, 1Мбайт статического ОЗУ, узел часов реального времени, литиевую батарею и кремниевый идентификационный номер. Работает TINI400 под управлением мощной операционной среды, которая включает в себя поддержку TCP/IP и виртуальной машины Java, которая тщательно отработана и испытана еще на модели TINI предыдущего поколения — плате TINI390. Последнее определяется тем фактом, что технология программной поддержки для TINI390 на протяжении нескольких лет развивалась специалистами Dallas Semiconductor Corp. совместно с сотрудниками компании Sun Microsystems, Inc., являясь при этом полностью открытым проектом. Такой подход позволил иметь максимально эффективную обратную связь с конечными пользователями, что помогло выявить и устранить большинство недостатков программного обеспечения. И сейчас на сайте Dallas Semiconductor Corp. можно найти всю необходимую документацию и средства разработки программного обеспечения, что значительно облегчает построение на базе устройства TINI локальных однопроводных систем удаленного контроля и управления, объединяющих достоинства быстрых и производительных, но дорогих, и медленных, но дешевых и эффективных интерфейсов.
В заключении необходимо еще раз отметить безусловную эффективность и рациональность использования технологии 1-Wire при построении систем автоматизации контроля и управления для разнообразного рассредоточенного оборудования, когда не требуется высокая скорость при обслуживании, но необходима существенная гибкость и наращиваемость при не высоких затратах на реализацию.
none
Опубликована: 2005 г.
0
0
Вознаградить Я собрал 0 0
Описание интерфейса 1-Wire
Интерфейс 1-Wire разработан фирмой Dallas Semiconductor, все права на этот интерфейс принадлежат исключительно этой фирме (Которая, впрочем, уже давно прекратила свое самостоятельное сущестование и перешла под крыло корпорации MAXIM Inc.).
Чем привлекателен этот интерфейс? Разумеется, малым количеством выводов МК, требующихся для подключения практически неограниченного количества микросхем. В самом деле, двусторонний обмен требует всего 1 линию! Кроме того, ассортимент устройств с этим интерфейсом весьма широк. Наконец, протокол обмена по этому интерфейсу очень прост и легко реализуется программно практически на любых МК хотя есть и специальные микросхемы-адаптеры).
Фирменная документация по указанному интерфейсу и устройствах, его поддерживающих, находится по адресу http://www.maxim-ic.com/1-Wire.cfm.
Аппаратная реализация интерфейса 1-Wire
На рисунке показана упрощенная схема аппаратной реализации интерфейса 1-Wire. Вывод DQ устройства представляет собой вход КМОП-логического элемента, который может быть зашунтирован (замкнут на общий провод) полевым транзистором. Сопротивление канала этого транзистора в открытом состоянии — около 100 Ом. Когда транзистор заперт — имеется небольшой ток утечки (примерно 5 мкА) на общий провод.
Шина 1-Wire должна быть подтянута отдельным резистором к напряжению питания устройств (которое, кстати, может быть от 3 до 5В — уточняется по характеристикам конкретного устройства). Сопротивление этого резистора 4.7 К, однако, это значение рекомендовано только для достаточно коротких линий. Если шина 1-Wire используется для подключения удаленных на большое расстояние устройств, то сопротивление этого резистора следует уменьшить. Чуть позже я коснусь этой проблемы и поясню причины необходимости такого уменьшения сопротивления, а пока скажу, что минимально допустимое его сопротивление — около 300 Ом, а максимальное — около пары-тройки десятков килоом. Данные величины — ориентировочные, вы всегда должны уточнить по характеристикам конкретного устройства 1-Wire его максимальный втекающий ток линии DQ, который, собственно, и определяет минимум внешнего сопротивления.
Подключение шины 1-Wire к МК показано условно в двух вариантах: с использованием 2 отдельных выводов МК (один в качестве выхода, а другой в качестве входа), так и одного, работающего и на ввод и на вывод. Разделение этих способов показано пунктирной линией, условно обозначающей границу корпуса МК. С некоторой натяжкой можно представить себе логическое строение шины 1-Wire как всем известное соединение выводов микросхем с открытым коллектором по схеме «монтажное ИЛИ». Очевидно, что передача какой-либо информации при этом возможна только выдачей низкого уровня в линию, т.е. замыканием ее на общий провод, а в высокий логический уровень линия вернется сама, благодаря наличию внешнего подтягивающего резистора. Так же очевидно, что одновременная передача нескольких устройств обречена на неудачу из-за полного искажения информации (все передаваемые единицы одного устройства будут подавлены передаваемыми нулями от другого устройства).
Программная реализация интерфейса 1-Wire
А теперь о том, как происходит обмен информацией по шине 1-Wire. Основные постулаты.
1. Обмен всегда ведется по инициативе одного ведущего устройства, которое в большинстве случаев является микроконтроллером (МК).
2. Любой обмен информацией начинается с подачи импульса сброса («Reset Pulse» или просто RESET) в линию 1-Wire ведущим устройством.
3. Для интерфейса 1-Wire в общем случае предусматривается «горячее» подключение и отключение устройств.
4. Любое устройство, подключенное к 1-Wire после получения питания выдает в линию DQ импульс присутствия, называемый «Presence pulse» (далее я буду использовать термин PRESENCE). Этот же импульс устройство всегда выдает в линию, если обнаружит сигнал RESET.
5. Появление в шине 1-Wire импульса PRESENCE после выдачи RESET однозначно свидетельствует о наличии хотя бы одного подключенного устройства.
6. Обмен информации ведется так называемыми тайм-слотами: один тайм-слот служит для обмена одним битом информации.
7. Данные передаются побайтно, бит за битом, начиная с младшего бита. Достоверность переданных/принятых данных (проверка отсутствия искажений) гарантируется путем подсчета циклической контрольной суммы.
Основные постулаты определяют логический низкоуровневый протокол обмена данными.
На следующем рисунке показана диаграмма сигналов RESET и PRESENCE, с которых всегда начинается любой обмен данными. Кстати, выдача импульса RESET в процессе обмена служит для досрочного завершения процедуры обмена информацией.
Диаграмма сигналов инициализации обмена
Как видим, длительность большинства временных интервалов очень приблизительная и имеет только ограничение только по минимуму (не меньше указанного). Условные обозначения линий, показанные на Рис. 2, будут использоваться и далее.
Импульс RESET формирует ведущий МК, переводя в низкий логический уровень шину 1-Wire и удерживая ее в этом состоянии минимум 480 микросекунд. Затем МК должен «отпустить» шину. Через некоторое время, зависящее от емкости линии и сопротивления подтягивающего резистора, в линии установится высокий логический уровень. Протокол 1-Wire ограничивает это время «релаксации» диапазоном от 15 до 60 микросекунд, что и является определяющим для выбора подтягивающего резистора (как правило, емкость линии мы менять существенно не можем, а именно она оказывает существенное влияние на время возврата линии к высокому уровню).
Обнаружив импульс RESET, ведомое устройство приводит свои внутренние узлы в исходное состояние и формирует ответный импульс PRESENCE, как следует из рисунка — не позже 60 микросекунд после завершения импульса RESET. Для этого устройство переводит в низкий уровень линию DQ и удерживает ее в этом состоянии от 60 до 240 микросекунд. Конкретное время удержания зависит от многих параметров, но всегда находится в указанном диапазоне. После этого устройство так же «отпускает» шину.
Но после завершения импульса PRESENCE устройству дается еще некоторое время для завершения внутренних процедур инициализации, таким образом, МК должен приступить к любому обмену с устройством не ранее, чем через 480 микросекунд после завершения импульса RESET.
Итак, процедура инициализации интерфейса, с которой начинается любой обмен данными между устройствами, длится минимум 960 микросекунд, состоит из передачи от МК сигнала RESET и приему от устройства сигнала PRESENCE. Если сигнал PRESENCE не обнаружен — значит на шине 1-Wire нет готовых к обмену устройств.
Теперь рассмотрим процедуры обмена битами информации, которые, как вы помните, осуществляются определенными тайм-слотами. Тайм-слот — это по существу определенная, довольно жестко лимитированная по времени последовательность смены уровней сигнала в линии 1-Wire. Различают 4 типа тайм-слотов (я буду использовать термин МК, как синоним «ведущего устройства» и просто «устройство», как синоним «ведомого»): передача «1» от МК, передача «0» от МК, прием «1» от устройства и прием «0» от устройства.
Любой тайм-слот всегда начинает МК путем перевода шины 1-Wire в низкий логический уровень. Длительность любого тайм-слота должна находиться в пределах от 60 до 120 микросекунд. Между отдельными тайм-слотами всегда должен предусматриваться интервал не менее 1 микросекунды (конкретное значение определяется параметрами ведомого устройства).
Тайм-слоты передачи отличаются от тайм-слотов приема поведением МК: при передаче он только формирует сигналы, при приеме, кроме того, еще и опрашивает (т.е. принимает) уровень сигнала в линии 1-Wire. Следующй рисунок демонстрирует временные диаграммы тайм-слотов всех 4-х типов: вверху показаны тайм-слоты передачи от МК, внизу — приема от устройства.
Тайм-слот передачи «0» заключается просто в удержании шины 1-Wire в низком уровне в течение всей длительности тайм-слота. Передача «1» осуществляется путем «отпускания» шины 1-Wire со стороны МК не ранее чем через 1 микросекунду после начала тайм-слота, но не позже чем через 15 микросекунд. Ведомое устройство опрашивает уровень в шине 1-Wire в течение временного интервала, условно показанного в виде серого прямоугольника, т.е. начиная с 15-й микросекунды от начала тайм-слота и заканчивая 60-й микросекундой от начала. Типичный момент ввода уровня в устройство (т.е. характерный для большинства устройств) — около 30-й микросекунды от начала тайм-слота.
Заштрихованная область — это область «нарастания» уровня в шине 1-Wire, которая зависит от емкости линии и сопротивления подтягивающего резистора, она приведена для справки.
Тайм-слоты приема информации отличаются тем, что МК формирует только начало тайм-слота (абсолютно так же, как при передаче «1»), а затем управление уровнем шины 1-Wire берет на себя устройство, а МК осуществляет ввод этого уровня так же в определенной зоне временных интервалов. Зона эта, как видно из рисунка, довольно мала. Как и раньше, заштрихованная область — область неопределенности, поэтому для ввода, собственно говоря, контроллеру остается даже не промежуток, а скорее конкретный момент, когда он должен ввести уровень сигнала из линии. Этот момент времени — 14-я или 15-я микросекунда от начала тайм-слота. Разумеется, если линия имеет малую емкость, а подтягивающий резистор мал, зона опроса несколько расширяется, однако рекомендую ориентироваться на худший вариант (как, кстати, рекомендует и фирма-производитель), что-бы всегда обеспечить надежный обмен данными.
Итак, подведем итоги. МК начинает тайм слот с выдачи в шину 1-Wire «0» в течение 1 микросекунды. Последующий уровень зависит от типа тайм слота: для приема и передачи «1» уровень должен стать высоким, а для передачи «0» — оставаться низким вплоть до конца тайм-слота, т.е. не менее 60 и не более 120 микросекунд. Если МК принимает данные, то опрос уровня в шине он должен сделать на промежутке от 13-й до 15-й микросекунде тайм-слота. МК должен обеспечить интервал между отдельными тайм-слотами не менее 1 микросекунды (лучше — больше, максимальное значение не ограничено).
Важно понимать, что следует очень тщательно подходить к обеспечению в шине 1-Wire требуемых временных интервалов, т.к., например, увеличение длительности тайм-слота вывода «0» свыше рекомендованного значения может привести к ошибочному восприятию этого тайм-слота, как сигнала RESET, и, разумеется, после этого вся процедура обмена пойдет насмарку. Но так же следует учитывать влияние самой линии на длительность фронтов импульсов. Поэтому в общем случае, это не простая задача. Но выполнение несложных рекомендаций позволит ее решить достаточно простыми средствами: во-первых, все сигналы, которые должен формировать МК, следует формировать по принципу необходимого минимума длительности (т.е. немного больше, чем указанная минимальная длительность), а от устройства следует ожидать сигналов по принципу наихудшего (т.е. ориентироваться на самые худшие варианты временных параметров сигнала).
Если вы разрабатываете схему, которая целиком умещается на одной плате вместе со всеми устройствами на шине 1-Wire, то, ориентируясь на самый первый рисунок, вы получите практически идеальную линию: фронты нарастания высокого уровня в шине будут минимальными — это избавит вас от большинства проблем. Но если Вы подключаете несколько устройств через длинный соединительный шлейф — придется бороться с погонной емкостью линии.
Мною проверено, что соединение по свитым вручную обычным монтажным проводам при типовом подтягивающем резисторе однозначно возможно на расстоянии до 9 м, а для соединения по очень длинной телефонной «лапше» может потребовать уменьшения подтягивающего резистора до 510 ом и даже менее.
Разобравшись с процедурами обмена битами, пора приступать к более высокому уровню протокола обмена информацией, и для этого необходимо рассмотреть принципы адресации устройств и управления ими.
Каждое устройство 1-Wire обладает уникальным идентификационным 64-битным номером, программируемым на этапе производства микросхемы. Уникальным — это значит, что фирма-производитель гарантирует, что не найдется двух микросхем с одинаковым идентификационным номером (по крайней мере в течении нескольких десятков лет при существующих темпах производства).
При рассмотрении протокола обмена мы будем исходить из принципа, что на шине 1-Wire имеется более одного устройства. В этом случае перед МК встают 2 проблемы: определение количества имеющихся устройств и выбор (адресация) одного конкретного из них для обмена данными. Решение первой проблемы осуществляется двумя путями: универсальным и гибким, но требующим довольно сложного программно-реализуемого алгоритма, и простым, но с большими ограничениями. Универсальный алгоритм мы рассматривать не будем, т.к. это требует отдельной статьи. А более простой заключается в том, что номера всех используемых в вашей схеме 1-Wire-устройств вы должны знать заранее, и просто использовать их как константы в вашей программе. Номера некоторых устройств нанесены прямо на корпусе микросхем (например, для устройств iButton — всем известных ключей-таблеток), а номера других можно определить при помощи специальных программ или устройств (о них в конце статьи). iButton — зарегистрированная торговая марка, права на которую принадлежат Dallas Semiconductor, дополнительная информация об этом семействе изделий на есть на сайте.
Итак, предположим, что мы знаем номера всех устройств 1-Wire на шине. Как же ведется работа с ними? Алгоритм тут следующий. МК посылает, как обычно, импульс RESET, и все имеющиеся устройства выдают PRESENCE. Затем МК посылает в шину команду, которую принимают все устройства. Команд определено несколько общих для всех типов 1-Wire-устройств, а так же могут быть команды, уникальные для отдельных типов. Среди общих команд нас в первую очередь могут заинтересовать следующие (см. табли-цу).
Microcontroller Connection Protocols: W1, I2C, SPI, UART
![]()
Microcontrollers like the Arduino are an essential part of DIY projects including robotics. In the last article, we saw the Pin layout and GPIO functions of the Arduino Uno, the Raspberry Pi and the Raspberry Pico. GPIO pins can either read or write digital data, that is a continuous high or low voltage, or work with analog data, a PWM signal that alternates between high and low voltage in a compressed time frame. We also saw that these microcontrollers and single-board computers support different GPIO functions, including protocols to communicate data with other hardware.
This article provides an overview to all of these connection protocols. To be explicit, I will present protocols that require a direct wiring of devices, and therefore exclude protocols like radio, Bluetooth and WLAN. For each protocol, I will explain the essential working principles, detail how to setup and connected devices, and discuss aspects like data transmission range and data amount. I will use the common terminology of client-server to differentiate the roles of participating nodes.
In the first section, we will learn about serial communication essentials. Then, the next sections detail each of the following protocols:
- W1 (1 Wire)
- I2C (2 Wire)
- SPI (4 Wire)
- UART/RS232
This article originally appeared at my blog.
Serial Communication
Serial communication forms the basic data transmission method of many integrated circuit devices. Essentially, data is transmitted in one way, 1 bit at a time, from sender to receiver. To safeguard transmission errors, the transmitted data can include error checking codes, typically CRC. To ensure transmission success, the receiver can send an acknowledge information.
Serial communication is preferred to parallel communication in cases where the cost of having multiple connections (inlines, wires, cables etc.) is too high because of distance or manufacturing costs. Until today, serial communication is widely used to connect different types of hardware with each other, forming the basis for very different protocols.
1-Wire
With the 1-Wire protocol, a one-to-many connection between a server and several clients can be made by using only one data transmission/power wire1. The connection is half-duplex, bi-directional, 16.3Khz transmission speed.
Typically, an open-drain MOSFET is used to connect the devices. The connection between the server and the client is in high voltage state by using a pull-up resistor. To transmit data, the pull-up resistor is connected to ground, then a low-voltage connection between the server and client is made for data transmission. The high voltage state is used to charge a capacitor that provides power to the connected client.
Messages are 8bit MSB. A typical transaction works as follows:
- The server sends a reset pulse
- The clients send an acknowledge message
- The server sends an 8bit command
- Server and client exchange groups of 8bit data
- To safeguard against transmission errors, 8bit CRCs can be used
I2C, Inter-Integrated-Circuit, is a 2-Wire protocol to enable many-to-many connections between clients and servers: The two wires are serial data (SDA) and serial clock (SCL). The connection is half-duplex, bidirectional, with a fixed, configurable transmission speed of 0.1, 0.4, 1.0, 3.4 or 5.0 MBit.
The SDA and the SCL line are kept constantly in a High voltage stage, where the SDA lines uses pull-up resistors. When a server starts its transmission, it closes its MOSFET gate to drop the SDA line to a low state. Then, by applying different voltages to the SDA and the SCL lines, information is transmitted. A low voltage on the SDA lines also signifies that one master node is communicating — keeping the others quiet. A low voltage on the SCL lines signifies the same information for the clients.
All devices in the I2C bus have 7bit addresses. To address devices, and receive conformations, 2 bits are used. Therefore, all messages in I2C are 9bits MSB. A typical transaction is:
- The server sends a 7-Bit address, and a read/write bit
- The addressed client acknowledges with a bit (thus completing the 9bits message format)
- Depending on the message, server either sends write data to a client, distinguishing the registers/buffers and the data to write, or it expects the client to write its data at a designated register/buffer from which the server reads
- The transmission is finished when both SDA and SCL are again in the high state
The I2C system has a complex set of registers for capturing the global state of the system and coordinate how different devices can interact. The register addresses, and their data, is vendor and device specific.
SPI, Serial Peripheral Interface, is a many-to-one connection protocol of multiple clients to one server. It requires 4 wires: SCL for clock, SCS for selecting a client, SDTS for data transmission of the server, SDTC for data transmissions of the clients. The connection if full-duplex, bidirectional, and has no limit for transmission speed (10MB or more can be achieved).
The bit frame is configurable, usually 8bits, but also 12Bit or 16Bits are used. Data is sent with LSB.
In the base state, SCS is high (using pull-up resistors), SCL, SDTS and SDTC are low. When the server initiates communication, it pulls SCS to low using a MOSFET gate, and sends data over SCL. Then, the server uses SDTS and the selected client uses SDTC to communicate, full-duplex, with each other.
A typical communication is as follows:
- The server determines the clock speed for connecting to a client
- The server sets SCS to low voltage, and sends data over SDTS
- The addressed client responds on the SDTC line and in the chosen clock speed
- Server and client exchange data
- Server sets SCS to high voltage, and SCL to low
SPI requires a dedicated SDTC wire for each connected client, which has a strong impact on integrated circuit design. Therefore, daisy-chaining can be used to design a circuit with only on SDTC wire, and additional changes to the data transmission protocol. Interestingly, there is no fixed standard of the SPI protocol, but several vendor-specific implementations that follow the same guidelines.
UART and RS-232
These two protocols govern the direct one-to-one connection between two devices. Specifically, RS-232 defines the physical transmission characteristics: electrical signals, their timing and meaning, as well as the physical size of hardware pins and connectors. A minimal RS-232 connection can be achieved with just two wires: TXD for transmitting data, and RXC for receiving data. On top of this physical standard. UART defines the logical messaging, which is quite configurable: simplex, half-duplex or full duplex, with varying communication speeds of at least 115,2 KBit.
In the base state, both TXD and RXD lines are high. The sender switches TXD to high and begins transmitting data immediately, while the receiver uses RXD to acknowledge the data. Sender and receiver also use these lines to synchronize their clock
Transmitted data is 7–11 bits LSB, including start and stop bits.
A typical message exchange is as follows:
- The sender sends a start bit, a 5- or 9-bit message, and the stop bit
- The receiver buffers the incoming message in his shift register
- When no data is received anymore — e.g. a complete clock cycle is in the logical low state — the data from the shift transmitter is flushed to other parts of the integrated circuit
The UART standard is interesting in its historical meaning. Although the early physical manifestations of RS-232 — COM ports — almost vanished from todays end-consumer computers, the standard is emulated in many microcontrollers to allow serial-over-usb connections.
Comparison
The following table summarizes the characteristics of each protocol:
A notice: The characteristics of the SPI system depend on the overall setup: Clock speed of the microprocessor, total amount of resistors etc.
Conclusion
Forming wired connection between microcontrollers and sensors in order to exchange data is a task that you will encounter in your projects. This article explained the basics of the connection protocols 1-Wire, I2C, SPI and UART/RS232. We explained aspects like message synchronicity, bit rate and frame structure, as well as physical aspects like how many clients can connect and how long the total distance of all wires are. Which protocol will you use in your projects?
Интерфейс 1-Wire
Протокол OneWire для связи между цифровыми устройствами
Последовательные интерфейсы фактически стали основными в современных приборных и бортовых сетях. Один из наиболее широко используемых интерфейсов такого рода – 1-Wire, представленный в 1990-х годах компаний Dallas Semiconductor (ныне –Maxim/Dallas). Этот интерфейс использует каждый, кто с ключом-таблеткой подходит к двери подъезда. Несмотря на солидный возраст, 1-Wire не утратил актуальности и сегодня благодаря своей универсальности, простоте и удобству использования.
Как устроен 1-Wire Интерфейс 1-Wire был предложен фирмой Dallas Semiconductor в конце 90-х годов прошлого века. Системы 1-Wire привлекательны благодаря легкости монтажа, низкой стоимости устройств, возможности распознавать устройство при подключении к функционирующей сети, большому числу устройств в сети и т.д.
Типичная система 1-Wire состоит из управляющего контроллера (мастера или ведущего) и одного или нескольких устройств (ведомых), присоединенных к общей шине

Устройства подключаются к шине по схеме с открытым стоком и подтягивающим резистором (см. рис.1). Уровень сигналов в шине – от 3 до 5 В. В пассивном состоянии в линии поддерживается высокий уровень напряжения. Все сигналы формируются с помощью замыкания сигнальной шины на землю (низкий уровень напряжения).
Главная особенность шины 1-Wire в том, что она использует лишь два провода, один – сигнальный, другой – для заземления устройств. По сигнальному проводу возможно и электропритание устройств 1-Wire – так называемое паразитное
питание. Источником питания служит заряжаемый от сигнальной линии конденсатор, входящий в состав ведомых устройств цепи.
Большинство устройств 1-Wire поддерживают две скорости передачи данных: стандартную – около 15 кбит/с и повышенную (overdrive) – около 111 кбит/с. Понятно, что чем выше скорость, тем больше ограничений на длину шины и число подключаемых к ней устройств. Режим передачи данных по шине 1-Wire – полудуплексный: мастер и ведомые устройства передают данные по очереди. Каждая транзакция через интерфейс 1-Wire начинается с того, что мастер передает импульс Reset. Для этого он переводит напряжение в шине на низкий уровень и удерживает его в этом состоянии в течение 480 мкс
Затем мастер отпускает шину, и подтягивающий резистор возвращает напряжение к высокому логическому уровню. Все ведомые
устройства, обнаружив сигнал Reset и дождавшись его окончания, передают свой сигнал – Presence. Он представляет собой сигнал низкого уровня длительностью 100–200 мс. Устройство может генерировать сигнал Presence и без импульса Reset – например, таким способом оно сообщает о
себе при подключении к шине
После передачи импульса Presence устройство 1-Wire готово к приему команд. Весь информационный обмен в шине происходит под управлением мастера. Для передачи каждого бита выделяется специальный временной промежуток (таймслот) длительностью порядка 80 мкс. В начале каждого таймслота
мастер переводит линию на нулевой уровень. Если далее мастер хочет передать 0, он удерживает напряжение на низком уровне как минимум 60 мкс (рис.3а). При передаче единицы мастер удерживает нулевое напряжение 5–6 мкс, азатем отпускает линию и выжидает примерно 60 мкс до начала формирования следующего тайм-слота
Если мастер ожидает данные от ведомых устройств, он также обозначает начало тайм-слота, обнуляя линию на 5–6 мкс, после чего перестает удерживать низкое напряжение и в течение короткого времени слушает линию. Если устройство хочет передать ноль, оно само обнуляет линию сразу после регистрации импульса начала тайм-слота. Если устройству нужно передать единицу, оно никаких действий не производит. Отметим, что приведенные
значения временных интервалов соответствуют стандартной скорости передачи данных через интерфейс 1-Wire. В режиме overdrive эти интервалы соответственно уменьшаются.
Весь обмен на шине 1-Wire происходит посредством специальных команд. Их число для каждого типа устройств различно. Но есть и минимальный набор стандартных команд, которые поддерживают все 1-Wire-устройства – так
называемые ROM-команды.
Формат команд прост – идентификатор команды (1 байт), за которым могут следовать данные (идентификатор устройства, полезные данные и т.п.). Все устройства в сети знают длину каждой команды.

Последовательность инициализации шины 1-Wire

Информация о значении битов в адресах устройств 1-Wire
У каждого устройства 1-Wire есть 64-разрядный идентификатор (ID). Он состоит из 8-разрядного кода семейства, который идентифицирует тип устройства и поддерживаемые им функции, 48-разрядного серийного номера и 8-битного поля кода циклического избыточного контроля (CRC-8). ID вводится при изготовлении устройства и хранится в ПЗУ. Фирма Maxim гарантирует, что один раз использованный адрес никогда не повторится в другом устройстве. В самом деле, 48 бит – это 2,81•1014 различных чисел. Если производить 1000 миллиардов (1012) различных устройств ежегодно, то все серийные номера можно использовать не ранее чем через 281 год – и это только для одного семейства.
Весь обмен командами инициирует мастер. Начало нового цикла транзакций он отмечает командой Reset, и, получив подтверждение, выбирает устройство специальной командой MATCH ROM, передавая ее идентификатор (5516) и 64 бита ID адресуемого устройства. Получив такую команду, ведомое устройство
с данным ID ожидает новых команд от мастера, а все остальные остаются в пассивном состоянии до следующей команды Reset. В системе с одним устройством можно не передавать ID, используя команду SKIP ROM. В результате ведомое устройство считает себя выбранным без получения адреса.
После того, как мастер выбрал устройство для взаимодействия, можно начинать процесс управления этим устройством и обмена данными с ним. Для этого используются команды, которые специфичны для каждого типа устройств.
Но чтобы начать работу с определенным устройством, мастер должен знать его ID. Если в системе только одно ведомое устройство, его адрес можно определить с помощью команды READ ROM. В ответ на команду READ ROM устройство передает свой 64-битный адрес

Передача информационных битов по шине 1-Wire: а – мастер передает сигналы, б – мастер считывает сигналы
Если же в системе несколько устройств с неизвестными ID, попытка спользовать команду READ ROM приводит к коллизии. В этом случае для пределения адресов используется специальный алгоритм поиска, в основе которого лежит команда SEARCH ROM [4]. Мастер передает команду SEARCH ROM. В ответ все устройства, подключенные к шине, высылают младший бит своего адреса. Свойства шины 1-Wire таковы, что при одновременной передаче сигналов всеми устройствами результат будет равен логическому

Чтение адреса устройства
И значений всех посланных битов. Следовательно, суммарный отклик равен 1, только когда сигналы от всех устройств равны 1. После приема первого бита адреса мастер инициирует следующий тайм-слот, в котором устройство передает инвертированный первый бит. Сопоставляя значения результатов запроса истинного и инверсного битов, можно получить некую информацию о значениях первых битов адресов устройств (см. таблицу).
Таким образом, при комбинациях 0 1 и 1 0 мастер знает значение первого бита адреса, фиксирует его и по той же схеме может переходить к определению следующего. После получения инверсного бита мастер передает определенный
бит ведомым устройствам. Если его значение совпадает со значением текущего бита из адреса устройства, то устройство продолжает участвовать в поиске и выдает в ответ следующий бит своего адреса. Если не было «расхождения», то значение выставляемого мастером бита определено. В случае расхождения мастер посылает нулевой бит. Такая последовательность – чтение бита адреса и инверсного бита, передача бита мастером – повторяется для последующих 63
битов адреса. Таким образом, алгоритм поиска последовательно исключает все устройства, пока не остается одно последнее – его адрес и определяется в первом цикле поиска.

Способы использования микросхемы DS2490: в составе внешнего USB – 1-Wire адаптера (а); внутри главного компьютера (б); в составе USB-хаба (в)
После того, как адрес первого устройства определен, поискпродолжается для следующего устройства. Алгоритм запоминает место последнего расхождения и выбирает другую ветвь дерева поиска (мастер посылает в этом месте бит с другим значением). Процесс продолжается до тех пор, пока не будет пройдена ветвь, соответствующая последнему устройству. В итоге поиска становятся известны адреса всех устройств, подсоединенных к шине, и их число.
Отметим, что возможность идентификации и быстрого включения в сеть только что подключенного устройства делает 1-Wire эффективным решением для многих приложений. На практике это означает, что прибор достаточно просто подключить к сети, и все дальнейшие транзакции произойдут автоматически. Например, так можно считать данные из памяти датчика, прочитать код электронной метки или электронного ключа, принять массив значений от приборной сети и т.п.
Не менее важно, что сеть 1-Wire относится к самосинхронизирующимся, т.е. не требует отдельной линии для передачи тактовых сигналов. И, конечно, огромное число ID подключаемых устройств выгодно выделяет ее на фоне других последовательных сетей.
Элементная база
Для реализации интерфейса 1-Wire фирма Maxim/Dallas предлагает ряд устройств. В роли мастера интерфейса может выступать как ПК, так и специализированные микроконтроллеры. Соответственно, в ассортименте Maxim/Dallas присутствуют устройства, которые обеспечивают переход к 1-Wire интерфейсу от стандартных интерфейсов компьютера (например, USB и RS232), управляющего работой устройств 1-Wire. Так, микросхема DS2490 служит мостом между интерфейсами USB и 1-Wire [6]. DS2490 используется в системах 1-Wire несколькими способами: входит в состав адаптера USB – 1-Wire, который подсоединяется к USB-порту главного компьютера напрямую кабелем или через USB-хаб (рис.5а); встраивается в главный компьютер (рис.5б) или же в USB-хаб.

Домофонный ключ с iButton
Некоторые устройства могут не только соединять 1-Wire с другими интерфейсами, но также брать на себя часть функций мастера шины 1-Wire. Одно из таких устройств – DS2482-100. Это мост между интерфейсами I2C и 1-Wire. Микросхема DS2482-100 преобразует протоколы между управляющим I2C микроконтроллером (мастером) и ведомыми 1-Wire устройствами. По отношению к этим устройствам DS2482-100 выступает в роли мастера. С помощью встроенных таймеров DS2482-100 формирует фронты передаваемых по шине сигналов, снимая эту нагрузку с управляющего микроконтроллера. Для того чтобы оптимизировать форму сигналов, DS2482-100 контролирует скорости нарастания и уменьшения напряжения в линии и предоставляет дополнительные программируемые функции, которые помогают согласовать параметры сигналов и особенности ведомых устройств.
Микросхема DS2482-800 аналогична по функциям DS2482-100, но может работать с восемью шинами 1-Wire. В качестве моста между интерфейсами RS232 и 1-Wire можно применять микросхему DS2480B. Устройства 1-Wire соединяются с помощью витой пары различных типов или даже обычным телефонным проводом.
Некоторые применения 1-Wire
Перечень устройств, поддерживающих 1-Wire, и их применений весьма велик [10], поэтому полностью описать его в данной статье невозможно. Приведем лишь несколько примеров наиболее распространенных применений технологий 1-Wire.
Наличие уникальных 64-битных адресов позволяет широко использовать устройства 1-Wire в системах аутентификации. Здесь они часто применяются в устройствах iButton. Это микросхема с введенным на этапе производства 64-битных адресом, заключенная в круглый корпус из нержавеющей стали диаметром 16 мм (MicroCAN). Такие устройства функционируют, например, в домофонных ключах.
Микросхемы с поддержкой 1-Wire (например, DS2401, DS2431, DS28E01-100) используются также для идентификации картриджей принтеров, медицинских сенсоров, емкостей с реагентами и др. Преимущество микросхем 1-Wire в том, что для контроля идентифицируемого устройства нужен всего один контакт. Такие микросхемы заключены в специальный плоский корпус (SFN – Single Flat No lead) размером 6×6мм, который облегчает их присоединение к устройству.
Еще одно распространенное применение 1-Wire – системы автоматизации. В первую очередь это системы многоточечного измерения температуры различных сред и мониторинга теплового режима помещений. Температуру можно измерять датчиками производства той же Maxim/Dallas. Наиболее популярный из них – цифровой термометр DS18S20. Он имеет разрешение 9 бит и измеряет температуру в диапазоне от -55 до 125°C. Точность измерений составляет 0,5°C в диапазоне -10…85°C. Поскольку каждый термометр, как и любое устройство 1-Wire, имеет уникальный 64-битный адрес, к одной шине 1-Wire можно подключать множество таких приборов.
Таким образом, благодаря своим выигрышным возможностям – один провод для передачи данных и управления устройствами, подсоединение устройств через один контакт, питание подключенных устройств по проводу передачи данных, наличие у каждого устройства уникального адреса, низкая стоимость
элементной базы – интерфейс 1-Wire широко представлен в самых различных изделиях современной электроники.
