SMBus : Fonctionnement, Différences & Ses Applications

Essayez Notre Instrument Pour Éliminer Les Problèmes





Le SMBus a été lancé en 1995 par Intel et il est basé sur le protocole de bus série I²C de Philips. Ce bus transporte des données, CLK et des instructions où la fréquence d'horloge varie de 10 kHz à 100 kHz. L'intention principale de SMBus est de permettre une méthode peu coûteuse et puissante pour contrôler et obtenir des données à partir d'appareils sur une carte mère. SMBus est normalement utilisé dans les PC pour le contrôle de la température, les batteries intelligentes et d'autres communications de gestion de système à faible bande passante.


Ce bus identifie le lien de communication entre un chargeur, une batterie intelligente et un microcontrôleur qui dialogue avec le reste du système. Mais, SMBus est également utilisé pour connecter différents appareils tels que des capteurs système, des appareils liés à l'alimentation, des appareils de communication, des EEPROM d'inventaire, etc. Cet article présente un aperçu d'un SMBus - fonctionnant avec des applications.



Qu'est-ce que le protocole SMBus ?

Le SMBus (System Management Bus) est une interface à 2 fils, fréquemment utilisée entre divers périphériques sur une carte mère pour la communication de gestion du système à faible vitesse. Ce type de bus a été conçu par le Protocole I2C fondations. Ainsi, I2C et SMBus peuvent avoir des similitudes et ils peuvent également interagir sur le même bus.

Ce bus fonctionne selon les principes de fonctionnement I2C qui fournissent un bus de contrôle, en particulier pour que le système autorise les messages vers ou depuis les appareils plutôt que d'utiliser des lignes de contrôle séparées pour réduire les fils du système et le nombre de broches.



Un appareil avec un SMBus peut fournir les informations de fabrication, informer le système de son numéro de pièce ou de modèle, signaler différents types d'erreurs, autoriser les paramètres de contrôle et revoir sa position.

Spécification SMBus

La spécification de SMBus fait simplement référence à 3 types d'appareils hôtes, maîtres et esclaves.

  • Un hôte est un maître particulier et il fournit l'interface principale au CPU du système.
  • Un dispositif maître qui émet des instructions, génère les horloges et termine le transfert.
  • Un appareil esclave reçoit sinon réagit à une commande.

Comment fonctionne SMBus ?

Il existe 3 types de périphériques utilisés dans la communication SMBus comme un hôte, un maître et un périphérique esclave qui sont illustrés dans le schéma suivant. Dans ce bus, le dispositif hôte est une interface maître spécifique de type travail vers le CPU du système ; cependant, ce n'est pas toujours nécessaire. Certains systèmes, tels que les systèmes de charge de batterie simples, peuvent être dépourvus d'hôte.

Un dispositif maître commence la communication, pilote le CLK et arrête le transfert. Un appareil peut être sélectionné pour être simplement un maître ou un maître-esclave, où il peut fonctionner soit comme un appareil maître, soit comme un appareil esclave.

  Schéma SMBus
Schéma SMBus

Sur SMBus, il y a également au-dessus d'un maître, mais un seul peut maîtriser le bus à un moment donné. Par exemple, lorsque les deux appareils maîtrisent le bus à la fois, alors SMBus fournit un mécanisme d'arbitrage qui dépend simplement de la connexion câblée ET de toutes les interfaces de l'appareil SMBus au SMBus.

Les appareils esclaves répondent à son adresse ainsi qu'aux commandes et ils peuvent transmettre et recevoir des données depuis et vers un appareil maître. Un appareil peut être sélectionné totalement en tant qu'esclave, sinon il est possible que l'esclave fonctionne comme un maître dans certains exemples.

Semblable au protocole I2C, chaque esclave sur ce bus se voit simplement attribuer une adresse d'esclave à sept bits où le bit de lecture ou d'écriture est ajouté à cette adresse pour décrire si l'appareil lit ou écrit le message transmis sur le bus.

Les appareils sont nécessaires pour reconnaître leur propre adresse, donc une fois qu'un appareil identifie son adresse, il réagira à la commande.

Lorsque l'adresse esclave de ce bus est en conflit, il prend en charge l'ARP ou le protocole de résolution d'adresse. Une fois que l'hôte remarque deux appareils avec une adresse d'esclave similaire, la procédure du protocole de résolution d'adresse attribue dynamiquement une nouvelle adresse unique aux esclaves. Le protocole de résolution d'adresse permettra aux appareils d'être utilisés immédiatement sans qu'il soit nécessaire de redémarrer le système.

Ce bus utilise 2 fils pour la communication comme le fil SMBDAT et le fil SMBCLK où le fil SMBDAT est utilisé pour transférer des données série et le fil SMBCLK fonctionne comme l'horloge série. Dans le SMBus ci-dessus, le maître pilote simplement le SMBCLK qui va de 10 à 100 kHz, cependant, n'importe quelle ligne peut piloter le SMBDAT.

Ces deux fils sont bidirectionnels, ce qui offre la possibilité d'inclure un signal d'alerte tel que SMBALERT qui permet aux appareils de demander l'attention de l'hôte.

Le paquet de données de ce bus contient un bit Start, un bit ACK ou NACK, 8 bits de données et un bit Stop. Le transfert de données de SMBus utilise certaines des fonctions autrement des protocoles de différents SMBus lors de l'envoi de messages tels que Send Byte, Quick Command, Read Word, Write Byte, Read Byte, Write Word, Process Call, Block Write, Block Read, Read Process Call & Bloc d'écriture-bloc.

Ce bus prend également en charge PEC (vérification des erreurs de paquets) pour améliorer la fiabilité des communications. Cela peut donc être effectué en incluant un code d'erreur de paquet à la fin de chaque message.

Les fonctions

Fonctions SMBus sont aussi appelés protocoles. Ainsi, les principaux protocoles de SMBus sont Quick Command, Send Byte, Receive Byte, Write Byte, Read Byte, Process Call, Block Write/Read Block Write-Block Read Process Call, SMBus Host Notify Protocol, Write-32 Protocol, Read-32 Protocole, Écrire 64-Protocole & Lire 64 Protocole.

Format des messages SMBUS

Après la condition de START, le maître localisera l'adresse 7 bits de l'appareil esclave et il doit s'adresser sur le bus. Ainsi, la longueur de l'adresse est de 7 bits suivis d'un 8 bits signifiant le sens de transfert des données (R/W); un ONE spécifie une demande de READ (données) et un ZERO spécifie une WRITE (transmission).

  Format des messages
Format des messages

Le transfert de données se termine toujours par une condition STOP générée par le maître.

Chaque octet comprend 8 bits et chaque octet est transféré sur le SMBus et doit être suivi d'un bit d'accusé de réception. Les octets sont d'abord transmis via le MSB (bit le plus significatif).

Un appareil SMBus typique comprend un ensemble de commandes grâce auxquelles les données peuvent être simplement lues et écrites. La longueur de toutes ces commandes est de 1 octet alors que leurs arguments, ainsi que les valeurs de retour, peuvent changer dans la longueur.

Autoriser une commande n'existe pas sinon elle n'est pas prise en charge, cela peut donc provoquer une condition d'erreur. Conformément à la spécification SMBus, le MSB est d'abord transféré.

Tout d'abord, toutes les commandes définissent une condition de démarrage sur le bus, puis démarrent la transmission en transmettant les données ou la commande, attendent une acceptation du dispositif esclave tout au long de la transmission des données ou de la commande, puis définissent une condition d'arrêt sur le bus.

Conditions de démarrage et d'arrêt du protocole SMBus

La condition START & STOP d'un message sera définie par deux conditions de bus uniques haut vers bas et bas vers haut.

  Conditions de démarrage et d'arrêt
Conditions de démarrage et d'arrêt

Dans une transition de ligne SMBDAT HIGH à LOW, lorsque le SMBCLK est HIGH, il indique une condition START d'un message.

Dans une transition de ligne SMBDAT BAS à HAUT, lorsque SMBCLK est HAUT alors il définit une condition STOP d'un message. Donc ces deux conditions sont toujours générées par le maître du bus. Le bus devient occupé après la condition d'un START. Le bus redeviendra inactif après un certain temps après une condition STOP.

Configuration matérielle requise pour SMBus

Les exigences matérielles de SMBus pour permettre une communication efficace et transparente entre un PC et certains de ses matériels les plus essentiels, sont deux fils comme SMBDAT & SMBCLK, PSU (unité d'alimentation), un ensemble de circuits intégrés, des pilotes et ses ventilateurs de refroidissement . Fondamentalement, ce contrôleur SMBus permet à un ordinateur de gérer et d'exécuter des commandes avec succès, telles que la mise sous tension de son bloc d'alimentation et le contrôle de ses ventilateurs de refroidissement.

Le transfert de données SMBus utilise différents protocoles ou fonctions lors du transfert de messages tels que Send Byte, Quick Command, Write Byte, Read Byte, Write Word, Read Word, Block Read, Process Call, Block Write, etc. améliorer la fiabilité des communications en incluant simplement un code d'erreur de paquet à chaque fin de message.

Le matériel SMBus fournit simplement le contrôle de synchronisation et de décalage utilisé pour les transferts en série. Ainsi, le matériel de SMBus exécute les différentes tâches d'application indépendantes telles que le contrôle de la synchronisation, les transferts de données série et la reconnaissance des adresses esclaves.

SMBus contre I2C

La différence entre SMBus et I2C comprend ce qui suit.

SMBus

2C

Le terme SMBus signifie « System Management Bus ». Le terme I2C signifie 'Inter-Integrated Circuit'.
Le SMBus est un bus de commande à 2 fils utilisé dans les tâches de gestion de l'énergie et du système. I2C est un protocole de communication embarqué utilisé pour les faibles bandes passantes et les courtes distances.
Un système peut utiliser ce bus pour acheminer les messages depuis et vers les appareils plutôt que d'activer des lignes de contrôle individuelles.

I2C est normalement utilisé pour connecter des périphériques à faible vitesse tels que des microcontrôleurs et des capteurs à des processeurs au-dessus de courtes distances dans un circuit intégré.
La vitesse CLK maximale est de 100 kHz. La vitesse CLK maximale est de 400 kHz.
La vitesse CLK minimale est de 10 kHz. Pas de vitesse CLK minimale.
Délai d'attente CLK faible de 35 ms. Il n'y a pas de délai d'attente.
Il a des niveaux logiques fixes. Ses niveaux logiques dépendent de VDD.
Il a différents types d'adresses comme réservées, dynamiques, etc. Il a différents types d'adresses comme l'adresse esclave d'appel général, 7 bits et 10 bits.
Il a divers protocoles de bus comme les appels de processus, les commandes rapides, etc. Il n'a pas de protocoles de bus.

SMBus contre Pmbus

La différence entre SMBus et Pmbus comprend les éléments suivants.

SMBus

Pmbus

Le SMBus est un bus asymétrique à 2 fils utilisé pour les communications légères. L'extension de SMBus est Pmbus et c'est un protocole peu coûteux principalement utilisé pour la communication entre les dispositifs de gestion de l'alimentation.
Le mode esclave de ce bus permet des valeurs de débit de données telles que 10 kbps, 50 kbps, 100 kbps et 400 kbps. Le mode esclave de ce bus permet simplement des valeurs de débit de données telles que 100 kbps et 400 kbps.
Ce type de bus fonctionne avec le matériel I2C, mais il inclut un logiciel de second niveau en permettant aux périphériques d'être remplacés à chaud sans redémarrer le système. Ce bus étend SMBus en définissant simplement un ensemble de commandes de l'appareil et il est particulièrement conçu pour gérer les convertisseurs de puissance, exposant les attributs de l'appareil comme le courant mesuré, la tension, la température, etc.
SMBus est un sur-ensemble d'I2C PMBus est un sur-ensemble de SMBus
Ce bus comprend à la fois les couches réseau et liaison de données. Ce bus comprend la couche Transport et un ensemble de commandes.

Chronogramme

La Chronogramme SMBus est illustré ci-dessous.

  Chronogramme du SMBus
Chronogramme du SMBus

Le TLOW.SEXT est le dispositif esclave qui prolonge les cycles CLK dans un seul message de START à STOP. Il est donc possible que le maître ou un autre dispositif esclave étende également le cycle CLK pour que le temps prolongé bas de CLK combiné soit supérieur à TLOW.SEXT. Ainsi, ce paramètre est simplement mesuré à travers le dispositif esclave comme la cible unique d'un maître à pleine vitesse.

TLOW.MEXT est le périphérique maître qui étend les cycles CLK dans chaque octet d'un message. Il est donc possible qu'un autre maître ou un dispositif esclave étende également le CLK pour que le temps bas du CLK combiné soit supérieur par rapport à TLOW.MEXT sur un octet spécifié. Ainsi, les paramètres sont simplement mesurés via un dispositif esclave à pleine vitesse comme la cible unique du maître.

Applications

La applications de SMBus inclure les éléments suivants.

  • SMBus est utilisé comme une puce de composant système utilisée pour communiquer au sein d'un système. Plus particulièrement, il permet aux batteries de communiquer avec d'autres composants du système comme les composants liés à l'alimentation et le CPU.
  • Ceci est utilisé pour la communication légère.
  • Ce bus est utilisé pour surveiller les paramètres critiques dans systèmes embarqués & sur les cartes mères de PC.
  • Il s'agit du type de communication le plus courant pour les jauges de carburant avancées de Texas Instruments.
  • Ceci est utilisé dans une communication de gestion de système moins basée sur la bande passante.

Ainsi, il s'agit de un aperçu d'un SMBus – travailler avec des applications. Il s'agit d'un bus bifilaire simple et asymétrique utilisé pour les communications légères. Ce bus est utilisé dans les cartes mères des ordinateurs pour communiquer avec la source d'alimentation pour les instructions ON ou OFF. Voici une question pour vous, qu'est-ce que le protocole I2C ?