Поддержка 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. Вспомогательные последовательные интерфейсы и шины
11.1.4. Сравнение шин I2C, ACCESS.bus и SMBus
Как видно из вышеприведенных описаний, все эти три шины являются «близкими родственниками»; однако они имеют ряд электрических, конструктивных и протокольных отличий.
Электрический интерфейс шин (табл. 11.5) достаточно близок, и при обычном (5 В) питании схем проблем совместимости не возникает (Vdd — напряжение питания).
Таблица 11.5.Электрические параметры шин I2C, ACCESS.bus и SMBus
Параметр
| 12С
| ACCESS.bus
| ACCESS.bus
| SMBus
| SMBus
|
|
| внешняя
| внутренняя
| мощная
| маломощная
| Входной уровень
| 1,5ВилиО,ЗУ,м
| 0,3Vdd
| 0,3VM
| 0,8 В
| 0,8 В
| лог. 0, не более
|
|
|
|
|
| Входной уровень
| 3,0 В или 0,7Vdd
| 0,7Vdd
| 0,7VM
| 2,1В
| 2,1В
| лог. 1, не менее
|
|
|
|
|
| Выходной уровень
| 0,4 В или 0,2Vdd
| 0,6 В
| 0,6 В
| 0,4 В
| 0,4 В
| лог. 0, не более
| при Vdd<2 В
|
|
|
|
| Выходной ток
|
|
| 0,35
|
| 0,35
| лог. 0, мА
|
|
|
|
|
| Максимальная
|
|
|
|
|
| емкость линии
|
|
|
|
|
| шины,пФ
|
|
|
|
|
| Частота, КГц
| 0-100,0-400,
| 0-100
| 0-100
| 10-100
| 10-100
|
| 0-3400
|
|
|
|
| ' Вместо емкости задаются допустимые длительности фронтов и спадов.
Конструктивно выделяется шина ACCESS.Bus (внешняя), в которой определены разъемы и кабели, а также питание (5 В) устройств от шины; в других — нет.
Протокольные различия более существенны, из них отметим лишь следующие.
♦ В шине ACCES.Bus определены лишь передачи данных ведущим устройством, в остальных шинах ведущее устройство может и принимать данные.
♦ В шинах ACCES.Bus и SMBus ведущее устройство не имеет права повторного захвата шины ранее, чем через 50 мкс после начала передачи. Сигнал SCL в этой шине может удерживаться на низком уровне не дольше 2 мс. В PC таких ограничений нет.
♦ В шине SMBus ведущее устройство ожидает от ведомого устройства немед ленного ответа, в шине ACCESS.Bus ответ приходит независимо, но ожидается не позже чем через 40 мс. В шине SMBus и ведущее устройство, и ведомое устройство могут притормаживать обмен на уровне приема битов, что позволяет им вписываться в свои временные диаграммы (успевать «просыпаться», обрабатывать прерывания).
11.2. Шина управления SMI интерфейса МИ 443
Не нашли, что искали? Воспользуйтесь поиском по сайту:
©2015 - 2024 stydopedia.ru Все материалы защищены законодательством РФ.
|