Bus Management System (сокращенно SMBus или SMB ) является несимметричной простой двухпроводной шиной с целью легкого общения. Чаще всего он встречается в материнских платах компьютеров для связи с источником питания для инструкций ВКЛ / ВЫКЛ.
Он основан на I²C для связи с устройствами с низкой пропускной способностью на материнской плате, особенно с микросхемами, связанными с питанием, такими как подсистема перезаряжаемых аккумуляторов портативного компьютера (см. Smart Battery System ). Другие устройства могут включать в себя датчики температуры, вентилятора или напряжения, переключатели крышки, тактовый генератор и RGB-освещение. Карты расширения PCI могут подключаться к сегменту SMBus.
Устройство может предоставлять информацию производителя, указывать свою модель / номер детали, сохранять свое состояние для события приостановки, сообщать о различных типах ошибок, принимать параметры управления и возвращать статус. SMBus обычно не настраивается или недоступен пользователем. Хотя устройства SMBus обычно не могут идентифицировать свою функциональность, новая коалиция PMBus расширила SMBus, включив в нее соглашения, позволяющие это.
SMBus была определена Intel и Duracell в 1994 году проводит часы, данные и инструкции и основан на Philips ' I²C протокол последовательной шины. Диапазон его тактовой частоты составляет от 10 кГц до 100 кГц. (PMBus расширяет это значение до 400 кГц.) Его уровни напряжения и тайминги определены более строго, чем у I²C, но устройства, принадлежащие двум системам, часто успешно смешиваются на одной шине.
SMBus используется в качестве межсоединения в нескольких стандартах управления платформами, включая ASF, DASH, IPMI.
SMBus используется для доступа к информации о конфигурации DRAM как часть обнаружения последовательного присутствия. SMBus превратился в широкий спектр вариантов использования системного перечисления, помимо управления питанием.
Хотя SMBus является производным от I²C, есть несколько основных различий между спецификациями этих двух шин в области электричества, синхронизации, протоколов и режимов работы.
При смешивании устройств спецификация I²C определяет входные уровни от 30% до 70% от напряжения питания V DD, которое может составлять 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 В.
SMBus 2.0 определяет класс «высокой мощности», который включает в себя потребляемый ток 4 мА, который не может управляться микросхемами I²C, если только подтягивающий резистор не рассчитан на уровни шины I²C.
Устройства NXP имеют более высокий набор электрических характеристик мощности, чем SMBus 1.0. Основное отличие заключается в способности потребителя тока при V OL = 0,4 В.
«Мощные» устройства SMBus и устройства I²C-bus будут работать вместе, если нагрузочный резистор рассчитан на 3 мА.
Тактовая частота 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 МГц.
Существуют следующие различия в использовании сигнализации шины NACK: В I²C подчиненному приемнику разрешено не подтверждать адрес подчиненного устройства, если, например, он не может принимать, потому что он выполняет некоторую задачу в реальном времени. SMBus требует, чтобы устройства всегда подтверждали свой собственный адрес, как механизм для обнаружения съемного устройства на шине (аккумулятор, док-станция и т. Д.)
I²C указывает, что ведомое устройство, хотя оно может подтверждать свой собственный адрес, может решить через некоторое время в процессе передачи, что оно не может принимать больше байтов данных. I²C указывает, что устройство может указать это, генерируя неподтверждение в первом последующем байте.
Помимо индикации состояния занятости подчиненного устройства, SMBus также использует механизм NACK для индикации приема недопустимой команды или данных. Поскольку такое условие может возникнуть в последнем байте передачи, требуется, чтобы устройства SMBus имели возможность генерировать неподтверждение после передачи каждого байта и до завершения транзакции. Это важно, потому что SMBus не предоставляет никаких других сигналов повторной отправки. Это различие в использовании сигнализации NACK имеет значение для конкретной реализации порта SMBus, особенно в устройствах, которые обрабатывают критически важные системные данные, такие как хост SMBus и компоненты SBS.
Каждая транзакция сообщения на SMBus следует формату одного из определенных протоколов SMBus. Протоколы SMBus - это подмножество форматов передачи данных, определенных в спецификациях I²C. Устройства I²C, к которым можно получить доступ через один из протоколов SMBus, совместимы со спецификациями SMBus. К устройствам I²C, не поддерживающим эти протоколы, нельзя получить доступ стандартными методами, как определено в спецификациях SMBus и Advanced Configuration and Power Interface (ACPI).
SMBus использует аппаратную адресацию I²C и аппаратную адресацию I²C, но добавляет программное обеспечение второго уровня для построения специальных систем. В частности, его спецификации включают протокол разрешения адресов, который может выполнять динамическое распределение адресов. Динамическая реконфигурация аппаратного и программного обеспечения позволяет подключать устройства шины «в горячем режиме» и использовать их немедленно, без перезапуска системы. Устройства распознаются автоматически, и им присваиваются уникальные адреса. Это преимущество приводит к созданию пользовательского интерфейса plug-and-play. В обоих этих протоколах есть очень полезное различие между системным хостом и всеми другими устройствами в системе, которые могут иметь имена и функции ведущих или ведомых устройств.
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, инициализированный нулем).
SMBus имеет дополнительный необязательный общий сигнал прерывания, называемый SMBALERT #, который может использоваться ведомыми устройствами, чтобы сообщить хосту, чтобы он запрашивал его ведомые устройства об интересующих событиях. SMBus также определяет менее распространенный «протокол уведомления хоста», предоставляющий аналогичные уведомления, но с передачей большего количества данных и основанный на режиме с несколькими мастерами I²C.
Устройства SMBus поддерживаются FreeBSD, OpenBSD, NetBSD, DragonFly BSD, Linux, Windows 2000 и новее и Windows CE.
Эта статья основана на материалах, взятых из Free On-line Dictionary of Computing до 1 ноября 2008 г. и включенных в соответствии с условиями «перелицензирования» GFDL версии 1.3 или новее.