Чтение данных мастером (0/1)

Slave занимает линию вслед за Master. Когда Master отпускает шину, то Slave все еще ее удерживает. Master интерпретирует это как 0, если Master не определяет шину как занятую, то интерпретирует как 1, т.е. Slave отпустил линию раньше Master.

Тайм-слоты приема информации отличаются тем, что МК формирует только начало тайм-слота (так же, как при передаче «1»), а затем управление уровнем шины 1-Wire берет на себя устройство, а МК осуществляет ввод этого уровня так же в определенной зоне временных интервалов.

· МК начинает тайм-слот, прижимая шину 1-Wire к логическому «0» в течение 1 микросекунды.

· Последующий уровень зависит от типа тайм слота: для приема и передачи «1» уровень должен стать высоким, а для передачи «0» — оставаться низким вплоть до конца тайм-слота, т.е. от 60 до 120 микросекунд.

· принимая данные, МК должен считать уровень в шины 1-Wire в промежутке от 13-й до 15-й микросекунде тайм-слота.

· МК должен обеспечить интервал между тайм-слотами не менее 1 микросекунды (лучше — больше, максимальное значение не ограничено).

Для достижения нужных временных интервалов нужно следовать простым правилам:

· все сигналы, которые должен формировать МК, следует формировать по принципу необходимого минимума длительности (т.е. немного больше, чем указанная минимальная длительность)

· от устройства следует ожидать сигналов по принципу наихудшего (т.е. ориентироваться на самые худшие варианты временных параметров сигнала).

Стандартный пакет:

CRC – маска циклического избыточного кода – хранит данные о полиноме – проверка на ошибки. Может игнорироваться.

Serial Number – серийный номер устройства

Family Code – код класса устройства. Может игнорироваться, если устройства однотипны.


Предположим, что на шине 1-Wire имеется более одного устройства.
В этом случае перед МК встают 2 проблемы: определение количества имеющихся устройств и выбор (адресация) одного конкретного из них для обмена данными.
Номера некоторых устройств наносятся прямо на корпус микросхем, а номера других можно определить при помощи специальных программ или устройств.
Итак, предположим, что мы знаем номера всех устройств 1-Wire на шине.

Алгоритм работы с ними следующий:

1. МК посылает, импульс RESET, и все имеющиеся устройства выдают PRESENCE.

2. МК посылает в шину команду, которую принимают все устройства. Определено несколько общих команд для всех типов 1-Wire-устройств, а так же есть команды, уникальные для отдельных типов устройств.

3. После того, как МК выдаст команду READ ROM, от устройства поступит 8 байт его собственного уникального адреса — МК должен их принять.

Любая процедура обмена данными с устройством должна быть завершена полностью либо прервана посылкой сигнала RESET.

4. Если отправлена команда MATCH ROM, то после нее МК должен передать 8 байт адреса конкретного устройства, с которым будет осуществляться последующий обмен данными.

5. Приняв эту команду, каждое устройство сравнивает передаваемый адрес со своим собственным. Все устройства, адрес которых не совпал, прекращают анализ и выдачу сигналов в линии 1-Wire, а опознавшее адрес устройство продолжает работу.

Теперь все данные, передаваемые МК будут попадать только к этому «адресованному» устройству.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: