КОМПЬЮТЕРНОЕ ЖЕЛЕЗО
HARDWARE FOR PC

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

Другой
вариант обнаружения — периодический опрос устройств ведущим устройством,ведающим «переучетом» всех устройств на шине.
Для динамического бесконфликтного назначения личных адресов устройств ис¬пользуется протокол 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 — устройства со случайными номерами, идентифицируются в последнюю очередь.

Hosted by uCoz