В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная страница > Обзоры по типам > Микроконтроллеры > MAXQ
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Режим поиска с использованием акселератора поиска ПЗУ

Мастер шины 1-Wire поддерживает режим ускоренного поиска ПЗУ (Search ROM Accelerator), который позволяет ускорить изучение идентификаторов ПЗУ подключенных к шине приборов. Прежде чем индивидуально адресовать подключенный к шине подчиненный прибор, мастер шины должен определить идентификаторы ПЗУ всех подключенных к шине приборов.

Команда поиска ПЗУ (Search ROM - F0h) используется мастером шины для оповещения внешних 1-Wire приборов о поиске идентификаторов ПЗУ. Команда Search ROM может быть запущена сразу после инициализированного мастером сброса. Как только команда Search ROM запускается мастером, все ведомые приборы одновременно поразрядно передают свои уникальные идентификаторы ПЗУ. У шины 1-Wire есть три временных интервала, предназначенные для передачи битов идентификатора:

  1. Read Time Slot 1: каждый ведомый прибор посылает один бит своего идентификатора (сначала младший значащий бит).
  2. Read Time Slot 2: каждый ведомый прибор посылает бит, являющийся дополнением к ранее переданному биту.
  3. Write Time Slot: при необходимости мастер передает бит принятия решения о несоответствии.

Процедура получения и выбора идентификаторов ПЗУ пролистывает запуски с последним значащим битом всех подчиненных устройств. Если биты идентификатора ПЗУ совпадают для всех в настоящее время выбранных подчиненных устройств, то два считанных временных интервала отразят дополняющие друг друга данные, и мастер шины не должен будет снимать выделение или удалять ведомые приборы из процедуры выбора. Мастер просто повторяет данные из первого интервала (Read Time Slot 1) в третьем интервале (Write Time Slot) и продолжает выбирать следующие биты идентификаторов ПЗУ. Так как ожидается, что все приборы 1-Wire имеют уникальные идентификаторы ПЗУ, то при подключении к шине нескольких подчиненных устройств всегда возникнет ситуация, когда первый и второй интервалы будут содержать противоречивые данные. Когда это происходит, то ввиду структуры шины, образовывающей логическое И для различных источников, в обоих интервалах будет передан логический 0. В этом случае мастер передает 1 или 0, которые отфильтровывают те или иные устройства. Все приборы, для которых был отменен выбор, остаются незанятыми, пока они не принимают импульс сброса. В таблице 19 показаны четыре возможных сценария считывания временных интервалов определения идентификаторов ПЗУ.

Таблица 19. Возможные сценарии считывания временных интервалов определения идентификаторов ПЗУ

READ TIME SLOT 1 (ведомый) READ TIME SLOT 2 (ведомый) WRITE TIME SLOT (ведущий) Описание
0 1 0 Все остающиеся в процедуре выбора подчиненные устройства имеют в этой позиции идентификатора ПЗУ логический 0.
1 0 1 Все остающиеся в процедуре выбора подчиненные устройства имеют в этой позиции идентификатора ПЗУ логическую 1.
0 0 0 или 1 Несоответствие идентификаторов - Подчиненные устройства имеют в этой позиции идентификатора как 0, так и 1. Мастер шины определяет данными в интервале (WRITE TIME SLOT) какие ведомые устройства должны и далее участвовать в процедуре выбора.
1 1 1 Ошибка - Не было получено ответа ни от одного подчиненного устройства.

Общий принцип этой процедуры поиска состоит в том, что при различии битов происходит отключение тех или иных подчиненных устройств. В конце каждой процедуры поиска мастер узнает идентификатор одного из ПЗУ. Каждая операция поиска занимает 64 цикла. Как было сказано выше, каждый цикл снятия показаний/выбора состоит из трех временных интервалов. Последующие процедуры поиска должны выполняться с учетом предыдущих (для исключения повторной идентификации). Более подробно алгоритм поиска ПЗУ в системе 1-Wire описан в Книге Стандартов iButton (Book of iButton Standards).

Для увеличения скорости поиска идентификаторов ПЗУ, мастер шины 1-Wire содержит акселератор поиска идентификатора ПЗУ. Для активизации акселератора поиска ПЗУ необходимо сразу после выполнения сброса и запуска команды поиска ПЗУ установить бит SRA в регистре команд. Обратите внимание, что перед вызовом режима SRA необходимо очистить приемный буфер. После того, как мастер шины переходит в режим поиска ПЗУ каждый байт, загруженный в передающий регистр, содержит один полубайт (4 бита) данных решения о несоответствии. Два временных интервала ответов подчиненных устройств автоматически генерируются мастером шины как часть передающейся последовательности. После четырех циклов снятия показаний/выбора в приемном буфере будут содержаться четыре последних бита идентификаторов ПЗУ и четыре бита несоответствия. В таблице 20 описаны форматы передаваемых и принимаемых данных в режиме ускоренного поиска ПЗУ.

Таблица 20. Последовательность переданных/принятых байт в режиме ускоренного поиска ПЗУ

Последовательность байтов Буфер Бит 7 Бит 6 Бит 5 Бит 4 Бит 3 Бит 2 Бит 1 Бит 0
Байт 1 Передача r3 x r2 x r1 x r0 x
Прием ID3 d3 ID2 d2 ID1 d1 ID0 d0
Байт 2 Передача r7 x r6 x r5 x r4 x
Прием ID7 d7 ID6 d6 ID5 d5 ID4 d4
o o o
Байт 16 Передача r63 x r62 x r61 x r60 x
Прием ID63 d63 ID62 d62 ID61 d61 ID60 d60
rn = данные принятия решения о несоответствии (данные третьего интервала при несоответствии идентификаторов)
IDn = бит выбранного идентификатора ПЗУ (rn если несоответствие, а в противном случае - данные первого интервала)
dn = флаг обнаружения несоответствия (несоответствие идентификаторов или отсутствие ответов)
x = не содержит данных

Вычислительное ядро для завершения поиска ПЗУ должно передавать и принимать по 1-Wire шине 16- битные данные. Выполнение процедуры поиска ПЗУ завершается после того, как все биты несоответствия (rn) будут равны 0. В случае ошибки шины все последующие биты ответа IDn будут равны 1 до того, как ускоритель поиска ПЗУ не будет отключен путем сброса в 0 бита SRA в регистре команд. Таким образом, если ID63 и d63 оба равны 1, то произошла ошибка процедуры поиска и последняя последовательность должна быть повторена сначала. В противном случае в ID63:0 содержится идентификатор найденного и адресованного ПЗУ. При следующих процедурах поиска ПЗУ необходимо учитывать предыдущие последовательности и позицию последнего расхождения (флаги dn). Эта процедура повторяется до тех пор, пока позиция самого старшего расхождения не будет равна позиции самого раннего расхождения. По окончании процедуры поиска ПЗУ необходимо сбросить в 0 бит SRA, что приведет к выходу мастера шины из режима ускоренного поиска ПЗУ.



<-- Предыдущая страница Оглавление Следующая страница -->