1-wire communication through software

Внедрение агента в банду

Теперь либы собираются, настал черед вкрутить их в код проекта. Как удостовериться, что оно заработало? Элементарно: создаем экземпляр класса OneWire, затем DallasTemperature с параметром шины, на которую подключены термодатчики, и начинаем все это активно использовать.

В проекте уже есть простенький терминал, добавляй туда команду, по которой будет производиться опрос термодатчика и вывод значения в терминал. Для удобства я добавил еще одну команду — поиск термодатчиков, по этой команде опрашивается линия, ответившие термодатчики заносятся в «кеш» библиотеки, после чего для найденных термодатчиков можно получить адреса и вывести их в терминал. Отмечу отдельно алгоритм поиска устройств на линии, очень увлекательный процесс, описан подробно в документации к iButton в разделе Network Capabilities.

Первый запуск 

История

Оригинальная версия OneWire была разработана в 2007 году Джимом Стадтом (Jim Studt), и ее целью было упростить работу с девайсами типа 1-Wire. Эволюцию библиотеки можно наблюдать в этом форумном посте. Первая версия OneWire работала только с arduino-0007 и требовала большой (256-байтной) таблицы поиска для выполнения CRC-вычислений. Позже библиотека была обновлена и получила совместимость с arduino-0008 и более поздними релизами. В самой последней версии таблицы поиска для CRC-вычислений больше нет, и эта версия тестировалась только для arduino-0010 и ниже.

В библиотеке OneWire есть баг, из-за которого при использовании функции поиска запускается зацикливание. О том, как его исправить, можно прочесть в этом посте – разные способы можно найти в ответах #3, #17, #24, #27.

В версии 2.0 объединены улучшенная функция поиска от Робина Джеймса (Robin James) и улучшенные I/O функции Пола Стоффрегена (исправлены случайные ошибки подключения). Кроме того, добавлено несколько небольших оптимизаций.

Версия 2.1 добавляет совместимость с бетой Arduino 1.0 и chipKit (Джейсон Дэнжел), вспомогательные функции, CRC16, а также улучшенный температурный пример (Пол Стоффреген), пример для считывания с PROM-чипа DS250x (Гильермо Ловато) и пример для работы с PIO-чипом DS2408(Гленн Тревитт).

Достоинства

  1. для связи с устройством требуется лишь два провода: на данные и заземление.
  2. большое расстояние передачи. Расстояние достигает 300 м при соблюдении ряда условий: применение специального кабеля IEEE1394 (Firewire), использование специального драйвера сети (активная подтяжка с учётом тока в линии), использование топологии «общая шина» с единым стволом (не свободная топология);
  3. изменяемость конфигурации любой сети 1-Wire в процессе её работы;
  4. простое решение адресуемости абонентов;
  5. несложный протокол;
  6. простая структура линии связи;
  7. малое потребление компонентов;
  8. исключительная дешевизна всей технологии в целом.

Step 9: Final Step: Power on and Use

If everything is done correctly , and all soldering is clean and proper, we only need power supply of 8V ~ 26V to be connected on P1 terminal wire connector (blue one). After connection blue led will be light.
Connecting 1-Wire device may be done using 1-Wire Bus terminal wire connector (Green one). Connection lids are follow : 
1- + Unregulated voltage
2- +5V regulated voltage
3- GND
4- 1-Wire DATA
5- NC line
RS232 IDC D-Sub connector need to be connected to PC. You may use any of 1-Wire connection software like digitemp or Java API and java library.
Also for more info you may read nice instructable, with similar content.

Обращение к устройствам типа 1-Wire

Каждое устройства типа 1-Wire обладает уникальным 64-битным ROM-адресом, который состоит из 8-битного кода, обозначающего семейство, 48-битного серийного кода и 8-битного CRC. CRC используется для проверки целостности данных. К примеру, код ниже проверяет, является ли устройство, к которому обращается скетч, температурным датчиком DS18S20 – путем проверки кода, обозначающего семейство, т.е. «0x10». Чтобы использовать этот скетч с более новым DS18B20, вам нужно будет указать проверку по коду «0x28», а если с DS1822, то по коду «0x22».

Команды к одному устройству

Перед тем, как отправлять команду к одному устройству, ведущее устройство должно выбрать адресата при помощи его уникального ROM-адреса. Если это устройство будет обнаружено, то все последующие команды тоже будут отправлены к нему.

Команды к нескольким устройствам

Вы также можете отправить команду сразу всем ведомым устройствам, воспользовавшись командой 0xCC (она означает «Skip ROM» или «пропустить ROM-адрес»)

Впрочем, перед использованием важно знать, какие эффекты это может повлечь. Иногда это очень удобный метод – к примеру, если дать команду 0xCC, а следом за нею 0x44 (она означает «Convert T» или «выполнить температурную конверсию»), то все устройства в сети начнут выполнять, собственно, температурную конверсию

То есть в данном случае использование 0xCC может сберечь вам немного времени. С другой стороны, если воспользоваться командой 0xBE (она означает «Read Scratchpad» или «прочитать данные из оперативной памяти»), то все девайсы в сети начнут одновременно передавать эти данные ведущему устройству. Также при использовании «Skip ROM» нужно учитывать энергопотребление всех устройств, подключенных к сети (это актуально, к примеру, в случае температурной конверсии).

Более подробную информацию читайте, пожалуйста, в даташитах DS18S20 и DS18B20.

SUPPORTED 1-WIRE COMPONENTS

1-Wire Device Family Code Description Default polling cycle
DS1822 Econo 1-Wire Digital Thermometer 22 Temperature Sensor Range: -55°C to +85°C Accuracy: ± 2°C from -10°C to +85°C Resolution: 12 Bit or 0.0625°C 60
DS18B20 Programmable Resolution 1-Wire Digital Thermometer 28 Temperature Sensor Range: -55°C to +85°C Accuracy: ± 0.5°C from -10°C to +85°C Resolution: 12 Bit or 0.0625°C 60
DS18S20 Parasite Power Digital Thermometer 10 Temperature Sensor Range: -55°C to +125°C Accuracy: ± 0.5°C from -10°C to +85°C Resolution: 9 Bit or 0.5°C 60
DS1963S Serial Number iButton (SHA) 18 Access Control 0.1
DS1990 Serial Number iButton 01 Access Control 0.1
DS2438 Smart Battery Monitor 26 AAD-Converter and Temperature SensorTemperature Range: -55°C to +125°C Resolution: 13 Bit or 0.03125°C60Voltage VDDVoltage Supply Range: 0V – 10.23V Resolution: 10mVVoltage VADVoltage at the input pin of the AD Converter Range: 0V – 10.23V Resolution: 10mVVoltage VsensVoltage at an external resistor (Rsens) for indirect current measurement Range: -0.25V – 0.25V Resolution: 0.2441mV 60

Применение

Технология iButton


Ключ IButton

Каждая микросхема 1-Wire имеет уникальный номер. Это позволяет использовать устройства iButton в качестве простых идентификаторов личности, например, в системах контроля и управления доступом (СКУД). В этом качестве они успешно конкурируют с бесконтактными карточками, использующими технологию RFID.
Имеются устройства iButton с поддержкой криптографии, что позволяет создавать на их основе защищённые хранилища небольших объёмов данных или средства сильной аутентификации. Такие устройства могут конкурировать со смарт-картами в некоторых применениях.

Датчики измерения


Датчик температуры

Устройства 1-Wire очень удобны для измерений. Не требуется отдельного питания, возможно подключить по одному проводу целую гирлянду разнообразных датчиков. Система таких датчиков легко контролируется на предмет аварий. Записи о калибровках могут храниться прямо в датчиках.
Измерение температуры — одно из самых массовых применений 1-Wire устройств. В сельском хозяйстве применяется для многоточечного контроля температуры теплицах, ульях, элеваторах, инкубаторах, овощехранилищах. Популярны домашние метеостанции, подключаемые по этому интерфейсу.

Метеостанции


Метеостанция

Другим примером, наглядно демонстрирующим на практике возможности технологии однопроводной шины, является проект построения полностью автоматических метеорологических станций (1-Wire Weather Station (1-WWS)), который разрабатывался совместно фирмами PointSix, AAG Electronica, Dallas Semiconductor и Texas Weather Instruments. Технология обеспечивала контроль сигналов от датчиков: барометрического давления, разрядов молнии, количества осадков на поверхности, солнечной активности, влажности почвы и т.д. Данные со всех сенсоров, регистрируемые каждой из подобных систем, поступали в персональный компьютер и через Интернет транслировались в режиме реального времени на центральный операторский пульт. Там выполнялись прием, обработка и архивация результатов о погоде всего региона, получаемых благодаря анализу информации от нескольких территориально рассредоточенных станций.

Умный дом


Система «умного дома»

«Умный дом» — это комплекс автоматики, который управляет инженерными системами жилища. Например, освещением, отоплением, вентиляцией, кондиционированием, энергоснабжением, водоснабжением, электроприводами, оборудованием пожарных и охранных систем и прочим. Температура — это часто основа и мерило комфорта любого жилища, а в чрезвычайной ситуации — индикатор пожара. На сегодняшний день для многоточечного контроля температуры ничего лучше применения однопроводных термометров по соотношению функциональность/цена еще не придумано. Поэтому в абсолютном большинстве проектов направления «Умный дом» именно датчики DS18#2# чаще всего обеспечивают функции термометров. А это часто тянет за собой применение и других компонентов с 1-Wire-интерфейсом: ключи для переключения силового оборудования, АЦП для контроля других параметров микроклимата, регистры для управления различным бытовым оборудованием и т.д. Хотя подход, связанный с подстройкой всех подсистем автоматизации под однопроводную магистраль управления совсем необязателен, систем типа «Умный дом» (если они делаются за разумные деньги), где, так или иначе, присутствуют 1-Wire-решения, сегодня достаточно много, если не большинство.

Маркировка оборудования

Микросхемы 1-Wire популярны для маркировки и хранения параметров дополнительного оборудования к установкам. Например, медицинские и лабораторные приборы, использующие в работе множество различных сменных головок и датчиков, снабжаются микросхемой. При подключении прибор сразу распознаёт сменную головку и корректно устанавливает режим работы. Аналогично может контролироваться наработка узлов с ограниченным ресурсом.

Другие применения

Существуют решения iButton для охраны недвижимости, для систем обнаружения проникновения, другое использования. Есть также системы для доступа в менее очевидных областях безопасности. Например, iButton может быть использован для аутентификации пользователей компьютерных систем (аппаратный ключ в системах защиты информации), или в системе табельных часов.

Additional Software

The basic 1-Wire functions provided in this application note can be used as a foundation to build sophisticated 1-Wire applications. One important operation omitted in this document is the 1-Wire search. The search is a method to discover the unique ID’s of multiple 1-Wire slaves connected to the bus. Application note 187, «1-Wire Search Algorithm» describes this method in detail and provides ‘C’ code that can be used with these basic 1-Wire functions.

The 1-Wire Public Domain Kit contains a large amount of device-specific code that builds upon what has been provided here.www.ibutton.com/software/1wire/wirekit.html

For details on other resources see application note 155, «1-Wire Software Resource Guide Device Description.»

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Adblock
detector