SMBus: Trabalho, Diferenças e Suas Aplicações

Experimente Nosso Instrumento Para Eliminar Problemas





O SMBus foi lançado no ano de 1995 pela Intel e é baseado no protocolo de barramento serial I²C da Philips. Este barramento transporta dados, CLK e instruções onde a frequência de clock varia de 10 kHz a 100 kHz. A principal intenção do SMBus é permitir um método barato e poderoso para controlar e obter dados de dispositivos em uma placa-mãe. O SMBus é normalmente usado em PCs para controle de temperatura, baterias inteligentes e outras comunicações de gerenciamento de sistema de baixa largura de banda.


Este barramento identifica o link de comunicação entre um carregador, uma bateria inteligente e um microcontrolador que conversa com o resto do sistema. Mas, SMBus também é usado para conectar diferentes dispositivos como sensores de sistema, dispositivos relacionados à energia, dispositivos de comunicação, inventário EEPROMs, etc. Este artigo discute uma visão geral de um SMBus – trabalhando com aplicativos.



O que é o protocolo SMBus?

O SMBus (System Management Bus) é uma interface de 2 fios, frequentemente usada entre vários dispositivos em uma placa-mãe para comunicação de gerenciamento de sistema de baixa velocidade. Esse tipo de ônibus foi projetado pelo protocolo I2C fundações. Portanto, tanto o I2C quanto o SMBus podem ter algumas semelhanças e também podem operar em um barramento semelhante.

Este barramento funciona de acordo com os princípios de operação I2C que fornecem um barramento de controle, especialmente para o sistema permitir mensagens de ou para os dispositivos em vez de usar linhas de controle separadas para reduzir o número de fios e pinos do sistema.



Um dispositivo com SMBus pode fornecer as informações de fabricação, informar ao sistema o número da peça ou do modelo, relatar diferentes tipos de erros, permitir parâmetros de controle e revisitar sua posição.

Especificação SMBus

A especificação do SMBus refere-se simplesmente a 3 tipos de dispositivos host, master e slave.

  • Um host é um mestre específico e fornece a interface principal para a CPU do sistema.
  • Um dispositivo mestre que emite instruções, gera os relógios e encerra a transferência.
  • Um dispositivo escravo recebe de outra forma reage a um comando.

Como funciona o SMBus?

Existem 3 tipos de dispositivos usados ​​na comunicação SMBus como um host, um mestre e um dispositivo escravo que são mostrados no diagrama a seguir. Nesse barramento, o dispositivo host é uma interface de trabalho mestre específica para a CPU do sistema; no entanto, nem sempre é necessário. Alguns sistemas, como sistemas simples de carregamento de bateria, podem não ter um host.

Um dispositivo mestre inicia a comunicação, aciona o CLK e interrompe a transferência. Um dispositivo pode ser selecionado para ser simplesmente um mestre ou um mestre-escravo, onde pode funcionar como um dispositivo mestre ou como um dispositivo escravo.

  Diagrama SMBus
Diagrama SMBus

No SMBus, também existe acima de um mestre, porém apenas um pode dominar o barramento em um determinado momento. Por exemplo, quando os dois dispositivos dominam o barramento ao mesmo tempo, o SMBus fornece um mecanismo de arbitragem que simplesmente depende da conexão com fio AND de todas as interfaces do dispositivo SMBus com o SMBus.

Os dispositivos escravos respondem ao seu endereço, bem como aos comandos, e podem transmitir e receber dados de e para um dispositivo mestre. Um dispositivo pode ser selecionado totalmente como escravo, caso contrário, é possível que o escravo funcione como um mestre em certos exemplos.

Semelhante ao protocolo I2C, cada escravo neste barramento é simplesmente alocado com um endereço escravo de sete bits onde o bit de leitura ou escrita é anexado a este endereço para descrever se o dispositivo está lendo ou escrevendo a mensagem que está sendo transmitida no barramento.

Os dispositivos são necessários para reconhecer seu próprio endereço, portanto, uma vez que um dispositivo identifique seu endereço, ele reagirá ao comando.

Quando o endereço do escravo deste barramento entra em conflito, ele suporta ARP ou Address Resolution Protocol. Uma vez que o host perceba dois dispositivos com um endereço de escravo semelhante, o procedimento do protocolo de resolução de endereço atribuirá um novo endereço exclusivo dinamicamente aos escravos. O protocolo de resolução de endereço permitirá que os dispositivos sejam utilizados imediatamente sem a necessidade de reiniciar o sistema.

Este barramento utiliza 2 fios para comunicação, como o fio SMBDAT e o fio SMBCLK, onde o fio SMBDAT é usado para transferir dados seriais e o fio SMBCLK funciona como o relógio serial. No SMBus acima, o mestre simplesmente aciona o SMBCLK que varia de 10 a 100 kHz, porém, qualquer linha pode acionar o SMBDAT.

Esses dois fios são bidirecionais, o que oferece a opção de incluir um sinal de alerta como o SMBALERT, que permite que os dispositivos solicitem atenção do host.

O pacote de dados deste barramento contém um bit de início, um bit ACK ou NACK, 8 bits de dados e um bit de parada. A transferência de dados do SMBus usa algumas das funções de protocolos de diferentes SMBus ao enviar mensagens como Send Byte, Quick Command, Read Word, Write Byte, Read Byte, Write Word, Process Call, Block Write, Block Read, Read Process Call & Bloco Write-Bloco.

Este barramento também suporta PEC (verificação de erros de pacote) para melhorar a confiabilidade da comunicação. Portanto, isso pode ser feito incluindo um código de erro de pacote no final de cada mensagem.

Funções

Funções SMBus também são chamados de protocolos. Assim, os principais protocolos do SMBus são Comando Rápido, Enviar Byte, Receber Byte, Escrever Byte, Ler Byte, Process Call, Block Write/Read Block Write-Block Read Process Call, SMBus Host Notify Protocol, Write-32 Protocol, Read-32 Protocolo, Gravação 64-Protocolo e Leitura 64 Protocolo.

Formato de mensagem SMBUS

Após a condição de START, o mestre localizará o endereço de 7 bits do dispositivo escravo e ele precisa endereçar no barramento. Assim, o comprimento do endereço é de 7 bits seguido por um 8 bits que significa a direção de transferência de dados (R/W); um ONE especifica um pedido de READ (dados) e um ZERO especifica um WRITE (transmissão).

  Formato da mensagem
Formato da mensagem

A transferência de dados é sempre finalizada por uma condição STOP gerada através do mestre.

Cada byte inclui 8 bits e cada byte é transferido no SMBus e deve ser seguido por um bit de reconhecimento. Os bytes são transmitidos primeiro através do MSB (bit mais significativo).

Um dispositivo SMBus típico inclui um conjunto de comandos através dos quais os dados podem ser simplesmente lidos e escritos. O comprimento de todos esses comandos é de 1 byte, enquanto seus argumentos, bem como os valores de retorno, podem mudar dentro do comprimento.

Permitir um comando não existe, caso contrário não é suportado, então pode causar uma condição de erro. Em conformidade com a especificação SMBus, o MSB é primeiro transferido.

Primeiro, todos os comandos estabelecem uma condição de partida no barramento, após isso iniciam a transmissão através da transmissão dos dados ou comando, aguardam a aceitação do dispositivo escravo durante toda a transmissão de dados ou comando e, em seguida, definem uma condição de parada no barramento.

Condições de início e parada do protocolo SMBus

A condição START & STOP de uma mensagem será definida por duas condições únicas de barramento alto para baixo e baixo para alto.

  Condições de início e parada
Condições de início e parada

Em uma transição de linha SMBDAT HIGH para LOW, quando o SMBCLK é HIGH então indica uma condição START de uma mensagem.

Em uma transição de linha SMBDAT LOW para HIGH, quando SMBCLK é HIGH então ele define uma condição STOP de uma mensagem. Então essas duas condições são geradas sempre pelo mestre do barramento. O ônibus fica ocupado após a condição de START. O barramento ficará novamente ocioso após um certo tempo após uma condição de STOP.

Requisitos de hardware SMBus

Os requisitos de hardware do SMBus para permitir uma comunicação eficiente e perfeita entre um PC e alguns de seus hardwares mais essenciais são dois fios, como SMBDAT e SMBCLK, PSU (Unidade de fonte de alimentação), conjunto de ICs, drivers e seus ventiladores de refrigeração . Basicamente, este controlador SMBus permite que um computador manipule e execute comandos com sucesso, como ligar sua PSU e controlar seus ventiladores.

A transferência de dados SMBus usa diferentes protocolos ou funções enquanto transfere mensagens como Send Byte, Quick Command, Write Byte, Read Byte, Write Word, Read Word, Block Read, Process Call, Block Write, etc. aumentando a confiabilidade da comunicação simplesmente incluindo um código de erro de pacote em cada extremidade da mensagem.

O hardware SMBus simplesmente fornece controle de tempo e deslocamento usado para as transferências seriais. Assim, o hardware do SMBus executa as diferentes tarefas de aplicativos independentes, como controle de tempo, transferências de dados seriais e reconhecimento de endereços de escravos.

SMBus vs I2C

o diferença entre SMBus e I2C inclui o seguinte.

SMBBus

2C

O termo SMBus significa “System Management Bus”. O termo I2C significa “Circuito Inter-Integrado”.
O SMBus é um barramento de controle de 2 fios usado em tarefas de gerenciamento de energia e sistema. I2C é um protocolo de comunicação integrado usado para baixa largura de banda e curtas distâncias.
Um sistema pode utilizar esse barramento para rotear mensagens de e para dispositivos em vez de ativar linhas de controle individuais.

O I2C é normalmente usado para conectar periféricos baseados em baixa velocidade, como microcontroladores e sensores, a processadores acima de curtas distâncias em um IC.
A velocidade máxima do CLK é de 100 kHz. A velocidade máxima do CLK é de 400 kHz.
A velocidade mínima do CLK é de 10 kHz. Sem velocidade mínima de CLK.
Tempo limite de CLK baixo de 35 ms. Não há tempo limite.
Possui níveis lógicos fixos. Seus níveis lógicos dependem do VDD.
Tem vários tipos de endereços como reservados, dinâmicos, etc. Possui diferentes tipos de endereço, como endereço escravo de chamada geral, 7 bits e 10 bits.
Possui vários protocolos de barramento, como chamadas de processo, comandos rápidos, etc. Não possui protocolos de barramento.

SMBus vs Pmbus

A diferença entre SMBus e Pmbus inclui o seguinte.

SMBBus

Pmbus

O SMBus é um barramento de 2 fios de terminação única usado para comunicação leve. A extensão do SMBus é o Pmbus e é um protocolo de baixo custo usado principalmente para comunicação entre dispositivos de gerenciamento de energia.
O modo escravo deste barramento permite valores de taxas de dados como 10kbps, 50 kbps, 100 kbps e 400 kbps. O modo escravo deste barramento simplesmente permite valores de taxa de dados como 100 kbps e 400 kbps.
Este tipo de barramento funciona com hardware I2C, mas inclui software de segundo nível, permitindo que os dispositivos sejam trocados a quente sem reiniciar o sistema. Este barramento expande o SMBus simplesmente definindo um conjunto de comandos do dispositivo e é especialmente projetado para lidar com conversores de energia, expondo atributos do dispositivo como corrente medida, tensão, temperatura, etc.
SMBus é um superconjunto de I2C PMBus é um superconjunto de SMBus
Este barramento inclui as Camadas de Rede e de Enlace de Dados. Este barramento inclui a camada de Transporte e um conjunto de comandos.

Diagrama de temporização

o Diagrama de tempo SMBus é mostrado abaixo.

  Diagrama de tempo do SMBus
Diagrama de tempo do SMBus

O TLOW.SEXT é o dispositivo escravo que estende os ciclos CLK em uma única mensagem do START ao STOP. Portanto, é possível que o mestre ou outro dispositivo escravo também estenda o ciclo CLK para fazer com que o tempo estendido baixo do CLK combinado seja maior que TLOW.SEXT. Assim, este parâmetro é simplesmente medido através do dispositivo escravo como o único alvo de um mestre de velocidade total.

TLOW.MEXT é o dispositivo mestre que estende os ciclos CLK em cada byte de uma mensagem. Portanto, é possível que outro dispositivo mestre ou escravo também estenda o CLK para fazer com que o tempo baixo do CLK combinado seja maior em comparação ao TLOW.MEXT em um byte especificado. Assim, os parâmetros são simplesmente medidos através de um dispositivo escravo de velocidade total como o único alvo do mestre.

Formulários

o aplicações do SMBus inclui o seguinte.

  • SMBus é usado como um chip de componente do sistema usado para se comunicar dentro de um sistema. Mais particularmente, permite que as baterias se comuniquem com outros componentes do sistema, como componentes relacionados à energia e a CPU.
  • Isso é usado para comunicação leve.
  • Este barramento é usado para monitorar parâmetros críticos em sistemas embarcados & em placas-mãe de PC.
  • Este é o tipo mais comum de comunicação para medidores de combustível avançados da Texas Instruments.
  • Isso é utilizado em comunicação de gerenciamento de sistema menos baseada em largura de banda.

Assim, trata-se de tudo uma visão geral de um SMBus – trabalhar com aplicativos. Este é um barramento de dois fios simples e de terminação única usado para comunicação leve. Este barramento é usado em placas-mãe de computadores para comunicação com a fonte de alimentação para instruções ON ou OFF. Aqui está uma pergunta para você, qual é o protocolo I2C?