Описание команд

Команда «Чтение ПЗУ»

Команда “Чтение ПЗУ” может использоваться на шине с одним подчиненным для чтения 64-разр. индивидуального ИК. Если имеется несколько подчиненных устройств, подключенных к шине, то результатом выполнения этой команды будет прием значения, эквивалентного логическому И между всеми ИК. При этом полагается, что связь безупречная, а наличие нескольких подчиненных индицируется ошибочным CRC.

Команда «Пропуск ПЗУ»

Команда «Пропуск ПЗУ» может использоваться, если нет необходимости адресоваться к конкретному подчиненному устройству по его специфическому адресу. На шине с одним подчиненным команда “Пропуск ПЗУ” прекрасно подходит для его адресации. На шине с несколькими подчиненными команда “Пропуск ПЗУ” может использоваться для адресации всех устройств одновременно.

Это удобно, если требуется отправить общую команду нескольким подчиненным устройствам, например, одновременный запуск преобразования температуры в нескольких датчиках температуры. Команду “Пропуск ПЗУ” бессмысленно использовать при чтении шины с несколькими подчиненными устройствами.

Команда «Совпадение ПЗУ»

Команда “Совпадение ПЗУ” используется для адресации конкретного подчиненного устройства на шине.

После выполнения команды “Совпадение ПЗУ” передается 64-разрядный ИК. По завершении, только тому подчиненному устройству, который принял свой ИК, разрешается отвечать после приема следующего импульса сброса.

Команда «Поиск ПЗУ»

Команда “Поиск ПЗУ” может использоваться, если идентификаторы подчиненных устройств неизвестны заранее. Это делает возможным обнаружить идентификаторы всех подчиненных устройств, подключенных к шине. Для этого, вначале передается команда “Пропуск ПЗУ”. Каждый подчиненный размещает первый бит своего идентификатора на шине. Ведущий считывает результат, как логическое И над всеми первыми битами идентификаторов всех подчиненных устройств. Затем подчиненные размещают на шине двоичное дополнение к первому биту своего идентификатора. Ведущий считывает состояние шины, которое есть результат логического «И» над всеми дополнениями к первому биту идентификатора всех подчиненных устройств. Если все устройства в первом разряде ИК содержат 1, то ведущий считает 10b. Аналогично, если значения 1 разряда всех устройств равно 0, то ведущий примет 01b. В этих случаях, бит может быть сохранен как значение первого бита всех адресов. После этого ведущий снова выполняет размещение этого бита на шине, чем сигнализирует подчиненным о необходимости дальнейшего продолжения передачи разрядов ИК. Если на шине будут присутствовать устройства, как с лог. 0, так и с лог. 1 в первом бите идентификатора, то ведущий примет 00. В этом случае, ведущий должен выбрать с какими адресами продолжать работу, с лог. 0 или 1 в первом разряде. Выбор передается по шине, указывая выбранным подчиненным о необходимости дальнейшей передачи ИК, а остальные подчиненные переходят в режим ожидания.

Затем ведущий переходит к считыванию следующих бит и этот процесс повторяется до считывания всех 64 бит. В результате ведущий обнаруживает полный 64-разрядный идентификатор. Для поиска других идентификаторов необходимо снова инициировать команду «Поиск ПЗУ», но в этом случае при возникновении несоответствий сделать другой выбор. Если придерживаться данной последовательности, то в конечном счете можно обнаружить все подчиненные устройства. Обратите внимание, что после выполнения первого поиска все подчиненные, кроме одного, переходят в режим ожидания. Таким образом, в этом состоянии связаться с активным подчиненным можно с помощью команды «Совпадение ПЗУ».

Ускоренные команды ПЗУ

Ускоренные команды ПЗУ не рассматриваются здесь, т.к. в данном документе рассматривается только режим стандартной скорости.

Команды памяти/функций

Команды памяти/функций – команды, которые специфичны для конкретного типа ИС или их класса. Обычно эти команды относятся к чтению или записи внутренней памяти и регистров подчиненных ИС. Количество таких команд фиксировано, но все они поддерживаются конкретным видом подчиненного устройства. Последовательность чтения и записи определена для каждой ИС. В связи с этим команды памяти здесь в подробностях не рассматриваются.

Типичная последовательность сеанса связи

Все однопроводные устройства придерживаются основной последовательности связи:

  1. Ведущий отправляет импульс “Сброс”.
  2. Подчиненный (ые) отвечает (ют) импульсом «Присутствие».
  3. Ведущий отправляет команду ПЗУ, адресуя одно или несколько подчиненных устройств.
  4. Ведущий отправляет команду памяти.

Обратите внимание, что для перехода к новому шагу, последний шаг должен быть завершен. Однако, не всегда необходимо завершать всю последовательность. Например, после завершения команды ПЗУ можно отправить новую команду «Сброс» и тем самым инициировать новый сеанс связи.

Проверка циклическим избыточным кодом

Кодирование циклическим избыточным кодом (CRC) используется для гарантирования целостности принятых данных через 1-Wire.

Подробности по теории CRC в этом документе не приводятся и в дальнейшем не обсуждаются. Если необходима информация по CRC, то рекомендуется использовать [2].

Среди семейства 1-Wire обычно используются две различные схемы CRC. Одна из них – 8-разрядная CRC (CRC8), другая – 16-разрядная CRC (CRC16). CRC8 используется в секторе ПЗУ всех микросхем. CRC8 также используется в некоторых ИС для проверки других данных, например, вводимых через шину команд. CRC16 используется некоторыми ИС для проверки на наличие ошибок в больших наборах данных.

Аппаратный эквивалент 8-разрядного CRC используется 64-разрядным идентификатором и показан на рисунке 11. Блоки представляют индивидуальные биты в 8-разрядном сдвиговом регистре. Эквивалентное полиноминальное выражение для CRC: X8 + X5 + X4 + 1.


Рисунок 11 – Аппаратный эквивалент 8-разр. CRC, используемого в микросхемах 1-Wire

Аппаратный эквивалент 16-разрядного CRC используется некоторыми ИС и показан на рисунке 12. Блоки представляют индивидуальные биты в 16-разрядном сдвиговом регистре. Эквивалентное полиноминальное выражение для CRC: X16 + X15 + X2 + 1.


Рисунок 12 - Аппаратный эквивалент 16-разр. CRC, используемого в микросхемах 1-Wire


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



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