시스템 관리 버스

System Management Bus

시스템 관리 버스(일명 SMBus 또는 SMB)는 경량 통신을 목적으로 하는 싱글 엔드 심플한 2선 버스입니다.일반적으로 컴퓨터의 메인보드에서 전원과 통신하여 ON/OFF 명령을 실행할 수 있습니다.

메인보드의 저대역폭 장치, 특히 노트북의 충전식 배터리 서브시스템과 같은 전원 관련 칩과의 통신을 위해 I²C에서 파생되었습니다(스마트 배터리 시스템 참조).기타 장치에는 온도, 팬 또는 전압 센서, 리드 스위치, 클럭 제너레이터 및 RGB 조명이 포함될 수 있습니다.PCI 애드인 카드는 SMBus 세그먼트에 접속할 수 있습니다.

디바이스는 제조원 정보 제공, 모델/부품 번호 표시, 일시 중단 이벤트 상태 저장, 다양한 유형의 오류 보고, 제어 파라미터 승인 및 상태 반환을 수행할 수 있습니다.SMBus는 일반적으로 사용자가 설정하거나 액세스할 수 없습니다.SMBus 디바이스는 일반적으로 기능을 식별할 수 없지만, 새로운 PMBus 연합에서는 SMBus가 이를 허용하는 규칙을 포함하도록 확장되었습니다.

SMBus는 1994년에 [1]인텔과 Duracell의해 정의되었습니다.클럭, 데이터 및 명령을 전송하며 Philips의 I²C 직렬 버스 프로토콜을 기반으로 합니다.클럭 주파수 범위는 10kHz ~100kHz입니다(PMBus는 이를 400kHz로 확장합니다).전압 레벨과 타이밍은 I²C보다 더 엄격하게 정의되지만, 두 시스템에 속한 장치가 동일한 [citation needed]버스에서 성공적으로 혼합되는 경우가 많습니다.

SMBus는 ASF, DASH, IPMI포함한 여러 플랫폼 관리 표준에서 상호 연결로 사용됩니다.

SMBus 는, 시리얼 존재 검출의 일부로서 DRAM 설정 정보에 액세스 하기 위해서 사용됩니다.SMBus는 전원 관리 이외에도 다양한 시스템 열거 활용 사례로 성장했습니다.

SMBus/I²C의 상호 운용성

SMBus는 I²C에서 파생되었지만 전기, 타이밍, 프로토콜 및 작동 [2][3][4][5]모드 분야에서 두 버스의 사양에는 몇 가지 주요 차이가 있습니다.

전기

입력 전압(VILVIH)

장치를 혼합하는 경우 I²C 사양에서는 입력 레벨이 전원 전압DD [4]: 9 V의 30 % 및 70%로 정의되어 있으며, 이 전압은 5 V, 3.3 V 또는 기타 값이 될 수 있습니다.SMBus 2.0에서는 버스 입력 수준을 VDD 관련짓는 대신 0.8 및 2.1V로 고정되도록 정의합니다. SMBus 2.0에서는 3~5V 범위의 V를 지원하고DD SMBus 3.0에서는 1.8~5V 범위의 V를 지원합니다DD.

싱크 전류(IOL)

SMBus 2.0은 풀업 저항의 크기가 I²C 버스 레벨에 맞지 않는 한 I²C 칩으로 구동할 수 없는 4mA 싱크 전류를 포함하는 '고출력' 클래스를 정의합니다.

NXP 디바이스는 SMBus 1.0보다 높은 전기적 특성을 갖추고 있습니다.주요 차이점은 V = 0.4V인 전류OL 싱크 능력입니다.

  • SMBus 저전력 = 350μA
  • SMBus 고출력 = 4 mA
  • I²C 버스 = 3 mA

풀업 저항의 크기가 3mA인 경우 SMBus '고출력' 장치와 I²C 버스 장치가 함께 작동합니다.

주파수(FMAXFMIN)

SMBus 클럭은 10~100kHz로 정의되며 I²C는 모드에 따라 0~100kHz, 0~400kHz, 0~1MHz 및 0~3.4MHz로 정의할 수 있습니다.즉, 10kHz 미만으로 동작하는 I²C 버스는 SMBus 디바이스가 타임아웃 할 수 있기 때문에 SMBus에 준거하지 않습니다.단, 많은 SMBus 디바이스는 저주파를 지원합니다.

SMBus 3.0은 400kHz 및 1MHz 버스 속도를 추가합니다.

타이밍.

  • SMBus 에서는, 클럭의 타임 아웃이 35 밀리초의 타임 아웃이 정의되고 있습니다.I²C는 타임아웃 제한을 지정하지 않습니다.
  • SMBus는 슬레이브 디바이스의 누적 클럭로우 익스텐션 시간으로 T를 지정합니다LOW:SEXT.I²C에는 유사한 사양이 없습니다.
  • SMBus는 마스터 디바이스의 누적 클럭로우 익스텐션 시간으로 T를 지정합니다LOW:MEXT.다시 말하지만 I²C에는 유사한 사양이 없습니다.
  • SMBus는 버스 신호의 상승 시간과 하강 시간을 모두 정의합니다.I²C는 그렇지 않습니다.
  • SMBus의 타임아웃 사양에 따라 SMBus에서 안정적으로 작동하는 I²C 디바이스가 배제되지 않습니다.I²C 디바이스가 이러한 버스 타이밍 파라미터를 위반하지 않도록 하는 것은 설계자의 책임입니다.

프로토콜

ACK 및 NACK 사용방법

NACK 버스시그널링 사용방법에는 다음과 같은 차이가 있습니다.I²C 에서는, 예를 들면, 슬레이브 수신기가 몇개의 리얼 타임 태스크를 실행하고 있기 때문에 수신할 수 없는 경우, 슬레이브 수신기는 슬레이브 주소를 수신할 수 없습니다.SMBus에서는 버스(배터리, 도킹 스테이션 등)에서 리무버블 디바이스의 존재를 검출하기 위한 메커니즘으로서 디바이스가 자신의 주소를 항상 인식해야 합니다.

I²C는 슬레이브 디바이스는 자신의 주소를 확인할 수 있지만 전송 후 시간이 지나면 더 이상 데이터 바이트를 수신할 수 없다고 결정할 수 있음을 지정합니다.I²C는 디바이스가 후속 첫 번째 바이트에서 not acknowledge를 생성함으로써 이를 나타낼 수 있음을 지정합니다.

슬레이브의 디바이스 비지 상태를 나타내는 것 외에 SMBus는 NACK 메커니즘을 사용하여 비활성 명령 또는 데이터 수신을 나타냅니다.이러한 상태는 전송의 마지막 바이트에서 발생할 수 있으므로 SMBus 디바이스는 각 바이트 전송 후 트랜잭션 완료 전에 수신확인을 생성할 수 있어야 합니다.SMBus는 다른 재발송신 시그널링을 제공하지 않기 때문에 이것은 중요합니다.NACK 시그널링의 사용 방법의 차이는 SMBus 포트의 특정 실장에 영향을 미칩니다.특히 SMBus 호스트나 SBS 컴포넌트 등의 중요한 시스템데이터를 처리하는 디바이스에서 그렇습니다.

SMBus 프로토콜

SMBus의 각 메시지 트랜잭션은 정의된 SMBus 프로토콜 중 하나의 형식을 따릅니다.SMBus 프로토콜은 I²C 사양에 정의된 데이터 전송 형식의 하위 집합입니다.SMBus 프로토콜 중 하나를 통해 액세스할 수 있는 I²C 장치는 SMBus 사양과 호환됩니다.이러한 프로토콜을 준수하지 않는 I²C 장치는 SMBus 및 ACPI(Advanced Configuration and Power Interface) 사양에 정의된 표준 방법으로는 액세스할 수 없습니다.

주소 해결 프로토콜

SMBus는 I²C 하드웨어 및 I²C 하드웨어 어드레싱을 사용하지만 특수 시스템을 구축하기 위한 2단계 소프트웨어를 추가합니다.특히 그 사양에는 동적 주소 할당을 할 수 있는 주소 해결 프로토콜이 포함됩니다.하드웨어와 소프트웨어를 동적으로 재구성하면 시스템을 재부팅하지 않고도 버스 장치를 '핫 플러그'하여 즉시 사용할 수 있습니다.디바이스는 자동적으로 인식되어 일의의 주소가 할당됩니다.이로 인해 플러그 앤 플레이 사용자 인터페이스가 제공됩니다.두 프로토콜 모두 시스템 호스트와 마스터 또는 슬레이브의 이름과 기능을 가질 수 있는 시스템 내의 다른 모든 장치 간에 매우 유용한 구별이 있습니다.

타임아웃 기능

SMBus 에는, 통신에 시간이 걸리면 디바이스를 리셋 하는 타임 아웃 기능이 있습니다.이것은 버스가 잠기지 않도록 하기 위한 최소 클럭 주파수 10kHz에 대해 설명합니다.I²C는 'DC' 버스일 수 있습니다. 즉, 마스터가 액세스하는 동안 슬레이브 장치가 일부 루틴을 수행할 때 마스터 클럭을 늘립니다.이렇게 하면 슬레이브가 통화 중이지만 통신을 잃고 싶지 않음을 마스터에 알립니다.슬레이브 디바이스는 작업이 완료된 후 계속 진행할 수 있습니다.I²C 버스 프로토콜에는 이 지연 시간이 제한되지 않지만 SMBus 시스템의 경우 35ms로 제한됩니다.SMBus 프로토콜은 어떤 것이 너무 오래 걸리는 경우 버스에 문제가 있으며 이 모드를 클리어하기 위해 모든 장치를 리셋해야 한다는 것을 의미합니다.슬레이브 디바이스는 클럭 LOW를 너무 오래 유지할 수 없습니다.

패킷 오류 체크

SMBus 1.1 이후에서는 옵션의 Packet Error Checking(PEC; 패킷에러 체크)를 정의합니다.이 모드에서는, 각 트랜잭션의 마지막에 PEC(패킷 에러 코드) 바이트가 부가됩니다.바이트는 주소 및 읽기/쓰기 비트를 포함한 메시지 전체에 걸쳐 계산되는 CRC-8 체크섬으로 계산됩니다.사용되는 다항식은 x+x2+1(CRC-8-ATM HEC 알고리즘,[6][7][8] 0으로 초기화)입니다8.

SMBALERT 번호

SMBus에는 SMBALERT#라고 불리는 추가 옵션 공유 인터럽트 신호가 있습니다.이 신호는 슬레이브가 호스트에 해당 이벤트를 문의하도록 지시하기 위해 사용할 수 있습니다.SMBus는 또한 유사한 알림을 제공하지만 더 많은 데이터를 전달하고 I²C 멀티 마스터 모드를 기반으로 하는 덜 일반적인 "호스트 알림 프로토콜"을 정의합니다.

지지하다

SMBus 디바이스는 FreeBSD, OpenBSD, NetBSD, DragonFly BSD, Linux, Windows 98 이후 및 Windows CE에서 지원됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ "DURACELL AND INTEL ANNOUNCE 'SMART BATTERY' SPECIFICATIONS FOR PORTABLE COMPUTERS - Free Online Library". Thefreelibrary.com. Retrieved 27 October 2017.
  2. ^ "System Management Bus (SMBus) Specification Version 2.0" (PDF). smbus.org
  3. ^ "System Management Bus (SMBus) Specification Version 3.0" (PDF). smbus.org
  4. ^ a b "I2C-bus specification and user manual Rev. 6" (PDF). nxp.com
  5. ^ "APPLICATION NOTE 476 Comparing the I²C Bus to the SMBus". Maxim. 2000-12-01. 090429 maxim-ic.com
  6. ^ "Designing with SMBus 2.0" (PDF). Sbs-forum.org. Retrieved 27 October 2017.
  7. ^ "CRC-8 Calculator". Smbus.org. Retrieved 27 October 2017.
  8. ^ "CRC-8 for SMBus". Picbasic.co.uk. Retrieved 27 October 2017.

외부 링크