Аппаратные интерфейсы ПК. Энциклопедия
Шрифт:
Шина SMBus основана на интерфейсе I²C, и к ней применимо все сказанное в п. 11.1.1. В шину введена возможность динамического реконфигурирования (подключения и отключения абонентов шины в процессе работы) и автоматического назначения адресов устройств. По сравнению с I²C в шине несколько изменены граничные требования к уровням сигналов и временным диаграммам (см. п. 11.1.4), но в основном они совпадают. Шина позволяет реализовать все режимы обменов, разрешенные для I²C, но имеет нюансы в правилах генерации подтверждений. Для шины SMBus в BIOS имеется стандартизованная поддержка. Особенностью шины SMBus, связанной с ее ролью в управлении системой питания, является способность автономной работы — соединяемые ею устройства могут обмениваться информацией, даже когда питание на центральном процессоре (и других подсистемах) отсутствует. Конечно, о взаимодействии с устройствами шины через BIOS в таком состоянии нет и речи, поскольку BIOS еще «спит».
На физическом уровне (1-м уровне OSI) спецификация определяет электрические и временные параметры сигналов. По уровням сигналов (и нагрузочной способности) имеются две различные
В спецификациях временных параметров приняты меры по ограничению времени отклика и предотвращению «зависания» шины. Частота тактового сигнала ограничена и снизу (10 кГц), и сверху (100 кГц); введены ограничения на максимальную длительность нахождения синхросигнала в высоком и низком состоянии и максимальную суммарную «растяжку» битовых интервалов на каждый байт. Предусматривается механизм тайм-аутов, по которому устройства, обнаружившие «зависание» шины, должны немедленно прекратить обмен и повторно инициализироваться. В спецификации I²C эти моменты не рассматривались.
На шине SMBus могут использоваться дополнительные аппаратные сигналы.
♦ Сигнал
♦ Сигнал
На уровне связи (2-м уровне OSI) определяются те же правила передачи данных, что и в I²C: условия
Сетевой уровень (3-й уровне OSI) определяет «лицо» шины SMBus и заслуживает более детального рассмотрения.
В шине SMBus введено понятия «хоста» (host) — абонента шины, выполняющего координирующие и конфигурирующие функции. Хост является ведущим устройством шины, при этом должен выполнять ряд функций ведомого устройства и отрабатывать сообщения уведомления.
Каждое ведомое устройство имеет свой уникальный адрес; в диапазоне 7-битных значений адреса выделяются специальные значения (табл. 11.4), которых несколько больше, чем в I²C. 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 | General call address — адрес общего вызова |
0000 000 | 1 | Start — начало активного обмена |
0000 001 | X | Адрес устройства шины CBUS (для совместимости) |
0000 010 | X | Адрес для устройств иных шин |
0000 011 | X | ,Зарезервировано |
0000 1XX | X | Зарезервировано |
0101 000 | X | Хост шины ACCESS.bus |
0110 111 | X | «Дежурный» адрес ACCESS.bus |
1111 0XX | Х | Признак 10-битной адресации |
1111 1XX | X | Зарезервировано |
0001 000 | X | Хост шины SMBus |
0001 100 | X | Адрес ответа на сигнальные сообщения SMBus |
1100 001 | X | «Дежурный» адрес SMBus |
1001 0XX | Х | Адрес устройств-прототипов |
Типичное устройство SMBus поддерживает определенный набор команд, с помощью которых выполняется обмен данными. Команда кодируется одним байтом, передаваемым в транзакции вслед за адресным байтом. Команды могут использовать один из 11 протоколов, определенных в SMBus.
В версии 1.1 спецификации SMBus введена возможность контроля ошибок пакета PEC (Packet error checking). Механизм PEC основан на добавлении в конец каждого передаваемого пакета байта CRC-кода, вычисляемого по всем предыдущим байтам пакета, начиная с адресного. Почти все протоколы могут иметь два варианта — без PEC и с PEC; на одной шине могут присутствовать устройства и с поддержкой PEC, и без. На байт PEC приемник отвечает подтверждением, но трактовка ответа неоднозначна. Если передатчик в ответ на PEC получил ответ
Шинные протоколы SMBus основаны на транзакциях I²C с 7-битной адресацией.
♦ Quick Command, короткая команда, — посылка адресного байта; действие команды определяется битом
♦ Send Byte, посылка байта, — передача ведущим устройством вслед за адресным байтом (
♦ Receive Byte, прием байта, — прием ведущим устройством вслед за адресным байтом (
♦ Write Byte, Write Word, запись байта/слова, — передача ведущим устройством вслед за адресным байтом (
♦ Read Byte, Read Word, чтение байта/слова, — комбинированные транзакции: сначала посылается адресный байт (
♦ Block Write, запись блока, — передача ведущим устройством вслед за адресным байтом (
♦ Block Read, чтение блока, — комбинированная транзакция: сначала посылается адресный байт (