Barramento de gerenciamento do sistema - System Management Bus

O System Management Bus (abreviado para SMBus ou SMB ) é um barramento simples de dois fios de terminação única para fins de comunicação leve. Mais comumente, ele é encontrado em placas-mãe de computador para comunicação com a fonte de alimentação para instruções ON / OFF.

É derivado de I²C para comunicação com dispositivos de baixa largura de banda em uma placa - mãe , especialmente chips relacionados à energia, como o subsistema de bateria recarregável de um laptop (consulte Sistema de bateria inteligente ). Outros dispositivos podem incluir sensores de temperatura, ventilador ou voltagem, interruptores de tampa, gerador de relógio e iluminação RGB. As placas de expansão PCI podem se conectar a um segmento SMBus.

Um dispositivo pode fornecer informações do fabricante, indicar seu modelo / número de peça, salvar seu estado para um evento de suspensão, relatar diferentes tipos de erros, aceitar parâmetros de controle e retornar o status. O SMBus geralmente não é configurável ou acessível pelo usuário. Embora os dispositivos SMBus geralmente não consigam identificar sua funcionalidade, uma nova coalizão PMBus estendeu o SMBus para incluir convenções que permitem isso.

O SMBus foi definido pela Intel e Duracell em 1994. Ele carrega relógio, dados e instruções e se baseia na Philips ' I²C protocolo serial bus. Sua faixa de freqüência de clock é de 10 kHz a 100 kHz. (PMBus estende isso para 400 kHz.) Seus níveis de tensão e temporizações são mais estritamente definidos do que aqueles de I²C, mas os dispositivos pertencentes aos dois sistemas são frequentemente mixados com sucesso no mesmo barramento.

O SMBus é usado como uma interconexão em vários padrões de gerenciamento de plataforma, incluindo: ASF , DASH , IPMI .

O SMBus é usado para acessar informações de configuração de DRAM como parte da detecção de presença serial . O SMBus cresceu em uma ampla variedade de casos de uso de enumeração de sistema além do gerenciamento de energia.

Interoperabilidade SMBus / I²C

Embora o SMBus seja derivado de I²C, existem várias diferenças importantes entre as especificações dos dois barramentos nas áreas de eletricidade, temporização, protocolos e modos de operação.

Elétrico

Tensão de entrada ( V IL e V IH )

Ao misturar dispositivos, a especificação I²C define os níveis de entrada como 30% e 70% da tensão de alimentação V DD , que pode ser 5 V, 3,3 V ou algum outro valor. Em vez de relacionar os níveis de entrada do barramento a V DD , o SMBus os define como fixos em 0,8 e 2,1 V. O SMBus 2.0 oferece suporte a V DD variando de 3 a 5 V. O SMBus 3.0 oferece suporte a V DD variando de 1,8 a 5 V.

Corrente de dissipação ( I OL )

O SMBus 2.0 define uma classe de 'alta potência' que inclui uma corrente de dissipação de 4 mA que não pode ser acionada por chips I²C a menos que o resistor pull-up seja dimensionado para níveis de barramento I²C.

Os dispositivos NXP têm um conjunto de características elétricas de maior potência do que o SMBus 1.0. A principal diferença é a capacidade de dissipação de corrente com V OL = 0,4 V.

  • SMBus de baixa potência = 350 μA
  • SMBus alta potência = 4 mA
  • Barramento I²C = 3 mA

Os dispositivos SMBus de 'alta potência' e os dispositivos I²C-bus funcionarão juntos se o resistor pull-up for dimensionado para 3 mA.

Frequência ( F MAX e F MIN )

O clock do SMBus é definido de 10–100 kHz enquanto I²C pode ser de 0–100 kHz, 0–400 kHz, 0–1 MHz e 0–3,4 MHz, dependendo do modo. Isso significa que um barramento I²C operando a menos de 10 kHz não será compatível com SMBus, pois os dispositivos SMBus podem expirar. Muitos dispositivos SMBus, entretanto, suportam frequências mais baixas.

O SMBus 3.0 adiciona velocidades de barramento de 400 kHz e 1 MHz.

Tempo

  • O SMBus define um tempo limite mínimo do relógio, TIMEOUT de 35 ms. I²C não especifica nenhum limite de tempo.
  • O SMBus especifica T LOW: SEXT como o tempo de extensão baixo do relógio cumulativo para um dispositivo escravo. I²C não tem uma especificação semelhante.
  • O SMBus especifica T LOW: MEXT como o tempo de extensão baixo do relógio cumulativo para um dispositivo mestre. Novamente, I²C não tem uma especificação semelhante.
  • O SMBus define o tempo de subida e descida dos sinais de barramento. I²C não.
  • As especificações de tempo limite do SMBus não impedem os dispositivos I²C de cooperar de forma confiável no SMBus. É responsabilidade do projetista garantir que os dispositivos I²C não violem esses parâmetros de temporização do barramento.

Protocolos

Uso de ACK e NACK

Existem as seguintes diferenças no uso da sinalização do barramento NACK: Em I²C, um receptor escravo pode não reconhecer o endereço do escravo, se por exemplo não puder receber porque está realizando alguma tarefa em tempo real. O SMBus exige que os dispositivos reconheçam seu próprio endereço sempre, como um mecanismo para detectar a presença de um dispositivo removível no barramento (bateria, docking station, etc.)

I²C especifica que um dispositivo escravo, embora possa reconhecer seu próprio endereço, pode decidir, algum tempo depois na transferência, que não pode receber mais bytes de dados. I²C especifica que o dispositivo pode indicar isso gerando o não reconhecimento no primeiro byte a seguir.

Além de indicar a condição de dispositivo ocupado de um escravo, o SMBus também usa o mecanismo NACK para indicar a recepção de um comando ou dado inválido. Uma vez que tal condição pode ocorrer no último byte da transferência, é necessário que os dispositivos SMBus tenham a capacidade de gerar o não reconhecimento após a transferência de cada byte e antes da conclusão da transação. Isso é importante porque o SMBus não fornece nenhuma outra sinalização de reenvio. Essa diferença no uso da sinalização NACK tem implicações na implementação específica da porta SMBus, especialmente em dispositivos que lidam com dados críticos do sistema, como o host SMBus e os componentes SBS.

Protocolos SMBus

Cada transação de mensagem no SMBus segue o formato de um dos protocolos SMBus definidos. Os protocolos SMBus são um subconjunto dos formatos de transferência de dados definidos nas especificações I²C. Os dispositivos I²C que podem ser acessados ​​por meio de um dos protocolos SMBus são compatíveis com as especificações SMBus. Os dispositivos I²C que não aderem a esses protocolos não podem ser acessados ​​por métodos padrão, conforme definido no SMBus e nas especificações de configuração avançada e interface de energia (ACPI).

Protocolo de Resolução de Endereço

O SMBus usa hardware I²C e endereçamento de hardware I²C, mas adiciona software de segundo nível para a construção de sistemas especiais. Em particular, suas especificações incluem um protocolo de resolução de endereços que pode fazer alocações de endereços dinâmicas. A reconfiguração dinâmica do hardware e software permite que os dispositivos de barramento sejam 'conectados a quente' e usados ​​imediatamente, sem reiniciar o sistema. Os dispositivos são reconhecidos automaticamente e endereços exclusivos atribuídos. Essa vantagem resulta em uma interface de usuário plug-and-play. Em ambos os protocolos, há uma distinção muito útil feita entre um host do sistema e todos os outros dispositivos no sistema que podem ter os nomes e funções de mestres ou escravos.

Recurso de tempo limite

O SMBus tem um recurso de tempo limite que redefine os dispositivos se a comunicação demorar muito. Isso explica a frequência de clock mínima de 10 kHz para evitar travar o barramento. I²C pode ser um barramento 'DC', o que significa que um dispositivo escravo estica o clock mestre ao realizar alguma rotina enquanto o mestre está acessando-o. Isso notificará o mestre de que o escravo está ocupado, mas não deseja perder a comunicação. O dispositivo escravo permitirá a continuação após a conclusão de sua tarefa. Não há limite no protocolo I²C-bus de quanto tempo esse atraso pode ser, enquanto para um sistema SMBus, ele seria limitado a 35 ms. O protocolo SMBus apenas assume que se algo demorar muito, isso significa que há um problema no barramento e que todos os dispositivos devem ser reiniciados para limpar este modo. Os dispositivos escravos não têm permissão para manter o relógio BAIXO por muito tempo.

Verificação de erro de pacote

O SMBus 1.1 e posterior definem a verificação de erros de pacotes ( PEC ) opcional . Nesse modo, um byte PEC (código de erro de pacote) é anexado ao final de cada transação. O byte é calculado como checksum CRC-8 , calculado sobre toda a mensagem, incluindo o endereço e o bit de leitura / gravação. O polinômio usado é x 8 + x 2 + x + 1 (o algoritmo CRC-8- ATM HEC , inicializado em zero).

SMBALERT #

O SMBus tem um sinal de interrupção compartilhado opcional extra chamado SMBALERT #, que pode ser usado por escravos para informar ao host para perguntar a seus escravos sobre eventos de interesse. O SMBus também define um "protocolo de notificação de host" menos comum, fornecendo notificações semelhantes, mas transmitindo mais dados e construindo no modo multimestre I²C.

Apoio, suporte

Os dispositivos SMBus são suportados por FreeBSD , OpenBSD , NetBSD , DragonFly BSD , Linux , Windows 2000 e mais recentes e Windows CE .

Veja também

Referências

links externos

Este artigo é baseado em material retirado do Dicionário On-line Gratuito de Computação anterior a 1 de novembro de 2008 e incorporado sob os termos de "relicenciamento" do GFDL , versão 1.3 ou posterior.