PMBus… 전력 시스템을 위한 국제적 언어
오늘날 많은 전자 기기들이 공동 인터페이스 기법과 언어로부터 혜택을 받고 있다. 예를 들어, USB(Universal Serial Bus)는 개인용 컴퓨터 및 각 기능에 연결될 수 있는 다양한 주변기기로 연결한다. 새로운 전력 관리 통신 표준(PMBus)도 USB와 같은 장점을 제공할 것으로 기대된다. 이 기고문은 PMBus 스펙을 2부분으로 나눠 고찰하고자 한다. 1부는 일반적인 요구조건, 전송 및 전기적 인터페이스에 중점을 두며 SMB기반형의 물리계층을 기술하고자 한다. 2부에서는 데이터 명령어 및 전력 서비스 컨트롤러, 즉 시스템 호스트 및 전력 디바이스 간의 통신을 위한 포맷에 대해 명시하고 있다. 이어 PMBus가 시장 초기에 어떻게 어느 분야에서 구현될 것인가에 대해서도 알아본다.
글│데이브 프리만(Dave Freeman), 텍사스 인스트루먼트
효과적인 커뮤니케이션에서는 적절한 언어가 중요하다. 이것은 인간 사이의 커뮤니케이션에서 뿐만 아니라 시스템 전력 관리 리소스 사이의 통신에서도 적용된다. 전기 시스템의 통신은 지속적인 변화를 겪으면서 느린 속도로 진화하고 있다. 한 가지 예는 USB (Universal Serial Bus)이다. USB 이전에, 시스템 주변기기는 다양한 인터페이스 방식을 통해 연결됐다. 저속 디바이스들은 RS-232를 제공하는 단순한 UART를 이용해 일반적으로 연결했고 고속 디바이스들은 병렬 포트를 이용해 연결했다. 이는 "센트로직스 인터페이스(Centronics Interface)"만큼 단순하며 대용량 저장 디바이스를 인터페이스 하는 SCSI처럼 정교할 수 있다. USB는 PC 마우스처럼 저속 디바이스를 위한 효율적인 통신 방식에서 하드 드라이브 저장 및 FLASH 디바이스처럼 고속 디바이스를 위한 효율적 통신 방식으로 진화되었다. 또한, 표준 드라이버는 HID(Human Interface peripheral)를 위해 개발되었으며, 이 드라이버 원리는 실시간 PID(Physical Device)로 확장되고 있다. 물리 계층과 데이터 교환의 결합이 컴퓨터와 주변기기간의 통신을 위해 "공통언어(Com-mon Language)"로 제공된다.
효율적인 통신은 전력 시스템이 점점 통합되고 시스템을 통해 관리됨에 따라 요구되고 있다. 이는 USB처럼 다양한 범위의 요구조건을 책임져야 하며 응용할 수 있는 최종 장비 모두에 수용되는 표준을 제공해야 한다. 전력 통신은 새로운 것이 아니며 이것은 표준 솔루션을 정의할 때 과제를 추가시킨 것이다. 수많은 제조업체들은 10년 이상 동안 독자적인 전력 시스템 통신을 사용해 왔다. 이 같은 관행 때문에 표준을 재정립할 필요가 생긴 것이다.
이것은 1995년 SBS(Smart Battery System) 표준이 제안되었을 때와 같은 상황이다. 대부분의 휴대형 컴퓨터 제품은 배터리 관리를 위해 독자적인 통신 방식을 개발해 왔었다. 시스템의 복잡성은 간단한 모니터링에서부터 고성능 배터리 및 방전 제어에 이르기까지 퍼져 있었다. SBD(Smart Battery Data) 스펙, 시스템 관리 버스, 스마트 배터리 충전기 스펙의 결합은 완벽한 배터리 관리를 적응시킬 수 있는 시스템을 고안해 냈다. 이 시스템에서, 스마트 배터리는 SMBus에 대한 충전기로 통신할 수 있으며 충전 전압 및 전류 작동 조건을 설정할 뿐만 아니라 아웃-오브-바운드(Out-of-Bound) 활동을 제한하는 임계값을 설정한다. 이것은 개방형 통신 표준에서 표준 전원 공급장치 관리를 구현하는 최초의 시스템 중의 하나이다.
전원 공급장치 업계는 전력 시스템 통신을 통해 능동적인 전력 관리의 이점을 인식하고 있다. 디지털 제어형의 전력 개발의 관점에서, 통신을 위한 표준어는 자연스런 "맞춤"이다. 아테신 테크놀로지(Artesyn Technology)는 여러 전원 공급장치 및 반도체 제조업체들을 모아 전력 관리 통신용 표준 프로토콜을 개발했다. 이 그룹은 2005년 3월에 PMBus 스펙을 출시했다. PMBus 스펙은 데이터 전송 및 명령-앤드-데이터 포맷 모두에 적합한 개방형 표준을 제공함으로써 스마트 배터리 표준을 모방했다. PMBus 그룹은 데이터 전송 수단으로 SMBus 스펙을 채택했다. 공통 스펙은 스마트 배터리 시스템과 PMBus의 공생 관계를 만들어, 이러한 조직들은 시스템 관리 인터페이스 포럼(SMIF: System Management Interface Forum; www.powersig. org)을 구성하기 위해 모였다. SMIF의 일부인 PMBus 그룹은 개정, 새로운 스펙 및 PMBus의 마케팅의 임무를 수행한다. 이 그룹은 PMBus 개발을 촉진하기 위해 부수적으로 업계를 지원하기도 한다.
PMBus(Power Management Bus)
PMBus 이면의 원칙은 SBS와 유사하다. 두 가지 모두 기본 명령어와 데이터에서 작동해 전력 및 단순하고 저렴하며 신뢰성이 높아야 하는 통신 프로토콜을 관리한다. PMBus 스펙은 SBS처럼 2가지 파트로 나뉘나. PMBus의 상응하는 부분은 "1부-일반 요구사항, 전송 및 전기 인터페이스"와 "2부-공통어" 이다. 2가지 파트로 스펙을 분리하는 것은 동시에 진행되는 변화 없이도 파트 중 하나를 변경할 수 있게 한다.
1부 - 일반적인 요구사항, 전송 및
전기 인터페이스
PMBus의 1부에서는 기본 스펙으로 SMBus 1.1 사용한다. SMBus 1.1과 SMBus 스펙의 가장 최신 버전인 SM-Bus 2.0 간의 주요한 차이점은 버스 어드레스 중재(Arbitration)이다. PMBus는 이 특징이 필수적이지 않음을 결정한다. 대부분의 경우 각 전원 공급장치의 어드레스가 물리적 위치 및 시스템 기능을 나타내기 때문이다. 이것은 어드레스 중재가 실질적인 혜택 없이 PMBus 솔루션에 복잡성을 추가할 것을 결정한다.
SMBus 1.1과 SMBus 2.0 사이의 또 다른 차이점은 SMBus 2.0이 고전력 DC 스펙을 포함하고 있다는 점이다. SMBus 1.1은 클록 및 데이터 풀-업(pull-up)을 최대 350uA까지 제한한다. SMBus 2.0에서, 이 제한은 저전력 DC 스펙으로 설명된다. SMBus 2.0 고전력 DC 스펙은 풀-업을 가능하게 해 최고 4mA를 소스시킨다. 어느 경우이건, 이 디바이스는 클록 또는 데이터 라인을 저전력 출력 동안 0.4V 미만으로 "끌어내려야(Pull)"한다. 디바이스가 PMBus를 준수한다고 해도, 디바이스가 클록 및 데이터 라인을 0.4V 미만으로 끌어 내리면서 350uA로 싱킹(Sinking)한다면, 이러한 디바이스에서 더욱 강력한 풀-다운(Pull-Down) 성능을 가지는데 이로울 수 있다. SMBus 2.0에서 고전력 DC 스펙을 사용하는 것은 잡음 면역성을 향상시킬 수 있다.
PMBus는 두 가지의 필수 신호인 클
록(SCL)과 데이터(SDA)의 경계 범위를 한정한다. PMBus 1.0은 3가지의 선택 신호를 가능하게 한다. PMBus 필수 및 선택 신호는 그림 1에 나타나 있다. SMBALERT# 신호는 SMBus 1.1 스펙 부록 A에 설명되어 있는 것처럼 동일한 방법으로 사용된다. SMBALERT#는 유선형의 신호이며 PMBus 마스터의 관심이 필요한 슬레이브 디바이스에 의해 "낮게 끌려 간다.(Pull Low)" SMBALERT# 신호가 낮게 될 때 이 때 마스터 디바이스는 PMBus에 경고 반응 어드레스(Alert Response Address)를 보낸다. 경고 반응 어드레스 전송을 따르는 각 경고 디바이스는 이 때 마스터 디바이스에 의해 클록될 때 SDA에 디바이스 어드레스를 놓는다. 버스에 어드레스를 놓는 각 디바이스는 트랜잭션 기간 동안 데이터 라인을 모니터 해야 한다.
디바이스가 데이터 라인이 낮은 것을 찾는다면 높은 비트를 전송할 때 또 다른 디바이스가 더 높은 우선 순위를 갖고 반응하는 것을 의미한다. 일단 디바이스가 성공적으로 버스에 디바이스 어드레스를 위치시킨다면, 이 디바이스는 SMBALERT# 라인을 방출해야 한다. 이 신호가 "옵션"으로 명시돼 있어도 이용하는 것이 낫다. 이 밖에 제조업체들은 PMBus 솔루션 제공업체가 이용할 수 있는 SMBALERT# 신호를 요구한다.
In SMBALERT# 라인 이외에, 2개의 다른 선택적 라인도 있다. 선택적 제어 신호(CONTROL)는 PMBus 구현의 전원 공급장치의 출력을 "끄게"하는 신속한 기법을 제공한다. CONTROL 신호는 많은 시스템 제조업체들이 필요로 할 것이다. 선택적 쓰기 보호 신호(WP)는 계획하지 않는 변경에서 데이터 및 프로그램 정보를 보호한다. WP 신호는 시스템 제조업체들이 덜 요구하게 된다. CONTROL 및 WP 신호를 위한 전압 레벨은 슬레이브 로직 레벨을 준수해야 하며 대부분의 경우 PMBus 로직 레벨과 동일하게 될 것이다. CONT-ROL 및 WP 신호는 슬레이브 디바이스가 하나 이상일 수 있다.
SMBus 1.1은 PMBus 1.0을 포함해 스펙이 확장된 것이다. 이 확장은 그룹 커맨드 프로토콜(Group Command Protocol)로 STOP 비트 검출에 기반한 멀티플 디바이스 동기화를 가능하게 하다. 그림 2에서 보이는 이 프로토콜에서, 각 슬레이브 디바이스는 선택형 패킷 에러 체크(PEC: Packet Error Check) 바이트와 함께 적절한 명령 및 데이터를 어드레스하고 전송한다. 그러나, STOP 비트는 통신의 끝 부분에서 전송되지 않으며 대신 되풀이되는 START 비트는 다음 디바이스를 위해 어드레스, 명령 및 데이터에 의해 따르도록 전송된다.
이것은 적절한 디바이스 모두가 구성될 때까지 지속된다. 최종 디바이스 구성 패킷의 끝 부분에서 STOP 비트는 전송된다. 그림 2에서 보이는 것처럼 그룹 패킷 당 하나의 명령이 그룹 내에서 각각 어드레스로 전송되는 것이 가장 추천할 만하다. STOP 비트의 검출에서 모든 디바이스는 전송된 명령으로 작동한다. 이런 방식으로, 멀티플 디바이스들은 PMBus에서 동기화될 수 있다. 동기화의 또 다른 기법은 이전에 설명한 CONTROL의 사용이다.
PMBus 1부 - 구현 문제
I2C 파생 버스용으로 설계할 때, 일부 엔지니어들은 어려움을 겪었다. I2C 스펙을 따를 경우, 타이밍 요구조건은 매우 중요했는데 오류 검출 혹은 계획되지 않은 START나 STOP 비트라는 공통적인 문제를 갖고 있었다. START 비트가 검출될 때, 슬레이브 디바이스는 디바이스 어드레스 "찾기" 를 시작한다. 이것이 오류 START 비트일 경우, 이 때 디바이스는 디바이스 어드레스 및 반응으로써 적절히 버스에 대한 데이터를 중단시킬 수 있다. START 비트의 오류 검출은 심각한 오류이며 동시에 버스에 접속되는 여러 개의 슬레이브를 발생시키는 원인이 된다. 계획되지 않은 STOP 비트 검출은 데이터 전송의 조기 종결의 결과를 가져 올 것이다. 이러한 문제는 모두 데이터의 최소 스텝-업 또는 정지 시간을 만족하지 않을 경우 발생할 수 있다. 그림 3은 이러한 문제를 위한 대처 영역을 보여준다. 이러한 문제들은 버스 커패시턴스가 추천된 것보다 더 높다면 발생할 수 있다.
이러한 문제들은 "비트-뱅" 솔루션이 범용 I/O 핀의 소프트웨어 제어를 사용해 구현될 때 발생할 수 있다. 이 규칙은 단순하다. 데이터 신호가 변경될 때 클록 에지에서 떨어져 있다. 설계 기간 동안, 모든 PMBus 디바이스의 클록 및 데이터 핀에서 타이밍은 점검되어야 한다. 여기서 모든 가능한 PMBus 디바이스를 온라인으로 PMBus 시스템을 테스트하는 것은 좋은 아이디어라 할 수 있다.
계획되지 않은 START나 STOP 비트 검출뿐 만 아니라 부정확한 비트 값이 버스 상의 "잡음"으로 인해 발생될 수 있다. 전원 공급장치는 매우 잡음이 많을 수 있다. 문제를 일으키는 잡음 유형의 하나는 버스 상의 다양한 디바이스들 간에 접지 상승이다. 낮은 신호를 위한 스펙은 최대 0.8V이며 높은 신호를 위한 스펙은 최소 2.1V이다. 언급한 대로, PMBus 디바이스는 0.4V 미만으로 라인을 "끌어야"만 한다. 접지 상승 및 풀-업 전류의 결합은 디바이스 핀에서 0.8V보다 더 큰 계획된 낮은 신호를 발생할 수 있다. 이 때 데이터는 오류를 일으킬 수 있다. 접지 상승 문제는 시스템을 점검할 때, 특히 시스템이 약간 부하가 걸린 경우에 인지되지 않을 수 있다.
PMBus는 오랫동안 스펙을 따르는 동안 가장 강력한 프로토콜이다. 이 문제 영역은 클록이나 데이터 모두에 변환될 수 있다. 옵토-커플러 및 아이솔레이터와 같은 디바이스들은 디바이스 핀에서 스펙 위반 때문에 통신 오류를 일으키는 변환 시간에 추가될 수 있다.
2부 -명령어
PMBus의 2부에서는 명령어를 정의한다. 명령어는 PMBus 가능형 전력 시스템의 특수 작동 코드를 포함해 제조 및 작동 시간 관리를 지원한다. 100개 이상의 베이스 명령 코드뿐 만 아니라 특정 제조업체 및 사용자 명령을 보유한 코드가 존재한다. 게다가, 명령-코드 공간은 베이스 명령의 미래 확장을 위해 지정된다. 대부분의 PMBus 디바이스들은 모든 PMBus 명령을 구현할 것 같지 않다. PMBus 1.0 스펙은 적어도 비제조업체의 명령 중의 하나를 구현하기 위해 호환형 PMBus 디바이스를 필요로 한다. 스펙 역시 베이스 명령-코드를 사용하는 PMBus 디바이스를 요구해 PMBus 준수하기 위해 PMBus 스펙에서 설명되듯이 이 명령을 구현된다.
다양한 PMBus 디바이스의 복잡도 레벨을 수용하기 위해, 명령을 지원하지 않는 PMBus 마스터를 통지하는 컴플라이언스 요구조건은 매우 유연하다. 첫 째, 디바이스들은 명령 코드를 단순히 NAK 할 수 이다. 이것은 PMBus 마스터에 부담을 최소한으로 줄 것이다. PMBus 슬레이브 역시 그 다음 데이터 바이트를 NAK 할 수 있다. 이것은 실질적으로 초기에 수행되는 것이 선호된다. 또 다른 선택은 명령과 데이터를 ACK하는 것이다. 그러나 문제가 존재하는 호스트에 경고를 보낸다. 그 후에, 호스트는 STATUS_BYTE를 읽어 지원 문제가 존재하는 것을 결정한다. 기본적인 문제는 NAK이 여러 개의 다른 문제 중의 하나를 의미한다는 것이다. 즉, "너에게 듣지 못했다", "너를 지원할 수 없다" 혹은 "이해할 수 없다"를 의미한다. 따라서 NAK을 사용할 때 모호하지 않게 하는 것이 중요하다.
PMBus 스펙은 적어도 2가지 포맷에서 엔지니어랑 값을 지원한다. 이 포맷은 문자 그대로 및 직접적으로 정의된다. 문자식 포맷은 볼트, 암페어, 밀리세컨즈, 혹은 ºC의 엔지니어링 단위에서 데이터를 교환한다. 이 포맷은 시스템 측면의 최소한의 노력을 요구한다. 값들이 해석을 위한 추가적인 정보를 필요로 하지 않기 때문이다. 그러나, 이것은 슬레이브를 더욱 복잡하게 한다. 그 이유는 내부 수치가 엔지니어링 단위로 전환되어야 하기 때문이다.
직접적인 기법은 데이터 교환을 요구하기 때문에 시스템 측면에 부담을 가중시킨다. 이 기법을 사용하기 위해, 호스트는 내부 슬레이브 단위에 호스트 단위의 번역에 대한 정보를 가지고 있어야 한다. 슬레이브에서 슬레이브에 이르는 모든 통신은 슬레이브의 내부 단위에 있다. 이것은 호스트 측면의 복잡도를 희생시켜 슬레이브 연산 요구조건을 단순화시킨다.
출력 전압은 리터털(Literal), 직류(Direct), VID 이렇게 3가지 포맷으로 지원된다. PMbus 통신의 대역폭으로 인해, VID 조정은 동적 프로세서 전력을 위한 필수 타이밍을 만족시킬 수 없다. 그러나, VID는 전압 출력을 관리하는 단순한 방법으로 호스트 혹은 슬레이브 디바이스에서 복잡도의 높은 레벨을 요구하지 않는다.
PMBus 명령어는 다양한 레벨의 제조 및 전원 출력과 제한의 실시간 조정을 지원한다. 지원 레벨의 한 예는 출력 전압이며 PMBus 스펙의 섹션 8,9, 13에 다뤄지고 있다. 호스트는 VOUT 모드를 설정해 출력 전압 포맷의 형태를 구성한다. 이 명령은 새로운 모드 혹은 초기화를 위해 유일하게 선택할 수 있도록 사용된다. 이 다음 단계로, 호스트는 VOUT_COMMAND, VOUT_ MARGIN _HIGH, 혹은 VOUT_MARGIN _LOW를 사용해 제어(CONTROL) 신호나 작동(OPERATION) 명령의 구성에 따라 출력 전압을 설정한다. 작동 명령 이전에, 다양한 다른 명령은 출력 전압을 정확하게 설정하기 위해 모듈 및 시스템을 보정하는데 사용된다.
모듈 명령은 다음과 같다:
OUT_CAL: 모듈 혹은 디바이스 제조업체 오프-셋 수정
OUT_TRIM: 인-시스템 오프-셋 수정
OUT_SCALE_LOOP: 루프 제어를 위한 디바이더 비율 값
OUT_SCALE_MONITOR: 전압 모니터링을 위한 디바이더 비율 값
OUT_DROOP: 제조업체 혹은 시스템 어댑티브 전류 수정
그림 4는 출력 전압을 조정하기 위해 VOUT 출력 OPERATION 명령을 번역할 때 이러한 명령이 어떻게 사용되는 가를 보여준다. 이 모듈 명령은 요청된 전압을 내부 값으로 바꾼다. 이 내부 값은 이 때 출력 전압의 조정에서 사용된다. 그림 4의 회색 박스는 작동 시스템기간 동안 일반적으로 변경되지 않는다. 이 기능의 설명은 PMBus 스펙에서 찾아 볼 수 있다.
결론
전원 공급장치 통신은 수 년 동안 고성능 시스템의 중요한 부분이었다. 디지털 제어형 전력의 등장으로 인해, 이에 전력 통신은 더욱 광범위한 애플리케이션으로 확장될 수 있다. 전력 통신을 위한 개방형 산업 표준이 필요하며, 시스템 측면의 소프트웨어의 개발은 수많은 서로 다른 명령어 및 프로토콜에 부담을 주지 않는다.
PMBus 스펙은 강력하고 유연한 명령어를 제공해 전력 통신 문제를 해결하며 업계 전반에 걸쳐 채택할 수 있는 개방형 표준을 제공한다. PMBus 전송 층은 시스템이 스펙 내에서 설계되는 경우 로컬 레벨에서 신뢰성 높은 통신을 위해 알맞은 스펙을 제공한다. 결국, 통신 오류는 발생하지 않으며, 이 때 PEC는 문제를 발견하기 위해 사용될 수 있다.
일반적인 시스템은 PMBus 명령어의 모든 용어를 구현하지 않을 수 있다. 그러나, 호스트가 구현 레벨을 확인할 수 있도록 스펙내에서 의미가 존재한다. 결국, 시스템 제조업체들은 대부분의 솔루션으로 요구될 PMBus의 표준 집합을 구축할 수 있다. 이 같은 발전은 스마트 배터리 시스템의 도입초기에 겪어왔던 것과 유사하다. 전력 통신을 위한 전력 표준의 경우, 디지털 전력 관리는 광범위한 애플리케이션으로 빠르게 이동시킬 것이다.
<자료제공: 월간 반도체네트워크 2006년 09월호>