stringtranslate.com

Шина системного управления

Шина управления системой (сокращенно SMBus или SMB ) представляет собой несимметричную простую двухпроводную шину , предназначенную для упрощения связи. Чаще всего он встречается в наборах микросхем материнских плат компьютеров для связи с источником питания для инструкций включения/выключения. Точные функциональные возможности и аппаратные интерфейсы различаются у разных поставщиков.

Он получен из I²C для связи с устройствами с низкой пропускной способностью на материнской плате , особенно с микросхемами, связанными с питанием, такими как подсистема аккумуляторной батареи ноутбука (см. Система Smart Battery и ACPI ). Другие устройства могут включать внешние главные хосты, датчик температуры, датчики вентилятора или напряжения, переключатели крышки, тактовый генератор и RGB-подсветку. Карты расширения PCI могут подключаться к сегменту SMBus.

Устройство может предоставлять информацию о производителе, указывать свою модель/номер детали, сохранять свое состояние для события приостановки, сообщать о различных типах ошибок, принимать параметры управления, возвращать статус по SMBus и опрашивать регистры набора микросхем. SMBus обычно не настраивается и не доступен пользователю. Хотя устройства SMBus обычно не могут определить свою функциональность, новая коалиция PMBus расширила SMBus, включив в него соглашения, позволяющие это.

SMBus был определен компаниями Intel и Duracell в 1994 году. [ 1] Он передает тактовую частоту, данные и инструкции и основан на протоколе последовательной шины Philips I²C . Диапазон тактовых частот составляет от 10 кГц до 100 кГц. (PMBus расширяет эту частоту до 400 кГц.) Его уровни напряжения и тайминги определены более строго, чем у I²C, но устройства, принадлежащие к двум системам, часто успешно смешиваются на одной шине. [ нужна цитата ]

SMBus используется в качестве межсоединения в нескольких стандартах управления платформами, включая: ASF , DASH , IPMI .

SMBus используется для доступа к информации о конфигурации DRAM в рамках обнаружения последовательного присутствия . SMBus превратился в широкий спектр вариантов использования системного перечисления, помимо управления питанием.

Совместимость SMBus/I²C

Хотя SMBus является производным от I²C, между спецификациями двух шин есть несколько существенных различий в области электрооборудования, синхронизации, протоколов и режимов работы. [2] [3] [4] [5]

Электрический

Входное напряжение ( В IL и В IH )

При смешивании устройств спецификация I²C определяет входные уровни равными 30% и 70% напряжения питания VDD , [4] :9  , которое может составлять 5 В, 3,3 В или какое-либо другое значение . Вместо того, чтобы связывать входные уровни шины с V DD , SMBus определяет их фиксированными значениями 0,8 и 2,1 В. SMBus 2.0 поддерживает V DD в диапазоне от 3 до 5 В. SMBus 3.0 поддерживает V DD в диапазоне от 1,8 до 5 В и V IH = 1,35 В. [3]

Ток стока ( I OL )

SMBus 2.0 определяет класс «Высокой мощности», который включает в себя ток потребления 4 мА, который не может управляться микросхемами I²C, если подтягивающий резистор не рассчитан на уровни шины I²C.

Устройства NXP имеют более высокий набор электрических характеристик по мощности, чем SMBus 1.0. Основное отличие заключается в возможности приема тока при VOL = 0,4 В.

Устройства высокой мощности SMBus и устройства шины I²C будут работать вместе, если подтягивающий резистор рассчитан на ток 3 мА.

Частота ( F MAX и F MIN )

Тактовый сигнал SMBus определяется в диапазоне 10–100 кГц, а I²C может составлять 0–100 кГц, 0–400 кГц, 0–1 МГц и 0–3,4 МГц, в зависимости от режима. Это означает, что шина I²C, работающая на частоте менее 10 кГц, не будет совместима с SMBus, поскольку устройства SMBus могут выйти из строя. Однако многие устройства SMBus поддерживают более низкие частоты.

SMBus 3.0 добавляет скорости шины 400 кГц и 1 МГц.

Тайминг

Протоколы

Использование ACK и NACK

Существуют следующие различия в использовании сигнализации шины NACK: В I²C ведомому получателю разрешено не подтверждать адрес ведомого устройства, если, например, он не может получить его из-за выполнения какой-либо задачи в реальном времени. SMBus требует, чтобы устройства всегда подтверждали свой собственный адрес в качестве механизма обнаружения присутствия съемного устройства на шине (батарея, док-станция и т. д.).

I²C определяет, что ведомое устройство, хотя и может подтвердить свой собственный адрес, через некоторое время во время передачи может решить, что оно не может больше получать байты данных. I²C указывает, что устройство может указать это, генерируя отказ в первом последующем байте.

Помимо индикации состояния занятости ведомого устройства, SMBus также использует механизм NACK для индикации приема недопустимой команды или данных. Поскольку такое условие может возникнуть на последнем байте передачи, требуется, чтобы устройства SMBus имели возможность генерировать подтверждение отказа после передачи каждого байта и до завершения транзакции. Это важно, поскольку SMBus не обеспечивает никакой другой сигнализации повторной отправки. Это различие в использовании сигнализации NACK влияет на конкретную реализацию порта SMBus, особенно в устройствах, обрабатывающих критически важные системные данные, таких как хост SMBus и компоненты SBS.

Протоколы SMBus

Каждая транзакция сообщения в SMBus соответствует формату одного из определенных протоколов SMBus. Протоколы SMBus представляют собой подмножество форматов передачи данных, определенных в спецификациях I²C. Устройства I²C, доступ к которым возможен через один из протоколов SMBus, совместимы со спецификациями SMBus. Доступ к устройствам I²C, не поддерживающим эти протоколы, невозможен стандартными методами, как определено в спецификациях SMBus и Advanced Configuration and Power Interface (ACPI).

Протокол разрешения адресов

SMBus использует аппаратное обеспечение I²C и аппаратную адресацию I²C, но добавляет программное обеспечение второго уровня для построения специальных систем. В частности, его спецификации включают протокол разрешения адресов, который может выполнять динамическое распределение адресов. Динамическая реконфигурация аппаратного и программного обеспечения позволяет осуществлять «горячее» подключение устройств шины и немедленное их использование без перезапуска системы. Устройства распознаются автоматически и им присваиваются уникальные адреса. Это преимущество приводит к созданию пользовательского интерфейса, работающего по принципу «включай и работай». В обоих этих протоколах проводится очень полезное различие между системным хостом и всеми другими устройствами в системе, которые могут иметь имена и функции главных или подчиненных устройств.

Функция тайм-аута

SMBus имеет функцию тайм-аута, которая сбрасывает устройства, если связь занимает слишком много времени. Этим объясняется минимальная тактовая частота 10 кГц для предотвращения блокировки шины. I²C может быть шиной постоянного тока, что означает, что ведомое устройство растягивает тактовую частоту ведущего устройства при выполнении какой-либо процедуры, пока ведущее устройство имеет к нему доступ. Это уведомит ведущего устройства о том, что ведомое устройство занято, но не желает терять связь. Ведомое устройство позволит продолжить работу после завершения своей задачи. В протоколе шины I²C нет ограничений на длительность этой задержки, тогда как для системы SMBus она будет ограничена 35 мс. Протокол SMBus просто предполагает, что если что-то происходит слишком долго, то это означает, что на шине возникла проблема и что все устройства должны перезагрузиться, чтобы очистить этот режим. В этом случае ведомым устройствам не разрешается удерживать тактовый сигнал на низком уровне слишком долго.

Проверка ошибок пакетов

SMBus 1.1 и более поздние версии определяют дополнительную проверку ошибок пакетов ( PEC ). В этом режиме в конце каждой транзакции добавляется байт PEC (код ошибки пакета). Байт рассчитывается как контрольная сумма CRC-8 , рассчитанная для всего сообщения, включая адрес и бит чтения/записи. Используемый полином: x 8 +x 2 +x+1 (алгоритм CRC-8- ATM HEC , инициализированный нулем). [6] [7] [8]

SMBALERT#

У SMBus есть дополнительный дополнительный общий сигнал прерывания , называемый SMBALERT#, который может использоваться ведомыми устройствами, чтобы сообщить хосту, чтобы он запрашивал свои ведомые устройства о интересующих событиях. SMBus также определяет менее распространенный «Протокол уведомления хоста», предоставляющий аналогичные уведомления, но передающий больше данных и основанный на режиме нескольких главных устройств I²C.

Поддерживать

Устройства SMBus поддерживаются FreeBSD , OpenBSD , NetBSD , DragonFly BSD , Linux , Windows 98 и новее, а также Windows CE .

Смотрите также

Рекомендации

  1. ^ «DURACELL И INTEL ОБЪЯВЛЯЮТ СПЕЦИФИКАЦИИ «УМНОЙ БАТАРЕИ» ДЛЯ ПОРТАТИВНЫХ КОМПЬЮТЕРОВ - Бесплатная онлайн-библиотека» . Thefreelibrary.com . Проверено 27 октября 2017 г.
  2. ^ «Спецификация шины управления системой (SMBus), версия 2.0» (PDF) .smbus.org
  3. ^ ab «Спецификация шины управления системой (SMBus), версия 3.0» (PDF) .smbus.org
  4. ^ ab «Спецификация шины I2C и руководство пользователя, версия 7» (PDF) .nxp.com
  5. ^ «ПРИМЕЧАНИЕ ПО ПРИМЕНЕНИЮ 476. Сравнение шины I²C с шиной SMBus» . Максим. 01.12.2000.090429 maxim-ic.com
  6. ^ «Проектирование с помощью SMBus 2.0» (PDF) . Sbs-forum.org . Проверено 27 октября 2017 г.
  7. ^ "Калькулятор CRC-8" . Smbus.org . Проверено 27 октября 2017 г.
  8. ^ «CRC-8 для SMBus» . Picbasic.co.uk . Проверено 27 октября 2017 г.

Внешние ссылки