El Bus de administración del sistema (abreviado como SMBus o SMB ) es un bus simple de dos hilos de un solo extremo con el propósito de una comunicación liviana. Por lo general, se encuentra en las placas base de las computadoras para comunicarse con la fuente de alimentación para obtener instrucciones de ENCENDIDO / APAGADO.
Se deriva de I²C para la comunicación con dispositivos de bajo ancho de banda en una placa base , especialmente chips relacionados con la energía, como el subsistema de batería recargable de una computadora portátil (consulte Sistema de batería inteligente ). Otros dispositivos pueden incluir sensores de temperatura, ventilador o voltaje, interruptores de tapa, generador de reloj e iluminación RGB. Las tarjetas complementarias PCI pueden conectarse a un segmento SMBus.
Un dispositivo puede proporcionar información del fabricante, indicar su modelo / número de pieza, guardar su estado para un evento de suspensión, informar diferentes tipos de errores, aceptar parámetros de control y devolver el estado. El SMBus generalmente no es configurable ni accesible por el usuario. Aunque los dispositivos SMBus normalmente no pueden identificar su funcionalidad, una nueva coalición PMBus ha ampliado SMBus para incluir convenciones que lo permitan.
El SMBus fue definida por Intel y Duracell en 1994. [1] Se lleva reloj, los datos y las instrucciones y se basa en Philips ' I²C protocolo de bus serial. Su rango de frecuencia de reloj es de 10 kHz a 100 kHz. (PMBus extiende esto a 400 kHz.) Sus niveles de voltaje y tiempos están definidos más estrictamente que los de I²C, pero los dispositivos que pertenecen a los dos sistemas a menudo se mezclan con éxito en el mismo bus. [ cita requerida ]
SMBus se utiliza como interconexión en varios estándares de gestión de plataformas, incluidos: ASF , DASH , IPMI .
SMBus se utiliza para acceder a la información de configuración de DRAM como parte de la detección de presencia en serie . SMBus se ha convertido en una amplia variedad de casos de uso de enumeración de sistemas distintos de la administración de energía.
Interoperabilidad SMBus / I²C
Si bien SMBus se deriva de I²C, existen varias diferencias importantes entre las especificaciones de los dos buses en las áreas de electricidad, temporización, protocolos y modos de funcionamiento. [2] [3] [4] [5]
Eléctrico
Voltaje de entrada ( V IL y V IH )
Al mezclar dispositivos, la especificación I²C define los niveles de entrada como 30% y 70% de la tensión de alimentación V DD , [4] : 9 que puede ser 5 V, 3,3 V o algún otro valor. En lugar de relacionar los niveles de entrada del bus con V DD , SMBus los define como fijos en 0.8 y 2.1 V. SMBus 2.0 admite V DD de 3 a 5 V. SMBus 3.0 admite V DD de 1.8 a 5 V.
Corriente del sumidero ( I OL )
SMBus 2.0 define una clase de 'alta potencia' que incluye una corriente de disipación de 4 mA que no puede ser impulsada por chips I²C a menos que la resistencia pull-up esté dimensionada para niveles de bus I²C.
Los dispositivos NXP tienen un conjunto de características eléctricas de mayor potencia que SMBus 1.0. La principal diferencia es la capacidad de disipación de corriente con V OL = 0,4 V.
- SMBus de baja potencia = 350 μA
- SMBus de alta potencia = 4 mA
- Bus I²C = 3 mA
Los dispositivos de 'alta potencia' SMBus y los dispositivos de bus I²C funcionarán juntos si la resistencia pull-up tiene un tamaño de 3 mA.
Frecuencia ( F MAX y F MIN )
El reloj SMBus se define entre 10 y 100 kHz, mientras que I²C puede ser de 0 a 100 kHz, 0 a 400 kHz, 0 a 1 MHz y 0 a 3,4 MHz, según el modo. Esto significa que un bus I²C que funcione a menos de 10 kHz no será compatible con SMBus ya que los dispositivos SMBus pueden agotar el tiempo de espera. Sin embargo, muchos dispositivos SMBus admitirán frecuencias más bajas.
SMBus 3.0 agrega velocidades de bus de 400 kHz y 1 MHz.
Momento
- SMBus define un tiempo de espera de reloj bajo, TIEMPO DE ESPERA de 35 ms. I²C no especifica ningún límite de tiempo de espera.
- SMBus especifica T LOW: SEXT como el tiempo de extensión bajo del reloj acumulativo para un dispositivo esclavo. I²C no tiene una especificación similar.
- SMBus especifica T LOW: MEXT como el tiempo de extensión bajo del reloj acumulativo para un dispositivo maestro. Una vez más, I²C no tiene una especificación similar.
- SMBus define el tiempo de subida y bajada de las señales de bus. I²C no lo hace.
- Las especificaciones de tiempo de espera de SMBus no excluyen que los dispositivos I²C cooperen de forma fiable en el SMBus. Es responsabilidad del diseñador asegurarse de que los dispositivos I²C no violen estos parámetros de temporización del bus.
Protocolos
Uso de ACK y NACK
Existen las siguientes diferencias en el uso de la señalización del bus NACK: En I²C, un receptor esclavo puede no reconocer la dirección esclava si, por ejemplo, no puede recibir porque está realizando alguna tarea en tiempo real. SMBus requiere que los dispositivos reconozcan su propia dirección siempre, como un mecanismo para detectar la presencia de un dispositivo extraíble en el bus (batería, estación de acoplamiento, etc.)
I²C especifica que un dispositivo esclavo, aunque puede reconocer su propia dirección, puede decidir, algún tiempo después en la transferencia, que no puede recibir más bytes de datos. I²C especifica que el dispositivo puede indicar esto generando el no reconocimiento en el primer byte siguiente.
Además de indicar la condición de dispositivo ocupado de un esclavo, SMBus también utiliza el mecanismo NACK para indicar la recepción de un comando o dato no válido. Dado que tal condición puede ocurrir en el último byte de la transferencia, se requiere que los dispositivos SMBus tengan la capacidad de generar el no reconocimiento después de la transferencia de cada byte y antes de la finalización de la transacción. Esto es importante porque SMBus no proporciona ninguna otra señalización de reenvío. Esta diferencia en el uso de la señalización NACK tiene implicaciones en la implementación específica del puerto SMBus, especialmente en dispositivos que manejan datos críticos del sistema como el host SMBus y los componentes SBS.
Protocolos SMBus
Cada transacción de mensaje en SMBus sigue el formato de uno de los protocolos SMBus definidos. Los protocolos SMBus son un subconjunto de los formatos de transferencia de datos definidos en las especificaciones I²C. Los dispositivos I²C a los que se puede acceder a través de uno de los protocolos SMBus son compatibles con las especificaciones SMBus. No se puede acceder a los dispositivos I²C que no se adhieren a estos protocolos mediante métodos estándar como se define en las especificaciones de SMBus y Configuración avanzada e interfaz de energía (ACPI).
protocolo de resolucion de DIRECCION
El SMBus usa hardware I²C y direccionamiento de hardware I²C, pero agrega software de segundo nivel para construir sistemas especiales. En particular, sus especificaciones incluyen un Protocolo de resolución de direcciones que puede realizar asignaciones de direcciones dinámicas. La reconfiguración dinámica del hardware y el software permite que los dispositivos de bus se 'conecten en caliente' y se utilicen de inmediato, sin reiniciar el sistema. Los dispositivos se reconocen automáticamente y se les asignan direcciones únicas. Esta ventaja da como resultado una interfaz de usuario plug-and-play. En ambos protocolos se hace una distinción muy útil entre un host del sistema y todos los demás dispositivos del sistema que pueden tener los nombres y funciones de maestros o esclavos.
Característica de tiempo de espera
SMBus tiene una función de tiempo de espera que restablece los dispositivos si la comunicación tarda demasiado. Esto explica la frecuencia mínima de reloj de 10 kHz para evitar bloquear el bus. I²C puede ser un bus 'DC', lo que significa que un dispositivo esclavo estira el reloj maestro cuando realiza alguna rutina mientras el maestro accede a él. Esto notificará al maestro que el esclavo está ocupado pero no quiere perder la comunicación. El dispositivo esclavo permitirá la continuación después de que se complete su tarea. No hay límite en el protocolo de bus I²C en cuanto a la duración de este retardo, mientras que para un sistema SMBus, estaría limitado a 35 ms. El protocolo SMBus simplemente asume que si algo tarda demasiado, significa que hay un problema en el bus y que todos los dispositivos deben reiniciarse para borrar este modo. Los dispositivos esclavos no pueden mantener el reloj BAJO demasiado tiempo.
Comprobación de error de paquete
SMBus 1.1 y posteriores definen la verificación de errores de paquetes ( PEC ) opcional . En ese modo, se agrega un byte PEC (código de error de paquete) al final de cada transacción. El byte se calcula como suma de comprobación CRC-8 , calculada sobre todo el mensaje, incluida la dirección y el bit de lectura / escritura. El polinomio utilizado es x 8 + x 2 + x + 1 (el algoritmo CRC-8- ATM HEC , inicializado a cero). [6] [7] [8]
SMBALERT #
El SMBus tiene una señal de interrupción compartida adicional opcional llamada SMBALERT #, que los esclavos pueden usar para decirle al host que pregunte a sus esclavos sobre eventos de interés. SMBus también define un "Protocolo de notificación de host" menos común, que proporciona notificaciones similares pero transfiere más datos y se basa en el modo multimaestro I²C.
Apoyo
Los dispositivos SMBus son compatibles con FreeBSD , OpenBSD , NetBSD , DragonFly BSD , Linux , Windows 2000 y posteriores y Windows CE .
Ver también
- Lista de buses de la red
- Controlador integrado (EC)
- Super E / S
- Interfaz de gestión de plataforma inteligente (IPMI)
- Gallineta nórdica (especificación)
- Número de pines bajo (LPC)
- Interfaz de periféricos en serie (SPI)
- Interfaz de control del entorno de la plataforma (PECI)
- Interfaz de controlador integrado de host (HECI)
- Bus de administración de energía (PMBus)
- Controlador de gestión del sistema (SMC)
- PCI-Express
- Interfaz avanzada de configuración y energía (ACPI)
Referencias
- ^ "DURACELL E INTEL ANUNCIAN LAS ESPECIFICACIONES DE 'BATERÍA INTELIGENTE' PARA COMPUTADORAS PORTÁTILES - Biblioteca en línea gratuita" . Thefreelibrary.com . Consultado el 27 de octubre de 2017 .
- ^ "Especificación de System Management Bus (SMBus) versión 2.0" (PDF) . smbus.org
- ^ "Especificación de System Management Bus (SMBus) versión 3.0" (PDF) . smbus.org
- ^ a b "Especificaciones del bus I2C y manual de usuario Rev. 6" (PDF) . nxp.com
- ^ "NOTA DE APLICACIÓN 476 Comparación del bus I²C con el SMBus" . Máxima. 2000-12-01. 090429 maxim-ic.com
- ^ "Diseñar con SMBus 2.0" (PDF) . Sbs-forum.org . Consultado el 27 de octubre de 2017 .
- ^ "Calculadora CRC-8" . Smbus.org . Consultado el 27 de octubre de 2017 .
- ^ "CRC-8 para SMBus" . Picbasic.co.uk . Consultado el 27 de octubre de 2017 .
enlaces externos
- Página web oficial
- Especificaciones oficiales de SMBus (gratis)
- Foro de SBS
- SMBus en tech-faq.com
Este artículo se basa en material extraído del Diccionario gratuito de informática en línea antes del 1 de noviembre de 2008 e incorporado bajo los términos de "renovación de licencias" de la GFDL , versión 1.3 o posterior.