Search

'ZigBee'에 해당되는 글 4건

  1. 2008.07.24 Nano Q Plus OS 디렉토리 분석 – [nos]
  2. 2008.07.23 Kmote를 이용한 간단한 조명시스템 (1)
  3. 2008.07.14 Nano Q Plus ??
  4. 2008.07.14 kmote 최초 컴파일

Nano Q Plus OS 디렉토리 분석 – [nos]

NanoQplus 2008.07.24 08:52 Posted by 몽백작

Nano Q Plus OS 디렉토리 분석 – [nos]

 

Nano Q Plus 운영체제의 핵심으로 아키텍쳐(MCU), RF(CC2420), 커널, 네트워크(MAC, Routing), 플랫폼 별 디바이스 드라이버 및 API가 존재한다.

 

l  arch : 아키텍쳐(MCU) 공통 기능을 encapsulating

n  critical_section.c / critical_section.h : 크리티컬 섹션

n  time_check.c / time_check.h : 시스템 시간

n  uart.c / uart.h / uart_gets.c / uart_printf.c / uart_puti.c / uart_puts.c / uart_putu.c : 시리얼 통신

n  atmega128 : ATmega128 MCU specific codes

u  adc.c / adc.h : ADC(Analog-Digital Converter)

u  arch.c / arch.h : 아키텍쳐 기본

u  eeprom.c / eeprom.h : EEPROM

u  hal_sched.c / hal_sched.h : HAL(Hardware Abstraction Layer) 스케쥴러

u  hal_thread.c / hal_thread.h : HAL(Hardware Abstraction Layer) 쓰레드

u  intr.c / intr.h : 인터럽트

u  pwr_mgr.h : 전원 관리

u  spi.h : Serial Programming Interface

u  timer.c / timer.h : 시스템 타이머

u  typedef.h : 데이터 타입 재정의

u  uart_getc.c / uart_init.c / uart_putc.c : 시리얼 통신

u  mm : 메모리 관리

l  heap.c / heap.h :

l  nos_free.c : 힙에 할당된 영역 free

l  nos_malloc.c : 힙에 메모리 할당

n  msp430x1611 : MSP430 MCU specific

u  adc.c / adc.h : ADC

u  arch.c / arch.h : 아키텍쳐

u  clock.c / clock.h : 시스템 클럭

u  hal_sched.c / hal_sched.h : HAL 스케쥴러

u  hal_thread.c / hal_thread.h : HAL 쓰레드

u  intr.c / intr.h : 인터럽트

u  pwr_mgr.h : 전원 관리

u  spi.h : SPI

u  timer.c / timer.h : 시스템 타이머

u  typedef.h : 데이터 타입 재정의

u  uart_getc.c / uart_init.c / uart_putc.c : 시리얼 통신

u  mm : 메모리 관리

l  heap.c / heap.h :

l  nos_free.c / nos_malloc.c : 힙에 메모리 할당 / 해제

l  drivers : 장치 드라이버

n  rf : 무선 통신 장치 드라이버

u  cc2420.c / cc2420.h : CC2420 드라이버

l  kernel : 커널에서 구현되는 기능

n  kernel.c / kernel.h : 커널 초기화

n  msgq.c / msgq.h : 메시지큐

n  sched.c / sched.h : 스케쥴러

n  sem.c / sem.h : 세마포어

n  taskq.c / taskq.h : 태스크큐

n  user_timer.c / user_timer.h : 타이머

n  thread : 쓰레드 관련

u  thread.h : 쓰레드 관련 상수 정의

u  thread_create_exit.c : 쓰레드 생성 / 제거

u  thread_join.c : 쓰레드 조인

u  thread_kill.c : 쓰레드 제거

u  thread_priority_change.c : 쓰레드 우선순위 변경

u  thread_resume.c : 쓰레드 다시 가동

u  thread_sleep.c : 쓰레드 sleep

u  thread_suspend.c : 쓰레드 잠시 중단

u  thread_wakeup.c : sleep된 쓰레드 깨우기

u  threadq.h: 쓰레드 큐잉

u  threadq_ext.h : 쓰레드 큐잉 확장

l  net : 네트워크 관련

n  mac : MAC(Media Access Control) 프로토콜

u  mac.h : MAC 매크로 정의

u  nano_mac : Nano MAC 관련

l  nano_mac.c / nano_mac.h : Nano MAC 구현

n  routing : 라우팅 관련

u  routing.h : 라우팅 매크로 정의

u  reno : Reno 라우팅 관련

l  reno.c / reno.h : Reno 라우팅 구현

l  reno_interlayer.c : 계층(MAC – Network)간 라우팅 메시지 처리

u  teno : Teno 라우팅 관련

l  teno.c / teno.h : Teno 라우팅 구현

l  platform : 플랫폼별 기능 구현

n  etri-ssn

n  hmote2420

n  isn-400n

n  micaz

n  nano-24

n  sky-z200

n  tmote-sky

n  ubi-coin

n  ubi-msp

n  zigbex

l  include : 공통 API(api.h)와 플랫폼별 API(api_플랫폼이름.h) API 정의

사용자 삽입 이미지

※ 참고로 이 글은 제 개인적인 시각으로 분석한 결과입니다. 다른 의견이나 다른 사실이 있을 경우, 댓글 달아주시면 감사하겠습니다.
Nano Q Plus 정보가 너무 부족합니다. 함께 분석하고 알아갔으면 합니다.
신고

졸업작품에서 처음 계획한 조명시스템은 모델하우스를 밝힐 조명과 그들을 제어하는 스위치 및 네트워크(ZigBee)를 말하는 것이었습니다.
가장 간단한 시스템일줄 알았는데, 나름 험난한 산을 하나 넘어온 느낌이네요.. ^^;;;


처음에는 이걸로 스위치를 사용한 인터럽트가 성공했을 줄 알았습니다. 하지만 그 뒤에는 더큰 산이....;;;;
MSP430은 ARM과 다르다는 것을 몰랐다는 것이죠.

방금전 겨우겨우 해결!! ^^
네트워크 기능을 제외한 단순한 스위치 인터럽트를 이용한 조명시스템 모델의 기본 모듈입니다.

이걸 이용해서 작은 모델 하우스의 조명을 밝힐 예정입니다. ㅋㅋ

이제... ADC만 해결하면 어느 정도 어려운 산은 넘어간건데...ㅜ.ㅜ
신고

Nano Q Plus ??

NanoQplus 2008.07.14 13:27 Posted by 몽백작

IEEE 802.15.4 LR PAN 표준 (대부분 ZigBee라고 부르는...) 을 구현하기 위해서는 하드웨어(모트)와 소프트웨어(운영체제)가 필요하다.
모트는 여러 종류가 있겠지만 대부분 UC버클리에서 만든 AVR(Atmega128) 기반의 MICAz와 TI(MSP430) 기반의 Telos 계열이 있으며 시중에 나와있는 대부분 모트들이 이들 모트를 기반으로 한다. (물론 아닌 것도 많다.)

운영체제? 그 엄지손가락만한 센서노드에 무슨 운영체제? 라고 생각할 수 있겠지만, 센서네트워크의 특성상 노드의 전력소모를 최소화 하는 것에 노드 프로그램 설계의 초점이 맞춰져 있고, 이를 위해서는 효과적인 전력관리(Power management) 기능이 필수가 되며, 이는 운영체제를 기반으로 손쉽게 구현할 수 있다.

운영체제 역시 UC버클리의 TinyOS가 가장 유명할 듯 싶다.
C와 유사하긴 하지만 어떻게 보면 완전히 다른 언어인 nesC를 사용한다.

국내에서는 ETRI에서 만든 Nano Q Plus라는 센서노드용 운영체제가 있다.
100% C로 구현이 되어 있고, C로 구현할 수 있다.
따라서 쉽고, 금방(?) 배울 수 있다.


하지만 역시 안정화가 문제가 될 수 있는데...
여전히 불안한 감은 없지 않아 있다.
게다가 못마땅한 업데이트 주기... 간혹 답답한 심정을 느끼기도 한다.

그래도 국산인데, 한번씩 써보셨으면 하는 마음이다. ^^
한번 설치해보실 분은 ETRI 융합소프트웨어연구본부 들어가서 다운로드해보시길...
신고

대학교를 졸업하려면 졸업논문을 써야한다.
물론 멋진일이다.

하지만, 난 조금 더 멋지다고 생각되는 쪽을 택했다.
바로 누리사업단에서 주관하는 졸업작품전시회 출품!!

특히 관심있는 가전제품 제어쪽을 택했고, ZigBee를 이용하기로 했다.
(말은 이렇게 쉽게 하지만 주제를 정하기까지 지난 겨울을 모두 소비했을 정도이다.)

우여곡절끝에 하드웨어(Mote)와 소프트웨어(OS)는 각각 Telos Rev.B와 동일한 국내 아이앤테크(주)의 Kmote-B, TinyOS 대신에 ETRI에서 만든 Nano QPlus를 택했다.

아래 영상은 첫 컴파일했을 때이다.

지금은 모쪼록 시간이 절반이상이 흘러 여러가지 난관에 봉착해있지만, 저때만 하더라도 저 모트하나로 뭐든 할수 있을것만 같았다.


현재 봉착해있는 문제는 ADC관련...
LM35 온도센서를 사용하는데, Nano QPlus의 ADC관련 API가 말을 듣지 않는다.
아무래도 API를 직접 건드려야 할듯...

휴.... 다시한번....
저때를 생각하며....
각오를 새롭게 하자!!
신고



 

티스토리 툴바