SMBus: funcionamiento, diferencias y sus aplicaciones

Pruebe Nuestro Instrumento Para Eliminar Los Problemas





El SMBus fue lanzado en el año 1995 por Intel y está basado en el protocolo de bus serie I²C de Philips. Este bus transporta datos, CLK e instrucciones donde la frecuencia del reloj oscila entre 10 kHz y 100 kHz. La intención principal de SMBus es permitir un método económico y potente para controlar y obtener datos de dispositivos en una placa base. SMBus se usa normalmente en PC para control de temperatura, baterías inteligentes y otras comunicaciones de administración de sistemas de bajo ancho de banda.


Este bus identifica el enlace de comunicación entre un cargador, una batería inteligente y un microcontrolador que dialoga con el resto del sistema. Pero, SMBus también se usa para conectar diferentes dispositivos como sensores del sistema, dispositivos relacionados con la energía, dispositivos de comunicaciones, EEPROM de inventario, etc. Este artículo analiza una descripción general de un SMBus: trabajar con aplicaciones.



¿Qué es el protocolo SMBus?

El SMBus (Bus de gestión del sistema) es una interfaz de 2 hilos, que se utiliza con frecuencia entre varios dispositivos en una placa base para la comunicación de gestión del sistema de baja velocidad. Este tipo de autobús fue diseñado por el protocolo I2C cimientos. Entonces, tanto I2C como SMBus pueden tener algunas similitudes y también pueden interoperar en el bus similar.

Este bus funciona según los principios de operación de I2C que proporcionan un bus de control, especialmente para que el sistema permita mensajes hacia o desde los dispositivos en lugar de usar líneas de control separadas para reducir el número de pines y cables del sistema.



Un dispositivo con un SMBus puede proporcionar la información de fabricación, informa al sistema de su número de parte o modelo, reporta diferentes tipos de errores, permite controlar parámetros y revisar su posición.

Especificación SMBus

La especificación de SMBus simplemente se refiere a 3 tipos de dispositivos host, maestro y esclavo.

  • Un host es un maestro particular y proporciona la interfaz principal a la CPU del sistema.
  • Un dispositivo maestro que emite instrucciones, genera los relojes y finaliza la transferencia.
  • Un dispositivo esclavo recibe de lo contrario reacciona a un comando.

¿Cómo funciona SMBus?

Hay 3 tipos de dispositivos que se utilizan en la comunicación SMBus, como un host, un maestro y un dispositivo esclavo, que se muestran en el siguiente diagrama. En este bus, el dispositivo host es una interfaz de trabajo maestra específica para la CPU del sistema; sin embargo, no siempre es necesario. Algunos sistemas, como los sistemas simples de carga de baterías, pueden funcionar sin host.

Un dispositivo maestro inicia la comunicación, activa el CLK y detiene la transferencia. Se puede seleccionar un dispositivo para que sea simplemente un maestro o un maestro-esclavo, donde puede funcionar como un dispositivo maestro o como un dispositivo esclavo.

  Diagrama de bus SM
Diagrama de bus SM

En SMBus, también hay un maestro arriba, sin embargo, solo uno puede controlar el bus en un momento dado. Por ejemplo, cuando los dos dispositivos dominan el bus a la vez, entonces SMBus proporciona un mecanismo de arbitraje que simplemente depende de la conexión AND por cable de todas las interfaces del dispositivo SMBus al SMBus.

Los dispositivos esclavos responden a su dirección así como a los comandos y pueden transmitir y recibir datos desde y hacia un dispositivo maestro. Un dispositivo se puede seleccionar totalmente como esclavo; de lo contrario, se puede lograr que el esclavo funcione como maestro en ciertos ejemplos.

Similar al protocolo I2C, a cada esclavo en este bus simplemente se le asigna una dirección de esclavo de siete bits donde el bit de lectura o escritura se agrega a esta dirección para describir si el dispositivo está leyendo o escribiendo el mensaje que se transmite en el bus.

Los dispositivos son necesarios para reconocer su propia dirección, por lo tanto, una vez que un dispositivo identifica su dirección, reaccionará al comando.

Cuando la dirección esclava de este bus entra en conflicto, entonces es compatible con ARP o Protocolo de resolución de direcciones. Una vez que el host detecta dos dispositivos con una dirección de esclavo similar, el procedimiento del protocolo de resolución de direcciones asignará dinámicamente una nueva dirección única a los esclavos. El protocolo de resolución de direcciones permitirá que los dispositivos se utilicen inmediatamente sin necesidad de reiniciar el sistema.

Este bus utiliza 2 cables para la comunicación, como el cable SMBDAT y el cable SMBCLK, donde el cable SMBDAT se usa para transferir datos en serie y el cable SMBCLK funciona como el reloj en serie. En el SMBus anterior, el maestro simplemente controla el SMBCLK que oscila entre 10 y 100 kHz; sin embargo, cualquier línea puede controlar el SMBDAT.

Estos dos cables son bidireccionales, lo que brinda la opción de incluir una señal de alerta como SMBALERT que permite que los dispositivos soliciten la atención del host.

El paquete de datos de este bus contiene un bit de inicio, un bit ACK o NACK, 8 bits de datos y un bit de parada. La transferencia de datos de SMBus utiliza algunas de las funciones, de lo contrario, protocolos de diferentes SMBus al enviar mensajes como Enviar byte, Comando rápido, Leer palabra, Escribir byte, Leer byte, Escribir palabra, Procesar llamada, Bloquear escritura, Bloquear lectura, Leer proceso de llamada y Bloquear bloque de escritura.

Este bus también es compatible con PEC (verificación de errores de paquetes) para mejorar la confiabilidad de la comunicación. Esto se puede realizar incluyendo un código de error de paquete al final de cada mensaje.

Funciones

Funciones SMBus También se denominan protocolos. Por lo tanto, los principales protocolos de SMBus son Comando rápido, Byte de envío, Byte de recepción, Byte de escritura, Byte de lectura, Llamada de proceso, Llamada de proceso de lectura de bloque de escritura/lectura de bloque, Protocolo de notificación de host SMBus, Protocolo de escritura-32, Lectura-32 Protocolo, Protocolo de escritura 64 y Protocolo de lectura 64.

Formato de mensaje SMBUS

Después de la condición de INICIO, el maestro ubicará la dirección de 7 bits del dispositivo esclavo y debe direccionarse en el bus. Entonces, la longitud de la dirección es de 7 bits seguidos de 8 bits que indican la dirección de transferencia de datos (R/W); un UNO especifica una solicitud de LECTURA (datos) y un CERO especifica una ESCRITURA (transmisión).

  Formato de mensaje
Formato de mensaje

La transferencia de datos siempre finaliza con una condición de PARADA generada a través del maestro.

Cada byte incluye 8 bits y cada byte se transfiere en el SMBus y debe seguirse hasta un bit de reconocimiento. Los bytes se transmiten primero a través del MSB (bit más significativo).

Un dispositivo SMBus típico incluye un conjunto de comandos a través de los cuales los datos se pueden leer y escribir de forma sencilla. La longitud de todos estos comandos es de 1 byte, mientras que sus argumentos, así como los valores de retorno, pueden cambiar dentro de la longitud.

Permitir un comando no existe; de ​​lo contrario, no se admite, por lo que puede provocar una condición de error. De acuerdo con la especificación SMBus, el MSB se transfiere primero.

Primero, todos los comandos establecen una condición de inicio en el bus, luego comienzan la transmisión a través de la transmisión de datos o comandos, esperan una aceptación del dispositivo esclavo durante la transmisión de datos o comandos, luego establecen una condición de parada en el bus.

Condiciones de inicio y parada para el protocolo SMBus

La condición de INICIO Y PARADA de un mensaje se definirá mediante dos condiciones de bus únicas de mayor a menor y de menor a mayor.

  Condiciones de inicio y parada
Condiciones de inicio y parada

En una transición de línea SMBDAT de ALTO a BAJO, cuando SMBCLK es ALTO, indica una condición de INICIO de un mensaje.

En una transición de línea SMBDAT de BAJO a ALTO, cuando SMBCLK es ALTO, define una condición de DETENCIÓN de un mensaje. Entonces estas dos condiciones son generadas siempre por el maestro del bus. El autobús se ocupa después de la condición de INICIO. El autobús volverá a estar inactivo después de un cierto tiempo después de una condición de PARADA.

Requisitos de hardware SMBus

Los requisitos de hardware de SMBus para permitir una comunicación eficiente y fluida entre una PC y parte de su hardware más esencial son dos cables como SMBDAT y SMBCLK, PSU (unidad de fuente de alimentación), conjunto de circuitos integrados, controladores y sus ventiladores de refrigeración. . Básicamente, este controlador SMBus permite que una computadora maneje y ejecute comandos con éxito, como encender su fuente de alimentación y controlar sus ventiladores de refrigeración.

La transferencia de datos SMBus utiliza diferentes protocolos o funciones al transferir mensajes como Enviar byte, Comando rápido, Escribir byte, Leer byte, Escribir palabra, Leer palabra, Bloquear lectura, Procesar llamada, Bloquear escritura, etc. También es compatible con PEC o verificación de errores de paquetes para mejorando la confiabilidad de la comunicación simplemente incluyendo un código de error de paquete en cada extremo del mensaje.

El hardware SMBus simplemente proporciona control de tiempo y cambio utilizado para las transferencias en serie. Entonces, el hardware de SMBus realiza las diferentes tareas de aplicaciones independientes, como el control de tiempo, las transferencias de datos en serie y el reconocimiento de direcciones esclavas.

SMBus frente a I2C

los diferencia entre SMBus e I2C incluye lo siguiente.

SMBus

2C

El término SMBus significa 'Bus de gestión del sistema'. El término I2C significa 'Circuito Inter-Integrado'.
El SMBus es un bus de control de 2 hilos que se utiliza en tareas de gestión de sistemas y energía. I2C es un protocolo de comunicación integrado que se utiliza para ancho de banda bajo y distancias cortas.
Un sistema puede utilizar este bus para enrutar mensajes desde y hacia dispositivos en lugar de activar líneas de control individuales.

 

I2C se usa normalmente para conectar periféricos de baja velocidad como microcontroladores y sensores a procesadores a distancias cortas en un IC.
La velocidad máxima de CLK es de 100 kHz. La velocidad máxima de CLK es de 400 kHz.
La velocidad CLK mínima es de 10 kHz. Sin velocidad CLK mínima.
Tiempo de espera de CLK bajo de 35 ms. No hay tiempo de espera.
Tiene niveles lógicos fijos. Sus niveles lógicos dependen de VDD.
Tiene varios tipos de direcciones como reservadas, dinámicas, etc. Tiene diferentes tipos de direcciones como dirección de esclavo de llamada general, 7 bits y 10 bits.
Tiene varios protocolos de bus como llamadas de proceso, comandos rápidos, etc. No tiene protocolos de bus.

SMBus vs Pmbus

La diferencia entre SMBus y Pmbus incluye lo siguiente.

SMBus

Pmbus

El SMBus es un bus de un solo extremo de 2 hilos que se utiliza para comunicaciones ligeras. La extensión de SMBus es Pmbus y es un protocolo de bajo costo utilizado principalmente para la comunicación entre dispositivos de administración de energía.
El modo esclavo de este bus permite valores de tasas de datos como 10 kbps, 50 kbps, 100 kbps y 400 kbps. El modo esclavo de este bus simplemente permite valores de velocidad de datos como 100 kbps y 400 kbps.
Este tipo de bus funciona con hardware I2C, sin embargo, incluye software de segundo nivel al permitir que los dispositivos se intercambien en caliente sin reiniciar el sistema. Este bus expande SMBus simplemente definiendo un conjunto de comandos del dispositivo y está especialmente diseñado para manejar convertidores de potencia, exponiendo atributos del dispositivo como corriente medida, voltaje, temperatura, etc.
SMBus es un superconjunto de I2C PMBus es un superconjunto de SMBus
Este bus incluye las capas de red y enlace de datos. Este bus incluye la capa de transporte y un conjunto de comandos.

Diagrama de tiempo

los Diagrama de temporización de SMBus se muestra a continuación.

  Diagrama de tiempo de SMBus
Diagrama de tiempo de SMBus

El TLOW.SEXT es el dispositivo esclavo que extiende los ciclos CLK dentro de un solo mensaje desde START hasta STOP. Por lo tanto, es factible que el maestro u otro dispositivo esclavo también extiendan el ciclo CLK para hacer que el tiempo extendido bajo de CLK combinado sea mayor que TLOW.SEXT. Por lo tanto, este parámetro simplemente se mide a través del dispositivo esclavo como el objetivo único de un maestro de velocidad completa.

TLOW.MEXT es el dispositivo maestro que extiende los ciclos CLK en cada byte de un mensaje. Por lo tanto, es factible que otro dispositivo maestro o esclavo también extienda el CLK para hacer que el tiempo bajo del CLK combinado sea mayor en comparación con TLOW.MEXT en un byte específico. Por lo tanto, los parámetros simplemente se miden a través de un dispositivo esclavo de velocidad máxima como el objetivo único del maestro.

Aplicaciones

los aplicaciones de SMBus Incluya lo siguiente.

  • SMBus se utiliza como un chip de componente del sistema que se utiliza para comunicarse dentro de un sistema. Más particularmente, permite que las baterías se comuniquen con otros componentes del sistema, como los componentes relacionados con la alimentación y la CPU.
  • Esto se utiliza para la comunicación ligera.
  • Este bus se utiliza para monitorear parámetros críticos en sistemas embebidos y en placas base de PC.
  • Este es el tipo de comunicación más común para los medidores de combustible avanzados de Texas Instruments.
  • Esto se utiliza en una comunicación de administración de sistemas basada en menos ancho de banda.

Por lo tanto, todo esto se trata una visión general de un SMBus – trabajar con aplicaciones. Este es un bus de dos hilos simple y de un solo extremo que se utiliza para comunicaciones ligeras. Este bus se utiliza en las placas base de las computadoras para la comunicación con la fuente de alimentación para las instrucciones de ENCENDIDO o APAGADO. Aquí hay una pregunta para usted, ¿qué es el protocolo I2C?