본문
PLL (Phase Locked Loop)
일단, 말부터 한번 풀어보도록 하겠습니다. Phase Locked Loop. 위상고정루프. 이름만 보면 파형의 위상을 고정해주는 회로같은데.. 아마 어떤 loop를 가지고 제어하는 놈 같습니다. 위상을 고정한다.. 라는 개념은 아날로그 RF엔지니어 입장으로 처음에 들으면 좀 갸우뚱합니다. 왜냐하면 PLL로 위상을 맞추려는 용어의 근원은 디지털 클럭동기에 있기 때문입니다.
디지털 클럭을 이용하는 디지털 신호전송에 있어서.. 들어오는 신호가 0인지 1인지 명확히 구분하려면, 적어도 1과 0을 판별해야 하는 range를 먼저 정확히 정의해야 할 것입니다. 이것은 결국 하나하나의 클럭이 시작되고 끝나는 지점을 명확히 알아야 한다는 것을 의미하겠죠. 하지만 무선 혹은 유선상으로 신호를 보내면 신호경로에 따라 신호 delay가 생기고 당연히 위상이 변하기 때문에, 수신측에서 보기엔 어느 point를 시작과 끝점으로 0과 1을 판단해야 하는 것인지 모호하게 되어 버립니다. 그럴 때 무엇이 필요할까요? 바로 클럭의 시작과 끝을 정확히 맞추어주는, 즉 동기(synchronization)시켜줄 무엇인가가 필요합니다. 그리고 이렇게 한 주기의 시작(0도)과 끝(360도)을 맞추어준다는 것은, 들어오는 신호가 어떻게 들어오던 간에 결국 특정 위상점에서 들어오는 것처럼 고정(lock)하는 것입니다. 바로 이렇게 주기적 신호의 위상을 원하는대로, 흔들리지 않는 정확한 고정점으로 잡아주기 위해 만들어진 회로가 바로 PLL인 것이죠. 이런거 할라고 만들어진 놈입니다. 디지털 신호전송과 통신에 결정적인 역할을 하는, 그래서 디지털 분야는 물론 아날로그 전자회로 시스템에서 졸라 광범위하게 사용되는 회로구성법입니다. 이렇게 광범위하게 사용되는 PLL이 RF에선 어떤 용도로 사용되게 될까요? 이 강의는 철저하게 RF입장에서 바라본 관점에서 이야기를 풀어나갈 것입니다.
Analog RF에서 PLL이 하는일
원리는 뭐 그렇다쳐도 우선 PLL이 RF에서 할 수 있는 일이 무엇인가, 그것이 중요합니다. 신호를 특정 위상으로 강제적으로 계속 유지되도록 해주는 PLL은, 디지털에 적합해보이지만 굳이 디지털 용으로만 쓰란 법은 없습니다. 중요한 것은, 위상을 고정한다는 개념과 주파수를 고정한다는 개념은 거의 같은 의미라는 점입니다. 원래 개념적으로 위상은 주파수를 적분한 개념입니다. 그래서 PLL은 RF에서 만큼은 주파수를 고정하는 용도로 주로 사용되게 됩니다. 주파수원(source)로 사용되는 주파수가 흔들리는 것을 잡아주기 위한 목적이지요. RF시스템이라면 당연히 주파수원이 필요할 것이고, VCO를 통해 주파수원을 끌어오게 됩니다. 하지만 발진기를 만들거나 다루어보신 분은 아시겠지만, 출력주파수가 주변상황에 많은 영향을 받게 됩니다. 회로적 영향 및 주변 장비의 영향, 온도와 날씨의 영향등에 의해 출력주파수는 미세하게 흔들려서 다른 주파수로 가는 일이 허다합니다. 이렇게 되면 RF 시스템이 정상적으로 작동하기가 힘듭니다. 특히 주파수를 잘 게 쪼개서 사이좋게 (사실은 국가에서 다 잘라서 나누어준 것일 뿐이지만) 나누어 쓰는 현대의 무선통신 시스템에서, 주파수안정도는 너무나도 중요한 항목이 됩니다. 이을용이 공을 정확히 센터링 해줘야 안정환이 골을 넣고 팀의 목적인 승리로 이끌 수 있듯이, 각종 mixing과 증폭과정을 통해 신호를 정확하게 처리하려면 VCO에서부터 주파수(=축구공?)를 정확하게 쏴주어야만 RF 시스템이 제 목적대로 움직이게 되는 것입니다. 축구에서는 안정환 혼자서 공을 몰고 가서 골을 넣을 수도 있겠지만, RF 시스템에선 mixer나 amp 혼자 개인기를 발휘하지 못합니다. 위상을 고정하는 방법을 그대로 응용하여 주파수가 흔들리는 것을 잡아주는게 PLL의 주목적이긴 하지만, RF에서는 주파수 튜닝의 역할도 함께 하고 있습니다. PLL을 조절하여 디지털 클럭을 임의의 위상에 맞출 수 있듯이, Analog RF 신호 역시 PLL의 특정 part를 가변하여 출력 주파수를 원하는 주파수로 가변시킬 수 있습니다. 이러한 가변역할을 겸하게 되는 경우는 Frequency Synthesizer(주파수합성기)라는 용어로 PLL을 표현하기도 합니다. 간혹 PLL = 주파수합성기 아니냐고 생각할 수도 있는데, 그건 아닙니다. 엄밀히 말하면 PLL은 이러한 주파수 합성기를 구현하는 여러 방법론 중 한가지 적용예입니다.
RF에서 PLL이 하는 일을 정리하면 아래와 같습니다.
1. 주파수원이 흔들리지 않도록 고정해준다.
예) : 836.5MHz의 주파수원이 주변환경에 따라 흔들려서 832MHz나 840.2MHz처럼 이상한 주파수로 가 버리면 정상적인 RF신호처리가 될리가 만무하쥐~
2. 주파수원을 정확하게 가변한다.
예) 하나의 시스템에서 836.5MHz의 주파수원을 1.2MHz 간격으로 다른 주파수로 바꾸고 싶은데.. 837.7 MHz, 838.9 MHz 뭐 이런 식으로 하고 싶을 때... 뭐든지 간에, " 무엇에 쓰는 물건인고? " 를 알면 반은 해결됩니다. 그렇다면 어떤 원리로 PLL은 이렇게 주파수 고정과 가변을 할 수 있는 것인지 이제부터 풀어보겠습니다.
주파수가 흔들리니 내 마음도 흔들리네
주파수를 고정해야 할 필요가 있다는 것은, 주파수가 흔들린다는 얘기입니다. 다시 말해서 VCO에서 800MHz를 내보내기를 원했는데, 상태가 조금만 안좋아도 801MHz나 799MHz 와 같이 삑사리난 주파수가 나올 수 있다는 것이 문제입니다. 그렇다면, 이것을 해결하기 위해 어떤 아이디어로 접근해야 할지 순서대로 정리해보도록 하겠습니다. 우리의 주요 목적은 삑사리난 주파수를 제자리로 돌려놓자 입니다. 이것을 생각하기 전에 가볍게 VCO의 단순한 동작원리를 생각해봐야 합니다.
위의 그림에서 처럼, VCO의 전압조절단자에 어떤 전압이 들어가느냐에 따라 출력 주파수가 바뀝니다. 만약 여기서 2V가 들어가면 800MHz가 나오고, 2.1V가 나오면 810MHz가 나온다고 가정해보지요. 더욱 쉬운 이해를 돕기 위해 가상의 표로 만들어 보았습니다.
800MHz의 주파수출력을 얻고 싶어서 2V를 집어 넣었습니다. 그래서 한동안 잘 쓰고 있는데.. 갑자기 주변온도가 크게 변해서 2V를 넣는데도 810MHz가 나와 버렸습니다. VCO 자체 특성상 이런 일이 발생하는 경우가 많습니다. 커허 곤란하죠.. 자, 그렇다면 이 출력을 다시 800MHz 출력으로 바꾸려면 어떻게 하면 될까요? 너무 쉬운가요? 0.1V 올릴 때마다 출력 주파수가 10MHz씩 올라가 버리니까, 아예 입력전압을 0.1V 낮추어 입력하게 되면 주파수도 10MHz 내려서 나오게 될 것입니다. 즉 이렇게 온도가 변해 버린 상황에서는 1.9V를 입력하여, 10MHz 높게 출력되어 버리는 것을 보상해버려서 800MHz가 나오게 하는 것입니다.
즉, 입력전압에 따라 출력주파수가 일정치 않게 되어버리는 주파수흔들림 문제를 해결하려면, 원하는 출력주파수가 나오도록 억지로 전압을 가변해 버리면 됩니다. 위의 예는 이해를 돕기위해 매우 단순한 현상처럼 정량화해서 표현되었지만, 실제는 그렇게 정확하게 딱딱 떨어지지 않습니다. 중요한 점은 이렇게 입력전압을 절묘하게 계속 조절하면 언제나 원하는 주파수출력이 나오게 만들 수 있다는 것, 그것이 PLL이라는 구조를 사용할 수 있게 되는 원초적 원리입니다. 결국 PLL이 하는 일은 X나게 뺑뺑이를 돌면서 원하는 출력주파수가 나오는 전압값을 억지로 계속 찾아서 맞춰줍니다. 참 수고가 많은 놈입니다.
주파수를 잡아라 - 발상의 전환
초보자시절에 보면 PLL이 괜시리 복잡하고 정교해서 어려워 보이는데, 왜일까요? 그것은 이미 복잡하게 만들어져 있는 PLL을 들여다봤기 때문에 어려워 보이는 것입니다. 발상을 바꿔서 거꾸로 들여다 보도록 하지요. PLL이 뭐 어떻게 생겨 먹은 놈이건 간에, 흔들리는 VCO 출력주파수를 잡기 위해서 어떤 방법을 고안해낼 수 있을까 를 역으로 차근차근 생각해보자는 것입니다. 위에서 내려다보는게 아니라, 밑에서부터 하나하나 구성해나가다 보면 PLL을 이해하기가 한결 쉬워집니다. 일단 보시져. 우선, 우리의 애물단지 주파수원인 VCO 그림을 다시 한번 슬쩍 보구서..
일단 삑사리가 났다는 것을 알려면, 현재 얼마의 주파수가 나오고 있는지 출력결과를 보고 알아낼 수밖에 없습니다. 그러려면 출력의 결과를 입력에서 참조하는, feedback(궤환) loop가 필요할 것입니다.
자, 그럼 이제 입력쪽에서 출력이 얼마의 주파수가 나오고 있는지 알았습니다. 그렇다면 이걸 어떻게 활용할 수 있을까요? 여기서 뭔가 비교기능을 해야 하는 회로가 필요함을 직감적으로 알 수 있습니다. 여하튼 결과를 따왔으면 그게 맞는지 틀린지는 정답과 비교해서 채점해봐야겠죠.
막상 정답과 비교해서 출력이 원하는 값인지는 알아야겠는데.. 그렇다면 정답은 무엇일까요? 찬찬히 생각해보면 어떤 고정된 기준값과 현재의 출력값을 비교해서, 출력값에 뭔가 문제가 있는지 없는지 알아낼 수 있음을 알 수 있습니다. 여기서 정답이란, 원래 나와야 할 주파수값을 말하는 것이기 때문에 아래와 같은 비교구조를 생각할 수 있게 됩니다.
보통 Phase Detector (P/D)라 불리우는 이 비교기는, 두 개의 주파수신호 입력을 받아서 두 개가 얼마나 주파수/위상차가 있는지를 알아내는 놈입니다. 두 개의 주파수 입력신호가 완전히 동일한 주파수만 들어오고 있다면 P/D는 별로 할 일이 없겠죠. 하지만 어느 한쪽 신호가 주파수가 변한다면(결국 위상이 변하는 것), P/D는 그 차이에 해당하는 특정한 클럭을 생성해냅니다.
위의 P/D 출력펄스가 나오는 과정그림을 찬찬히 잘 들여다보시기 바랍니다. P/D의 출력은 두 입력신호 위상 차이에 의존한 펄스가 출력되게 됩니다. 펄스의 크기는 일정하지만, 두 신호의 차이에 따라 펄스의 폭이 달라지고, 어긋나는 순서에 따라 부호가 바뀌게 됩니다. 이 원리를 잘 이용하면 원래 나와야 할 신호파형과 현재 출력되고 있는 신호파형의 차이가 정량적으로 계산되게 됩니다. 현재 모양은 아날로그 RF파형이 아닌 디지털 펄스처럼 묘사했는데, 이유는 나중에 밝힐 것입니다. 어쨋거나 두 신호간의 차이가 P/D를 통해 계량화된다는게 중요합니다. 하지만 VCO의 Control voltage 입력은 특정 레벨의 전압값을 받게 되어 있기 때문에 P/D 펄스출력과 VCO 전압입력은 1:1로 매치시킬 수가 없습니다. 보시다시피 P/D 펄스출력은 전압은 일정하고, 펄스폭이나 부호에 의해 어떤 의미를 전달하고 있기 때문입니다. 우리에게 필요한 것은, 그 차이에 의한 펄스폭과 부호를 어떤 특정한 전압레벨로 변환하는 것입니다. 일단 개념적으로 생각하면 펄스의 폭만큼 적분하면 주파수차이만큼의 양이 비례적으로 전압값 변화로 나타날 것이란 것을 알 수 있습니다.
이 중간 변환 회로가 있음으로써, 두 주파수차이에 해당하는 P/D 출력펄스 신호가 VCO 조절단자 입력을 제어할 수 있는 아날로그 전압값으로 변환되게 됩니다. 자, 이것으로서 개념적으로 주파수 흔들림을 보정할 수 있는 회로가 만들어집니다.
① 출력주파수 결과를 feedback 받아서
② P/D에서 원래 나와야 할 주파수 값과 비교해서
③ 두 주파수의 차이에 해당하는 펄스를 생성해내고
④ 그 값을 적절한 전압값으로 변환하여 VCO의 Control voltage 입력에 넣음 예를 들어 출력주파수가 원하는 값 800MHz가 나오고 있다면, P/D에서는 아무 펄스가 안나오거나 아니면 정해진 기본 펄스만 나오게 될 것입니다. 만약 원래 기본상태에서 VCO 조절단자에 2V를 입력해야 800MHz가 나오게 된다면, 출력주파수가 정상일 때는 펄스/전압변환기가 2V 출력을 내도록 회로적으로 구현하면 됩니다. 문제는 주파수가 틀리게 나왔을 때가 문제이죠. 저~~ 위의 사례처럼 2V를 입력해서 800MHz가 나와야 되는 상황인데, 2V를 넣었는데도 그만 VCO가 열받아서 810MHz가 나왔다고 치지요. 그렇다면 P/D에서는 원래 나와야할 기준주파수 800MHz와, 출력에서 feedback되어 검출된 810MHz 의 차이인 10MHz에 해당하는 어떤 정해진 폭의 펄스가 출력될 것입니다. 저 위의 사례에 나와있듯이, 이렇게 삑사리 난 경우는 VCO 입력에 2V가 아니라 1.9V가 강제로 입력되어야 원래 원하던 800MHz가 나오게 됩니다. (10MHz씩 전체적으로 밀린 경우이므로) 위의 경우 P/D 출력에서 10MHz의 차이에 의한 펄스가 변환기에 들어온다면, 변환기에서 1.9V가 출력되도록 회로적으로 구현할 수 있습니다. 자세한 회로도를 그리기엔 복잡하니까 생략하지만, 어쨌거나 원하던 주파수와 출력 주파수와의 차이가 발생해 버리면, 그 차이에 해당하는 펄스값을 적당히 조절하여 보정가능한 전압출력(=VCO조절입력)으로 변환할 수 있고, 그것으로서 VCO의 출력 주파수를 억지로 원하는 값으로 돌려놓을 수 있다는 점, 이것이 핵심입니다! 머리만 잘~ 짜서 구현하면 저런 방식으로 자동 주파수 보정이 가능합니다. 물론 잘 동작하게 만들려면 실제 사용하는 VCO의 전압-출력 주파수 특성관계를 잘 파악하고, 펄스를 전압으로 변환하는 회로를 잘 조정해야 합니다. 잘만 만들면 주파수 안정화용으로 충분히 이용 가능한 회로구조라는 점만 대략 이해하실 수 있으면 됩니다. 이것으로서 주파수 고정이 완전하게 이루어지느냐?? 면 물론 그렇지는 않습니다. 이제 시작입니다. 하지만 위 기본개념만 잘 이해하시면 나머지는 술술 이해될 것입니다. 이제 이러한 기본구조를 강화하기 위해 필요한 추가개념들을 순서대로 하나하나 짚어보도록 하겠습니다.
기준주파수 (Reference Frequency)
위의 구조는 대충 원리적으로 동작이 잘 될 것 같은데, 한가지 아주 중요한 맹점이 있습니다. 바로 기준 주파수입니다. 위의 논리에 의하면, 기준 주파수 역시 출력 주파수와 같은 주파수를 써야 하며, 흔들림 없이 고정되어 있어야 합니다. 어라? 뭔가 이상하지 않습니까?
그렇게 잘 안정된 기준주파수가 있었다면 그냥 그걸 그대로 시스템에 밀어 버리면 되겠죠. 뭐하러 저런 노가다를 한단 말입니까?? 그런게 안정된 주파수원이 없으니까 이런 짓을 하고 있는데.. 그 기준주파수원도 불안정하다면, 그놈도 안정화시키면 되지 않을까요? 결국 이렇게 하면 되지 않느냐고 말하는 사람이 있을지도 모르지요!
기준주파수원에 PLL구조를 도입하고, 그 PLL의 기준주파수에도 PLL을 만들고, 또 그 PLL의 기준주파수의 PLL의 기준주파수에도 PLL 구조를 적용하고.. 무한루프? @.@ 우하하.. 그냥 우스개로 그려봤습니다. 이렇게 만들면 바루 사표써야 합니다. ( -_-;) 그렇다면 이 문제를 어떻게 해결할 수 있을까요. 원점으로 돌아가서 다시 생각해봅시다. 왜 우리는 주파수가 흔들린다고 고민하고 있을까요? 왜 고정되고 안정된 주파수원이 없다고 고민하고 있을까요? 이 질문에 대한 해답 자체에 해결법이 들어있습니다. 왜 주파수가 고정이 안된다고 고민하느냐에 대한 답은.. 우리가 고주파 RF를 다루고 있기 때문입니다. 저주파에서는 크리스탈과 같은 대단히 우수한 진동자가 있어서, 어떤 상황에서도 정확한 주파수를 내보내주게 됩니다. 하지만 이러한 크리스탈 구조로는 그다지 높은 주파수까지 만들어내지 못한다는데 문제가 있습니다. 그래서 능동소자와 feedback, negative resistance 뭐 이런걸 들먹여가며 수백MHz에서 수십GHz까지의 RF에서 사용하는 Oscillator를 만들어내는 것이지요. 하지만 이렇게 능동소자에 의존하는 발진기는 미세한 영향에도 출력 주파수 변화가 발생하기 때문에, 이렇게 어떻게든 주파수를 안정적으로 고정하려고 골머리를 싸매고 있는 것입니다. P/D 입장에서는 두 주파수의 차이만 비교하는게 목적입니다. 그리고, 굳이 힘들게 높은 주파수에서 비교할 필요가 없습니다. 그런데, 출력결과를 살짝 따온 feedback 신호의 주파수를 정확하게 일정비율의 주파수로 낮추어서 공급할 수만 있다면? P/D에서도 원래 주파수보다 같은 비율로 낮은 주파수를 기준주파수로하여 비교할 수 있을 것입니다. 바로 그겁니다! 분주기 회로를 이용하여 정확하게 특정 배율만큼 주파수를 낮추면 굳이 높은 기준주파수를 쓸 필요가 없게 되며, 그때는 크리스탈류와 같이 아주 정교하게 안정된 기준주파수원을 사용할 수 있게 됩니다. 우리는 여기서 PLL의 핵심 point중의 하나인 divider를 도입하게 됩니다.
이것이 바로 진정한 PLL의 기본구조입니다. 실제로 출력주파수 그대로 비교를 하는 경우는 없고, 특정 비율로 주파수를 낮추어서 비교하게 됩니다. 위의 기본 그림을 좀 더 이해하기 쉽게 풀어서 예를 들어보도록 하겠습니다. 원하는 출력주파수는 800MHz이고, 1/100 분주기를 이용한다고 가정한 예입니다.
출력에서 800MHz의 출력신호가 정확히 나올 때, 1/100 분주기를 이용한다면, P/D에는 8MHz의 신호가 입력될 것입니다. 그러므로 정확하게 8MHz의 기준주파수와 비교를 하면 되며, 이때 해당주파수의 안정도 높은 수정발진기를 이용하면 됩니다. 이런 기준주파수(reference frequency)로 주로 애용되는 것이 바로 TCXO (Temperature Compensated X-tal Oscillator : 온도보상수정발진기)입니다. 외부 온도에 영향을 거의 받지 않으면서도 원하는 출력 주파수를 매우 안정적으로 유지할 수 있는 고품질의 발진기입니다. 이런 TCXO를 그대로 800MHz대역에서 쓸 수 있다면 좋겠지만, 애석하게도 이런 고안정 발진기는 수십MHz 까지가 한계입니다. 결국 그래서 생긴게 PLL 이라고 볼 수도 있는 것이지요. 여기서 두가지만 잘 짚어보고 넘어가면 분주기(divider)부분이 더 명확히 이해갈 것입니다.
A. 주파수를 낮춘다는 의미? = counter
말그대로 주파수를 정확한 비율로 나눈다는 의미입니다만, 엄밀히 말해서 디지털의 카운터와 유사한 역할을 말합니다. 디지털 논리동작의 기본 단위인 flip/flop은, 1과 0의 신호를 판별하는 역할을 하게 되지요. 이것은 입출력 신호입장에서는 입력주파수를 반으로 나누어주는 듯한 기능을 하게 됩니다.
즉, 원리적으로 한 주기의 신호가 들어오면 반 주기의 신호를 출력하는 식의 동작을 하게 됩니다. 쉽게 설명하면 두 개의 신호를 세서 하나의 단위 신호를 내보내는 식의 binary counter처럼 되는 것이지요. 이러한 flip/flop을 연속적으로 연결하면 일종의 counter처럼 그 갯수만큼 counting하는 것처럼 됩니다.
자세히 표현하려면 불필요하게 복잡한 것들이 많이 나오므로, 이곳에선 간단하게 위처럼 어떤 counting 구조를 통해 주파수를 특정 비율로 정확히 나눈 듯한 시간축 파형을 만들어낼 수 있다는 점을 잘 기억하면 됩니다. 자세히 보면, 이러한 카운터 출력은 디지털에 가까운 클럭을 생성해냅니다. 물론 원하는 비율로 낮춰진 주파수의 신호지만, 신호에 변조되어 실린 정보와는 무관하게 그냥 그 신호자체의 주파수를 센,(즉 count한) 어떤 디지털 클럭 신호라는 점이 중요합니다. 한마디로 divider(분주기) 부분은 주파수를 나눈다기 보다는 주파수를 듬성듬성, 그러나 정확히 계산해주는 digital counter 입니다.
B. 주파수를 낮추면 분해능(resolution)이 떨어지지 않나?
언뜻 생각하면, 주파수를 낮추면 resolution, 즉 분해능이 떨어지는 것처럼 보입니다. 즉 주파수정밀도가 떨어져 보인다는 것인데, 실제로도 그렇습니다. 만약 분주하기 전이라면 1Hz 단위로 정교하게 조절될 것같지만, 예를 들어 이걸 1/100으로 나누면 100Hz 단위로 조절되기 때문에 분해능(결국 정밀도를 말하죠)가 떨어지는건 막을 수가 없습니다.
하지만 중요한건, 어차피 우리는 수Hz 단위로 정교하게 주파수 세팅을 하지도 않고, 하기도 무척 어렵다는 점입니다. 예를 들어 대역폭이 1.25MHz인 신호의 중심주파수가 100Hz 정도 틀어진다는 것은, 1/12500 정도 오차가 있다는 것인데 이정도는 충분히 감안할 수 있는 오차라는 것이지요. 보다 중요한 점은, 실제로는 divider 부분이 이런 정밀도가 떨어질 것 처럼 보이는 문제까지도 해결 가능하도록 분주할 수 있다는 점입니다. 실제로 분주기 부분은 복잡한 비율로 다중 분주되는데, 이것을 잘 이용하여 실제로 원하는 주파수를 가장 정확하게 만들어줄 수 있는 비율로 만들 수 있습니다. (이 부분은 맨 아래에 소개된 자료들을 공부해보시면 이해하실 수 있습니다) 어쨋거나 주파수를 나누더라도 정밀도에는 크게 영향을 주지 않을 수 있다는 점만 기억하시면 됩니다.
이렇게 만들어놓으니 이제 정말 제대로 동작할 수 있을 것 같습니다. 주파수가 흔들리면, 분주하여 작아진 주파수에도 흔들리는 값이 반영되어 다른 주파수로 분주되고, 그것이 P/D에서 비교되고 변화된 DC출력을 통해 VCO의 출력 주파수를 제자리로 돌려놓습니다. 바로 이것이 PLL이라 불리우는 구조입니다. 누가 PLL을 발명했다고 하기 보다는.. 주파수를 잡으려고 별짓 다하다가 이렇게 해보니 잘되더라.. 라는 것을 알아냈고, 이런 회로구성법 자체를 Phase Locked Loop라고 부르게 된 것입니다. 대부분의 책이나 교재에서는 PLL을 너무 위에서부터 내려다보는 경향이 있습니다. 그래서 초심자들이 이해하기가 그리 쉽지만은 않습니다. 일부러 맨 밑에서부터, 원초적인 목적에서부터 역으로 접근해보면 PLL도 그렇게 어렵기만 한 것은 아닙니다. 그렇죠? 일단 그렇다고 대답하세여- ^^;
펄스-전압변환 : Charge pump & Loop filter
주파수 나누기 문제는 위의 내용으로 대략 이해가 가셨으리라 믿구.. 이제 또하나 남은 PLL 구성의 중요 point인 펄스-전압 변환부를 들여다보도록 하겠습니다. 말로는 그냥 펄스를 전압으로 변환한다고 했는데.. 좀 막연하죠? 우선 왜 펄스-> 전압변환이 필요한지 다시 생각해보도록 하지요. 위의 그림과 비슷하지만 기초를 좀더 명확하게 짚고 넘어가기 위해 재탕합니다~
여기서 단순하게 생각하면 펄스의 폭(즉 두 신호의 주파수차이) 만큼 적분을 한다면 그에 비례하는 어떤 레벨의 전압으로 변화시킬 수 있다는 것을 알 수 있습니다. 그것을 구현하기 위한 실제 펄스-전압 변환부는 아래와 같은 구조로 만들어집니다.
그림과 같이 charge pump와 loop filter라는 두 part로 표현이 가능한데, 이 두가지는 서로 유기적으로 동작하므로 아래의 상세한 그림과 함께 차근차근 설명을 이해하시기 바랍니다. Charge pump 는 P/D 출력의 펄스신호에 따라 특정량의 전하(charge)를 밀고 당기게 만들어져 있는 전자회로입니다. 펄스폭에 따라 출력되는 전하량이 달라지고, 그렇게 두 신호의 차이만큼의 전하량(charge)을 밀고 당겨주기(pump) 때문에 charge pump라 불리웁니다. 또한 기준 전압값에서 두 신호의 차이에 따라 전압을 올리기도 하고, 내리기도 해야하기 때문에 두가지 분기동작을 합니다. 전압을 올리기 위해 전하가 더 필요하면 밀어내주고, 전압을 더 내리기 위해 전하를 빼야하면 오히려 전하를 당겨내주기 위해, P/D의 펄스의 부호에 따라 두가지 갈래로 나뉘어 동작하게 됩니다.
Loop filter 는 기본적으로 LPF 형태의 구조를 가지며, 크게 두가지 목적을 갖고 있습니다. 우선 병렬로 배치된 capacitor에서는 charge pump에서 밀고 댕겨오는 전하를 축적했다 방출합니다. 위의 charge pump의 설명과 그림에 나와있듯이, P/D 출력에 따라 charge pump가 전하를 밀어내기도 하고 댕겨서 뺐어 가기도 하기 때문에 capacitor에 축적되는 전하량이 바뀝니다. 전자장이라면 다 알아야 할 전자회로 기본공식 V = Q / C , 즉 capacitor의 양단간의 전압은 전하량을 capacitance 값으로 나눈 것과 같다는 점을 상기해본다면, Capacitor로 공급되는 전하량(Q)의 변화는 결국 VCO 조절단자부의 전압(V)을 비례적으로 바꾸는 역할을 하게 됩니다. 즉 Loop filter는 그 구조 자체로 VCO의 조절단자 입력전압을 가변하는 역할을 하고 있습니다. 두번째로, frequency domain에서 잘 생각해보면 P/D는 두 개의 주파수 입력의 차에 해당하는 값을 내보낸다는 점에서 Mixer와 매우 흡사한데, 이로 인해 한가지 유추할 수 있는 P/D의 문제점이 있습니다. 마치 mixer처럼 원하지 않는 harmonic 출력성분을 포함한 잡질구레한 출력 주파수들이 출현할 수 있다는 점입니다.
어허 이러면 안되징.. 우리가 필요한건 단지 VCO의 control voltage로 사용할 DC전압뿐입니다. 즉 DC근방의 신호 이외의 주파수신호는 전혀 필요가 없는 spurious들이 됩니다. 그렇다면 RF장이들의 해결법은 아주 당연한 것! LPF(Low Pass Filter)를 이용하여 아주 낮은 주파수를 제외한 잡주파수를 다 걸러 버리면 되지요. 원래 Mixer 뒷단에 늘 필터가 따라다니듯이, 원래 P/D 뒤에도 필터하나는 꼭 따라다니게 됩니다. 그리고 이러한 LPF형태의 Loop filter가 VCO 입력전단에 위치함으로써, 고조파(harmonic)와 잡신호들을 걸러내는 역할을 겸하게 됩니다. 아래는 대표적인 2/3차 Loop filter의 회로도로서, 병렬로 capacitor가 위치하는 Low pass 구조의 filter이기도 합니다.
Loop filter란 이름은 Loop 상에 존재하는 필터라는 의미로서, loop를 통해 출력주파수정보와 기준주파수와의 비교를 통해 적절한 VCO 입력전압을 결정하는 뺑뺑이 과정속에서 불필요한 신호를 걸러내는 역할을 하기 때문에 붙여진 이름입니다. 이는 위의 그림에서처럼 2차 혹은 3차의 필터로 구성되는데, 이것을 어떻게 잡느냐에 따라 loop bandwidth (통과대역을 의미함) 와 Lock time (얼마나 빨리 주파수가 고정되어 안정상태로 가는가) 라는 주요한 특성조절지표가 나오게 됩니다.
Charge pump는 미세한 펄스폭만큼을 일정량의 전하(결국 전류를 말합니다)로 변환해주어야 하기 때문에 개념적으로 전류이득을 가진다고 볼 수 있습니다. 이러한 charge pump의 전류이득을 Icp라 부르는데, PLL의 주요한 성능지표 중 하나가 됩니다. Icp가 높다는 얘기는 펄스에 따라 밀고 댕기는 전류량이 크다는 의미이며, 결국 캐패시터에 전하를 축적/방출 시키는 속도가 빨라지기 때문에 PLL 의 lock time에 큰 영향을 주게 됩니다. 다시 말해서 순식간에 더 많은 전류를 넣고 뺄 수 있기 때문에 주파수를 고정하는데 드는 시간이 짧아진다는 말입니다. 하지만 결국 이는 더욱 많은 전류 소모를 의미하기 때문에 상황을 잘 보면서 trade-off 해야 하는 요소가 됩니다. 자, 위에 설명한 charge pump와 loop filter의 개념을 통해 P/D의 펄스 출력이 어떻게 VCO의 전압조절 역할을 할 수 있는지 설명되었습니다. charge pump는 말 그대로 펄스에 따라 일정량의 전류를 밀고 당겨주며, Loop filter는 이러한 전하를 축적/방출하면서 전압도 조절하고 잡신호도 걸러내는 일거양득의 역할을 하고 있습니다. charge pump와 loop filter는 서로 유기적으로 동작하는 하나의 변환부처럼 처리되기 때문에 합쳐서 active filter의 형식처럼 구현되기도 합니다. 또는 경우에 따라선 Loop filter부만 능동소자를 써서 active filter로 구현하는 경우도 있습니다. 차근차근 이해한다면 결코 어렵지만은 않은 펄스-전압 변환부입니다. 이제 마지막으로 주파수를 가변하는 법에 대해 개념을 잡으면 됩니다.
주파수 합성(Frequency Synthesizing)
위와 같은 원리로 주파수를 고정(Lock)하는 과정은 대략 이해하셨으리라 믿습니다. 이제는 원하는 주파수로 출력주파수를 가변하는 문제를 논해보도록 하겠습니다. 우선 주파수 합성이란 말이 좀 알딸딸.. 하게 들리실 수 있는데, 그냥 주파수를 바꾼다는 말입니다. 여러 가지 주파수를 만들어낸다는 걸 영어로 synthesizing이란 말을 씁니다. 실제로도 여러 가지 복잡한 신호합성과정을 통해 원하는 주파수를 찍어서 만들어내는 것이기 때문에 그렇게 부릅니다. 초보시절 대체 뭘 합성해서 어쩐다는건지 말 자체가 혼동을 주기도 하는데, 여하튼 여러 주파수를 골라서 뽑아낼 수 있는 걸 주파수 합성기(frequency synthesizer)라고 부릅니다. 그런데, 지금 PLL 구조에서는 VCO의 주파수를 가변하는 직접적인 조절단자인 Control Voltage 단자가 P/D쪽의 DC출력에 묶여있기 때문에, 주파수를 가변할 방법이 모호해졌습니다. 어쩌죠..? VCO의 control 단자를 옆에서 다시 조절하려면 PLL 구조가 깨지게 될텐데.. 그렇다면 무엇으로 주파수를 가변할 수 있을까요..
자, 두가지를 생각해보도록 하지요.
▪ 첫째, 출력 주파수를 바꾸려면, 어떻게든 결국 VCO의 control단자 전압을 바꾸어야 합니다.
▪ 둘째, 결국 현재 PLL구조의 핵심은, P/D에서 두 입력 주파수의 차이를 통해 억지로 VCO control DC 값을 바꾸어서 VCO의 주파수를 원래위치라 생각되는 곳으로 이동시키는 것입니다. 여기서 중요한 것은, P/D는 순진하게 주어진 주파수의 차이만 비교할 뿐이라는 것입니다. P/D를 살짝 속여서 전혀 다른 주파수를 넣어줘도 그냥 묵묵히 그런가보다.. 하고 그에 해당하는 DC값을 control 단자로 보냅니다. 그게 원래 위치로 보내는 건지 아니면 엉뚱한 곳으로 보내는 것인지 P/D는 바보같이 잘 모릅니다. 그렇다면, P/D에 들어가는 입력 주파수를 아주 살짝 비틀기만 하면 출력 주파수는 다른 주파수에서 안정된 구조를 가질 수 있다는 얘기가 됩니다. 그러고 보니 저 위의 그림에서 Divider가 음흉한 웃음을 짓고 있는게 뭔가 수상하지 않습니까????
위의 그림은 저 위에서부터 계속 재탕삼탕하던 800MHz를 출력하는 쉬운 예입니다. 여기서 Divider가 잠시 돌출행동을 하면 어떻게 될지 궁금하지 않습니까? 궁금하지 않다면 지금부터 궁금해하세요.
Divider가 1/100으로 나누기를 포기하고 1/99 라는 이상한 분주비로 신호를 counting하고 있습니다. 이렇게 되니까 Divider에서 8.08 MHz 라는, 이전과는 80kHz 차이가 나는 신호가 나와 버리게 됩니다. 이게 P/D로 들어가서 8MHz의 깨끗한 TCXO와 비교되면 당근 그 차이에 해당하는 펄스들을 쏟아내게 됩니다. 결국 그렇게 되면 아래처럼...
P/D에서 80kHz 주파수 차이에 의한 펄스들이 줄줄 나오면 결국 charge pump에서 들고나오는 전류량을 살짝 바꾸어 VCO의 입력전압이 바뀌게 됩니다. 그러므로 당근 VCO의 출력 주파수가 바뀝니다. 그렇다면 이 바뀐 주파수가 divider로 다시 들어간다면...
오호라 - 출력에서 나온 792 MHz가 divider를 거치면서 99로 나뉘면 결국 8MHz의 출력이 나와 버리게 되는군요. 그렇다면 P/D에서 다시 똑같은 주파수를 비교하게 되어 별다른 펄스를 내보내지 않게 되고, charge pump의 상태를 그상태에서 안정화시켜버립니다. 그렇게 되면 결국 이 시스템은? 792 MHz라는 전혀 다른 주파수에서 안정화되어버립니다. 여기서는 예니까 단순하게 표현했지만.. 실제로 현대적 이동통신에서는 저 divider 부분이 가장 복잡합니다. 절묘한 비율변화로 주파수를 바꾸어야 하기 때문에 다단계 다중경로로 출력주파수를 분주하며, 소위 PLL IC라 불리우는 놈들을 통해 S/W적으로 분주비를 바꾸면서 최종적으로 나오는 출력주파수를 바꿀 수 있게 되어 있습니다. 뭔가 feel이 오지 않습니까? divider의 분주비를 바꾸니까 PLL은 묘하게도 다른 주파수로 껑충 뛰어가서 안정화되어 버렸습니다. 이것이 진정한 Loop를 통한 locking이며, PLL의 위력입니다. 위에서는 단 한 번의 loop 뺑뺑이로 주파수가 바뀐 것처럼 표현되었지만, 그건 이해를 돕기위해 짧게 표현하기 위한 것입니다. 공돌이라면 다 아시겠지만 어디 한번에 되는게 있겠습니까? 뺑뺑이 노가다를 통해 최적화되기 마련이지요. 실제로는 수차례 뺑뺑이를 돌면서 전압값이나 주파수가 이리저리 흔들리다가 점차 안정화되는 것입니다. 그래서 PLL이 나오면 아래와 같은 그래프가 꼬리처럼 따라다니게 되지요.
얼마나 빨리 주파수가 안정화되느냐.. 우리는 이걸 lock time이라 부르는 것이고, 당근 빨리 안정화될수록 좋습니다. 저 위에도 살짝 설명되어 있듯이, 이것은 VCO의 조절전압 안정화와 관련되어 Charge pump의 Icp와 Loop filter의 capacitor값, 시정수 등과 관련되어집니다. 이렇게 함으로써 결국 주파수 고정과, 주파수 가변의 두 마리 토끼를 다 잡을 수 있게 되었습니다.
총정리 복습
고주파 RF에서 복잡해 보이는 회로 중 하나인 PLL도, 그 목적에 맞추어 여러 회로로 구성된 하나의 작은 시스템일 뿐입니다. 총정리해서 각 block별로 복습해봅시다.
① VCO (Voltage Controlled Oscillator)
입력전압에 따라 특정한 주파수를 내보내는 PLL의 최고 핵심멤버. 자기는 별 생각이 없고 그냥 뒤에서 누가 전압을 밀어주면 묵묵히 해당 주파수를 밀어낸다. 그런데 온도나 주변전자파환경 등 주변영향에 민감한 정서불안적 성격을 갖고 있기 때문에 PLL같은 복잡한 구조를 만들게 만드는 주인공.
② Divider (또는 counter)
VCO의 출력주파수를 가져와서 비교시켜야 하는데, 주파수가 너무 높아서 비교하기 힘드니까 적절한 비율로 나누어 비교하기 좋은 주파수로 만들어준다. 디지털 카운터같은 구조로 되어 있으며, 이 분주비를 복잡하게 살짝 비틀어서 PLL 구조의 출력주파수 가변을 할 수 있게 하는 역할도 한다. PLL IC라 불리우는 놈의 핵심 부위는 바로 이놈으로써, S/W 적으로 분주비를 교묘하게 틀 수 있게 만든다.
③ TCXO (Temperature Compensated X-tal Oscillator)
온도변화에 대해 흔들림없이 굳건히 매우매우매우 안정적인 주파수를 뽑아낼 수 있는 크리스탈 오실레이터. 이 변하지 않는 주파수를 기준주파수로 삼아서 출력주파수가 맞는지 틀린지 비교해준다.
④ P/D (Phase Detector, PFD : Phase Frequency Detector)
TCXO의 기준주파수와 divider를 통해 나뉘어져 들어온 출력주파수를 비교하여 그 차이에 해당하는 펄스열을 내보낸다.
⑤ Charge Pump (C/P)
P/D에서 나온 펄스폭에 비례하는 전류를 펄스 부호에 따라 밀거나 댕겨준다. 펄스를 전류로 변환해주는 과정에서 전류이득(Icp)가 존재하고, 이 양은 lock time을 비롯한 PLL의 성능에도 큰 영향을 준다. PLL IC에 따라서는 Icp 값을 조정할 수도 있다.
⑥ Loop Filter (LPF)
저역통과여파기(LPF)구조로 구성된 이 필터는 loop 동작중에 발생하는 각종 잡스런 주파수들을 걸러내고, capacitor를 이용하여 축적된 전하량 변화를 통해 VCO 조절단자의 전압을 가변하는 역할을 한다. 실제로 PLL IC를 이용하는 경우 외부에서 튜닝 가능한 거의 유일한 소자들이기 때문에 많은 엔지니어의 집중적인 튜닝대상이 된다.
PLL, 무섭지 않다!
초보시절 가장 난해해 보이는 RF 관련 회로가 뭐냐고 물어보면 많은 사람들이 PLL을 지적합니다. 하지만 위의 과정을 찬찬히 들여다보신 분이라면, 아주 어렵기만 한 회로는 아니라는 것에도 공감하실 수 있으리라 생각됩니다. 물론, 제대로 만들려고 덤비면 쉽기만 한 넘은 아닙니다. 나름대로 어떻게든 쉽게 설명하려고 발버둥쳤지만, 여전히 PLL은 다른 회로개념에 비해 복잡하긴 복잡합니다. 너무 많은 개념을 넣으면 혼란만 생길까봐 최대한 핵심적인 부분만 설명하느라 일부 누락된 주변개념도 있습니다. 실제로 PLL을 설계해야 하는 분이라면 이보다는 훨씬 깊이있는 학습이 필요하지만, 최소한 PLL이 도대체 어떻게 도는 건지 감이 안잡히셨던 초심자분이라면 조금은 도움이 되었으리라 생각됩니다. 물론 다른 아무 기초없이 한번만 읽어서는 여전히 아리까리할 수도 있습니다. 복습하세여~
추천 0