Сделай Сам Свою Работу на 5

Поддержка 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 Все материалы защищены законодательством РФ.