SMBus : 작동, 차이점 및 응용

문제를 제거하기 위해 도구를 사용해보십시오





SMBus는 1995년 Intel에서 출시되었으며 Philips의 I²C 직렬 버스 프로토콜을 기반으로 합니다. 이 버스는 클럭 주파수 범위가 10kHz ~ 100kHz인 데이터, CLK 및 명령을 전달합니다. SMBus의 주요 목적은 마더보드의 장치를 제어하고 데이터를 가져오는 저렴하고 강력한 방법을 허용하는 것입니다. SMBus는 일반적으로 온도 제어, 스마트 배터리 및 기타 저대역폭 시스템 관리 통신을 위해 PC에서 사용됩니다.


이 버스는 시스템의 나머지 부분과 대화하는 충전기, 지능형 배터리 및 마이크로컨트롤러 간의 통신 링크를 식별합니다. 그러나 SMBus는 시스템 센서, 전원 관련 장치, 통신 장치, 인벤토리 EEPROM 등과 같은 다양한 장치를 연결하는 데도 사용됩니다. 이 기사에서는 응용 프로그램과 함께 작업하는 SMBus의 개요에 대해 설명합니다.

SMBus 프로토콜이란 무엇입니까?

SMBus(시스템 관리 버스)는 저속 시스템 관리 통신을 위해 마더보드의 다양한 장치 간에 자주 사용되는 2선 인터페이스입니다. 이런 종류의 버스는 I2C 프로토콜 기초. 따라서 I2C 및 SMBus는 모두 약간의 유사점이 있을 수 있으며 유사한 버스에서 상호 운용할 수도 있습니다.

이 버스는 제어 버스를 제공하는 I2C 작동 원리에 따라 작동하며, 특히 시스템이 시스템 와이어 및 핀 수를 줄이기 위해 별도의 제어 라인을 사용하는 대신 장치에서 메시지를 주고받을 수 있도록 합니다.

SMBus가 있는 장치는 제조 정보를 제공하고, 시스템에 부품 또는 모델 번호를 알리고, 여러 종류의 오류를 보고하고, 제어 매개변수를 허용하고, 위치를 다시 방문할 수 있습니다.

SMBus 사양

SMBus의 사양은 단순히 호스트, 마스터 및 슬레이브의 3 종류의 장치를 나타냅니다.

  • 호스트는 특정 마스터이며 시스템의 CPU에 대한 기본 인터페이스를 제공합니다.
  • 명령을 발행하고, 클록을 생성하고, 전송을 종료하는 마스터 장치입니다.
  • 슬레이브 장치는 그렇지 않으면 명령에 반응합니다.

SMBus는 어떻게 작동합니까?

SMBus 통신 내에서 사용되는 장치는 호스트, 마스터, 슬레이브의 3가지 종류가 있으며 아래 그림과 같습니다. 이 버스에서 호스트 장치는 시스템의 CPU에 대한 특정 마스터 작업과 유사한 인터페이스입니다. 그러나 항상 필요한 것은 아닙니다. 단순 배터리 충전 시스템과 같은 일부 시스템에는 호스트가 없을 수 있습니다.

마스터 장치는 통신을 시작하고 CLK를 구동하고 전송을 중지합니다. 장치는 단순히 마스터 또는 마스터-슬레이브로 선택될 수 있으며, 여기서 마스터 장치로 작동하거나 슬레이브 장치로 작동할 수 있습니다.

  SMBus 다이어그램
SMBus 다이어그램

SMBus에는 하나 이상의 마스터가 있지만 주어진 시간에 버스를 마스터할 수 있는 사람은 단 한 명뿐입니다. 예를 들어, 두 장치가 동시에 버스를 마스터하면 SMBus는 SMBus 장치의 모든 인터페이스를 SMBus에 유선 AND 연결하는 데 단순히 의존하는 중재 메커니즘을 제공합니다.

슬레이브 장치는 주소와 명령에 응답하며 마스터 장치와 데이터를 주고 받을 수 있습니다. 장치는 완전히 슬레이브로 선택될 수 있습니다. 그렇지 않으면 특정 예에서 슬레이브가 마스터처럼 작동하도록 달성할 수 있습니다.

I2C 프로토콜과 유사하게, 이 버스의 모든 슬레이브에는 7비트 슬레이브 주소가 할당됩니다. 여기에서 읽기 또는 쓰기 비트가 이 주소에 추가되어 장치가 버스에서 전송되는 메시지를 읽고 있는지 여부를 설명합니다.

장치는 자신의 주소를 인식하는 데 필요하므로 장치가 주소를 식별하면 명령에 반응합니다.

이 버스의 슬레이브 주소가 충돌하면 ARP 또는 주소 확인 프로토콜을 지원합니다. 호스트가 유사한 슬레이브 주소를 가진 두 장치를 감지하면 주소 확인 프로토콜 절차는 새 고유 주소를 슬레이브에 동적으로 할당합니다. 주소 확인 프로토콜을 사용하면 시스템을 다시 시작할 필요 없이 장치를 즉시 사용할 수 있습니다.

이 버스는 SMBDAT 와이어 및 SMBCLK 와이어와 같은 통신을 위해 2-와이어를 사용하며 SMBDAT 와이어는 직렬 데이터를 전송하는 데 사용되며 SMBCLK 와이어는 직렬 클럭처럼 작동합니다. 위의 SMBus에서 마스터는 단순히 10~100kHz 범위의 SMBCLK를 구동하지만 모든 라인이 SMBDAT를 구동할 수 있습니다.

이 두 와이어는 장치가 호스트로부터 주의를 요청할 수 있도록 하는 SMBALERT와 같은 경고 신호를 포함하는 옵션을 제공하는 양방향입니다.

이 버스의 데이터 패킷은 시작 비트, ACK 또는 NACK 비트, 8비트 데이터 및 정지 비트를 포함합니다. SMBus의 데이터 전송은 Send Byte, Quick Command, Read Word, Write Byte, Read Byte, Write Word, Process Call, Block Write, Block Read, Read Process Call & 블록 쓰기-차단.

이 버스는 또한 통신 신뢰성을 향상시키기 위해 PEC(패킷 오류 검사)를 지원합니다. 따라서 이것은 모든 메시지 끝에 패킷 오류 코드를 포함하여 수행할 수 있습니다.

기능

SMBus 기능 프로토콜이라고도 합니다. 따라서 SMBus의 주요 프로토콜은 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입니다. 프로토콜, 쓰기 64-프로토콜 및 읽기 64 프로토콜.

SMBUS 메시지 형식

START 조건 후에 마스터는 슬레이브 장치의 7비트 주소를 찾고 버스에서 주소를 지정해야 합니다. 따라서 주소의 길이는 7비트 길이이며 데이터 전송 방향(R/W)을 나타내는 8비트가 뒤따릅니다. ONE은 READ(데이터) 요청을 지정하고 ZERO는 WRITE(전송)를 지정합니다.

  메시지 형식
메시지 형식

데이터 전송은 항상 마스터를 통해 생성된 STOP 조건에 의해 종료됩니다.

각 바이트는 8비트를 포함하고 각 바이트는 SMBus에서 전송되며 승인 비트를 통해 따라야 합니다. 바이트는 MSB(최상위 비트)를 통해 먼저 전송됩니다.

일반적인 SMBus 장치에는 데이터를 단순히 읽고 쓸 수 있는 일련의 명령이 포함되어 있습니다. 이러한 모든 명령의 길이는 1바이트인 반면 인수와 반환 값은 길이 내에서 변경될 수 있습니다.

허용하는 명령이 존재하지 않으면 지원되지 않으므로 오류 조건이 발생할 수 있습니다. SMBus 사양에 따라 MSB가 먼저 전송됩니다.

먼저 모든 명령은 버스를 통해 시작 조건을 설정하고 데이터 또는 명령을 전송하여 전송을 시작한 후 데이터 또는 명령 전송을 통해 슬레이브 장치의 승인을 기다린 다음 버스에 중지 조건을 설정합니다.

SMBus 프로토콜의 시작 및 중지 조건

메시지의 START & STOP 조건은 high에서 low로, low에서 high로의 두 가지 고유한 버스 조건으로 정의됩니다.

  시작 및 중지 조건
시작 및 중지 조건

HIGH에서 LOW로의 SMBDAT 회선 전환에서 SMBCLK가 HIGH이면 메시지의 START 조건을 나타냅니다.

LOW에서 HIGH로의 SMBDAT 회선 전환에서 SMBCLK가 HIGH이면 메시지의 STOP 조건을 정의합니다. 따라서 이 두 조건은 항상 버스의 마스터에 의해 생성됩니다. 버스는 START 조건 이후에 바쁩니다. 버스는 STOP 조건 후 일정 시간이 지나면 다시 유휴 상태가 됩니다.

SMBus 하드웨어 요구 사항

PC와 가장 필수적인 하드웨어 간의 효율적이고 원활한 통신을 가능하게 하기 위한 SMBus의 하드웨어 요구 사항은 SMBDAT 및 SMBCLK, PSU(전원 공급 장치), IC 세트, 드라이버 및 냉각 팬과 같은 두 개의 와이어입니다. . 기본적으로 이 SMBus 컨트롤러를 사용하면 컴퓨터가 PSU 켜기 및 냉각 팬 제어와 같은 명령을 성공적으로 처리 및 실행할 수 있습니다.

SMBus 데이터 전송은 Send Byte, Quick Command, Write Byte, Read Byte, Write Word, Read Word, Block Read, Process Call, Block Write 등과 같은 메시지를 전송하는 동안 다른 프로토콜이나 기능을 사용합니다. 또한 PEC 또는 패킷 오류 검사를 지원합니다. 단순히 각 메시지 끝에 패킷 오류 코드를 포함하여 통신 신뢰성을 향상시킵니다.

SMBus 하드웨어는 단순히 직렬 전송에 사용되는 타이밍 및 이동 제어를 제공합니다. 따라서 SMBus의 하드웨어는 타이밍 제어, 직렬 데이터 전송 및 슬레이브 주소 인식과 같은 다양한 독립 애플리케이션 작업을 수행합니다.

SMBus 대 I2C

그만큼 SMBus와 I2C의 차이점 다음을 포함합니다.

SM버스

2C

SMBus라는 용어는 '시스템 관리 버스'를 나타냅니다. I2C라는 용어는 'Inter-Integrated Circuit'을 의미합니다.
SMBus는 에너지 및 시스템 관리 작업에 사용되는 2선식 제어 버스입니다. I2C는 낮은 대역폭 및 단거리에 사용되는 온보드 통신 프로토콜입니다.
시스템은 이 버스를 활용하여 개별 제어 라인을 활성화하는 대신 장치에서 &로 메시지를 라우팅할 수 있습니다.

I2C는 일반적으로 마이크로 컨트롤러 및 센서와 같은 저속 기반 주변 장치를 IC의 근거리 위 프로세서에 연결하는 데 사용됩니다.
최대 CLK 속도는 100kHz입니다. 최대 CLK 속도는 400kHz입니다.
최소 CLK 속도는 10kHz입니다. 최소 CLK 속도가 없습니다.
35ms 낮은 CLK 시간 초과. 시간 초과가 없습니다.
고정 논리 수준이 있습니다. 논리 레벨은 VDD에 따라 다릅니다.
예약, 동적 등과 같은 다양한 주소 유형이 있습니다. 일반 호출 슬레이브 주소, 7비트 및 10비트와 같은 다양한 주소 유형이 있습니다.
프로세스 호출, 빠른 명령 등과 같은 다양한 버스 프로토콜이 있습니다. 버스 프로토콜이 없습니다.

SMBus 대 PMbus

SMBus와 Pmbus의 차이점은 다음과 같습니다.

SM버스

오후버스

SMBus는 경량 통신에 사용되는 2선식 단일 종단 버스입니다. SMBus의 확장은 Pmbus이며 주로 전원 관리 장치 간의 통신에 사용되는 저가 프로토콜입니다.
이 버스의 슬레이브 모드는 10kbps, 50kbps, 100kbps 및 400kbps와 같은 데이터 속도 값을 허용합니다. 이 버스의 슬레이브 모드는 단순히 100kbps 및 400kbps와 같은 데이터 속도 값을 허용합니다.
이 유형의 버스는 I2C 하드웨어와 함께 작동하지만 시스템을 다시 시작하지 않고 장치를 핫 스왑할 수 있도록 하여 2단계 소프트웨어를 포함합니다. 이 버스는 단순히 장치의 명령 집합을 정의하여 SMBus를 확장하며 특히 전력 변환기를 처리하고 측정된 전류, 전압, 온도 등과 같은 장치 속성을 노출하도록 설계되었습니다.
SMBus는 I2C의 상위 집합입니다. PMBus는 SMBus의 상위 집합입니다.
이 버스는 네트워크 및 데이터 링크 계층을 모두 포함합니다. 이 버스에는 전송 계층 및 일련의 명령이 포함됩니다.

타이밍 다이어그램

그만큼 SMBus 타이밍 다이어그램 아래에 나와 있습니다.

  SMBus의 타이밍 다이어그램
SMBus의 타이밍 다이어그램

TLOW.SEXT는 START에서 STOP까지 단일 메시지 내에서 CLK 사이클을 확장하는 슬레이브 장치입니다. 따라서 마스터 또는 다른 슬레이브 장치가 CLK 주기를 확장하여 결합된 CLK의 낮은 확장 시간이 TLOW.SEXT보다 높아지도록 하는 것이 가능합니다. 따라서 이 매개변수는 전속 마스터의 단일 대상과 같이 슬레이브 장치를 통해 간단하게 측정됩니다.

TLOW.MEXT는 메시지의 모든 바이트에서 CLK 주기를 확장하는 마스터 장치입니다. 따라서 다른 마스터 또는 슬레이브 장치가 CLK를 확장하여 결합된 CLK의 낮은 시간이 지정된 바이트의 TLOW.MEXT와 비교하여 더 높아지도록 하는 것이 가능합니다. 따라서 매개변수는 마스터의 단일 대상과 같은 전속 슬레이브 장치를 통해 간단하게 측정됩니다.

애플리케이션

그만큼 SMBus의 응용 다음을 포함합니다.

  • SMBus는 시스템 내에서 통신하는 데 사용되는 시스템 구성 요소 칩으로 사용됩니다. 특히, 배터리가 전원 관련 구성 요소 및 CPU와 같은 시스템의 다른 구성 요소와 통신할 수 있도록 합니다.
  • 이것은 경량 통신에 사용됩니다.
  • 이 버스는 중요한 매개변수를 모니터링하는 데 사용됩니다. 임베디드 시스템 & PC의 마더보드에.
  • 이것은 Texas Instruments의 고급 연료 게이지를 위한 가장 일반적인 유형의 통신입니다.
  • 이것은 적은 대역폭 기반 시스템 관리 통신에서 활용됩니다.

따라서 이것은 모든 것에 관한 것입니다. SMBus 개요 – 응용 프로그램 작업. 이것은 경량 통신에 사용되는 단순한 단일 종단 2선 버스입니다. 이 버스는 ON 또는 OFF 명령을 위한 전원과 통신하기 위해 컴퓨터의 마더보드에서 사용됩니다. I2C 프로토콜이란 무엇입니까?