Your SlideShare is downloading. ×
0
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823

1,834

Published on

2012년 8월 23일 서울 역삼동 르네상스호텔에서 개최된 에너지마이크로 세미나에서 발표된 NanoQplus 자료

2012년 8월 23일 서울 역삼동 르네상스호텔에서 개최된 에너지마이크로 세미나에서 발표된 NanoQplus 자료

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,834
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
28
Comments
0
Likes
2
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. NanoQplus v2EFM32 지원 센서노드용 초소형 운영체제 2012. 8. 23 김선태 (stkim10@etri.re.kr) 임베디드SW연구부 실시간 SW연구팀, ETRI
  • 2. Contents!  개요!  주요 기능!  활용 사례!  NanoQplus for EFM32 2 stkim10@etri.re.kr
  • 3. NanoQplus 개요 3 stkim10@etri.re.kr
  • 4. NanoQplus v2!  ETRI가 만든 센서노드용 초소형 운영체제 -  2006년 2월부로 v2를 scratch부터 새로 개발 -  Nano OS, NOS라고도 부름!  2007년 10월 최초 공개버전 배포 -  ATmega128, MSP430F1611을 사용한 교육용 센서노드에서 사용 가능 -  Mesh 및 tree 기반 L2 라우팅 프로토콜 포함!  2009년 자동차용 OS인 ROSEK 개발 및 국제 인증 (OSEK/VDX)!  2012년 8월 현재 v2.5.0 -  IPv6, 6LoWPAN, RPL, CoAP 등 지원!  관련 웹사이트 -  https://sites.google.com/site/nanoqplusos/ -  http://nano-os.tistory.com/ -  http://www.facebook.com/NanoQplus 4 stkim10@etri.re.kr
  • 5. 지원하는 하드웨어!  Microcontrollers -  8 Bit •  ATmega128(L) •  8051 based MCUs (CC2430, MG2455) -  16 Bit •  MSP430F1611 •  MSP430F5438 •  HCS12X (ROSEK 자동차용 OS) -  32 Bit •  ARM Cortex-M0 (S3FN41F) •  ARM Cortex-M3 (EFM32GG)!  Radio Transceivers -  2.4GHz •  CC2420 (Texas Instruments) •  MG2410 (Radiopulse) -  Sub-1GHz •  CC1120 (Texas Instruments) •  AT86RF212 (Atmel) 5 EFM32GG-STK3700 stkim10@etri.re.kr
  • 6. NanoQplus 구조도MCUMCU Radio transceiver RF transceiver Sensors Sensors MCU Sensors 6 stkim10@etri.re.kr
  • 7. 특징 및 장점!  C와 멀티 쓰레드 커널을 특징으로 하는 개발 환경 -  낮은 learning curve: 친숙한 C 언어를 사용한 쉬운 프로그래밍 -  Task Queue, user timer, multi-thread 등을 이용해 복잡도 높은 응용도 손 쉽고 직관적으로 개발 가능!  모듈화를 통한 프로그램 경량화 -  필요에 따라 모듈을 추가/제거 하여 바이너리 크기 최소화!  에너지 절감을 위한 자율적 sleep 기능 -  사용자의 관여 없이 커널 레벨에서 알아서 sleep -  사용자 응용에 따라 최적화 되는 스마트 슬립!  하드웨어 추상화 및 의존적/비의존적 코드 분리 -  새로운 플랫폼으로의 포팅이 용이 -  Code portability: 사용자는 NanoQplus에서 제공하는 API만으로 응용 작성!  안정적인 네트워크 스택 -  L2 Routing: TENO (데이터 수집), RENO (양방향 통신) -  IETF 표준 프로토콜: 6LoWPAN, IPv6, RPL, CoAP 등!  풍부한 튜토리얼 -  각각의 모듈의 기능을 테스트하고 사용법을 익힐 수 있음 7 stkim10@etri.re.kr
  • 8. NanoQplus 주요 기능 8 stkim10@etri.re.kr
  • 9. 커널 주요 기능!  Multi-Threads -  Preemptive RR 스케줄러 사용 (Supported time-slice values: 5ms, 10ms, 32ms) -  우선순위: 1(low), 2(normal), 3(high), 4(highest) -  쓰레드를 지원하여 이벤트 방식을 이용하는 운영체제에 비해 쉽고 직관적인 응용 작성 가능 -  다른 기능이 동작되는 동안에 병행적으로 작업이 진행될 필요가 있는 경우에 사용!  User Timers -  일반적으로 응용에서 가장 많이 사용되는 기능 -  주기적 또는 일회성 작업!  Task Queue -  지연하여 처리해야 할 작업에 적합 -  디바이스 드라이버 작성시 Top-bottom halves 형식으로 구현 가능!  하이브리드 인터럽트 처리 기능 -  빠른 응답성의 HW 인터럽트 처리 방식과 안정적이고 다양한 기능을 지원하는 SW인터럽트 처리 병행 사용 -  SW 인터럽트의 user-defined 우선순위 설정 가능!  스마트 슬립 기능 -  실행할 태스크가 없을 때 자동으로 슬립 모드로 전환 -  Wakeup 소스를 자동으로 확인하여 최적의 슬립 모드를 선택 9 stkim10@etri.re.kr
  • 10. NanoQplus 네트워크 스택!  IPv6 기반 인터넷 연동 기능 -  Internet of Things, M2M, 스마트 에너지 프로파일 2.0을 위한 IPv6 네트워크 구성에 사용!  트리 네트워크 기반 멀티홉 라우팅 프로토콜 기능 -  다수의 노드로 부터 소수의 싱크 노드로 데이터를 수집하는 네트워크에 활용!  메쉬 네트워크 기반 멀티홉 라우팅 프로토콜 기능 -  센서 노드간 양방향 통신에 유리하여 데이터 수집 목적 이외의 네트워크에 활용!  1홉간 간단한 패킷 송수신 -  멀티홉 라우팅이 불필요한 간단한 응용은 MAC 레벨에서 프로그래밍 가능 10 stkim10@etri.re.kr
  • 11. IPv6 네트워크 스택 !  상호운용성을 위한 IETF 표준 준수 -  TinyOS, Contiki OS와 상호호환 Applications !  IEEE 802.15.4 지원 -  6LoWPAN 적응계층 필요CoAP ND RPL -  Neighbor Discovery도 링크계층 특성에 맞게 최적화UDP ICMPv6 !  IPv6, ICMPv6, UDP -  IETF RFC-compliant implementations IPv6 !  RPL -  IPv6 Routing Protocol for Low-power and Lossy Networks6LoWPAN Adaptation Layer !  CoAP -  Constrained Application Protocol -  HTTP-translatable REST protocol IEEE 802.15.4 -  경량 임베디드 웹 서버 프로그래밍 지원 11 stkim10@etri.re.kr
  • 12. RPL: IPv6 Routing Protocol for Low-power and Lossy Networks!  개요 -  IEEE 802.15.4, PLC 등 저전력, 고손실 네트워크(LLNs; Low-power and Lossy Networks)를 위한 IPv6 라우팅 프로토콜 -  IETF ROLL (Routing Over LLNs) Working Group에서 표준화: RFC 6550!  특징 -  기본적으로 데이터 수집을 위한 DODAG (Destination Oriented Directed Acyclic Graph) 형성 -  Data Path Validation: Data 패킷 내에 라우팅 정보를 삽입하여 loop 방지 -  노드의 자원을 고려한 downwards routing modes 종단간 패킷 수신률 시간대별 패킷 전송량 12 stkim10@etri.re.kr
  • 13. CoAP: Constrained Application Protocol!  개요 -  자원 제한적인 임베디드 장치용 웹 프로토콜 -  IETF CoRE(Constrained RESTful Environment) Working Group에서 표준화 진행 중!  특징 -  HTTP와 호환 가능: 중간에서 손쉽게 변환 가능 -  센서노드 같은 임베디드 장치를 웹 서버로 동작하게 하여 기존 시스템과 웹 레 벨의 호환성 제공 GET GET http://{Proxy address}/cgi/coap/ coap://{CoAP URI path} {CoAP URI path}/sensor/temperature /sensor/temperature Internet Constrained Network HTTP/1.1 200 OK … 0x62450405… CoAP Server HTTP Client 20 ( ) HC Proxy (2.05 … 20 ( )) 13 stkim10@etri.re.kr
  • 14. SW 원격 업그레이드!  무선 멀티 홉을 통해 원격에 위치한 센서노드 SW 업그레이드 -  센싱 데이터 전송 주기를 수정한 응용으로 업그레이드 -  센싱 데이터 종류를 수정한 응용으로 업그레이드 Old New 1110 센서: 온도 센서: 온도 1100 주기: 5s 주기: 2s 0110 1101 0101 0110 ①  새로운 응용 작성 및 컴파일 ②  원격 업그레이드 SW를 통해 0011 0011 Old New 대상 노드 및 응용 이미지 선택 센서: 온도 센서: 습도 0110 ③  전송 및 확인 주기: 5s 주기: 5s 14 stkim10@etri.re.kr
  • 15. NanoQplus 활용 사례 15 stkim10@etri.re.kr
  • 16. 대규모 실외 주차장 관리 시스템!  개요 -  실외 주자창의 사용현황을 센서를 통하여 실시간으로 확인하고, 입구에 위치한 전광판을 통해 주차 가능 대수 표현 -  운전자는 사전에 전광판을 확인하여 보다 쉽게 주차위치를 선택할 수 있음 16 stkim10@etri.re.kr
  • 17. 주차장 관리 시스템 특징!  동적 라우팅이 가능한 무선 멀티홉 통신을 사용해 확장이 용이!  효율적인 전력관리와 태양열 충전을 통한 반영구적인 시스템!  추후 기능추가를 위해 무선 네트워크 SW 업그레이드 지원!  개별단위 주차 유무 확인 및 LANE별 주차가능 대수 확인 가능 stkim10@etri.re.kr 17
  • 18. 빌딩 모니터링 테스트베드!  ETRI 7연구동 실내에 200여 개의 센서 노드 구축 -  80여개의 고정 센서 노드 설치 및 시험 -  120여개의 이동 센서 노드 시험 < 고정 센서 노드 설치 위치 > < 고정 센서 노드 모니터링 SW> < 천장에 설치된 센서 노드> 18 stkim10@etri.re.kr
  • 19. NanoQplus for EFM32 19 stkim10@etri.re.kr
  • 20. EFM32 & NanoQplus!  EFM32 특징 -  32비트 ARM Cortex-M3: 기존 센서 노드용 MCUs 대비 빠른 처리 -  LETIMER, LEUART, LESENSE 등 low-energy 기능 지원!  NanoQplus 동작 전략 -  Sleep을 위해 LF oscillator로 동작 가능한 RTC를 SysTick으로 활용 •  기본 SysTick은 HF oscillator를 사용하므로 sleep 불가능 -  할 일이 있는 경우 빠른 클럭을 이용해 빠르게 처리 -  당장 할 일이 없지만 일정 시간 후에 할 일(sleeping threads, not expired user timers)이 있는 경우, EM2 (deep sleep) 진입 -  외부 이벤트(GPIO)가 발생하기 전에 할 일이 전혀 없는 경우, EM3 (stop) 진입 -  일반 UART 수신 인터럽트 대기시 EM1 (sleep) 유지 -  Single thread 응용에서 delay가 필요한 경우에도 LETIMER 사용하여 EM2 (deep sleep) 진입 20 stkim10@etri.re.kr
  • 21. Scheduling in EFM32!  Thread A !  Thread B !  User Timer Cvoid thread_a(void *) void thread_b(void *) void user_timer_c(void *){ { { led_on(0); thread_sleep_ms(300); led_on(0); thread_sleep_ms(200); led_on(1); led_on(1); led_off(0); thread_sleep_ms(200); delay_ms(100); thread_sleep_ms(500); led_off(1); led_off(0); led_on(0); thread_sleep_ms(500); led_off(1); thread_sleep_ms(300); led_on(1); } led_off(0); thread_sleep_ms(300);} led_off(1); } 21 stkim10@etri.re.kr
  • 22. Scheduling in EFM32!  Thread A void thread_a(void *) { led_on(0); thread_sleep_ms(200); led_off(0); thread_sleep_ms(500); led_on(0); thread_sleep_ms(300); led_off(0); } 22 stkim10@etri.re.kr
  • 23. Scheduling in EFM32!  Thread B void thread_b(void *) { thread_sleep_ms(300); led_on(1); thread_sleep_ms(200); led_off(1); thread_sleep_ms(500); led_on(1); thread_sleep_ms(300); led_off(1); } 23 stkim10@etri.re.kr
  • 24. Scheduling in EFM32!  User Timer C void user_timer_c(void *) { led_on(0); led_on(1); delay_ms(100); led_off(0); led_off(1); } 24 stkim10@etri.re.kr
  • 25. Scheduling in EFM32!  Concurrent running int main(void) { nos_init(); thread_create(thread_a, NULL, 0, PRIORITY_NORMAL); thread_create(thread_a, NULL, 0, PRIORITY_NORMAL); user_timer_create_sec(user_timer_c, NULL, 0, USER_TIMER_ONE_SHOT); sched_start(); } EM2 EM3 25 stkim10@etri.re.kr
  • 26. NanoQplus for EFM32!  Conclusion -  태스크 스케줄러도 EFM32 특성에 맞게 에너지 절감형 동작 -  사용자는 언제 sleep 할지, 언제 wakeup 할지 걱정하지 않고 응용 프로그램 작성 가능!  Future Works -  LESENSE 등 EFM32 제공 에너지 절감 기능을 사용자가 사용하기 편하도록 OS 레벨 추상화 계속 -  EFM32 기반 플랫폼 추가 지원: EFM32 Starter-Kits, Breakout boards -  EFR 출시시 바로 지원 예정 26 stkim10@etri.re.kr
  • 27. Thank you!https://sites.google.com/site/nanoqplusos 27 stkim10@etri.re.kr

×