La especificación SMB

(System Management Bus)

En muchos tipos de dispositivos que funcionan con baterías es imprescindible contar con un mecanismo que informe al usuario acerca de la carga eléctrica que resta a las mismas. La especificación SMB cubre todas estas necesidades.

Cuando un usuario de informática personal está sopesando la adquisición de un ordenador portátil, a parte de otras características, debe evaluar la autonomía que le proporcionará el equipo, es decir, el tiempo que es posible trabajar con el sistema sin necesidad de conectarlo a la red eléctrica convencional para recargar las baterías que dan vida al ordenador.

En este punto, el potencial comprador debe tener sumo cuidado, ya que, de forma general, el tiempo de duración de las baterías depende mucho del uso que se haga del equipo y de los modos de ahorro de energía que se encuentren activados.

A medida que han ido evolucionando los diseños de dispositivos electrónicos portátiles, no sólo ordenadores, se ha hecho imprescindible contar con un sistema que pueda informar al usuario, de una forma lo más precisa posible, acerca del estado actual de la carga de las baterías que hacen que el equipo funcione de forma autónoma de la red eléctrica convencional.

Si bien los fabricantes de componentes electrónicos cuentan en sus catálogos con versiones de sus productos específicas para su integración en dispositivos móviles, hasta hace relativamente poco tiempo no existía una especificación mediante la cual se pudiese informar al usuario de forma precisa sobre el estado de las baterías. La especificación SMB que vamos a analizar brevemente en este artículo cubre esta necesidad.

El bus SMB

La especificación SMB se basa en un bus formado por dos líneas a través de las cuales pueden comunicarse diversos tipos de dispositivos relacionados con la gestión de la energía. Como base para esta interfaz se utiliza el bus I2C.

El bus SMB se basa en que los dispositivos, a través de la interfaz anteriormente mencionada, envían y reciben mensajes del resto de componentes del sistema. De esta forma, un dispositivo puede, por ejemplo, proporcionar información acerca del fabricante, indicar al resto del sistema el modelo de un determinado componente, almacenar su estado al producirse un suceso que deje suspendido el sistema, indicar distintos tipos de errores, recibir parámetros de control y devolver su estado.

El bus SMB puede compartir dispositivo host y el mismo bus físico que los componentes ACCESS.bus, con el único requerimiento de que se proporcione un puente eléctrico entre los dispositivos de tipo SMB y el bus ACCESS.bus.

Dentro del bus SMB pueden existir tres tipos de dispositivos distintos:

- Un dispositivo esclavo, o slave, el cual está recibiendo o respondiendo a un determinado comando.

- Un dispositivo maestro, o master, el cual está enviando comandos, generando señales de reloj o finalizando una transferencia de datos.

- Un dispositivo host, el que es una clase especial de dispositivo maestro que proporciona la interfaz entre el bus SMB y el microprocesador principal del sistema.

Es posible diseñar un dispositivo SMB de forma que siempre actúe como un esclavo. También es posible que un dispositivo actúe durante la mayor parte del tiempo como un esclavo, pero que bajo determinadas circunstancias se convierta en un dispositivo maestro. En el caso del host, este dispositivo actúa casi continuamente como un maestro, perLa especificación SMB

(System Management Bus)o en determinados momentos puede trabajar como un dispositivo esclavo.

Cada dispositivo que utiliza el bus SMB tiene una dirección única, denominada dirección de esclavo, o Slave Address. Incluso los dispositivos maestros o el propio host tienen una dirección de este tipo para aquellas situaciones en las que otros dispositivos desean comunicarse con ellos. En la siguiente tabla se muestran las direcciones que están reservadas por la especificación SMB y que, por lo tanto, no pueden ser utilizadas por los dispositivos que a él se conectan.

Dirección Bit Lectura Descripción

esclavo /Escritura Bit 0

(bits 7-1)

----------------------------------------------------------------------------

0000 000 0 Dirección llamada

0000 000 1 Byte START

0000 001 X Reservado

000 011 X Reservado para uso futuro

0000 1XX X Reservado para uso futuro

1111 0XX X Direccionamiento 10 bits esclavo

1111 1XX X Reservado para uso futuro

Utilización de un dispositivo SMB

Un dispositivo SMB poseerá una serie de comandos mediante los cuales es posible leer o escribir datos. Todos los comandos tienen una longitud de ocho bits, es decir, un byte. La longitud de los argumentos de estos comandos y de los valores devueltos puede ser variable. Cuando se envía un comando que no existe o que no está soportado por un determinado dispositivo se genera una condición de error. De acuerdo con la especificación I2C el bit que primero se envía a través del bus SMB es el bit más significativo.

Cualquier dispositivo puede utilizar uno de los ocho protocolos de comandos soportados. Un dispositivo esclavo puede utilizar cualquiera de estos ocho protocolos, y el host debe ser capaz de soportar todos ellos. A continuación se enumeran estos protocolos:

- Protocolo Quick Command. Mediante este protocolo parte de la dirección del dispositivo esclavo indica el comando a ejecutar. Está pensado para dispositivos muy sencillos que tienen un soporte limitado de la especificación del bus SMB. En la Figura 1 se puede observar este protocolo.

- Protocolo Send Byte. Un dispositivo sencillo pueden reconocer su dirección de esclavo y aceptar un comando de entre 256 posibles combinaciones. El comando se envía inmediatamente después de la dirección del dispositivo esclavo. En la Figura 2 se muestra este protocolo.

- Protocolo Receive Byte. Este protocolo es prácticamente idéntico al protocolo Send Byte comentado anteriormente. La única diferencia es la dirección de la transferencia de datos. Este protocolo puede utilizarse, por ejemplo, para enviar al host información que éste necesite. En la Figura 3 se puede observar este protocolo.

- Protocolo Write Byte/Word. El primer byte de este protocolo es el código del comando a ejecutar. El siguiente, o los dos siguientes bytes en el caso de una palabra, son los datos que deben ser escritos. En los ejemplos que se muestran en la Figura 4, el dispositivo maestro envía la dirección del dispositivo esclavo, éste envía una señal de reconocimiento y el dispositivo maestro envía el código del comando. De nuevo el esclavo, envía una señal de reconocimiento y el maestro manda el o los bytes de datos. Reseñar que los bytes de datos se envían en formato Intel, es decir, mandando primero el byte menos significativo.

- Protocolo Read Byte/Word. Para leer datos desde un dispositivo esclavo, el host tiene que enviar primero un comando a dicho dispositivo. A continuación, dicho comando debe ir seguido por una condición de inicio continuada para indicar que se desea efectuar una lectura desde la dirección del dispositivo esclavo. Acto seguido el dispositivo esclavo devuelve al host uno o dos bytes de datos.

- Protocolo Process Call. Este protocolo se denomina así ya que es similar a una llamada a un procedimiento efectuada con un lenguaje de programación. El host envía a un dispositivo esclavo un comando junto con una serie de datos adicionales, esperando que el esclavo devuelva un valor dependiente de los valores enviados.

- Protocolo Block Read/Write. Este protocolo se inicia con la dirección de un dispositivo esclavo y una condición de escritura. Después del código del comando el host envía un byte que indica el número de bytes que siguen a continuación. Este tipo de protocolo permite transfe

Revista Digital

Revistas Digitales

DealerWorld Digital

 



Otros Contenidos

Registro:

Eventos: