배너
닫기

테크노트

배너

[테크니컬 리포트] 자율형 주변장치의 장점: 실시간 저전력 성능 구현

URL복사
[#강추 웨비나] 제조 산업을 위한 클라우드 활용 웨비나 시리즈 Autodesk 올인원 제조솔루션 Fusion 활용하기 - 1편: Fusion 소개 및 모델링 활용하기 (7/10)

[첨단 헬로티]


코어 독립형 주변장치(CIP)는 자율적이고 상호 연결된 지능형 주변장치이다. CIP가 내재된 마이크로컨트롤러(MCU)는 작업 실행을 위해 중앙처리장치(CPU)와 상호 작용할 필요가 없다. 이러한 특성은 애플리케이션에 있어 여러 장점을 갖는다.




첫째, 주변장치간 통신에 CPU가 필요하지 않다. 코어는 슬립 모드에 있을 수 있으며 소프트웨어의 흐름이 중단될 필요가 없다. 코어가 슬립 모드에 있고 소프트웨어가 필요하지 않을 경우 구동하는 애플리케이션의 소비전류는 더욱 낮아진다. CPU는 마이크로컨트롤러에서 전류가 가장 많이 소비되는 부분이므로, CIP를 사용하면 전력 소비가 절감된다.


둘째, CIP는 인터럽트를 일으키지 않으므로 전반적으로 훨씬 더 신속한 통신이 가능하다. CPU 코어가 소프트웨어를 실행 중일 경우 특정 작업을 하기 위해서는 주변장치와의 인터럽트(Interrupted) 수행이 필요하며 이는 많은 시간이 소요된다. 인터럽트 수행에는 상대 점프(relative jump)를 위해 3 클럭 주기 + 2 클럭 주기의 시간이 필요하며, 구동 애플리케이션에 따라 스택의 레지스터에 데이터를 저장하기 위해 컨텍스트 스위치(Context switch)에 여러 주기가 소요될 수 있다. CIP의 경우 코어가 인터럽트를 수행하는 상황에 비해 훨씬 빠른 통신을 구현한다.


셋째, CIP를 이용해 출시기간을 단축할 수 있다. 이는 하드웨어가 자체적으로 임무를 수행할 수 있으므로 소프트웨어 개발 기간이 줄어들기 때문이다. 동시에 소프트웨어 에러 위험성을 감소시켜 소프트웨어 검증 필요성도 함께 줄어든다. 따라서 CIP를 사용하지 않을 때에 비해 제품 개발기간이 단축된다.


AVR 마이크로컨트롤러(MCU)의 경우 모든 CIP가 이벤트 시스템(Event System)을 통해 연결되어 있다. 이벤트 시스템에서는 멀티플렉서가 이벤트 생성기와 이벤트 사용자를 연결한다. 이벤트에는 동기적 이벤트와 비동기적 이벤트가 있는데, 비동기적 이벤트는 1클럭 주기가 채 걸리지 않으며 동기적 이벤트는 2클럭 주기가 필요하다.


여러 주변장치를 이벤트 시스템에 연결하여 CIP로 만들 수 있다. 이러한 주변장치로는 타이머, 실시간 카운터(RTC), PIT(Periodic Interrupt Timer), CCK(Custom Configurable Logic), 아날로그 비교기(AC), 아날로그-디지털 컨버터(ADC), 범용 동기·비동기 송수신장치(USART), 범용 입/출력(GPIO) 등이 있다. 


코어 독립형 주변장치(CIP) 사용

먼저 CIP는 사용 전에 환경설정을 해야 한다. CPU는 이벤트 시스템 및 필요한 주변장치를 올바르게 초기화하도록 명령을 수행한다.


지연·디바운싱 (Delay·Debouncing)

오늘날 일부 애플리케이션은 여전히 입력에 버튼을 사용한다. 각 버튼은 비토글 신호(Non-toggling signal)를 받기 위해 디바운스 로직(Debounce logic) 또는 소프트웨어를 필요로 한다. AVR MCU의 경우 소프트웨어로 디바운싱이 쉽게 진행되며 소프트웨어 프로그램에서 지연 및 로직을 이용해 작업이 가능하다. 소프트웨어는 복잡하지는 않지만 CPU 리소스를 사용한다. 버튼이 눌러졌는지에 대한 여부는 폴링(Polling) 또는 GPIO 컨트롤러의 인터럽트를 통해 확인할 수 있다. 두 가지 모두 다소 시간이 걸리며 디바운싱 작업 완수를 위해 CPU 이용이 필요하다.


CCL 필터를 이용한 디바운싱·지연

CIP를 통해 추가적인 CPU 사용 없이 디바운싱 작업의 완수가 가능하며, CCL 만 있으면 해결된다. 버튼이 연결된 GPIO는 비동기적 이벤트 생성기로 설정되고 CCL은 이벤트 사용자가 된다. GPIO 핀에서 CCL 입력부로 가는 신호는 지연 없이 전송된다. CCL의 진리표는 출력이 입력과 동등하도록 구성되어 있으며, 진리표 출력은 필터에 전달된다. 


[그림 1]을 통해 CCL 필터에 대해 확인할 수 있다. 입력 신호에서 글리치를 제거할 수 있으며, 사용자는 출력 신호를 위한 필터 지연을 2~5클럭 주기(주변 클럭 및 대체 클럭)에 맞출 수 있다. 32KHz의 느린 클럭을 이용할 경우 지연은 1.5ms가 된다. 또한 다른 시계나 타이머를 이용하여 지연 시간을 연장하는 것도 가능하다. 


그림 1. CCL의 필터


타이머를 이용한 지연

일례로 TCB(Timer/Counter B)는 “싱글 샷(Single-Shot)” 모드로 설정되어 있다. 타이머는 이벤트 신호를 수신하여 타이머가 프로그램된 최대값에 도달해 정지할 때까지 카운트를 시작한다. TCB의 출력부는 CCL에 연결되어 있으며 CCL에서 원하는 지연 신호 조합이 이루어질 수 있다. 이는 시간 지체에 큰 유연성을 부여한다. 매번 새로운 이벤트가 발생할 때마다 TCB 타이머는 다시 카운트를 시작한다.


데드타임 생성

데드타임은 스위치(트랜지스터, FET 및 IGBT)들이 전원과 그라운드(GND) 사이에 직렬로 연결되어 있는 애플리케이션에서 사용된다. 만약 2개의 스위치가 동시에 활성화되면 단락이 발생한다. 예를 들어, 모터 컨트롤 드라이브에 흔히 쓰이는 H-브리지 회로 구성(H-bridge configuration)이 여기에 해당된다.  애플리케이션에 따라 데드타임은 정류 간 또는 펄스 폭 변조(Pulse-Width Modulation: PWM) 펄스 간에 발생하게 된다. PWM 펄스 간의 데드타임은 정현파 드라이브와 단극 BLDC(Brushless DC) 모터의 정류 사이에서 필요하다. PWM 펄스 간의 데드타임은 타이머의 TCD(Time Code Display)를 통해 생성될 수 있다.


커뮤테이션(Commutation) 간에 데드타임 생성을 위해서는 CCL과 AC 두 가지 타이머가 필요하다. [그림 2]와 [그림 3]은 CCL 진리표의 로직을 나타낸다. 타이머의 TCA는 모터 컨트롤을 위한 기본 PWM 신호를 생성시킨다. AC는 모터의 홀 센서에 외부 연결되고 내부적으로는 이벤트 시스템을 통해 타이머의 TCB에 연결되어 있다. 타이머의 TCB는 AC로부터 신호를 받으면 데드타임 신호를 생성한다. 


CCL은 TCA(PWM), TCB(데드타임), AC 신호를 결합시킨다. 입력 신호는 CCL 설정에서 직접 선택 가능하며 이벤트 시스템을 이용할 필요가 없다. 이러한 모듈은 배선으로 연결되어 있다. 다음으로 CCL은 두 가지의 PWM을 생성시키며 [그림 4]는 모터를 위한 스위치 구동을 나타낸다. 모터는 CPU의 작용과 무관하게 동작한다. 더욱 자세한 기술 정보는 AVR 애플리케이션 노트 AVR42778을 통해 확인할 수 있다. 


그림 2. CCL LUT 0 데드타임 생성


그림 3. CCL LUT 1 데드타임 생성


그림 4. 데드타임 생성 타이밍 다이어그램


자동 정지 PWM 신호

많은 애플리케이션의 경우 전력 소비가 최대치를 초과하지 않도록 모니터링이 필요하다. 이러한 모니터링은 아날로그 비교기(AC)를 이용해 쉽게 처리할 수 있다. AC는 션트 저항(Shunt registor)을 통해 전압을 측정한다. 전압이 기존에 설정된 한계치를 초과할 경우 PWM 신호는 즉시 중단되어야 한다. 아래 두 가지 사례는 모두 CIP를 이용한 것이며, CPU와의 상호작용 없이 과전류가 감지되었을 때는PWM 출력 신호가 중단될 수 있다.


TCA와 CCL을 이용한 LED 점등 예제

TCA0(Timer/Counter A0)은 LED용 PWM을 생성한다. AC는 과전류 감지를 위해 이용되며 CCL은 이 신호를 결합시키기 위해 이용되는데, 과전류가 감지되면 PWM은 자동적으로 중단된다. AC와 TCA0은 이벤트 시스템을 통해 CCL에 연결된다. AC 출력 신호와 PWM은 CCL 진리표에 따라 설정되며 해당 내용은 그림 5에서 확인할 수 있다. 이벤트 신호에 따라 AC가 0이 될 경우 PWM 신호가 연결된다. 과전류가 감지되면 AC 이벤트 신호는 1이 되고 출력은 0이 되며 이 상태는 과전류가 있는 동안 유지된다.


그림 5: 장애 관리를 위한 CCL 진리표


TCD를 이용한 모터 컨트롤 예제

BLDC 모터는 H-브리지에서 4개의 MOSFET을 구동하기 위해 두 개의 채널과 두 개의 보완채널 PWM 신호를 생성하는 TCD 타이머에 의해 제어된다. AC는 모터와 그라운드 사이의 션트를 통해 모터의 과전류를 감지하는데 이용된다. AC는 이벤트 시스템을 통해 TCD0에 연결된다. TCD 기능에는 장애 관리가 포함된다. 과전류 감지 즉, AC의 한계치를 넘어서면 이벤트 신호가 TCD에 전달되고 PWM이 자동적으로 중단된다. 


ToF(Time-Of-Flight) 측정 

ToF 측정은 신호가 전달되는 거리를 측정하기 위해 이용된다. 측정은 신호가 트랜시버를 떠날 때 시작되고 리시버에 감지되면 중단된다. 시간, 그리고 신호의 알려진 m/s를 기반으로 거리를 계산할 수 있다. 하기 예제는 초음파 신호로 거리를 측정한 것이다. 이를 위해서는 CIP TCA0, TCB0, TCS0, AC, 2개의 CCL이 필요하며 CPU 사용 없이도 ToF 산출이 가능하다.


[그림 6]은 룩업 테이블 1(LUT1)이 전송된 신호를 생성하는 것을 보여준다. TCA Out은 PWM 및 신호를 생성하고 TCD Out B는 송신 마스크이다. 전도된 송신 마스크와 PWM은 연산 AND로 결합된 후 전송 신호를 생성하며 이는 LUT1 진리표에 나타난다.


그림 6. 초음파 ToF 측정


LUT 0은 반사신호를 생성한다. AC Out은 수신선에 활동을 부여하고 TCD Out A는 수신 마스크이다. 반전된 수신 마스크와 “수신선”은 연산 AND로 결합되어 반사신호를 생성하며, 이 신호는 LUT0 진리표에 나타난다.


SR 래치는 첫 번째 전송 신호에 의해 리셋되고 TCD의 카운터를 동작시킨다. 반사신호의 신호와 SR 래치 설정에 따라 TCD 카운터가 중지된다. 그리고 CPU 사용없이 ToF가 TCD의 카운터 값에 저장된다. CPU는 거리 계산에만 필요하며 이때 거리는 ToF와 신호 속도를 곱해 산출한다. 초음파 거리 측정에 대한 더욱 자세한 기술정보는 AVR 애플리케이션 노트 AVR42779에서 확인할 수 있다.


결론

마이크로칩의 새로운 ATtiny1617/1616/1614/817/816/814/417 마이크로컨트롤러 시리즈는 tinyAVR 마이크로컨트롤러 제품군에 혁신적인 CIP를 추가한 제품이다. CIP 기능이 있는 경우 애플리케이션이 실시간으로 대응할 수 있으며, CIP 기능이 없는 경우와 비교해 소프트웨어 비용과 전력 소비를 절감할 수 있다. 이들 예제는 CIP 구현이 용이하며 소프트웨어 기반 솔루션에 비해 실시간 작업이 더욱 빠르고 소비전력도 낮다는 사실을 보여준다. 훨씬 더 뛰어난 성능의 마이크로컨트롤러를 이용한다고 해도 이와 같은 실시간 성능을 구현하기 어려울 수 있으며, 구현한다 해도 전력 소비는 그 몇 배에 이르게 될 것이다



글 : 그리거 선더디크(Gregor Sunderdiek) 마이크로칩테크놀로지 8비트 마이크로컨트롤러 사업부 연구원 











배너









주요파트너/추천기업