Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Автоматическое назначение адресов






Динамическое реконфигурирование шины SMBus — возможность «горячего»
подключения/отключения основано на базовых принципах протокола PC. Авто­матическое назначение адресов, появившееся в версии 2.0, использует еще и конт­рольные байты пакетов (РЕС). Задача динамического реконфигурирования включает распознавание фактов подключения/отключения устройств и обеспе­чение бесконфликтного распределения их адресов. Подключение новых устройств
может распознаваться двумя способами. Устройство, которое может работать ве­
дущим устройством, при подключении (после своей инициализации по включе­
нию питания) может послать хосту уведомление, содержащее его адрес. Другой
вариант обнаружения — периодический опрос устройств ведущим устройством, ведающим «переучетом» всех устройств на шине.

Для динамического бесконфликтного назначения личных адресов устройств ис­пользуется протокол ARP (Address Resolution Protocol). Назначение адресов ос­новано на стандартном механизме арбитража (разрешения конфликтов) шины SMBus (и PC). Назначенный адрес запоминается устройством на все время, пока подано питание. Возможны и устройства PSA (Persistent Slave Address), «вспоми­нающие» ранее назначенный адрес после повторного включения питания. После назначения адреса обмен с устройством выполняется точно так же, как и с устрой­ством с фиксированным адресом. Назначение адресов может выполнять любое ведущее устройство шины SMBus.


438__________ Глава 11. Вспомогательные последовательные интерфейсы и шины

Для динамического назначения адреса требуется изоляция устройств — возмож­ность диалога ведущего устройства-нумератора с каждым устройством без помех со стороны других устройств (типичная задача настройки системы PnP). Изоля­ция основана на уникальном идентификаторе устройства UDID (Unique Device Identifier) — 128-битной структуре, содержащей описание возможностей, версию, идентификаторы производителя, устройства, подсистемы и специфическую инфор­мацию. Идентификатор начинается с байта возможностей (Device Capabilities), в котором два старших бита характеризуют способности динамической адресации, а младший бит — поддержку РЕС. Чтение идентификатора выполняется ведущим устройством ARP по протоколу блочного чтения по «дежурному» адресу SMBus. На это чтение отзываются все устройства с еще не назначенными адресами, и на арбитраже этой операции работает изоляция устройств. Первый считанный байт (указатель длины) у всех устройств одинаков, по нему конфликтов Нет. Далее устройства передают идентификаторы, и в арбитраже будут иметь приоритет те устройства, у которых нулевое значение бит данных встретится раньше. С учетом этого принята следующая кодировка классов устройств в старших битах первого байта идентификатора:

♦ 00 — устройства с фиксированными адресами, идентифицируются в первую очередь;

♦ 01 — динамические устойчивые (persistent) адреса устройств PSA;

♦ 10 — динамические изменчивые (volatile) адреса;

♦ 11 — устройства со случайными номерами, идентифицируются в последнюю очередь.

Младший бит этого байта указывает на поддержку РЕС и всех возможностей, ос­нованных на идентификаторе. При нулевом значении этого бита о поддержке РЕС ничего определенного сказать нельзя.

Последний элемент UDID — 32-битный идентификатор устройства, играющий важную роль в распознавании похожих устройств. Это может быть либо число, назначаемое изготовителем (отвечающим за его неповторимость), либо случай­ное число, генерируемое (и запоминаемое) устройством каждый раз при включе­нии или выполнении команды сброса.

Устройство, поддерживающее ARP, должно иметь специальные флаги:

♦ AR (Address Resolved) — данному устройству процедурой ARP назначен адрес;

♦ AV (Addres Valid) — устройство имеет действительный личный адрес, на кото­рый оно отзывается в обычных транзакциях (при AV=0 устройство должно иг­норировать все адреса, кроме «дежурного»).

При AV=AR-0 устройство не имеет личного адреса и должно участвовать в процессе ARP (отвечать на общий опрос идентификатора). При AV=1 и AR=0 устройство имеет личный адрес, но должно участвовать в ARP. При AV=AR=1 устройство имеет личный адрес, но не должно отвечать на общий запрос идентификатора. При этом оно должно отрабатывать адресованную ему команду назначения адреса (и впоследствии пользоваться новым назначенным адресом). Комбинация AV=0 и AR=1 недопустима.


11.1. Последовательные шины на базе I2C_______________________________ 439

Для протокола ARP введены специальные команды.

♦ Get UDID (general) — общийзапрос идентификатора — команда чтения бло­ка данных с адресом 1100 001 и кодом команды 3. На нее устройства, поддер­живающие ARP, отвечают посылкой блока с длиной 17 байт, сопровождаемого РЕС. Первые 16 байт блока — UDID, 17-й байт — адрес устройства (с едини­цей в младшем бите). Если у устройства флаг AV=0, оно вместо адреса передает код «1111 111». Команда не влияет на флаги AV и AR.

♦ Assign address — назначить адрес — команда записи блока данных с адресом 1100 001 и кодом команды 4 и длиной 17 байт, сопровождаемого РЕС. Первые 16 байт блока — UDID, 17-й байт — назначаемый адрес устройства (младший бит игнорируется). По этой команде устройство, обнаружившее полное совпа­дение UDID со своим собственным, устанавливает флаги AV=AR=1.

♦ Get UDID (directed) — направленный запрос идентификатора—команда
чтения блока данных с адресом 1100 001, в поле кода команды находится адрес интересующего устройства с единицей в младшем бите. На нее отвечает толь­ко устройство, опознавшее свой адрес в поле команды, и отвечает посылкой блока с длиной 17 байт, сопровождаемого РЕС. Первые 16 байт блока — UDID, 17-й байт — адрес устройства (с единицей в младшем бите). Команда не влия­ет на флаги AV и AR.

♦ Reset device (general) — общий сброс устройства — посылка по адресу
1100 001 байта команды с кодом 2, сопровождаемого байтом РЕС. По этой
команде все устройства инициализируются и обнуляют флаги AR и AV (PSA-устройства флага AV не изменяют).

♦ Reset device ARP (di r ее ted) — направленный сброс устройства —посылка
по адресу 1100 001 байта с адресом целевого устройства (с нулем в младшем бите), сопровождаемого байтом РЕС. По этой команде выбранное устройство инициализируется и обнуляет флаги AR и AV (PSA-устройства флага AV не из­меняют).

♦ Notify ARP master — уведомление ведущего устройства ARP — посылка на адрес 0001 000 байта с «дежурным» адресом 1100 0010, за которым следуют два байта нулей. Устройство может посылать это уведомление о необходимости выполнения ARP при включении питания, а также при обнаружении коллизии в процессе выполнении чтения данных по индивидуальному адресу устройства.

На каждый байт команд ARP-устройства, поддерживающие этот протокол, отве­чают подтверждением АСК. Отсутствие подтверждений трактуется ведущим ARP-устройством как отсутствие ARP-устройств на шине.

«Переучет» и назначение адресов вкратце выглядит следующим образом: ведущее ARP-устройство выполняет команду общего запроса идентификатора и по ней получает UDID и, возможно, адрес первого «победителя» в арбитраже. Далее это­му победителю назначается личный адрес — тот же или по усмотрению ведущего ARP-устройства, после чего он уже не участвует в арбитраже по общему запро­су. Сведения об устройстве и его адрес ведущим ARP-устройством заносятся


440__________ Глава 11. Вспомогательные последовательные интерфейсы и шины

в таблицу устройств. После этого общий запрос и назначение адреса повторяются снова и снова, пока все ARP-устройства не будут удовлетворены. Признаком «об­щего удовлетворения» для ведущего ARP-устройства будет отсутствие подтверж­дений приема команд общего запроса.






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.