Аппаратные интерфейсы ПК

         

Шина SMBus


Шина SMBus (System Management Bus — шина системного управления) — двухпро­водной интерфейс для обмена данными между микросхемами различных систем­ных компонентов компьютера, а также связи их с самим компьютером. Основное назначение интерфейса — управление подсистемой питания и сопутствующими подсистемами. Первоначально шина разрабатывалась для интеллектуальных ба­тарей и зарядных устройств, и первые версии спецификации SMBus шли под за­головком «Smart Battery System Specifications» (спецификации системы «умных» батарей). Система с «умными», или «ловкими», батареями (Smart Battery System) состоит из собственно батарей (аккумуляторов) и зарядных устройств, способных обмениваться управляющей информацией между собой и с хост-системой, кото­рую она питает. Этот обмен позволяет батареям сообщать свои параметры (теку­щие значения, ожидаемые величины), подключаться в режим работы (питания хост-системы) или зарядки. Часть управляющих функций выполняется при участии хоста, а часть — автономно. Первая версия спецификации SMBus вышла в 1995 г., версия 1.1 — в 1998 г. Версия 2.0 вышла в 2000 г., она уже не имеет «бата­рейного» заголовка. Данное описание основано на документе «System Management Bus (SMBus) Specification Version 2.0», выпущенном форумом разработчиков си­стем с интеллектуальными батареями (SBS, www.sbs-forum.org), в который входит большое число производителей источников питания, а также фирма Intel. Специ­фикация покрывает три нижних уровня модели взаимодействия открытых сис­тем (OSI), от физического до сетевого.

Шина SMBus основана на интерфейсе 12С, и к ней применимо все сказанное в п. 11.1.1. В шину введена возможность динамического реконфигурирования (подключения и отключения абонентов шины в процессе работы) и автомати­ческого назначения адресов устройств. По сравнению с PC в шине несколько изменены граничные требования к уровням сигналов и временным диаграммам (см. п. 11.1.4), но в основном они совпадают. Шина позволяет реализовать все режимы обменов, разрешенные для PC, но имеет нюансы в правилах генерации подтверждений.
Для шины SMBus в BIOS имеется стандартизованная поддерж­ка. Особенностью шины SMBus, связанной с ее ролью в управлении системой питания, является способность автономной работы — соединяемые ею устройства могут обмениваться информацией, даже когда питание на центральном процессо­ре (и других подсистемах) отсутствует. Конечно, о взаимодействии с устройства­ми шины через BIOS в таком состоянии нет и речи, поскольку BIOS еще «спит».

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

На физическом уровне (1-м уровне OSI) спецификация определяет электрические и временные параметры сигналов. По уровням сигналов (и нагрузочной способ­ности) имеются две различные спецификации. Маломощная (low power) специ­фикация соответствует «родному» применению SMBus в устройствах с батарей­ным питанием; здесь характерны малые токи. Мощная (high power) спецификация предназначена для работы абонентов SMBus в окружении источников значитель­ных помех (например, на плате PCI). Маломощные и мощные устройства на од­ной шине вместе работать в общем случае не смогут, но это и не требуется. При необходимости совместного использования устройств разных классов организу­ются разные сегменты шины, соединенные мостом.

В спецификациях временных параметров приняты меры по ограничению време­ни отклика и предотвращению «зависания» шины. Частота тактового сигнала ограничена и снизу (10 кГц), и сверху (100 кГц); введены ограничения на макси­мальную длительность нахождения синхросигнала в высоком и низком состоянии и максимальную суммарную «растяжку» битовых интервалов на каждый байт. Предусматривается механизм тайм-аутов, по которому устройства, обнаружив­шие «зависание» шины, должны немедленно прекратить обмен и повторно ини­циализироваться. В спецификации PC эти моменты не рассматривались.

На шине SMBus могут использоваться дополнительные аппаратные сигналы.

¦ Сигнал SMBSUS* указывает на приостанов шины и устройств. Этот сигнал



вырабатывается устройством управления питанием; во время его активности

(низкий уровень) сигналы SDA и SCL штатным образом (как в PC) не воспри­нимаются (они могут использоваться для уточнения режима приостанова).

¦     Сигнал SMBALERT# служит для оповещения ведущего устройства о необходимости обмена с ведомым устройством, не имеющем возможности высту­пить в роли ведущего устройства. Этот сигнал собирается по схеме «Монтаж­ное И» от всех устройств. Получив его, хост должен дать команду чтения байта по адресу 0001 100, на которое просигналившее устройство должно ответить байтом со своим адресом (возможен вариант и с дополнительным байтом РЕС).



На уровне связи (2-м уровне OSI) определяются те же правила передачи данных, что и в PC: условия S, P, Sr; биты подтверждения; 7-битная адресация и признак RW в первом байте, следующем за условием 5 (5г). Как и в PC, ведущее устройство может выполнять и запись, и чтение данных ведомого устройства; используются и комбинированные транзакции (через условие Sr). В генерации подтверждений на SMBus есть особенности. На собственный адрес устройство всегда должно от­вечать битом подтверждения АС К, даже если оно занято внутренними операци­ями. Это правило обеспечивает работу механизма определения присутствия дан­ного устройства на шине. Ведомое устройство может вводить бит NACK в ответ на любой неадресный байт, если оно занято или запрашиваемые командой данные недоступны. В этом случае у него есть и альтернатива поведения — задержать син­хросигнал на низком уровне (в разрешенных пределах). Ведомое устройство долж­но вводить бит NACK в ответ на недопустимые коды команд или данных. Ответ NACK вынуждает ведущее устройство прекратить транзакцию (ввести Р). Ведущее устройство, будучи приемником, ответом NACK информирует передатчик о при­еме последнего ожидаемого байта.

11.1. Последовательные шины на базе 1гС_______________________________ 435

Сетевой уровень (3-й уровне OSI) определяет «лицо» шины SMBus и заслужива­ет более детального рассмотрения.



Сетевой уровень SMBus

В шине SMBus введено понятия «хоста» (host) — абонента шины, выполняющего координирующие и конфигурирующие функции. Хост является ведущим устрой­ством шины, при этом должен выполнять ряд функций ведомого устройства и отрабатывать сообщения уведомления.

Каждое ведомое устройство имеет свой уникальный адрес; в диапазоне 7-бит­ных значений адреса выделяются специальные значения (табл. 11.4), которых несколько больше, чем в PC. 10-битная адресация в текущей версии не рассмат­ривается. Адреса устройств разделяются по типам. Для устройств однозначно по­нятного назначения SMBus WG выделяет специальные адреса (Purpose-assigned addresses). Например, батареи Smart Battery имеют адрес 0001 011, их зарядные устройства— 0001 001. Устройства с этими адресами обязаны соответствовать требованиям SMBus, предъявляемым к устройствам данного класса. Ряд систем с SMBus определяют и используют эти устройства, основываясь на их адресе. Другие системы могут и не доверять одному только адресу, а определять типы присутствующих устройств иным образом. Для устройств разнообразного назна­чения, а также устройств, не полностью отвечающих спецификациям SMBus для своего класса, производители назначают иные адреса, с которыми можно озна­комиться на сайте www.smbus.org. Адреса устройств-прототипов задействуются исключительно в экспериментально-отладочных целях и в коммерческих изде­лиях использоваться не должны. В спецификации SMBus 2.0 появилась возмож­ность автоматического динамического назначения адресов устройств, которая будет рассмотрена ниже.

Таблица 11.4. Специальные адреса SMBus Биты [7:1]     Бит 0 (RW)    Назначение

0000 000

0

0000 000

1

0000 001

X

0000 010

X

0000 011

X

0000 1ХХ

X

0101000

X

0110111

X

1111 ОХХ

X

1111 1ХХ

X

0001 000

X

0001 100

X

1100001

X

1001 ОХХ

X

General call address — адрес общего вызова

Start — начало активного обмена



Адрес устройства шины CBUS (для совместимости)

Адрес для устройств иных шин

,Зарезервировано

Зарезервировано

Хост шины ACCESS.bus

«Дежурный» адрес ACCESS.bus

Признак 10-битной адресации

Зарезервировано

Хост шины SMBus

Адрес ответа на сигнальные сообщения SMBus

«Дежурный» адрес SMBus

Адрес устройств-прототипов

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

Типичное устройство SMBus поддерживает определенный набор команд, с помо­щью которых выполняется обмен данными. Команда кодируется одним байтом, передаваемым в транзакции вслед за адресным байтом. Команды могут использо­вать один из 11 протоколов, определенных в SMBus.

В версии 1.1 спецификации SMBus введена возможность контроля ошибок паке­та PEC (Packet error checking). Механизм PEC основан на добавлении в конец каждого передаваемого пакета байта CRC-кода, вычисляемого по всем предыдущим байтам пакета, начиная с адресного. Почти все протоколы могут иметь два вари­анта — без РЕС и с РЕС; на одной шине могут присутствовать устройства и с поддерж­кой РЕС, и без. На байт РЕС приемник отвечает подтверждением, но трактовка ответа неоднозначна. Если передатчик в ответ на РЕС получил ответ NACK, это означает, что приемник не подтвердил корректный прием пакета. Однако ответ АС К не является подтверждением достоверности приема: приемник может «не пони­мать» РЕС и отвечать на него как на обычный байт данных; приемник может и не выполнять контроль в реальном времени приема потока данных. Более «достоверный контроль достоверности» могут обеспечить лишь протоколы высших уровней. Так, например, для контроля достоверности записи в устройство можно использовать последующее чтение тех же данных с РЕС, и по анализу всего принятого пакета ведущее устройство сделает вывод об успешности или ошибке операции записи.

Шинные протоколы SMBus основаны на транзакциях PC с 7-битной адресацией.

¦     Quick Command, короткая команда, — посылка адресного байта; действие коман­ды определяется битом RW адресного байта.



¦     Send Byte, посылка байта, — передача ведущим устройством вслед за адресным байтом (RW=0) одного байта данных. В варианте с РЕС передаются два байта, последний — РЕС.

¦     Receive Byte, прием байта, — прием ведущим устройством вслед за адресным байтом (RW=1) одного байта данных. В варианте с РЕС принимаются два бай­та, последний — РЕС.

¦     Write Byte, Write Word, запись байта/слова,— передача ведущим устройством вслед за адресным байтом (RW=0) одного байта команды, за которым следует 1 или 2 байта (младший, а затем старший) данных. В варианте с РЕС в конец добавляется контрольный байт.

¦     Read Byte, Read Word, чтение байта/слова, — комбинированные транзакции:

сначала посылается адресный байт (RW=0), за которым передается код коман­ды. Далее, через условие 5 посылается адресный байт с тем же адресом устрой­ства, но RW=1, после которого принимается 1 или 2 байта данных. В варианте с РЕС в конце ожидается прием дополнительного (контрольного) байта.

¦     Block Write, запись блока, — передача ведущим устройством вслед за адресным байтом (RW=0) одного байта команды, за которым следует байт-указатель дли­ны (количество последующих байт) и собственно байты данных. В варианте с РЕС в конец добавляется контрольный байт. Указатель длины не учитывает байт РЕС; он не может быть нулевым; одной блочной командой можно пере­сылать до 32 байт данных.

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

¦     Block Read, чтени блока, — комбинированная транзакция: сначала посылается адресный байт (RW=0), за которым передается код команды. Далее, через усло­вие S посылается адресный байт с тем же адресом устройства, но RW=1, после которого принимается байт-указатель длины, а за ним и собственно байты дан­ных. В варианте с РЕС в конце ожидается прием дополнительного (контрольно­го) байта. Указатель длины — аналогично блочной записи.



¦     Process Call, вызов процесса, — комбинация команды Write Word с приемом сло­ва (двух байт) от устройства с тем же адресом. Команда называется вызовом процесса, поскольку ожидает данных, зависящих от посланного кода команды и слова данных. В варианте с РЕС контрольный байт ожидается только в самом конце, вслед за последним байтом принятых данных.

¦     Block Write-Block Read Process Call — комбинация записи блока с последующим чтением блока по тому же адресу устройства. В варианте с РЕС контрольный байт ожидается только в самом конце, вслед за последним байтом принятых данных.

В случае, когда ведущим устройством шины собирается выступать рядовое устрой­ство (не хост), оно должно использовать протокол уведомления хоста (SMBus host notify protocol): устройство на адрес хоста с RW=0 (он известен) посылает байт с собственным адресом, за которым следует слово (два байта) собственно уведом­ления. Хост обязан понимать эти уведомления; дополнительно может использо­ваться и необязательный сигнал внимания SMBALERT* (см. ниже).

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

Динамическое реконфигурирование шины 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-устройства будет отсутствие подтверж­дений приема команд общего запроса.

Поддержка SMBus в BIOS и ACPI

Шина SMBus, в отличие от ACCESS.bus, сразу получила спецификацию ее под­держки на уровне BIOS. Позже появились спецификации, позволяющие интегри­ровать устройства SMBus в систему ACPI.

В 1995 г. была опубликована спецификация интерфейса SMBus BIOS — System Management Bus BIOS Interface Specification, основные идеи которой вкратце из­ложены ниже. Интерфейс позволяет верхним уровням ПО абстрагироваться от аппаратной реализации хост-контроллера. Поддержка BIOS обеспечивается для трех типов режимов работы процессора: реального (и V86), защищенного 16-раз­рядного и защищенного 32-разрядного. Вызов функций может выполняться либо через BIOS Int 15h (в реальном режиме и в V86), либо через точку входа, полу­ченную при подключении в соответствующем режиме. Для подключения (и от­ключения) также используется сервис BIOS Int 15h; после подключения доступ через Int 15 h блокируется (до отключения). В защищенном режиме вызов ин­терфейсных функций возможен только через точку входа, полученную при под­ключении. Поддержка точки входа для реального режима необязательна.



Спецификация SMBus BIOS обеспечивает хост-центрическое обращение к або­ нентам шины: по инициативе вызывающей программы хост-контроллер посылает устройству команду, которая может предполагать и немедленный ответ устройства. Однако устройства могут посылать хосту сообщения по собственной инициативе, при этом они обязаны использовать протокол Wri te Word. Хост способен поме­щать принятые сообщения в небольшую очередь, из которой они могут программ­но извлекаться путем вызова функции 7 (программа должна периодически выпол­нять этот вызов для проверки наличия сообщений в очереди). В очереди каждое сообщение представлено байтом адреса источника и парой байт тела сообщения.

Шина SMBus тесно связана с оборудованием, управляющим питанием и участву­ющим в генерации запросов системного прерывания SMI (System Management Interrupt — особое аппаратное прерывание процессора) и их обработки. Из-за это­го в BIOS введен специальный механизм, позволяющий обнаружить обработку SMI во время выполнения транзакций и в иное время. Это необходимо, посколь­ку обработчик SMI, работающий в режиме SMM, совершенно невидим приклад­ной программе, а результаты его работы могут существенно влиять на работу про­граммы, вызывающей BIOS SMBus.

Функции общих обращений к SMBus:

¦      SMBus Installation Check (Olh) — проверка наличия функций;

¦      SMBus Real Mode Connect (02h) — подключение в реальном режиме;

¦      SMBus 16-Bit Connect (03h) —подключение в 16-битном защищенном режиме;

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

¦     SMBus 32-Bit Connect (04h) — подключение в 32-битном защищенном режиме;

¦     SMBus Disconnect (05h) — отключение от сервиса;

¦     SMBus Devi се Address (06h) — получение списка адресов устройств SMBus;

¦     SMBus Critical Messages (07h) — чтение сообщений устройств, переданных



хосту.

Для взаимодействия с конкретными устройствами SMBus предназначен набор функций, позволяющих генерировать запросы протокольных команд SMBus и по­лучать результаты их выполнения. Функции запросов и получения ответов раз­делены, что позволяет на время выполнения (и передачи) довольно длительных команд не занимать время центрального процессора. Большинство протокольных команд вводится за один вызов BIOS; исключение составляет команда записи блока, данные для которой передаются за один или более последующих запросов продолжения. Результаты большинства команд также принимаются за один вы­зов; результат чтения блока получается за несколько вызовов продолжения.

Вызовы протокольных команд устройств SMBus:

¦     SMBus Request (10h) — запрос команды устройству;

¦     SMBus Request Continuation (llh) — продолжение запроса для записи блока;

¦     SMBus Request Abort (12h)— отказ от выполнения ранее посланного запроса;

¦     SMBus Request Data and Status (13h) — запрос данных и состояния.

Шина SMBus является одним из главных коммуникационных средств в ACPI. Интерфейс SMBus для ACPI определен в спецификации SMBus CMI— докумен­те System Management Bus (SMBus) Control Method Interface Specification Version 1.0, опубликованном в конце 1999 г. Этот интерфейс позволяет легко использо­вать все возможности SMBus независимо от происхождения или особенностей реализации оборудования. Ниже перечислены основные цели спецификации.

¦     Обеспечить эффективный и надежный интерфейс ACPI для аппаратных средств хост-контроллера независимо от его реализации (со встроенным микроконт­роллером или без него).

¦     Обеспечить системную синхронизацию доступа ко всем ресурсам SMBus.

¦     Гарантировать соответствие интерфейса версиям 1.0 и 1.1 спецификации

SMBus и возможности его расширения для поддержки новых свойств в буду­щих версиях.

Для успешного функционирования системы требуется поддержка соответству­ющими драйверами операционной системы. Для управления питанием форум раз­работчиков «интеллектуальных» батарей — Smart Battery System Implementers Forum (SBS-IF) — разработал спецификацию драйверов для ОС Windows Эх/2000, с которой можно ознакомиться на сайте http://www.sbs-forum.org/smbus/.

Рассмотрение программного интерфейса CMI выходит за рамки данной книги. Отметим лишь, что коды протоколов SMBus, используемые в CMI, отличаются от кодов, используемых в SMBus BIOS. Те же протоколы, но с байтом РЕС, коди­руются с единицей в старшем бите (значение увеличено на 80h).

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


Содержание раздела