[마이크로칩테크놀로지=로버트 페르켈(Robert Perkel)] 오늘날 실시간 운영 체제를 실행하는 대형 32비트 마이크로컨트롤러(MCU)와 마이크로프로세서(MPU)는 갈수록 보편화되고 있다. 그러나 복잡한 애플리케이션을 처리하는 단일 대형 MCU의 경우, 복잡하지 않으나 시간이 많이 소요되는 소규모 하우스키핑 작업에 할당할 CPU 리소스가 부족해지는 문제가 발생할 수 있다. 8비트 및 16비트 MCU와 같은 소형 디바이스를 사용하면 이러한 작업을 32비트 디바이스로부터 오프로드(offload)할 수 있다.

다음 예를 생각해 보자. 32비트 MCU는 엔터테인먼트 시스템, 앰비언트 조명, 에어컨 등 차량의 안전 외 기능을 제어한다. 32비트 디바이스는 이들 기능과 관련된 작업을 모두 처리하기 위해 리소스를 할당해야 한다. 이러한 솔루션은 차량내 여러 지점에서의 온도 측정, 에어컨 시스템 켜고 끄기, 그래픽 디스플레이 업데이트, 사용자 입력값 처리, 조명 조건 조절, 음악 재생 등을 실행해야 한다. 32 비트 디바이스라고 해도 작업량이 많은 셈이다.

그러나 작업 한두 개를 최소한의 감독하에 처리할 수 있는 하위 프로세서로 32비트 디바이스의 작업을 일부 오프로드하면, 나머지 작업을 수행하기가 훨씬 쉬워진다. 이렇게 하면 주 프로세서의 CPU 리소스가 확보되어 소프트웨어 복잡성을 줄이는 동시에 성능 및 실행 시간을 향상할 수 있다.

이러한 솔루션은 MCU 주변장치와 유사한 이점을 제공한다. 주변장치는 연산 증폭기, 아날로그-디지털 컨버터(ADC)와 같은 새로운 기능을 추가하거나 특정 기능을 위해 CPU가 수행해야 하는 작업의 양을 줄일 수 있는 소형 특수 하드웨어 블록이다. 경우에 따라 주변장치는 초기화된 후에 CPU와 독립적으로 실행할 수 있다.

주변장치의 이점은 펄스폭 변조(PWM) 신호 생성의 사례를 통해 설명할 수 있다. 전용 주변장치 없이 PWM을 생성하려면 I/O 라인을 HIGH로 설정하고, 특정 횟수만큼 사이클을 기다렸다가 LOW로 설정한 뒤, 다시 기다리는 과정을 반복해야 한다. 이 과정에서 많은 CPU 사이클이 소모되며 RTOS도 안정적으로 실행되기 어렵다. 하지만 PWM 주변장치를 사용하면 CPU는 다른 작업을 수행하는 동시에 원하는 파형 파라미터를 설정할 수 있다.

두가지 예시를 소개하려 한다. 첫번째 예시는 CPU의 집약적인 작업을 오프로드할 때 이점을 보여준다. 이경우 I/O 익스팬더를 만들기 위해 8비트 MCU를 사용한다. I/O 익스팬더는 복잡한 디바이스는 아니지만, 인터럽트가 빈번하게 발생해 CPU 시간을 많이 소모한다. 이때 전용 MCU를 사용해 이 작업을 처리하기만 해도 32비트 디바이스의 I/O 사용률과 처리 대상 인터럽트 수를 절감할 수 있다. 뿐만 아니라, I/O 익스팬더의 기능 세트는 소프트웨어로 설정되기 때문에 애플리케이션에 맞게 커스터마이징 및 튜닝할 수 있다.

두번째 예시는 CPU와 독립적으로 작동하는 V/F(전압-주파수) 컨버터 구축에 있어 코어 독립형 주변장치의 성능을 보여준다. CPU의 유일한 기능은 주변장치를 초기화하고 디버그 메시지를 UART(범용 비동기화 송수신기)로 출력하는 것이다. 시스템의 규모가 큰 경우, V/F가 백그라운드에서 실행되는 동안 CPU는 다른 단순 작업을 수행할 수 있다.

 

I/O 익스팬더

8비트 MCU로 I/O 익스팬더를 개발할 때 누릴 수 있는 가장 큰 이점은 유연성이다. I/O 익스팬더 ASIC의 기능 세트는 디바이스에 고정되는 반면, MCU는 실행하는 소프트웨어에 따라 행동이 정의된다. 이러한 유연성 덕분에 MCU 기반의 버전은 최종 애플리케이션의 요구에 맞게 조정할 수 있다.

 

고급 I/O 익스팬더 실행

내부적으로 고급 I/O 익스팬더는 룩업 테이블(lookup table) 기반 구조에서 작동한다. 읽거나 쓰기 전에 가상 주소가 먼저 전송되는데, 이 주소는 MCU 레지스터와 상관관계가 없으며 룩업 테이블에만 적용된다. 즉, MCU의 하드웨어 레지스터에 없는 기능을 투명하게 추가할 수 있다는 뜻이다. 테이블에 입력된 항목도 특정 용도에 맞게 쉽게 재정렬할 수 있다. 해당 구조의 또 다른 이점은 룩업 테이블에 권한을 추가할 수 있다는 점이다. 예를 들어, 읽기 전용 레지스터를 만들려면 룩업 테이블에서 쓰기 항목을 빼기만 하면 된다.

고급 I/O 익스팬더의 룩업 테이블. /자료=마이크로칩

조금 더 복잡한 이 구조는 비표준 기능에 도움이 된다. MCU는 MEM OP 기능을 통해 현재의 GPIO(범용 입출력) 설정을 메모리에 저장하거나 로드할 수 있다.

디바이스의 메모리 저장. /자료=마이크로칩

MEM OP는 컴파일할 때 설정된 파라미터에 GPIO 설정을 재설정할 수 있다.

MEM OP의 기능. /자료=마이크로칩

선택 사항으로, 전원을 켜면 저장된 설정을 로딩하도록 MCU를 설정할 수 있다. 이 설정이 활성화되면 MCU가 ‘Configuration 0’의 설정을 로딩하려고 시도한다. 설정된 값이 체크섬(checksum) 검증에 실패하면 MCU는 컴파일 시간 상수로 돌아간다. 이 기능을 원하지 않는 경우 소프트웨어에서 비활성화할 수 있다.

 

첫번째 솔루션의 결론

MCU 기반 솔루션의 장점은 매우 뛰어난 유연성이다. 시중의 ASIC와 달리 MCU는 사용 중인 애플리케이션에만 있는 비표준 기능을 사용해 구성할 수 있다. 이 애플리케이션은 범용 PIC16F15244 MCU 제품군용으로 개발되었다.

 

전압-주파수(V/F) 컨버터

전압-주파수 컨버터는 BOM(Bill of Material)을 절감해 설계 영역을 줄임으로써 기존의 아날로그 솔루션을 개선한다. 시중 대부분의 V/F 컨버터가 동작하려면 외부 저항 및 커패시터를 필요로 하는 반면, MCU는 본래 필요한 부품인 일반 디커플링 및 풀업 구성 요소만 있으면 된다.

TC9400/TC9401/TC9402 10Hz ~ 100kHz V/F 컨버터용 애플리케이션 회로도. /자료=마이크로칩

MCU는 아날로그 기법이 아닌 코어 독립형 주변장치 및 기능의 조합을 사용해 디지털화한다. 내부 연산 기능 내장 아날로그-디지털 컨버터(ADCC)로 입력 신호를 측정한 다음, 클럭 신호를 분할해 가변 주파수 출력을 생성한다. 두번째 예시에서는 주변장치가 초기화된 후 CPU와는 별도로 자율적으로 동작하도록 설정됐다. 이는 CPU가 최종 애플리케이션의 다른 작업을 수행하는 데 사용될 수 있음을 의미한다.

MCU 기반 접근 방식의 한 가지 문제는 그 성능이 아날로그 솔루션보다 낮다는 점이다. 본질적으로 출력의 분해능은 ADCC에 의해 제한된다. ADCC는 명목상으로는 12비트이지만, 프로그램이 구성된 방식에 따라 오버샘플링된 14비트 분해능에서 실행된다. 마찬가지로, 주파수를 합성하는 온보드 수치 제어 오실레이터(NCO)의 분해능은 유한하며, ADC에서 측정한 값에 따라 출력에 지터(jitter)가 발생할 수 있다.

MCU 기반 솔루션은 아날로그 샘플링 블록, 출력 오실레이터 블록, 그리고 듀티 사이클 발생기의 세 개의 주변장치 블록으로 나눌 수 있다.

솔루션 블록 다이어그램. /자료=마이크로칩

 

아날로그 샘플링 블록

아날로그 샘플링 블록 구현. /자료=마이크로칩

아날로그 샘플링 블록아날로그 샘플링 블록은 아날로그-디지털 변환을 담당한다. 디바이스의 주파수 제한에도 100kHz의 출력이 가능하도록 하기 위해 오버샘플링한 다음 평균치를 낮춰 14비트 결과 값을 얻도록 ADCC를 설정했다.

오버샘플링의 단점은 결과에 통계적 잡음이 추가된다는 점이다. 이를 보상하려면 오버샘플링을 평균화하고 히스테리시스(hysteresis)를 추가하면 된다. 히스테리시스 구현에는 ADCC의 임계값 인터럽트 기능이 사용된다. 간단한 설명을 위해 임계값 인터럽트 기능이 어떻게 사용되는지만 다룬다.

ADCC가 평균 오버샘플 계산을 마치면, 그 결과값은 주변장치의 설정값 레지스터와 비교된다. 둘 사이의 차이가 설정된 임계값보다 크거나 작으면 인터럽트가 발생한다. CPU는 인터럽트를 마스크하고 영향을 받지 않지만, 인터럽트는 평균 오버샘플링 결과의 DMA(직접 메모리 엑세스) 복사본을 ADCC의 설정값 레지스터에 트리거해 히스테리시스를 생성한다. 임계값을 초과하지 않으면 DMA 복사가 발생하지 않으므로 출력 오실레이터 블록의 DMA가 업데이트되지 않는다.

 

출력 오실레이터 블록

아날로그 샘플링 블록 구현. /자료=마이크로칩
아날로그 샘플링 블록 구현. /자료=마이크로칩

이 솔루션의 출력 오실레이터 블록은 원하는 출력 주파수에서 클럭 신호를 생성하는 역할을 담당한다. 출력 신호는 듀티 사이클 발생기에 내부적으로 연결되는데, 이 발생기는 주파수를 절반으로 줄이는 한편 50% 듀티 사이클 출력을 생성한다. 그 결과 출력 오실레이터 블록은 출력 주파수의 두 배의 주파수에서 실행된다.

출력 오실레이터 블록의 핵심은 NCO다. NCO 주변장치는 입력 클럭의 상승 에지에서 누산기(accumulator)에 증분 값을 추가해 동작한다. 누산기 오버플로우는 주변장치의 출력을 도출하는 데 사용된다 (NCO에 대한 전체 설명은 데이터시트를 참조할 수 있다). 

두번째 예시에서NCO2는 14비트 입력에서 100kHz의 출력을 얻기 위해 필요한 입력 클럭 주파수를 내부적으로 생성하도록 설정됐다. ADCC의 기본적인 12비트 결과가 외부 클럭 소스 없이 100kHz 출력을 생성하기에 충분히 크지 않기 때문에 14비트 결과가 사용된다.

0x0100 3.1 kHz 1.6 kHz
0x1000 50 kHz 25 kHz
0x3FFF 200 kHz 100kHz

워치독을 끈 상태에서 이상적인 100kHz V/F 컨버터 출력값. /자료=마이크로칩

NCO2의 출력 주파수가 변경되거나 대체 소스가 사용되는 경우, 출력 주파수는 다른 출력 범위로 조정된다. 가령 NCO2가 1.28MHz로 감소하면 출력은 10kHz에서 최대가 된다.

ADC결과 NCO1 출력 (2배) 출력 주파수
0x0000 0 Hz 0 Hz
0x0001 1.2 Hz 0.6 Hz
0x0100 312.5 Hz 156.3 Hz
0x1000 5 kHz 2.5 kHz
0x3FFF 20 kHz 10 kHz

워치독을 끈 상태에서 이상적인 10kHz V/F 컨버터 출력값. /자료=마이크로칩

 

듀티 사이클 생성기

듀티 사이클 생성기 블록 다이어그램. /자료=마이크로칩
듀티 사이클 생성기 블록 다이어그램. /자료=마이크로칩

솔루션에서 듀티 사이클 생성기 블록은 50% 듀티 사이클 출력 생성을 담당한다. 해당 기능은 선택 사항으로, NCO 출력을 직접 사용하는 방법도 있으나 듀티 사이클은 훨씬 다양하다.

듀티 사이클 생성기는 구성 가능한 로직 셀(CLC) 중 하나를 사용해 구현된다. CLC는 소형의 개별 구성 가능한 로직 블록으로, FPGA(Field Programmable Gate Array)의 단일 셀과 유사하다. CLC는 AND-OR 또는 OR-XOR과 같은 디스크리트 로직 게이트로 사용될 수 있고, 래치 또는 플립플롭으로도 구성할 수도 있다. 

솔루션에서 CLC는 리셋(Reset)을 사용해 J-K 플립플롭으로 구현됐으며, J와 K는 로직 하이(HIGH)로 유지된다. 출력 오실레이터 블록은 플립플롭의 클럭으로 사용된다. 입력 클럭 펄스가 발생할 때마다 출력이 토글되어 50% 듀티 사이클이 생성된다. (출력 오실레이터 블록의 주파수 지터는 듀티 사이클에 영향을 미친다.)

타이머 6는 불안정한 워치독 타이머로 사용된다. 출력이 에지(상승 또는 하강)를 생성하지 않으면 타이머가 오버플로우 되어 CLC로 클럭 펄스를 생성한다. 출력 주파수 범위의 로우 사이드를 제어한다. 출력은 DC에 도달하는 대신 타이머 주파수의 절반에서 6Hz의 출력으로 토글된다.

 

두번째 솔루션의 결론

두번째 솔루션은 일반적으로는 외부 집적 회로를 사용해 생성해야 하는 코어 독립형 기능을 생성하기위해 하드웨어 주변장치를 사용하는 방법을 보여준다. 이러한 구성의 가장 큰 이점 중 하나는 주변장치 동작을 소프트웨어에서 설정하므로 최종 애플리케이션에 맞게 예시를 쉽게 조정할 수 있다는 점이다. 해당 예시를 구현하는 데에는 사용 중인 주변장치 수가 많은 PIC18-Q43 MCU 제품군을 선택했다.
 

 

회원가입 후 이용바랍니다.
개의 댓글
0 / 400
댓글 정렬
BEST댓글
BEST 댓글 답글과 추천수를 합산하여 자동으로 노출됩니다.
댓글삭제
삭제한 댓글은 다시 복구할 수 없습니다.
그래도 삭제하시겠습니까?
댓글수정
댓글 수정은 작성 후 1분내에만 가능합니다.
/ 400
내 댓글 모음
저작권자 © 테크월드뉴스 무단전재 및 재배포 금지