티스토리 뷰

전자/ARM

MCU에 대한 기본 적인 소개

geniuskpj 2017. 7. 10. 09:21

전공이 로봇이기때문에 기본적으로 MCU를 많이 써왔다.

 

하지만 아직도 PC환경을 고집하거나 AVR/ARDUINO 수준에

 

머무르는 개발자/일반인들이 많아 간단한 소개글을 써보려한다.

 

사실 많은 사람들이 MCU가 뭔지도 모르기때문에 그에 대한 설명을 간단히 해보겠다.

 

 

기본적으로 MCU는 Micro Controller Uint의 약자로 간단히 말하자면 single chip으로 된 작은 컴퓨터중 하나다.

 

여러분도 잘 아는 라즈베리파이나 비글본보드가 Single Chip Micro Computer에 해당한다.

 

기본적으로 PC대신 Single Chip Micro Computer를 쓰는 이유는 크게 3~4가지이다.

 

소형 경량화 : 가장 작은 보드(PC) 사이즈인 ITX조차 MCU와 비교하자면 수배~수십배 정도 크다.

 

소비 전력 : PC의 경우 못해도 50W~100W급 파워가 필요하다. 반면 MCU는 수십mW에서 수W정도이다.

 

가격 : PC는 수십만원 정도가 들지만 MCU는 칩만 살경우 몇천원 상용보드도 몇만원 수준으로 살 수 있다.

 

유지보수(신뢰성) : PC의 경우 수년이 지나면 각종 부품이 고장 <->MCU는 single chip이기때문에 신뢰성이 높고 교체가 용이

 

하지만 이처럼 장점만 가진다면 개발자들이 MCU를 쓰지 않을 이유가 없다.

 

MCU의 단점은 크게 나누어 다음과 같다.

 

성능 : PC 수 GHz, 메모리 수Gb <-> MCU 수십~수백 MHz 제한적 메모리

 

부족한 국내 정보/자료

 

대부분의 개발자들이 아무 거리낌없이 float을 사용할 것이다. 하지만 MCU는

 

별도의 Foating Point Unit이 있어야할 정도로 부동소수점 연산 능력이 떨어진다.

 

그리고 DSP의 경우 S모 회사의 모듈들이 제일 유명한데 제품 가격으로 말도 안되는

 

폭리를 취하고 있을 뿐만 아니라 각종 자료들을 고가에 판다.

 

ARM의 경우 M모 회사 모듈들이 유명한데 가격은 저렴하지만 강의자료/소스코드가

 

주먹구구식으로 되어있다. 

 

이렇다보니 초보자들이 접근하고 배우기엔 정보/자료가 많이 부족하다.

 

게다가 외국과 달리 국내는 많은 DSP/ARM 개발자들은 소스코드/기술을

 

본인의 자산으로 생각하여 공유하지 않는다.

 

 

 

이러한 단점에 대해 내 의견을 말하자면 영상 처리, 인코딩 등을 제외한

 

제어에 국한한다면 수백Mhz의 성능도 충분하다.

 

실 산업에 쓰이는 대부분의 제어가 PID기반임을 떠올려보라.

 

이외에도 LQR,MPC 정도는 무리없이 해낼 수 있다. PC의 경우

 

제어에 이용하려면 RTOS를 구축하는데 많은 시간과 노력이 필요한

 

반면에 MCU들은 기본적으로 realtime에 가깝게 동작하고

 

RTOS를 아주 쉽게 구축할 수 있다.

 

 자료 측면에서 말하자면 DSP의 경우 launchpad, ARM의 경우 디스커버리 보드라는

 

공식 보드가 존재하는데 해당 보드들을 사용하면 가격도 저렴하고 자료가

 

제조사 홈페이지에 잘 정리되어 있다. DSP의 경우 controlsuite이라는 프로그램을

 

이용하여 튜토리얼, 자료를 원활하게 확인할 수 있다. arm(stm32)의 경우

 

STM32cubemx라는 프로그램을 이용하면 기본적인 코드를 만들어주기때문에

 

사용하기 정말 간편하다.

 

여기까지 mcu의 장점과 단점에 대해 이야기해 봤다.

 

그럼 MCU의 대표적인 종류를 알아보자.

 

 

MCU는 위처럼 크게 세가지 종류가 유명하다. (옛날에 만들어둔 자료라 예시가 좀 예전것입니다ㅠ)

 

AVR이라고 하니 생소하게 생각하시는 분도 있겠지만 아두이노가 바로 AVR을 쓰고 있다.

 

주로 8Bit로된 AVR은 저렴한 가격덕분에 학습용 MCU로 많이 쓰여왔다. 아두이노라는 표준화된

 

플랫폼이 등장하면서 폭발적인 인기를 끌고 있다.

 

표준화가 되면서 코드 공유가 활발해진 덕분에 큰 노력 없이 많은 센서/주변기기들을 사용할 수 있다.

 

그렇지만 AVR은 타 MCU들에 비해 성능이 떨어지기때문에 제어에 사용하기엔 무리가 있다.

 

그래서 좀 더 복잡한 어플리케이션 및 제어에서는 ARM과 DSP가 대중적으로 이용된다.

 

흔히 ARM과 DSP의 차이점을 뭐냐고 물으면 위에 적혀 있듯이 ARM은 범용,저전력,저가이고

 

DSP는 연산/제어용,ARM에 비해 고전력, 고가라고 답변하는 경우가 대부분이다.

 

엄밀히 말하자면 반은 틀린 답변이다. ARM은 cortex 이후로 ALL, REAL TIME, MCU로 라인을

 

분류하여 저성능부터 고성능까지 다 커버하고 있다.

 

마찬가지로 TI는 MSP, C2000, DSP으로 라인을 분류하여 저성능부터 고성능까지 다 커버하고 있다.

 

그렇기때문에 ARM 전체, DSP 전체에 대해 비교하자면 큰 차이가 없다.

(다만 IQMATH라던지 세세한 차이는 존재한다. )

 

차이가 있다면 ARM은 제조사가 다양하여 선택의 폭이 넓고 DSP는 TI에서 제조되며

 

단일화된 IDE인 CCS를 제공한다는 정도이다.

 

다만 대중적으로 가장 많이 쓰이는 ARM의 M3, DSP의 C283X 계열을 놓고 비교하면

 

위의 예시가 맞다. 위의 두 계열이 자료가 많기때문에 제어용 고성능 MCU가 필요하다면

 

C283X게열로 가고 저전력, 소형 MCU가 필요하다면 M3계열로 가는게 좋다.

 

이러한 특징들때문에 나는 제어쪽을 다루기때문에 주로 DSP를 쓰지만 

 

학생/클라이언트한테 가르치는건 ARM,아두이노인 경우가 더 많다.

 

 

 

여기까지 간단히 MCU에 대해 소개했고 이후에 간단한 ARM 사용법에 대해 작성해보겠다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함