Network
2010.08.18 09:29

IEEE 802.15.4

조회 수 20258 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

IEEE 802.15.4는 크게 두가지 부류의 장치, FFD(Full Function Device)와 RFD(Reduced Function Device)로 구분된다.

FFD의 역할은 코디네이터(Coordinator)나 라우터(Router)로서 네트워크 상에 동작하며 패킷의 전달 및 취합을 담당하는 노드로서 항상 동작(Active) 상태로 움직이는 장치를 말하는데, 대부분 배터리가 아닌 상전을 공급받는 노드로 정의될 수 있다

또 FFD의 다른 역할은 자식 노드의 슬립 주기(Sleep Cycle)을 관리하는 역할을 수행한다. 여기에서 슬립주기는 일반 모바일 장치에서와 같이 절전모드일 때는 대기상태로 전환되어 배터리를 절약하는 것과 같이 슬립을 함으로서 배터리 소모를 줄인다. 따라서 RFD는 FFD의 자식 노드서 배터리로 동작하는 노드를 의미하며 전력소비를 줄이기 위해 주기적으로 동작 및 슬립모드로의 전환을 통해 배터리를 절약해준다. 

이처럼 두 가지 장치 타입에 따라 토플로지(Topology) 형태가 결정되는데, FFD간에는 Mesh 형태로 구성되며, FFD와 RFD간에는 Star, Tree 형태의 토플로지가 구성되는 것을 알 수 있다. IEEE 802.15.4에서는 4가지 프레임 타입을 지원한다. 그 프레임 타입은 다음과 같다. 여기서 프레임 타입이란 전송 패킷의 타입이다.

1. Data Frame
2. Beacon Frame
3. Acknowledgement Frame
4. MAC Command Frame

여기에서 데이터 프레임은 일반적인 데이터를 전송하기 위한 프레임을 뜻하며, Beacon은 부모가 자식노드를 관리할 때 사용하는 프레임이다. Beacon의 뜻은 ‘횃불’이다. 이 말이 왜 나왔을까를 곰곰이 생각해보자. 우리가 영화를 보면 어두운 굴 안에 횃불이 드문드문 있어서 터널을 따라 가는 장면들을 자주 볼 수 있었을 것이다. 이 장면들처럼 Beacon은 무선 통신노드는 어두운 터널에서 횃불처럼 길을 밝혀주는 프레임이라고 이해하면 쉬울 것이다. 

Ack 프레임은 전송 신뢰도를 확보하기 위한 방법으로, 우체국의 우편 중 등기 우편과 같은 역할을 한다. 상대가 받았는지를 확인하고자 할 때 사용하는 프레임이다. 

MAC 명령 프레임은 구성원으로 참여 및 네트워크 스캔 등의 토플로지를 구성 혹은 관리하기 위한 명령 프레임들이다.  

IEEE 802.15.4에는 Beacon 모드와 Non-Beacon 모드 2가지 모드를 지원한다. 차이는 위에서 언급한 Beacon 프레임의 주기적인 전송이냐 아니냐의 차이이며, 내부적으로 살펴보면, 모든 노드가 주기에 맞춰지느냐 안 맞춰지느냐로 귀결된다.  

Non-Beacon 모드에서는 모든 노드들이 랜덤하게 슬립해 에너지 소모를 절약하고, 깨어나면 자신의 부모노드와 통신을 하는 개념이다. 따라서 노드간의 싱크를 맞출 필요가 없다. 반면 Beacon 모드에서는 모든 노드가 부모와의 싱크를 통해 주기를 맞춰줘야 한다.  

CAP(Contention Access Period)는 경쟁구간으로 모든 노드가 슬립에서 깨어나 경쟁하며 데이터를 전송하는 구간이다. CFP (Contention Free Peroid)는 비경쟁구간으로 특정 자식 노드에게 경쟁없이 중요한 데이터를 할당된 GTS(Guaranteed Time Slot) 구간을 이용한 전송기회를 부여한다. 좀 더 쉽게 설명하면, 경쟁구간은 말 그대로 친구들과 대화를 나눌 때라고 생각을 하면 되겠다. 주변 친구들과 대화하기 위해서는 원활한 소통을 위해 한 친구의 이야기가 끝났는지 파악하고 응답하며, 간혹 서로의 이야기가 충돌할 경우, 먼저 이야기하라고 양보해야 한다. 이처럼 대화를 하는 자리가 마련되는 것을 바로 경쟁구간이라고 보면 되는 것이다. 

비경쟁구간은 남녀가 데이트를 즐길 때 주로 차안에서 대화를 많이 하는데, 이는 둘만의 대화 채널만 존재하고, 방해가 없어 둘이서 서로 조용히 대화를 나눌 수 있다. 이런 주변의 방해가 없이 둘이서 대화를 나눌 수 있는 환경을 비경쟁구간으로 보면 된다. 그리고 전체의 주기가 Beacon 주기로 표시되는데 이는 다시 2개의 동작주기와 슬립주기로 나눠진다. 

이 주기는 네트워크 파라미터에 의해서 결정되는데, 지금까지 언급된 비경쟁구간 정보 및 슬립주기와 같은 정보가 Beacon에 실려 자식 노드에게 전달된다. 따라서 Beacon 모드에서는 라우터 및 PAN 코디네이터가 주기적으로 Beacon을 전송해 네트워크 정보를 전달하고 자식 노드의 관리가 이뤄지게 된다. 이 경우, 모든 노드들이 서로 싱크를 맞춰 주기적인 슬립에서 깨어나고 경쟁구간(CAP)에서 데이터를 전송하게 된다.


출처: http://www.imaso.co.kr/?doc=bbs/gnuboard.php&bo_table=article&page=11&wr_id=35352

TAG •

Cpp
2010.07.15 11:14

Object Serialization Example

조회 수 36943 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
    TestClass obj; // TestClass 클래스 객체 생성
    obj.init("delay_time", "ms", "UINT32", 4); // TestClass에는 init() 맴버 함수가 있다고 가정함.
    obj.set("012345"); // TestClass에는 set() 맴버 함수가 있다고 가정함.
    cout << "obj => " << obj << endl; // TestClass는 연산자 << 를 오버로딩함.

    fstream fs("mibentry.bin", ios::binary);
    // 객체 직렬화 - 쓰기
    fs.write((char*)&obj, sizeof(obj));

    MibEntry copied_obj;
    fs.seekg(0);
    // 객체 직렬화 - 읽기
    fs.read((char*)&copied_obj, sizeof(copied_obj));

    cout << "copied_obj => " << copied_obj << endl;
    return 0;
}
TAG •

Diary
2010.04.12 10:55

이제 민방위~ㅋㅋ

조회 수 12236 추천 수 0 댓글 1
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

민방위 교육 받으란다~ㅋㅋ 4월 16일에.ㅋㅋ

나이 벌써 많이 먹은거지~

1~2주차는 4시간 교육이라네-0-

1년에 1번이니 다행임.


해놓은 건 없는데~ 나이만 먹어감...

  • ?
    비트겐스 2010.04.19 23:23

    점점 쓸모 없는 사람이 되어가는건가~ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ


Diary
2010.04.10 17:04

사진뒤져보니~

조회 수 24640 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
Extra Form

벌써 대학교 졸업한지... 오래되었네~

토요일에 출근해서 잠시 짬나는 시간에 예전 웹페이지에서 사진 뒤적거리다가...

이런거 찾았네..ㅎㅎ

정말 좋았던 시절인 듯 ...

좋은 후배들~ 떠올려 본다...

졸업식_AIT_뒤풀이.jpg


조회 수 28208 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

...
         public string decodeEuckrUrl(string url) {
            System.Text.Encoding euckr = System.Text.Encoding.GetEncoding(51949);
            byte[] euckrBytes = System.Web.HttpUtility.UrlDecodeToBytes(url);
            return euckr.GetString(euckrBytes);
        }
...


...
    MessageBox.Show(decodeEuckrUrl("SellPrice=3%2C100%BF%F8); // 결과 : SellPrice=3,100원 
...



크리에이티브 커먼즈 코리아 저작자표시 Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-영리-동일조건변경허락/3.0에 따라 이용하실 수 있습니다


TAG •

Board Pagination Prev 1 ... 5 6 7 8 9 10 11 12 13 14 ... 39 Next
/ 39