SlideShare ist ein Scribd-Unternehmen logo
1 von 27
Downloaden Sie, um offline zu lesen
NanoQplus v2

EFM32 지원 센서노드용 초소형 운영체제




                                 2012. 8. 23

           김선태 (stkim10@etri.re.kr)
           임베디드SW연구부 실시간 SW연구팀, ETRI
Contents

!    개요
!    주요 기능
!    활용 사례
!    NanoQplus for EFM32




                            2
                                   stkim10@etri.re.kr
NanoQplus 개요




       3
                stkim10@etri.re.kr
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
지원하는 하드웨어
!    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
NanoQplus 구조도




MCU
MCU    Radio transceiver
          RF transceiver   Sensors
                           Sensors
 MCU                        Sensors




              6
                                stkim10@etri.re.kr
특징 및 장점
!    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
NanoQplus 주요 기능




        8
                   stkim10@etri.re.kr
커널 주요 기능
!    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
NanoQplus 네트워크 스택
!    IPv6 기반 인터넷 연동 기능
      -  Internet of Things, M2M, 스마트 에너지 프로파일 2.0을 위한
         IPv6 네트워크 구성에 사용


!    트리 네트워크 기반 멀티홉 라우팅 프로토콜 기능
      -  다수의 노드로 부터 소수의 싱크 노드로 데이터를 수집하는
         네트워크에 활용


!    메쉬 네트워크 기반 멀티홉 라우팅 프로토콜 기능
      -  센서 노드간 양방향 통신에 유리하여 데이터 수집 목적
         이외의 네트워크에 활용


!    1홉간 간단한 패킷 송수신
      -  멀티홉 라우팅이 불필요한 간단한 응용은 MAC 레벨에서
         프로그래밍 가능


                                         10
                                                         stkim10@etri.re.kr
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 Networks
6LoWPAN Adaptation Layer
                                    !    CoAP
                                          -    Constrained Application Protocol
                                          -    HTTP-translatable REST protocol
       IEEE 802.15.4                      -    경량 임베디드 웹 서버 프로그래밍 지원


                               11
                                                                     stkim10@etri.re.kr
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
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
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
NanoQplus 활용 사례




        15
                   stkim10@etri.re.kr
대규모 실외 주차장 관리 시스템

!    개요
     -  실외 주자창의 사용현황을 센서를 통하여 실시간으로 확인하고,
        입구에 위치한 전광판을 통해 주차 가능 대수 표현
     -  운전자는 사전에 전광판을 확인하여 보다 쉽게 주차위치를 선택할
        수 있음




                       16
                                    stkim10@etri.re.kr
주차장 관리 시스템 특징
!    동적 라우팅이 가능한 무선 멀티홉 통신을 사용해 확장이 용이
!    효율적인 전력관리와 태양열 충전을 통한 반영구적인 시스템
!    추후 기능추가를 위해 무선 네트워크 SW 업그레이드 지원
!    개별단위 주차 유무 확인 및 LANE별 주차가능 대수 확인 가능




                                     stkim10@etri.re.kr
                                         17
빌딩 모니터링 테스트베드

!    ETRI 7연구동 실내에 200여
     개의 센서 노드 구축
     -  80여개의 고정 센서 노드 설치 및
         시험
     -  120여개의 이동 센서 노드 시험



                                 < 고정 센서 노드 설치 위치 >




      < 고정 센서 노드 모니터링 SW>
                                 < 천장에 설치된 센서 노드>
                            18
                                           stkim10@etri.re.kr
NanoQplus for EFM32




          19
                       stkim10@etri.re.kr
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
Scheduling in EFM32

!    Thread A                !    Thread B             !    User Timer C
void 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
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
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
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
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
NanoQplus for EFM32

!    Conclusion
      -  태스크 스케줄러도 EFM32 특성에 맞게 에너지 절감형 동작
      -  사용자는 언제 sleep 할지, 언제 wakeup 할지 걱정하지 않고 응용
         프로그램 작성 가능


!    Future Works
      -  LESENSE 등 EFM32 제공 에너지 절감 기능을 사용자가 사용하기
         편하도록 OS 레벨 추상화 계속
      -  EFM32 기반 플랫폼 추가 지원: EFM32 Starter-Kits, Breakout boards
      -  EFR 출시시 바로 지원 예정




                                  26
                                                      stkim10@etri.re.kr
Thank you!

https://sites.google.com/site/nanoqplusos




                     27
                                        stkim10@etri.re.kr

Weitere ähnliche Inhalte

Was ist angesagt?

[White Paper] SDN 기반 공격 탐지차단 강화를 위한 네트워크 관리 정보 구성 방안
[White Paper] SDN 기반 공격 탐지차단 강화를 위한 네트워크 관리 정보 구성 방안[White Paper] SDN 기반 공격 탐지차단 강화를 위한 네트워크 관리 정보 구성 방안
[White Paper] SDN 기반 공격 탐지차단 강화를 위한 네트워크 관리 정보 구성 방안NAIM Networks, Inc.
 
SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)NAIM Networks, Inc.
 
Openstack Usecase(2018)
Openstack Usecase(2018)Openstack Usecase(2018)
Openstack Usecase(2018)Gasida Seo
 
[이동식 원격 데이터센터 컨퍼런스] SDN기반 자동화 기술의 이동식 데이터센터 적용방안-나임네트웍스 김동균 매니저
[이동식 원격 데이터센터 컨퍼런스] SDN기반 자동화 기술의 이동식 데이터센터 적용방안-나임네트웍스 김동균 매니저[이동식 원격 데이터센터 컨퍼런스] SDN기반 자동화 기술의 이동식 데이터센터 적용방안-나임네트웍스 김동균 매니저
[이동식 원격 데이터센터 컨퍼런스] SDN기반 자동화 기술의 이동식 데이터센터 적용방안-나임네트웍스 김동균 매니저NAIM Networks, Inc.
 
Cisco sddc solution 소개
Cisco sddc solution 소개Cisco sddc solution 소개
Cisco sddc solution 소개Woo Hyung Choi
 
네트워크 가상화를 통한 효율적인 빅데이터 처리
네트워크 가상화를 통한 효율적인 빅데이터 처리네트워크 가상화를 통한 효율적인 빅데이터 처리
네트워크 가상화를 통한 효율적인 빅데이터 처리정명훈 Jerry Jeong
 
ACI Microsegment Config Guide
ACI Microsegment Config GuideACI Microsegment Config Guide
ACI Microsegment Config GuideWoo Hyung Choi
 
V1about Bluetooth
V1about BluetoothV1about Bluetooth
V1about Bluetoothash84
 

Was ist angesagt? (8)

[White Paper] SDN 기반 공격 탐지차단 강화를 위한 네트워크 관리 정보 구성 방안
[White Paper] SDN 기반 공격 탐지차단 강화를 위한 네트워크 관리 정보 구성 방안[White Paper] SDN 기반 공격 탐지차단 강화를 위한 네트워크 관리 정보 구성 방안
[White Paper] SDN 기반 공격 탐지차단 강화를 위한 네트워크 관리 정보 구성 방안
 
SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)
 
Openstack Usecase(2018)
Openstack Usecase(2018)Openstack Usecase(2018)
Openstack Usecase(2018)
 
[이동식 원격 데이터센터 컨퍼런스] SDN기반 자동화 기술의 이동식 데이터센터 적용방안-나임네트웍스 김동균 매니저
[이동식 원격 데이터센터 컨퍼런스] SDN기반 자동화 기술의 이동식 데이터센터 적용방안-나임네트웍스 김동균 매니저[이동식 원격 데이터센터 컨퍼런스] SDN기반 자동화 기술의 이동식 데이터센터 적용방안-나임네트웍스 김동균 매니저
[이동식 원격 데이터센터 컨퍼런스] SDN기반 자동화 기술의 이동식 데이터센터 적용방안-나임네트웍스 김동균 매니저
 
Cisco sddc solution 소개
Cisco sddc solution 소개Cisco sddc solution 소개
Cisco sddc solution 소개
 
네트워크 가상화를 통한 효율적인 빅데이터 처리
네트워크 가상화를 통한 효율적인 빅데이터 처리네트워크 가상화를 통한 효율적인 빅데이터 처리
네트워크 가상화를 통한 효율적인 빅데이터 처리
 
ACI Microsegment Config Guide
ACI Microsegment Config GuideACI Microsegment Config Guide
ACI Microsegment Config Guide
 
V1about Bluetooth
V1about BluetoothV1about Bluetooth
V1about Bluetooth
 

Andere mochten auch

Nordic bluetooth smart 20150123 shared
Nordic bluetooth smart 20150123 sharedNordic bluetooth smart 20150123 shared
Nordic bluetooth smart 20150123 sharedMitsuo Yamazaki
 
Nordic Semiconductor ASA, nRF51/Softdevice to offer innovative Module platfor...
Nordic Semiconductor ASA, nRF51/Softdevice to offer innovative Module platfor...Nordic Semiconductor ASA, nRF51/Softdevice to offer innovative Module platfor...
Nordic Semiconductor ASA, nRF51/Softdevice to offer innovative Module platfor...Mitsuo Yamazaki
 
Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...
Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...
Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...Mitsuo Yamazaki
 
Investordagen høsten 2014 - Nordic Semiconductor Company overview
Investordagen høsten 2014 - Nordic Semiconductor Company overviewInvestordagen høsten 2014 - Nordic Semiconductor Company overview
Investordagen høsten 2014 - Nordic Semiconductor Company overviewNordnet Norge
 
Mqtt 소개
Mqtt 소개Mqtt 소개
Mqtt 소개Junho Lee
 
Android Push Server & MQTT
Android Push Server & MQTTAndroid Push Server & MQTT
Android Push Server & MQTT광운 이
 
ARM CoAP Tutorial
ARM CoAP TutorialARM CoAP Tutorial
ARM CoAP Tutorialzdshelby
 
CoAP Course for m2m and Internet of Things scenarios
CoAP Course for m2m and Internet of Things scenariosCoAP Course for m2m and Internet of Things scenarios
CoAP Course for m2m and Internet of Things scenarioscarlosralli
 
사물인터넷에 활용되는 무선통신 기술
사물인터넷에 활용되는 무선통신 기술사물인터넷에 활용되는 무선통신 기술
사물인터넷에 활용되는 무선통신 기술남억 김
 
CoAP, Copper, and Embedded Web Resources
CoAP, Copper, and Embedded Web ResourcesCoAP, Copper, and Embedded Web Resources
CoAP, Copper, and Embedded Web ResourcesMatthias Kovatsch
 
IoT 서비스 아키텍처 분석 및 Case Study-Innovation Seminar
IoT 서비스 아키텍처 분석 및 Case Study-Innovation SeminarIoT 서비스 아키텍처 분석 및 Case Study-Innovation Seminar
IoT 서비스 아키텍처 분석 및 Case Study-Innovation Seminar영섭 임
 

Andere mochten auch (12)

Nordic bluetooth smart 20150123 shared
Nordic bluetooth smart 20150123 sharedNordic bluetooth smart 20150123 shared
Nordic bluetooth smart 20150123 shared
 
Nordic Semiconductor ASA, nRF51/Softdevice to offer innovative Module platfor...
Nordic Semiconductor ASA, nRF51/Softdevice to offer innovative Module platfor...Nordic Semiconductor ASA, nRF51/Softdevice to offer innovative Module platfor...
Nordic Semiconductor ASA, nRF51/Softdevice to offer innovative Module platfor...
 
Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...
Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...
Nordic-Semi (Japan) ~ Next Step for IoT & Bluetooth Smart @ Wireless Japan 20...
 
Investordagen høsten 2014 - Nordic Semiconductor Company overview
Investordagen høsten 2014 - Nordic Semiconductor Company overviewInvestordagen høsten 2014 - Nordic Semiconductor Company overview
Investordagen høsten 2014 - Nordic Semiconductor Company overview
 
Iot 단말 플랫폼동향 및 생태계 구축
Iot 단말 플랫폼동향 및 생태계 구축Iot 단말 플랫폼동향 및 생태계 구축
Iot 단말 플랫폼동향 및 생태계 구축
 
Mqtt 소개
Mqtt 소개Mqtt 소개
Mqtt 소개
 
Android Push Server & MQTT
Android Push Server & MQTTAndroid Push Server & MQTT
Android Push Server & MQTT
 
ARM CoAP Tutorial
ARM CoAP TutorialARM CoAP Tutorial
ARM CoAP Tutorial
 
CoAP Course for m2m and Internet of Things scenarios
CoAP Course for m2m and Internet of Things scenariosCoAP Course for m2m and Internet of Things scenarios
CoAP Course for m2m and Internet of Things scenarios
 
사물인터넷에 활용되는 무선통신 기술
사물인터넷에 활용되는 무선통신 기술사물인터넷에 활용되는 무선통신 기술
사물인터넷에 활용되는 무선통신 기술
 
CoAP, Copper, and Embedded Web Resources
CoAP, Copper, and Embedded Web ResourcesCoAP, Copper, and Embedded Web Resources
CoAP, Copper, and Embedded Web Resources
 
IoT 서비스 아키텍처 분석 및 Case Study-Innovation Seminar
IoT 서비스 아키텍처 분석 및 Case Study-Innovation SeminarIoT 서비스 아키텍처 분석 및 Case Study-Innovation Seminar
IoT 서비스 아키텍처 분석 및 Case Study-Innovation Seminar
 

Ähnlich wie NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823

[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solutionOpenStack Korea Community
 
[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis ClusterNAVER D2
 
웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD활 김
 
Network virtualization for the better understanding of Data Center Network
Network virtualization for the better understanding of Data Center NetworkNetwork virtualization for the better understanding of Data Center Network
Network virtualization for the better understanding of Data Center NetworkInho Kang
 
OpenStack summit austin 2016
OpenStack summit austin 2016OpenStack summit austin 2016
OpenStack summit austin 2016Yongyoon Shin
 
Mellanox introduction 2016 03-28_hjh
Mellanox introduction  2016 03-28_hjhMellanox introduction  2016 03-28_hjh
Mellanox introduction 2016 03-28_hjhMichelle Hong
 
2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)NAIM Networks, Inc.
 
DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) ymtech
 
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개OpenStack Korea Community
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...Cloud-Barista Community
 
Sumologic Kubernetes 라이브데모
Sumologic Kubernetes 라이브데모Sumologic Kubernetes 라이브데모
Sumologic Kubernetes 라이브데모Guenjun Yoo
 
Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3SANG WON PARK
 
NSO Introduction
NSO IntroductionNSO Introduction
NSO IntroductionJunho Lee
 
주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기Yeonhee Kim
 
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례(Joe), Sanghun Kim
 
Linux one brief_edm_202002
Linux one brief_edm_202002Linux one brief_edm_202002
Linux one brief_edm_202002jiyoungkim158
 

Ähnlich wie NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823 (20)

[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
 
[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster
 
웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD웹기반원격감시제어 2010 CPD
웹기반원격감시제어 2010 CPD
 
Network virtualization for the better understanding of Data Center Network
Network virtualization for the better understanding of Data Center NetworkNetwork virtualization for the better understanding of Data Center Network
Network virtualization for the better understanding of Data Center Network
 
OpenStack summit austin 2016
OpenStack summit austin 2016OpenStack summit austin 2016
OpenStack summit austin 2016
 
Mellanox introduction 2016 03-28_hjh
Mellanox introduction  2016 03-28_hjhMellanox introduction  2016 03-28_hjh
Mellanox introduction 2016 03-28_hjh
 
2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)
 
DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit) DPDK (Data Plane Development Kit)
DPDK (Data Plane Development Kit)
 
DPDK
DPDKDPDK
DPDK
 
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
 
ipv6_study.pdf
ipv6_study.pdfipv6_study.pdf
ipv6_study.pdf
 
Network seminar class 3
Network seminar class 3Network seminar class 3
Network seminar class 3
 
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
Cloud-Barista 제3차 오픈 컨퍼런스 : CB-Larva - Cloud-Barista 인큐베이터(Cloud-Barista Incu...
 
L4교육자료
L4교육자료L4교육자료
L4교육자료
 
Sumologic Kubernetes 라이브데모
Sumologic Kubernetes 라이브데모Sumologic Kubernetes 라이브데모
Sumologic Kubernetes 라이브데모
 
Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3Apache kafka performance(latency)_benchmark_v0.3
Apache kafka performance(latency)_benchmark_v0.3
 
NSO Introduction
NSO IntroductionNSO Introduction
NSO Introduction
 
주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기주니어 개발자의 서버 로그 관리 개선기
주니어 개발자의 서버 로그 관리 개선기
 
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례
[IBM 김상훈] AI 최적화 플랫폼 IBM AC922 소개와 활용 사례
 
Linux one brief_edm_202002
Linux one brief_edm_202002Linux one brief_edm_202002
Linux one brief_edm_202002
 

NanoQplus for EFM32 - EnergyMicro Seminar Korea 20120823

  • 1. NanoQplus v2 EFM32 지원 센서노드용 초소형 운영체제 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 구조도 MCU MCU 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 Networks 6LoWPAN 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 C void 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