Поиск по сайту:

 


По базе:  

микроэлектроника, микросхема, микроконтроллер, память, msp430, MSP430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, SED1335, mega128, avr, mega128  
  Главная страница > Обзоры по типам > Микроконтроллеры > MAXQ

реклама

 




Мероприятия:




Пример ускоренного поиска ПЗУ

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

ROM1 = 00110101....
ROM2 = 10101010....
ROM3 = 11110101....
ROM4 = 00010001....
  1. Микроконтроллер формирует импульс сброса, записывая 01h в регистр команд. Одновременно с поиском присутствия реагируют все подчиненные устройства.
  2. Микроконтроллер формирует команду поиска ПЗУ (Search ROM), записывая F0h в регистр команд. Ведущий должен дождаться флага RBF и считать (освободить) регистр буфера приемника.
  3. Микроконтроллер переводит мастера 1-Wire в режим ускоренного поиска ПЗУ, записывая 02h в регистр команд.
  4. Микроконтроллер записывает 00h в буфер передатчика и считывает возвращенные данные из регистра буфера приемника. Этот процесс повторяется для всех 16 байт. Считанные данные содержат ROM4 в позиции бита ID и установленные флаги несоответствия d0 и d2. Это может быть замечено при сравнении битов приведенных идентификаторов ПЗУ. Первое несоответствие имеется в нулевом бите (d0). Временной интервал записи мастера шины содержит 0, таким образом, снимая выделение ROM2 и ROM3. После этого несоответствие между ROM1 и ROM4 происходит во втором бите идентификатора ПЗУ (d2), оставляя только в поиске только ROM4. Таким образом, принятые данные будут выглядеть следующим образом (d0ID0 d1ID1 d2ID2 d3ID3 d4ID4 d5ID5 d6ID6 d7ID7 ....):
    Принятые данные = 10 00 10 01 00 00 00 01....
  5. Микроконтроллер тогда изменяет чередование данных для достижения идентификатора ПЗУ 00010001... и данных несоответствия (полужирных) 10100000.... с последним несоответствием в размещении d2.
  6. Микроконтроллер записывает 0x00h в регистр команд для выхода из режима ускоренного поиска. Теперь ведущий может послать или принять данные непосредственно от этого прибора.
  7. Для нахождения остальных идентификаторов повторяются шаги с 1 по 6. 16 байтов данных, посланных на сей раз идентичны ROM4 вплоть до последнего флага несоответствия (d2 в нашем случае), который инвертируется и все информационные разряды несоответствия более высокого порядка устанавливаются в 0 как показано: r0r1r2r3r4r5 .... = 001000..... Для этой поисковой итерации, принятые данные содержат идентификатор ROM1 в размещениях бита ID и снова установленные биты несоответствия d2 и d0. Принятые данные = 10 00 11 01 00 01 00 01....
  8. Так как наиболее значительное несоответствие (d2) не изменилось, то для следующего поиска используется следующее самое высокое несоответствие (d0) r0r1r2r3r4r5.... =100000.....
    Принятые данные = 11 10 01 00 01 00 01 00....
    Разделение чередования выдает ПЗУ ID 10101010.. (ROM2) и флаги несоответствия 11000000.. (d1 - наиболее значительный флаг).
  9. Следующий поиск использует идентификатор ПЗУ, полученный в прошлом поиске, за исключением наиболее значительного флага несоответствия: r0r1r2r3r4r5.... =110000...
    Принятые данные = 11 11 01 01 00 01 00 01....
    Разделение чередования выдает ПЗУ ID 11110101.. (ROM3) и флаги несоответствия 11000000.. (d1 - наиболее значительный флаг).
  10. В этом пункте, наиболее значительное несоответствие (d1) не изменилось, поэтому используется следующее несоответствие (d0). Однако, d0 был обработан во втором поиске и с тех пор не было никаких меньших несоответствий. Поэтому поиск закончен и идентификаторы ПЗУ всех четырех приборов найдены.


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





 
Впервые? | Реклама на сайте | О проекте | Карта портала
тел. редакции: +7 (995) 900 6254. e-mail:info@eust.ru
©1998-2023 Рынок Микроэлектроники