임베디드 개발보드‎ > ‎mbed‎ > ‎

[ARM mbed 강좌] 01. mbed 소개




mbed (ARM Core + Online tools + Community)



1. mbed 란?


mbed 마이크로콘트롤러는 온라인 프로그래밍 툴로 개발가능한 특징을 무기로 전원 및 usb 메모리 기능 등을 갖춘 원보드 형태의 마이크로콘트롤러이다. mbed의 어원은 여러가지 설이 있지만 들리는 바에 의하면 embedded 에서 나온 단어라고 한다. mbed "엠베드"라고 불리우고 있으며, 2005년 개발이후 많은 유저들에게 사랑받고 있다.

제조사는 NXP (Next eXPerience) Semiconductors 사에서 개발한 보드이며, 코어칩으로는 ARM Cortex M3 core, 96 MHz,메모리는 512 KB flash, 64 KB RAM 이며, Ethernet, USB Device, CAN, SPI, I²C, I/O 를 포함한 다양한 인터페이스를 갖추고 있다.

2005년, ARM 엔지니어 둘이서 마이크로 콘트롤러를 배우는 학생들에게 도움이 되고자 개발한 것이 바로 mbed이다. ARM 코어를 장착하고 있으면서, 사용하기 편하고, 첫 개발단계에는 회로를 모르더라도 구동할 수 있도록 전원회로, 통신회로 등의 회로등을 갖추도록 하였다. 현재는 고속의 NXP LPC1768 (Cortex-M3 core) 버전과 저전력의 NXP LPC11U24 (Cortex-M0 core) 두개의 제품을 중심으로 그 영향력을 넓히고 있다.

가장 큰 장점으로는, 온라인 개발툴이다. 먼저, 보드를 usb를 통해 컴퓨터에 접속한다. 그 후, 각종 OS와 상관없이 웹 브라우저를 통해 mbed.org 에 접속하는 것으로 프로그래밍 및 컴파일이 가능하며, 컴파일한 파일은 별도의 다운로드 장비없이 usb 메모리에 데이타를 옮기듯이 붙여넣기 하면 된다. 이러한, 유저의 편의성을 극대화한 mbed는 EDN Innovation Awards 의 Software/Embedded Tools 부문에서 상을 받기도 했다.

또한, 이러한 온라인 개발툴은 소스관리, 소스 공개, wiki 등을 갖춘 온라인 커뮤니티를 구성하고 있어서, 각종 응용 예제 및 오픈 된 소스를 받아서 사용해 볼 수 있다. 또한, mbed 를 이용한 응용 개발이 줄을 잇고 있어서 미래에 어떤 제품이 될지 더욱 궁금해 지게 만드는 제품이라고 볼 수 있다.








2. mbed 의 특징!


mbed의 특징은 정말 몇 번을 강조해도 부족한되요! 다시 한번 정리 해보록 하겠습니다.

mbed 특징

1. 웹브라우저를 통한 온라인 컴파일 및 소스 버전 관리 기능
: 윈도우, 리눅스, 맥 등 OS를 가리지 않고, 어떤 OS에서든 웹브라우저에서 온라인으로 컴파일이 가능하다. 또한, 프로그램 굽기는 별도 장비없이 USB에 연결만 하면 가능하도록 되어 있다. mcu 개발 하시는 분, 공부 하시는 분들이 많으신데 어둠에 길에서 얻으신 개발툴보다는 이런 공개 프로그램은 어떨까 제안 드립니다. 또한, 소스 버전 관리 기능인 VC 기능을 탑재하고 있어서 소스 커미트 및 리버전 등을 쉽게 할 수 있도록 되어 있다.

2. 커뮤니티를 통한 라이브러리 공개 및 방대한 개인 위키 페이지
: 온라인 컴파일을 제공하는 http://mbed.org/ 사이트는 온라인 컴파일만을 제공하는 것이 아니라, 각종 커뮤니티 및 라이브러리 공개 장소로 이용된다. 커뮤니티에서는 개인이 작성한 각종 방대한 개인 위키 페이지가 존재하여, 공개된 소스를 다운로드 받아서 쉽게 따라해 볼 수 있다. 무엇보다, 모든 유저가 기본적으로 같은 하드웨어를 이용하고 있기에 확장 보드가 아닌 이상 바로 적용 가능하다.

3. 고성능 32비트 ARM코어와 다양한 기능
: 기본적으로 최근 마이크로콘트롤러 분야에서 큰 인기를 얻고 있는 고성능 32비트 ARM Cortex M3 코어를 장착하고 있고, E thernet, USBHost ,USBDevice, SPI, I2C, CAN, AnalogIn, PwmOut, AnalogOut) 등 다양한 기능을 갖추고 있기에 별도로 추가해야할 회로등이 적어 여러 응용 개발에 손쉽게 사용할 수 있게 되어 있다.

장점은 알겠는데 단점은 없나?

1. 고가격?
: 문제는 가격! $59 달러, 우리 나라가격으로 대략 7만원대 후반이라는 것이다. 조금 비싼 가격이 문제이긴 하다. 그러나 좀더 생각해 보면, 8비트 MCU라서 비교하긴 적당하지 않지만 MCU에서 많이 사용하는 ATmega128의 경우, 칩을 사는 경우가 아닌 개발용 보드로 살 경우 20000원 상당 + 프로그래밍을 위한 ISP 30000원 상당, 그리고 기타 주변 회로등을 추가로 달아야 하거나, 상용 프로그래밍 소프트웨어 비용까지 합한 다면 mbed의 $59달러 라는 가격은 싸게 느껴 질 것이다.

2. 디버깅?
: 소스의 스텝별 실행 및 실행시마다 바뀌는 내부 레지스터, 변수 등의 디버깅은 현재 온라인 개발툴에서 제공되지 않는다. 이것은 상당한 단점으로 좀 더 복잡한 프로젝트를 진행할때는 아쉬운 부분이다. 그래서 이전까지는 보드에 장착되어 있는 4개의 LED 및 가상 시리얼 통신으로 디버깅을 대신해왔다. 그러나, 유저들의 요구는 점점 커진것. 그래서 mbed에서는 디버깅을 위해 CMSIS-DAP USB 디버깅을 내놓았다. 이는 오프라인 디버깅툴인 Keil MDK v4.60 을 다운받아서 기존의 소스의 스텝별 실행 및 실행시마다 바뀌는 내부 레지스터, 변수 등의 디버깅을 할 수 있게 된것이다. Keil MDK가 유료이긴하지만, 32kb 까지는 무료로 사용할 수 있다. 또, 내부적인 소식으로는 이를 온라인에서 해결하기 위한 시도도 하고 있다니 더욱 기대해볼 만 하다고 생각된다.


Comments