출처: http://blog.empas.com/shiyoul/read.html?a=15628686

PWM에 관해서

저자: Michael Barr / 주재경 역
원문: http://www.oreillynet.com/pub/a/network/synd/2003/07/02/pwm.html

PWM은 프로세서의 디지털 출력으로 아날로그 회로를 제어하는 강력한 기법이다. PWM은 계측과 통신에서 전력제어와 전력 변환에 이르기까지 광범위한 영역에서 사용되고 있다.

아날로그 회로

시간과 크기 모두에서 제한되지 않은 분해능(resolution)을 가지는 아날로그 신호는 연속적으로 변하는 값을 가진다. 9볼트의 배터리는 출력 전압이 정확히 9V가 아니라 시간에 대해 항상 변하며 임의의 실수 값을 가질 수 있다는 점에서 아날로그 기기의 좋은 예이다. 이와 비슷한 예로 배터리에서 출력되는 전류의 양 또한 일정한 값으로 제한 되지 않는다. 디지털 신호는 항상 미리 결정된 집합(0V, 5V)와 같이 제한된 집합내의 값을 가진다는 면에서 아날로그 신호와 구분된다.

아날로그 전압과 전류는 자동차 라디오의 볼륨과 같이 직접적으로 무언가를 조절하는데 사용된다. 간단한 라디오에서 손잡이(역:볼륨조절기)는 가변 저항과 연결 되어있다. 손잡이를 돌리면 저항은 커지거나 작아진다. 이 순간 저항을 통해 흐르는 전류의 양 또한 많아지거나 적어진다. 이를통해 볼륨은 증가하거나 줄어든다. 아날로그 회로는 라디오와 같이 출력이 선형적으로 입력에 비례한다.

아날로그 제어가 직관적이고 간단하게 보인다고 해서 항상 경제적으로도 매력이 있거나 실용적인 것은 아니다. 하나의 예로 아날로그 회로는 시간에 대해 항상 변한다. 그래서 수정하기가 매우 까다롭다. 이러한 문제를 해결한 정교한 아날로그 회로는 아주 크고 무거우며 비싸다( 간단히 예전의 스테레오기기를 생각해 보라). 아날로그 회로는 매우 뜨거울 수도 있다. 소모전력 은 연결된 기기를 통해 흐르는 전류와 이들 사이의 전압의 곱에 비례한다. 아날로그 회로는 제한되지 않은 분해능으로 인해 또한 잡음에 민감할 수 있다. 심지어 아날로그 신호의 아주 작은 동요도 값을 변화 시킨다.

디지털 제어

디지털화 하여 아날로그 회로를 제어하면 시스템의 가격과 전력소모는 급격히 줄어든다. 이미 많은 마이크로 컨트롤러와 DSP들은 구현을 용이하도록 하는 PWM 컨트롤러를 칩에 내장하고 있다.

간단히 말해 PWM은 아날로그 신호를 디지털화 하여 인코딩하는 방법이다. 고분해능의 카운터를 통해 사각형파의 duty cycle은 특정 아날로그 신호를 인코드 하기위해 변조된다. 직류전원 공급장치는 ON 아니면 OFF 이므로 임의의 주어진 시간에 PWM 신호는 여전히 디지털 신호이다. 일련의 반복되는ON, OFF 펄스를 통해 전압이나 전류가 아날로그 장치에 공급된다. On-time은 DC가 아날로그 장치에 공급되는 동안을 말하며 off-time은 전원 공급 스위치가 꺼진 기간을 일컽는다. 충분한 대역폭이 주어진다면 어떠한 아날로그 값도 PWM을 통해 인코드 될 수 있다.

[그림 1]은 서로 다른 세 개의 PWM을 보여준다. 그림1a는 10%의 duty cycle에서 PWM 출력을 보여준다. 즉 주기의 10%동안만 신호가 ON이고 나머지 90%동안은 신호가 OFF이다. 그림 1b와 1c는 각각 50%와 90%에서의 PWM출력을 보여준다. 이 세가지 PWM출력은 전체 강도의 10%, 50%, 90%의 서로 다른 아날로그 신호를 인코딩한다. 예를 들어 9V로 전원 공급이 이루어지고 있고 duty cycle이 10%라면 0.9V의 아날로그 신호가 결과로 나온다.



사용자 삽입 이미지

[그림 1] 다양한 duty cycle에서의 PWM신호


[그림 2]는 PWM이 사용되는 간단한 회로를 보여주고 있다. 그림에서 9V배터리가 백열전구에 전원을 공급한다. 만약 50ms동안 배터리와 램프를 연결하면 전구는 9V의 전압 을 가지게 될 것이다. 그리고 나서 50ms동안 배터리와 램트사이의 연결을 차단하면 전구의 전압은 0V가 된다. 이와 같이1초 동안 10회 반복하면 전구는 마치 4.5V의 전원에 연결되어 있는 것 처럼 전구에 불이 켜질 것이다.(9V의 50%). 이럴 경우 duty cycle은 50%가 되고 변조 주파수는 10Hz이다.



사용자 삽입 이미지

[그림 2] 간단한 PWM회로


대부분의 장치는 10Hz이상의 변조 주파수가 필요하다. 스위치를 5초 동안 ON하고 5초 동안 OFF한다고 상상해 보라. Duty cycle은 여전히 50%이지만 전구는 처음 5초 동안 밝게 빛나고 다음 5초 동안은 꺼져 버린다. 전구가 4.5V의 전압을 가지게 하기 위해서는 장치(lamp)가 스위치의 상태변화(ON,OFF)에 반응하는 시간에 비해 상대적으로 스위치를 켜고 끄고 하는 시간이 더 짧아야 한다. 전구에 빛은 들어오는 상태에서 좀더 어둡게 하기 위해서는 변조 주파수를 더욱 증가 시켜야 한다. 다른 PWM의 응용도 위의 경우와 같다. 일반적인 변조 주파수의 범위는 1kHz에서 200kHz사이 이다.

하드웨어 컨트롤러

많은 마이크로 컨트롤러가 칩상에 PWM을 내장하고 있다. Micorchip의 PIC6C67은 2개를 내장하고 있는데 각각은 on-time과 그 기간을 선택할 수 있다. Duty cycle은 on-time과 그 길이에 대한 비율이다. 변조 주파수는 그 기간의 역수 이다. PWM을 동작시키기 위해서는 데이터 시트에 소트트웨어에 대해 아래와 같은 명세가 있어야 한다.

* 사각형파 변조를 제공하는 칩에 내장된 타이머와 카운터의 길이를 설정
* PWM 레지스터의 on-time을 설정
* 범용 목적의 I/O핀인 PWM output의 방향을 설정
* 타이머 시작
* PWM컨트롤러를 가능으로 설정

PWM컨트롤러에 대한 세부적인 프로그램 명세가 다양하다 하더라도 기본적인 것은 위에 설명된 것과 같다.

통신과 제어

PWM의 장점중의 한 가지는 프로세서에서 컨트롤된 시스템에 이르는 모든 길이 디지털화 되어 있다는 것이다. 어떠한 DAC(디지털/아날로그 변환)도 필요하지 않다. 디지털 신호를 계속 유지 함으로써 잡음을 최소화 한다. 잡음은 논리적인 1을 논리적인 0으로 바꿀 만큼 충분히 강한 경우에만 디지털 신호에 영향을 준다.

아날로그 제어를 위해 PWM을 선택하면 잡음이 어느 정도 증가 하더라도 상관없으며 이는 통신을 위해 PWM을 사용하는 주요한 이유가 된다. 아날로그 신호를 PWM으로 변환하면 통신 채널의 길이를 크게 증가 시킬 수 있다. 수신 말미에 적절한 RC(resistor-capacitor) 혹은LC(inductior-capacitor)회로는 고주파 사각형파 변조를 제거할 수 있고 아날로그 형태로 신호를 만들 수 있다.

PWM은 다양한 시스템에서 응용되고 있다. 좀더 구체적인 예로, PWM으로 제어되는 브레이크를 생각해 보자. 문제를 간단히 하기 위해 브레이크를 아주 강력히 제지하는 장치로 생각하자. 대부분의 브레이크에서 제지력의 크기는 아날로그의 입력신호로 제어된다. 브레이크에 전압이나 전류가 커질수록 브레이크의 제지 압력 또한 커진다.

PWM은 다양한 시스템에서 응용되고 있다. 좀더 구체적인 예로, PWM으로 제어되는 브레이크를 생각해 보자. 문제를 간단히 하기 위해 브레이크를 아주 강력히 제지하는 장치로 생각하자. 대부분의 브레이크에서 제지력의 크기는 아날로그의 입력신호로 제어된다. 브레이크에 전압이나 전류가 커질수록 브레이크의 제지 압력 또한 커진다.

100psi의 압력을 브레이크에 설정하기 위해서 소프트웨어는 해당 크기의 힘을 얻기 위한 duty cycle을 역순으로 찾기 시작한다. 새로운 값으로 PWM duty cycle을 설정하면 브레이크는 이에 따라 반응한다. 시스템에 센서가 있다면 원하는 정확한 압력을 얻을 때 까지 closed-loop control 하에서 duty cycle을 미세하게 조절 할 수 있다.

PWM은 경제적이고 공간을 절약하며 잡음에 강하다. 이제 이걸 익혔으니 사용해 보라.
신고
블로그 이미지

꽃중년

불만있으면 떠나라...

Tag

티스토리 툴바