KR20090065232A - 다중플랫폼 기반의 mac프로그램실행장치, mac 기반의센서노드에 최적화된 태스크스케줄링장치 및 방법 - Google Patents

다중플랫폼 기반의 mac프로그램실행장치, mac 기반의센서노드에 최적화된 태스크스케줄링장치 및 방법 Download PDF

Info

Publication number
KR20090065232A
KR20090065232A KR1020070132710A KR20070132710A KR20090065232A KR 20090065232 A KR20090065232 A KR 20090065232A KR 1020070132710 A KR1020070132710 A KR 1020070132710A KR 20070132710 A KR20070132710 A KR 20070132710A KR 20090065232 A KR20090065232 A KR 20090065232A
Authority
KR
South Korea
Prior art keywords
task
hardware
mac
execution
execution time
Prior art date
Application number
KR1020070132710A
Other languages
English (en)
Inventor
이계선
김세한
김내수
표철식
황안규
심상만
Original Assignee
한국전자통신연구원
(주)태광이엔시
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원, (주)태광이엔시 filed Critical 한국전자통신연구원
Priority to KR1020070132710A priority Critical patent/KR20090065232A/ko
Publication of KR20090065232A publication Critical patent/KR20090065232A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W80/00Wireless network protocols or protocol adaptations to wireless operation
    • H04W80/02Data link layer protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/18Self-organising networks, e.g. ad-hoc networks or sensor networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

다중플랫폼 기반의 MAC 프로그램 실행장치, MAC 기반의 센서노드에 최적화된 태스크 스케줄링장치 및 방법이 개시된다. MAC 프로그램실행장치는 다중 플랫폼 기반에서 MAC 프로그램을 실행하는 MAC프로그램부에서 하드웨어제어서브루틴들을 호출하면, 다중 플랫폼 중에서 선택된 하나의 하드웨어 플랫폼에 대응되는 하드웨어인터페이스부의 하드웨어제어서브루틴을 실행하는 하드웨어표준인터페이스부를 포함함으로써, 서로 다른 하드웨어들로 구성된 다중 플랫폼에서 MAC 프로그램의 변경 없이 MAC 프로토콜을 구동할 수 있다. 또한, 태스크스케줄링장치 및 방법은 기설정된 실행시점에 태스크 큐에 태스크를 추가하는 콜백함수 및 실행시점에 관한 정보를 포함하는 콜백 정보를 저장하고, 타이머인터럽트를 수신하여 실행시점에 도달했는지를 판단하여, 실행시점에 태스크 큐에 태스크를 추가하고, 태스크 큐에 저장된 태스크를 실행함으로써 MAC 기반의 센서노드에서 제한된 자원만을 사용하여 태스크를 스케줄링할 수 있다.
Figure P1020070132710
MAC(Media Access Control), SHAL(Standard Hardware Abstract Layer), 스케줄러(Scheduler), 태스크(Task), 콜백(Call Back)

Description

다중플랫폼 기반의 MAC프로그램실행장치, MAC 기반의 센서노드에 최적화된 태스크스케줄링장치 및 방법{Apparatus for executing MAC Application program, and apparatus and method for Task Scheduling of Sensor node based on MAC}
본 발명은 다중플랫폼 기반의 MAC 프로그램실행장치, MAC 기반의 센서노드에 최적화된 태스크스케줄링 장치 및 방법에 관한 것으로, 보다 상세하게는 서로 다른 하드웨어들로 구성된 다중 플랫폼에서 MAC 프로그램의 변경 없이 MAC 프로토콜을 구동할 수 있는 MAC 프로그램실행장치 및 MAC 기반의 센서노드에 맞게 간단하게 동작함으로써 전력소모를 줄이는 태스크스케줄링장치 및 방법에 관한 것이다.
본 발명은 정보통신부의 IT성장동력기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호: 2005-S-106-03, 과제명: RFID/USN용 센서 태그 및 센서 노드 기술 개발].
본 발명이 속하는 기술분야인 OSI 2계층에 해당하는 매체접근제어(Medium Access Control, 이하 MAC) 기술은 서로 다른 매체에 적합한 표준을 갖고 있다. 예를 들어 IEEE 802.3 은 CSMA/CD Ethernet 기술로 유선 LAN에서 범용으로 사용되고 있으며, IEEE 802.11 은 무선 LAN 기술의 표준으로 사용되고 있다. 최근 IEEE 802.15.4 는 무선 센서 네트워크(Wireless Sensor Network, 이하 WSN)의 표준으로 정의되었다. 이 밖에도 표준으로 정의되지 않은 다양한 MAC 기술들이 있으며, WSN 센서 노드를 구성하기 위해 IEEE 802.15.4 혹은 S-MAC(Simple MAC), B-MAC(Berkeley MAC) 등의 적합한 MAC 기술을 구현하여 사용한다.
하지만, 동일한 MAC 기술일지라도 플랫폼에 따라 다른 하드웨어나 칩셋으로 구성되거나 각기 다른 운영체제(Operating System, 이하 OS)의 사용으로 인해 MAC기술의 재사용은 거의 불가능하다. 예를 들어 2.4GHz대역의 CC2420을 송수신기(Transceiver)로 사용하고, Atmega128L을 주 프로세서(main processor)로 사용하는 센서 노드에 IEEE 802.15.4 MAC를 구현하였으나, 송수신기는 동일하게 CC2420을 사용하더라도 MSP430과 같은 다른 주 프로세서를 사용하는 센서 노드를 제작하면 어쩔 수 없이 새로운 주 프로세서인 MSP430에 적합한 또 다른 IEEE 802.15.4 MAC을 구현해야 한다. 마찬가지로 송수신기를 변경해도 새로운 IEEE 802.15.4 MAC을 구현해야 하는 부담이 발생한다.
이러한 문제는 인적, 물적 자원의 낭비를 초래하며, 개발 기간의 증가를 가져오고, 결국 경쟁력 약화로 이어진다.
따라서, MAC 프로그램의 변경 없이 MAC 프로토콜을 구동할 수 있는 기술이 필요하고, 아울러, 센서노드의 작은 크기로 제한된 자원만을 사용해야 하는 특성을 고려하여 일반적인 OS의 스케줄러의 쓰레드 관리 및 메모리 관리와 같은 복잡한 모듈 없이 간단하게 동작하여 전력소모를 줄이는 스케줄링 기술이 필요하다.
본 발명이 이루고자 하는 제1 기술적 과제는, 서로 다른 하드웨어들로 구성된 다중 플랫폼에서 MAC 프로그램의 변경 없이 재사용할 수 있는 MAC 프로그램실행장치를 제공하는 데에 있다.
본 발명이 이루고자 하는 제2 기술적 과제는, MAC 기반의 센서노드에 맞게 간단하게 동작함으로써 전력소모를 줄이는 태스크스케줄링장치 및 방법을 제공하는 데에 있다.
상기의 제1 기술적 과제를 이루기 위한, 본 발명에 의한 다중플랫폼 기반의 MAC프로그램 실행장치는 상기 MAC 프로그램을 실행하는 MAC프로그램부; 상기 각 하드웨어 플랫폼의 하드웨어 장치에 직접 접근하여 제어하는 하드웨어제어서브루틴들을 포함하는 적어도 하나 이상의 하드웨어인터페이스부; 및 상기 프로그램부에서 상기 하드웨어제어서브루틴들을 호출하면, 상기 다중 플랫폼 중에서 선택된 하나의 하드웨어 플랫폼에 대응되는 하드웨어제어서브루틴을 실행하는 하드웨어표준인터페이스부를 포함한다.
상기의 제2 기술적 과제를 이루기 위한, 본 발명에 의한 태스크스케줄링장치 및 방법은 기설정된 실행시점에 태스크 큐에 태스크를 추가하는 콜백함수 및 상기 실행시점에 관한 정보를 포함하는 콜백 정보를 저장하는 콜백정보저장부; 수신되는 타이머인터럽트를 기초로 상기 실행시점에 도달했는지를 판단하여, 상기 실행시점 에 상기 태스크 큐에 상기 태스크를 추가하는 콜백함수실행부; 상기 태스크 큐에 저장된 태스크를 실행하는 태스크실행부를 포함한다.
상기의 제2 기술적 과제를 이루기 위한, 본 발명에 의한 태스크스케줄링방법은 기설정된 실행시점에 태스크 큐에 태스크를 추가하는 콜백함수 및 상기 실행시점에 관한 정보를 포함하는 콜백 정보를 저장하는 콜백정보저장단계; 수신되는 타이머인터럽트를 기초로 상기 실행시점에 도달했는지를 판단하여, 상기 실행시점에 상기 태스크 큐에 상기 태스크를 추가하는 콜백함수실행단계; 상기 태스크 큐에 저장된 태스크를 실행하는 태스크실행단계를 포함한다.
본 발명의 제1실시예인 MAC 프로그램실행장치에 따르면, 무선 센서 네트워크를 구성하기 위한 MAC 계층을 구현하는 MAC 프로그램을 다양한 하드웨어 플랫폼에 효과적으로 재사용할 수 있도록 함으로써 MAC 프로그램의 개발 기간을 단축하는 효과를 발생시킨다.
본 발명의 제2실시예인 태스크스케줄링 장치 및 방법에 따르면, 센서노드의 스케줄링에 있어 적은 전력을 소모하게 함으로써 자원의 제약이 심한 큰 무선 센서 네트워크에서 용이하게 이용될 수 있는 효과를 발생시킨다.
이하의 내용은 단지 본 발명의 원리를 예시한다. 그러므로 당업자는 비록 본 명세서에 명확히 설명되거나 도시되지 않았지만 본 발명의 원리를 구현하고 본 발명의 개념과 범위에 포함된 다양한 장치를 발명할 수 있는 것이다. 또한, 본 명세 서에 열거된 모든 조건부 용어 및 실시예들은 원칙적으로, 본 발명의 개념이 이해되도록 하기 위한 목적으로만 명백히 의도되고, 이와 같이 특별히 열거된 실시예들 및 상태들에 제한적이지 않는 것으로 이해되어야 한다. 또한, 본 발명의 원리, 관점 및 실시예들 뿐만 아니라 특정 실시예를 열거하는 모든 상세한 설명은 이러한 사항의 구조적 및 기능적 균등물을 포함하도록 의도되는 것으로 이해되어야 한다. 또한, 이러한 균등물들은 현재 공지된 균등물뿐만 아니라 장래에 개발될 균등물 즉 구조와 무관하게 동일한 기능을 수행하도록 발명된 모든 소자를 포함하는 것으로 이해되어야 한다.
따라서, 프로세서 또는 이와 유사한 개념으로 표시된 기능 블럭을 포함하는 도면에 도시된 다양한 소자의 기능은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 관련하여 소프트웨어를 실행할 능력을 가진 하드웨어의 사용으로 제공될 수 있다. 프로세서에 의해 제공될 때, 상기 기능은 단일 전용 프로세서, 단일 공유 프로세서 또는 복수의 개별적 프로세서에 의해 제공될 수 있고, 이들 중 일부는 공유될 수 있다. 또한, 프로세서, 제어 또는 이와 유사한 개념으로 제시되는 용어의 사용은 소프트웨어를 실행할 능력을 가진 하드웨어를 배타적으로 인용하여 해석되어서는 아니 되고, 제한 없이 디지털 신호 프로세서(DSP) 하드웨어, 소프트웨어를 저장하기 위한 롬(ROM), 램(RAM) 및 비휘발성 메모리를 암시적으로 포함하는 것으로 이해되어야 한다. 주지 관용의 다른 하드웨어도 포함될 수 있다.
상술한 목적, 특징 및 장점들은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 더욱 분명해 질 것이다. 본 발명을 설명함에 있어서, 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 실시 예를 상세히 설명한다.
도 1은 본 발명의 일실시예를 적용하여 구성할 수 있는 MAC계층의 구조를 도시한 도면이다.
도 1을 참조하면, 본 실시예에 따른 MAC 계층은 다양한 하드웨어 플랫폼(101 내지 107) 및 표준하드웨어추상화계층(SHAL: Standard Hardware Abstract Layer, 110), MAC 스케줄러(120) 등을 포함한다.
하드웨어 플랫폼은 예컨대, CC1020, CC2420 모델과 같은 송수신기(Transceiver), Atmega128L, MSP430 모델과 같은 마이크로 제어장치(MCU: Micro Controller Unit)로 구성된다. 또한, CC2430, EM250, UBC2500 모델과 같은 송수신기와 MCU가 단일 칩의 형태로 제작된 경우도 포함한다.
도 2는 본 발명의 제1실시예에 도시된 MAC 계층의 표준하드웨어추상화계층을 적용한 MAC 프로그램실행장치의 구성을 도시한 도면이다.
도 2를 참조하면, 본 실시예에 따른 MAC 프로그램실행장치(200)는 MAC프로그램부(220), 적어도 하나 이상의 하드웨어인터페이스부(211), 하드웨어표준인터페이스부(212)를 포함한다.
MAC프로그램부(220)는 MAC 프로토콜을 구동하는 하드웨어 장치들로 구성된 적어도 하나 이상의 하드웨어 플랫폼(201)을 포함하는 다중 플랫폼(202)을 기반으로 하여 MAC 프로그램을 실행한다.
하드웨어인터페이스부(211)는 다중 플랫폼(202)에 속한 각 하드웨어 플랫폼(201)의 하드웨어 장치에 직접 접근하여 제어하는 하드웨어제어서브루틴을 포함한다.
하드웨어표준인터페이스부(212)는 MAC프로그램부(220)에서 하드웨어를 제어하기 위해 하드웨어제어서브루틴을 실행하면, 다중 플랫폼(202) 중에서 선택된 하나의 하드웨어 플랫폼(201)에 대응되는 하드웨어인터페이스부(211)의 해당 하드웨어제어서브루틴을 실행한다.
여기에서 적어도 하나이상의 하드웨어인터페이스부(211) 및 하드웨어표준인터페이스부(212)를 통합하여 MAC 구조상에서 추상화한 계층을 도 1에 도시된 표준하드웨어추상화계층(SHAL)으로 볼 수 있다.
즉, 도 3a 내지 3b에서 도시된 바와 같이 다중 플랫폼 중에서 ETRI_SSN이라는 하드웨어 플랫폼이 선택되면, MAC프로그램부(201)에서 초기화 루틴이나, UART, LED 등의 서브루틴을 호출하면, 하드웨어표준인터페이스부(212)는 ETRI_SSN에 대응되는 하드웨어인터페이스부에 속한 해당 하드웨어제어서브루틴을 실행하게 된다.
종래에는 각각의 하드웨어 플랫폼 별로 별도로 구현된 하드웨어인터페이스를 제공하고, MAC 프로그램에서 이러한 플랫폼 별로 별도로 구현된 하드웨어인터페이스를 사용하였기 때문에, 이러한 하드웨어인터페이스가 달라지는 경우에 이러한 하드웨어인터페이스를 사용하는 MAC 프로그램 역시 수정되어야 했다.
그러나, 본 발명에서는 각각의 플랫폼 별로 제공되던 하드웨어인터페이스를 표준화한 하나의 하드웨어표준인터페이스를 제공하고, MAC 프로그램이 이러한 하나 의 하드웨어표준인터페이스를 통해 하드웨어를 제어하도록 구현하고 있다.
이를 통해 현재 사용중인 플랫폼과 다른 플랫폼에서 MAC 프로그램을 실행시키고자 할 경우에도 다른 플랫폼에 대응되는 하드웨어인터페이스부(211)만 제공되는 경우에는 MAC 프로그램의 변경 내지 수정이 없이도 하드웨어표준인터페이스부(212)를 통해 MAC 프로그램이 실행될 수 있게 된다.
하드웨어인터페이스부(211)에서 포함해야 할 하드웨어제어서브루틴들의 항목들은 표 1과 같다.
서브루틴의 이름 기능
RF RF 송수신기의 전원을 켜고, 끄거나, 통신채널을 설정하거나, CCA 등을 제어한다.
FIFO 입출력 인터럽트를 제어한다.
TIMER 타이머 인터럽트의 발생주기를 설정하고, 이에 따라 동작하는 타이머를 구현한다.
LED 하드웨어 플랫폼의 LED 회로를 제어한다.
UART 하드웨어 플랫폼의 UART 회로를 제어한다.
SENSORS 센싱 기능에 있어 측정할 기준 값이나 측정 대상(온도, 습도, 조도)등을 설정한다.
FILTERING 송수신하는 패킷의 주소들을 필터링한다. 특히, IEEE 802.15.4 MAC의 경우 PAN(Personal Area Network)를 식별하는 ID 및 Short/Extend 타입의 주소를 필터링한다.
CSMA/CA 하드웨어 플랫폼의 CSMA/CA를 설정한다.
DELAY MCU의 동작을 일정시간 정지(Delay/Wait)시킨다.
아울러, 하드웨어제어서브루틴에 하드웨어 플랫폼을 초기화하는 함수도 포함할 수 있다. 예컨대, 하드웨어플랫폼을 초기화하는 함수는 먼저, 하드웨어 플랫폼 별로 프로그램된 것으로 하드웨어플랫폼에 종속된 보드를 초기화하는 BoardInit()과, UART를 초기화하는 UartInit(), LED를 초기화하는 LedInit()을 포함하는 초기화 루틴 등을 포함할 수 있다.
또한, 하드웨어인터페이스부(211)에는 하드웨어 플랫폼에 속한 하드웨어에 직접 접근하여 제어하는 하드웨어 서브루틴들 이외에도 소프트웨어 구현에 필요한 데이터 타입의 정의 즉, 데이터 타입별 할당되는 비트 수, 그리고 호출할 때마다 임의의 랜덤한 값을 리턴해주는 랜덤함수 등을 제공할 수 있다.
데이터 타입 별 할당되는 비트 수 같은 경우에는 MCU의 종류에 따라 달라지고, 랜덤함수 같은 경우에는 하드웨어 플랫폼에 따라 하드웨어 자체에서 제공되는 경우도 있고 그렇지 않은 경우도 있기 때문에, 하드웨어플랫폼에 독립적인 MAC 프로그램을 구현하기 위해서는 하드웨어인터페이스부(211)에 포함되어 제공될 필요가 있다.
도 4는 본 발명의 제2실시예에 따른 태스크 스케줄링 장치의 구성에 관한 도면이고, 도 5는 도 4에서 도시된 태스크 스케줄링 장치에서 수행되는 태스크 스케줄링 방법의 흐름을 도시한 도면이다.
센서노드는 제한된 자원과 작은 크기의 제약이 있으므로 간단하게 동작하는 스케줄러가 적합하다. 상기 제안된 스케줄러는 쓰레드(thread) 관리나 메모리(memory) 관리와 같은 복잡한 모듈 없이 콜백관리와 태스크 관리만으로 간단하게 동작하여 센서노드의 전력 소모를 줄일 수 있다. 일반적으로 스케줄러는 쓰레드(thread) 관리와 메모리(memory) 관리를 하고 있고, 이런 특성으로 인해 센서노드의 전력 소모를 가중시키는 문제가 있다.
도 4를 참조하면, 본 실시예에 따른 태스크 스케줄링 장치는 콜백정보저장부(421), 콜백함수실행부(422), 태스크실행부(423), 및 태스크 큐(424)를 포함한다.
태스크 큐(424)는 태스크들을 저장한다. 여기에서 태스크란, 스케줄러에서 그 수행을 제어하는 프로그램의 기본 단위다.
태스크 큐는 태스크의 우선순위에 따라 별도로 분리된 복수의 우선순위별 서브태스크큐들을 포함할 수 있다.
콜백정보저장부(421)는 기설정된 실행시점에 태스크 큐에 태스크를 추가하는 콜백함수 및 이러한 콜백함수의 실행시점에 관한 정보를 포함하는 콜백 정보를 저장한다(S521).
콜백함수실행부(422)는 하드웨어 플랫폼으로부터 수신된 타이머인터럽트를 기초로 실행시점에 도달했는지를 판단하여, 콜백함수의 실행시점에 도달하면 해당 콜백함수를 실행하여 태스크 큐에 해당 태스크를 추가한다(S522).
콜백정보저장부(421)에서 저장되는 실행시점에 관한 정보는 콜백 정보를 저장하는 시점을 기준으로 실행시점까지의 타이머 인터럽트의 수신횟수인 타이머 값을 포함한다. 이는 해당 콜백함수가 현재시간을 기준으로 얼마 후에 실행되어야 하는지를 나타낸다.
콜백함수실행부(422)는 하드웨어 플랫폼으로부터 타이머 인터럽트가 수신되었을 때 타이머값을 감소시키고, 상기 감소된 타이머값이 만료가 되면 콜백함수를 실행한다.
이러한 콜백함수실행부(422)에서 제공하는 단일한 타이머 기능을 이용하여 MAC에서 요구하는 동기화를 수행하기 위해서는 일정한 주기로 타이머 인터럽트를 발생하여야 한다. 여기에서 일정한 주기란 IEEE 802.15.4 표준에서 요구되는 시간으로 20symbol을 기본 단위로 하여 설정된다. 기본 단위는 20symbol이지만 symbol의 시간은 주파수 별로 정의된 값을 사용한다. 예를 들어 2.4GHz의 경우에는 20symbol의 기본 단위를 320us(IEEE 802.15.4에서 제정한 2.4GHz의 symbol rate은 62.5Ksymbol/s이므로 1symbol은 16us임)로 정의하며, 타이머가 요구되는 최소한의 시간 단위는 320us으로 설정하여 타이머 인터럽트를 고정시켜 처리한다.
여기에서, 타이머 인터럽트는 IEEE 802.15.4 표준에서 요구되는 심볼레이트를 기준으로 설정된 주기에 따라 일정하게 발생한다.
콜백함수실행부(422)는 타이머 인터럽트가 발생되었을 때 타이머값을 감소시키고, 감소된 타이머값이 만료가 되면 콜백함수를 실행하여 해당 태스크를 태스크 큐에 저장한다.
태스크실행부(423)는 태스크 큐(424)에 저장된 태스크를 순서대로 실행한다(S523).
태스크 큐(424)가 태스크의 우선순위에 따라 별도로 분리된 복수의 우선순위별 서브태스크큐들로 구성된 경우에는 콜백함수실행부(422)에서 콜백함수에 의해 태스크가 추가됨에 있어서 태스크의 우선순위에 따라 서로 다른 서브태스크큐에 추가되며 태스크실행부(423)에서 태스크가 실행됨에 있어서 우선순위가 높은 태스크부터 실행된다. 임의의 태스크가 실행 중에는 다른 태스크로의 이동이 없으며, 실행중인 태스크보다 높은 우선순위의 태스크가 추가될 경우 실행중인 태스크가 끝난 후에 추가된 높은 우선순위의 태스크를 수행하게 된다.
이처럼, 본 실시예에 따른 스케줄링 장치 및 방법은 쓰레드 관리나 메모리 관리와 같은 복잡한 기능을 배제하고, 콜백 함수 및 이를 기초로 태스크 관리만으로 간단히 동작하도록 하여 적은 전력 소모를 요하는 센서노드에 적합한 스케줄링 기능을 제공하고 있다.
본 실시예에 따른 태스크 스케줄링 장치(402)는 운영체제를 사용하지 않거나 운영체제에서 제공되는 스케줄러가 적절하지 않을 때 펌웨어에 올려서 사용하도록 제공될 수 있다.
도 6는 도 4에 도시된 태스크 스케줄링 장치를 하드웨어 플랫폼에 결합하여 구성한 실시예를 도시한 도면이고, 도 7은 도 4에 도시된 태스크 스케줄링 장치를 하드웨어 플랫폼과 분리하여 표준하드웨어추상화인터페이스를 통해 접근 및 제어하도록 구현한 실시예를 도시한 도면이다.
도 6에 도시된 실시예에 따르면, 타이머 인터럽트를 처리하는 콜백함수실행부는 물론이고, 태스크가 타이머 인터럽트 이외의 다른 하드웨어 인터럽트를 처리하는 루틴을 포함하고 있는 경우에는 태스크실행부도, 하드웨어 플랫폼이 변경되었을 경우에는 수정 또는 변경의 대상이 되는 어려움이 존재한다.
그러나, 도 7에 도시된 실시예에 따르면, IEEE 802.15.4 표준에 따라 구현된 하드웨어표준인터페이스를 제공함으로써, 스케줄링 장치의 일부 구성요소들의 수정 또는 변경이 없이도, 다양한 하드웨어 플랫폼에 적용될 수 있게 된다.
도 7에 도시된 실시예에 있어서, 데이터 전송이 이루어지는 과정을 살펴보면, 먼저, 특정시간에 데이터를 전송하는 태스크를 포함하는 콜백함수 및 특정시간을 포함한 콜백정보가 콜백정보저장부(721)에 저장된다. 하드웨어 플랫폼에서 발생한 타이머 인터럽트를 수신하여 특정시간에 도달했음을 인지하면 콜백함수실행부(722)는 데이터를 전송하는 태스크를 태스크 큐(724)에 추가한다. 태스크 큐에 추가된 데이터전송태스크는 태스크실행부(723)에서 표준하드웨어추상화계층(SHAL, 730 )를 통해 데이터 전송에 관한 하드웨어제어서브루틴을 호출하여 데이터를 전송한다.
본 발명에서 구현하고자 하는 MAC 프로토콜은 센서 노드를 기반으로 하는 것으로, 본 발명의 제1실시예 및 제2실시예에는 표준으로 정의된 IEEE802.15.4 MAC을 비롯하여, S-MAC(Simple MAC), B-MAC 등의 모든 MAC 프로토콜을 적용할 수 있다.
본 발명은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 플래쉬 메모리, 광 데이타 저장장치등이 있으며, 또한 캐리어 웨이브(예를 들면 인터넷을 통한 전송)의 형태로 구현되는 것도 포함된다. 또한 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다. 또한 본 발명에 의한 폰트 롬 데이터구조도 컴퓨터로 읽을 수 있는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 플래쉬 메모리, 광 데이타 저장장치등과 같은 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다.
이상과 같이 본 발명은 양호한 실시예에 근거하여 설명하였지만, 이러한 실시예는 이 발명을 제한하려는 것이 아니라 예시하려는 것으로, 본 발명이 속하는 기술분야의 숙련자라면 이 발명의 기술사상을 벗어남이 없이 위 실시예에 대한 다양한 변화나 변경 또는 조절이 가능함이 자명할 것이다. 그러므로, 이 발명의 보호범위는 첨부된 청구범위에 의해서만 한정될 것이며, 위와 같은 변화예나 변경예 또는 조절예를 모두 포함하는 것으로 해석되어야 할 것이다.
도 1은 본 발명의 일실시예를 적용하여 구성할 수 있는 MAC계층의 구조를 도시한 도면이다.
도 2는 본 발명의 제1실시예에 따른 MAC 프로그램실행장치의 구성을 도시한 도면이다.
도 3a 내지 3b는 본 발명의 제1실시예에 따른 MAC 프로그램실행장치가 포함되는 MAC 계층의 구조를 도시한 도면이다.
도 4는 본 발명의 제2실시예에 따른 태스크 스케줄링 장치의 구성에 관한 도면이다.
도 5는 본 발명의 제2실시예에 따른 태스크 스케줄링 방법의 흐름을 도시한 도면이다.
도 6는 본 발명의 제2실시예에 따른 태스크 스케줄링 장치를 하드웨어 플랫폼에 결합하여 구성한 실시예를 도시한 도면이다.
도 7은 본 발명의 제2실시예에 따른 태스크 스케줄링 장치를 하드웨어 플랫폼과 분리하여 하드웨어표준인터페이스를 통해 접근 및 제어하도록 구현한 실시예를 도시한 도면이다.

Claims (16)

  1. MAC 프로토콜을 구동하는 하드웨어 장치들로 구성된, 적어도 하나 이상의 하드웨어 플랫폼을 포함하는 다중 플랫폼 기반의 MAC 프로그램 실행장치에 있어서,
    상기 MAC 프로그램을 실행하는 MAC프로그램부;
    상기 각 하드웨어 플랫폼의 하드웨어 장치에 직접 접근하여 제어하는 하드웨어제어서브루틴들을 포함하는 적어도 하나 이상의 하드웨어인터페이스부; 및
    상기 MAC프로그램부에서 상기 하드웨어제어서브루틴들을 호출하면, 상기 다중 플랫폼 중에서 선택된 하나의 하드웨어 플랫폼에 대응되는 하드웨어제어서브루틴을 실행하는 하드웨어표준인터페이스부를 포함하는 것을 특징으로 하는 MAC 프로그램실행장치.
  2. 제1항에 있어서,
    상기 하드웨어 장치는 RF 송수신기 및 마이크로프로세서 회로 중 적어도 하나를 포함하는 것을 특징으로 하는 MAC 프로그램실행장치.
  3. 제1항에 있어서,
    상기 하드웨어제어서브루틴은 RF 송수신기 회로를 제어하는 서브루틴, 입출력 인터럽트를 제어하는 서브루틴, LED 회로를 제어하는 서브루틴, 센서를 제어하는 서브루틴, 상기 RF 송수신기 회로를 통해 송수신되는 패킷의 주소를 필터링하는 함수, UART 회로를 제어하는 함수, 상기 하드웨어플랫폼을 초기화하는 함수 및 상기 하드웨어플랫폼의 레지스터를 읽는 함수 중 적어도 하나 이상을 포함하는 것을 특징으로 하는 MAC 프로그램 실행장치.
  4. 제1항에 있어서,
    상기 하드웨어인터페이스부는 데이터 타입별 할당되는 비트 수, 호출시 임의의 랜덤값을 리턴해주는 랜덤함수 등을 더 포함하는 것을 특징으로 하는 MAC 프로그램 실행장치.
  5. 기설정된 실행시점에 태스크 큐에 태스크를 추가하는 콜백함수 및 상기 실행시점에 관한 정보를 포함하는 콜백 정보를 저장하는 콜백정보저장부;
    수신되는 타이머인터럽트를 기초로 상기 실행시점에 도달했는지를 판단하여, 상기 실행시점에 상기 태스크 큐에 상기 태스크를 추가하는 콜백함수실행부; 및
    상기 태스크 큐에 저장된 태스크를 실행하는 태스크실행부를 포함하는 것을 특징으로 하는 태스크스케줄링장치.
  6. 제5항에 있어서,
    상기 실행시점에 관한 정보는 콜백 정보를 저장하는 시점을 기준으로 상기 실행시점까지의 상기 타이머 인터럽트의 수신횟수인 타이머 값을 포함하는 것을 특징으로 하는 태스크스케줄링장치.
  7. 제6항에 있어서,
    상기 콜백함수실행부는
    상기 타이머 인터럽트가 수신되었을 때 상기 타이머값을 감소시키고, 상기 감소된 타이머값이 만료가 되면 상기 콜백함수를 실행하는 것을 특징으로 하는 태스크스케줄링장치.
  8. 제5항에 있어서,
    상기 타이머 인터럽트는 IEEE 802.15.4 표준에서 요구되는 심볼레이트를 기준으로 설정된 주기에 따라 일정하게 수신되는 것을 특징으로 하는 태스크스케줄링장치.
  9. 제5항에 있어서,
    상기 태스크 큐는 상기 태스크의 우선순위에 따라 별도로 분리된 복수의 우선순위별 서브태스크큐들을 포함하는 것을 특징으로 하는 태스크스케줄링장치.
  10. 제9항에 있어서,
    상기 태스크실행부는 상기 우선순위가 높은 서브태스크큐들에 속한 태스크들을 우선적으로 실행하는 것을 특징으로 하는 태스크스케줄링장치.
  11. (a) 기설정된 실행시점에 태스크 큐에 태스크를 추가하는 콜백함수 및 상기 실행시점에 관한 정보를 포함하는 콜백 정보를 저장하는 단계;
    (b) 수신되는 타이머인터럽트를 기초로 상기 실행시점에 도달했는지를 판단하여, 상기 실행시점에 상기 태스크 큐에 상기 태스크를 추가하는 단계; 및
    (c) 상기 태스크 큐에 저장된 태스크를 실행하는 단계를 포함하는 것을 특징으로 하는 태스크스케줄링방법.
  12. 제11항에 있어서,
    상기 실행시점에 관한 정보는 콜백 정보를 저장하는 시점을 기준으로 상기 실행시점까지의 상기 타이머 인터럽트의 수신횟수인 타이머 값을 포함하는 것을 특징으로 하는 태스크스케줄링방법.
  13. 제11항에 있어서,
    상기 (b) 단계는
    상기 타이머 인터럽트가 수신되었을 때 상기 타이머값을 감소시키는 단계; 및
    상기 감소된 타이머값이 만료가 되면 상기 콜백함수를 실행하는 단계를 포함하는 것을 특징으로 하는 태스크스케줄링방법.
  14. 제11항에 있어서,
    상기 타이머 인터럽트는 IEEE 802.15.4 표준에서 요구되는 심볼레이트를 기준으로 설정된 주기에 따라 일정하게 수신되는 것을 특징으로 하는 태스크스케줄링방법.
  15. 제11항에 있어서,
    상기 태스크 큐는 상기 태스크의 우선순위에 따라 별도로 분리된 복수의 우선순위별 서브태스크큐들을 포함하는 것을 특징으로 하는 태스크스케줄링방법.
  16. 제11항에 있어서,
    상기 태스크실행부는 상기 우선순위가 높은 서브태스크큐들에 속한 태스크들을 우선적으로 실행하는 것을 특징으로 하는 태스크스케줄링방법.
KR1020070132710A 2007-12-17 2007-12-17 다중플랫폼 기반의 mac프로그램실행장치, mac 기반의센서노드에 최적화된 태스크스케줄링장치 및 방법 KR20090065232A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070132710A KR20090065232A (ko) 2007-12-17 2007-12-17 다중플랫폼 기반의 mac프로그램실행장치, mac 기반의센서노드에 최적화된 태스크스케줄링장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070132710A KR20090065232A (ko) 2007-12-17 2007-12-17 다중플랫폼 기반의 mac프로그램실행장치, mac 기반의센서노드에 최적화된 태스크스케줄링장치 및 방법

Publications (1)

Publication Number Publication Date
KR20090065232A true KR20090065232A (ko) 2009-06-22

Family

ID=40993632

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070132710A KR20090065232A (ko) 2007-12-17 2007-12-17 다중플랫폼 기반의 mac프로그램실행장치, mac 기반의센서노드에 최적화된 태스크스케줄링장치 및 방법

Country Status (1)

Country Link
KR (1) KR20090065232A (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101222133B1 (ko) * 2010-12-07 2013-01-15 전자부품연구원 하드웨어화된 하위 mac을 이용한 교차 레이어 통신 구조를 갖는 통신 장치
KR20180053838A (ko) * 2016-11-14 2018-05-24 엘에스산전 주식회사 인버터에서 인터럽트 제어방법
CN109522046A (zh) * 2018-11-13 2019-03-26 中国直升机设计研究所 一种适配多硬件平台的嵌入式软件开发模型
KR20220002056A (ko) * 2020-06-30 2022-01-06 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 분산 저장 방법 및 장치, 전자 기기, 컴퓨터 판독 가능 매체 및 컴퓨터 프로그램 제품

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101222133B1 (ko) * 2010-12-07 2013-01-15 전자부품연구원 하드웨어화된 하위 mac을 이용한 교차 레이어 통신 구조를 갖는 통신 장치
KR20180053838A (ko) * 2016-11-14 2018-05-24 엘에스산전 주식회사 인버터에서 인터럽트 제어방법
CN109522046A (zh) * 2018-11-13 2019-03-26 中国直升机设计研究所 一种适配多硬件平台的嵌入式软件开发模型
KR20220002056A (ko) * 2020-06-30 2022-01-06 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 분산 저장 방법 및 장치, 전자 기기, 컴퓨터 판독 가능 매체 및 컴퓨터 프로그램 제품

Similar Documents

Publication Publication Date Title
Eswaran et al. Nano-RK: An energy-aware resource-centric RTOS for sensor networks
US9883506B2 (en) Apparatus and methods for a bandwidth efficient scheduler
US20170329632A1 (en) Device scheduling method, task manager and storage medium
US20150199287A1 (en) Camera control interface extension with in-band interrupt
US20190227971A1 (en) Architecture for consolidating multiple sources of low-bandwidth data over a serial bus
US10572410B2 (en) Function-specific communication on a multi-drop bus for coexistence management
KR20090065232A (ko) 다중플랫폼 기반의 mac프로그램실행장치, mac 기반의센서노드에 최적화된 태스크스케줄링장치 및 방법
US7075914B2 (en) Software modem architecture
US7111089B2 (en) Programmable scheduler for digital signal processor
US20180368192A1 (en) Offloading mac/link layer functions
CN116830082A (zh) 嵌入式系统的启动控制方法和装置、存储介质和电子设备
CN112753197A (zh) 使用lan唤醒的网络管理
US11288223B2 (en) Bridge chip with function of expanding external devices and associated expansion method
CN111034135A (zh) 在单个无线电装置上同时使用多个协议
US20160302257A1 (en) Method for arbitration and adaptive power-cycling in a multi-channel network
Ruckebusch et al. A unified radio control architecture for prototyping adaptive wireless protocols
Lynch et al. PIC-based TinyOS implementation
CN109254758B (zh) 用于麒麟系统的软件无线电系统及其开发方法
CN109857382A (zh) 一种SoC芯片软件定义无线电解耦设计方法
US20080159195A1 (en) Integration of wired and wireless network connections
Yan et al. Mixed time-triggered and event-triggered industrial controller in IoT environment
Zetterman et al. Multi-radio coexistence and collaboration on an SDR platform
Christmann et al. BiPS-A Real-time-capable Protocol Framework for Wireless Sensor Networks.
WO2024037482A1 (zh) 一种中断消息处理方法及装置
CN114448912B (zh) 一种物联网专属的eSIM芯片

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application