Глава 11. Arduino и 1-Wire
149
Примечательный момент — как уже отмечалось, некоторые устройства 1-Wire мо-
гут использовать так называемое паразитное/фантомное питание (Parasite
power) — при котором питание устройства осуществляется от линии данных за
счет заряда встроенного конденсатора, который заряжается во время наличия высо-
кого уровня напряжения на линии данных. Здесь следует учитывать, что связь
с устройствами, использующими паразитное питание, допустима только на корот-
ких линиях. На длинных линиях могут присутствовать непонятные побочные эф-
фекты. Поэтому, если возможно, такого типа питания устройств следует избегать.
11.3.2. Обмен информацией по 1-Wire
Рассмотрим, как происходит обмен информацией по 1-Wire.
Передача информации возможна только выдачей низкого уровня в линию, т. е.
замыканием ее на общий провод. В высокий логический уровень линия вернется
сама из-за наличия подтягивающего резистора (теперь становится понятно, что
наличие внешнего подтягивающего резистора — обязательное условие работы
1-Wire).
Обмен происходит по инициативе ведущего устройства (обычно — микрокон-
троллера).
Обмен информацией начинается с подачи импульса сброса (
RESET pulse
) на
линию.
Устройства 1-Wire предусматривают "горячее" подключение.
При подключении устройство 1-Wire выдает в линию
DQ
импульс присутствия
(
PRESENCE pulse
). Этот же импульс выдается при обнаружении сигнала
RESET
.
Обмен информацией ведется так называемыми тайм-слотами — один слот со-
держит один бит информации.
Данные передаются побайтно — бит за битом, начиная с младшего байта. Дос-
товерность данных (проверка отсутствия искажений) гарантируется путем под-
счета циклической контрольной суммы (CRC).
Микроконтроллер (МК) формирует импульс
RESET
, переводя в низкий логический
уровень шину 1-Wire и удерживая ее не менее 480 микросекунд. Затем МК "отпус-
кает" шину и напряжение возвращается к высокому логическому уровню (время
зависит от емкости линии и сопротивления подтягивающего резистора). Протокол
1-Wire ограничивает это время диапазоном от 15 до 60 микросекунд, что и влияет
на выбор подтягивающего резистора (на время возврата линии к высокому уровню
большее влияние оказывает емкость линии, но, чаще всего, мы изменить ее не мо-
жем). Обнаружив импульс
RESET
, ведомое устройство формирует ответный импульс
PRESENCE
. Для этого устройство прижимает линию
DQ
к "земле" и удерживает от 60
до 240 микросекунд. Затем устройство так же "отпускает" шину. После этого уст-
ройству еще дается время для завершения внутренних процедур инициализации.
Таким образом, МК должен приступить к любому обмену с устройством не ранее,
чем через 480 микросекунд после завершения импульса
RESET
. Соответственно про-
цедура инициализации, с которой начинается обмен данными между устройствами,
длится минимум 960 микросекунд (рис. 11.2).
150
Do'stlaringiz bilan baham: |