본문 바로가기
IT/기술(C,C++,JAVA)

지그비 프로토콜(Zigbee Protocol) 상세분석 - MAC Layer 편(2)

by 영감을 주는 ghostzoominn 2020. 10. 20.

직비 프로토콜(Zigbee Protocol) 상세분석

- MAC Layer 편(2) -

 

이전글에 이은, 지그비 프로토콜의 MAC Layer에대한 상세분석 2편입니다.

2020/10/17 - [IT이슈 및 정보] - 지그비 프로토콜(Zigbee Protocol) 상세분석 - MAC Layer 편(1)

 

지그비 프로토콜(Zigbee Protocol) 상세분석 - MAC Layer 편(1)

직비 프로토콜(Zigbee Protocol) 상세분석 이전글에 이어 오늘은 지그비 프로토콜의 MAC Layer에 대한 상세분석 내용입니다. 2020/10/15 - [IT이슈 및 정보] - 지그비 프로토콜(Zigbee Protocol) 상세분석 - PHY L..

universitytomorrow.com

이전 글에서는 MHR(MAC header)의 프레임제어필드 중 비컨 프레임까지 알아보았습니다.

 

이번 글에서는 데이터프레임, ACK(Acknowledgment)프레임, MAC 명령프레임까지 이어서 알아보고, MAC페이로드와 MFR(MAC footer)까지 알아보도록 하겠습니다.

 

1. 데이터프레임

데이터 프레임 포멧

 (1-1) MHR 필드

1) 프레임 제어 필드(Frame control field)
    - frame type : 데이터 프레임을 지시하는 값이 포함된다.
    - security enabled : 데이터에 대한 protection을 사용한다면 1로 설정된다.
    - frame version : security enabled 필드가 1로 설정되거나, MAC Payload 필드가 aMaxMACSafePayloadSize(MAC 페이로드 필드에서 전송 할 수 있는 최대 개수) 보다 크다면 1로 설정된다.
2) Sequence number 필드
   : 현재 macDSN(mac data sequence number)의 값이 포함된다.
3) Addressing 필드
   : 프레임 제어 필드의 설정에 따라서 destination address필드들과 source address 필드로 구성된다.
4) Auxiliary Security header 필드 
   :  데이터 프레임의 security 처리에서 필요로 하는 정보가 포함된다.

  (1-2) MAC Payload 필드 
 1) Data payload
   : 상위계층에서 MAC 부계층에게 전달을 요구한 정보가 포함된다.

2. ACK(Acknowledgment) 프레임

ACK 프레임 포멧

 (2-1) MHR 필드
1) 프레임 제어 필드(Frame control field)
   - frame type : ACK 프레임을 지시하는 값이 포함된다.
   - frame pending : ACK 프레임을 전송하기 전에 수신측의 데이터를 보유하고 있으면 1로 세팅된다.
다른 모든 필드들은 0으로 세팅되고 수신측에서는 이를 무시한다.
2) Sequence number : ACK를 전송할 수신된 프레임의 sequence number 값이 포함된다.

 

3. MAC 명령프레임

MAC 명령 프레임 포멧

(3-1) MHR 필드
1) 프레임 제어 필드(Frame control field)
   - frame type : MAC 명령 프레임에서 지시하고 있는 값이 포함된다.
   - security enabled : 프레임이 security 처리가 되었다면 1로 설정된다.
  다른 모든 필드들은 목적에 따라 설정되며 예약된 필드들은 0으로 세팅되며 수신측에서는 이를 무시한다.
2) Sequence number 필드
   : 현재 macDSN(mac data sequence number)의 값이 포함된다.
3) addressing 필드
   : 프레임 제어 필드의 설정에 따라 destination address 필드와, source address 필드들로 구성된다.

address field 포멧

주소필드는 0~20바이트의 가변 길이로 유연성을 가지고 있다.
주소지정방법에 따라 코디네이터로부터 16비트 주소를 할당 받아 사용하거나, 노드에 부여된 고정된 64비트 주소를 사용할 수 있다.

 

- Destination PAN identifier 필드

: 프레임을 수신하는 디바이스의 고유 PAN ID를 규정한다.

- Destination address 필드

: 프레임이 전달될 수신측의 주소를 규정한다.

- Source PAN identifier 필드

: 프레임 생성자의 고유 PAN ID를 규정한다.

- Source address 필드

: 프레임 생성자의 주소를 규정한다.

 

4) Auxiliary security header
   : MAC명령프레임의 security 처리에서 요구하는 정보가 포함된다. 프레임을 실제로 보호하는 방법이나 MAC security PIB에서 사용한 키가 무엇인지와 같은 security 처리에 필요한 정보를 규정한다.

 


(3-2) MAC Payload 필드
1) command frame identifier 필드
   : 사용중인 MAC 명령을 식별한다.

 

MAC 명령 프레임의 종류

MAC 명령 프레임의 종류

orphan notification : 코디네이터와 동기화가 되지 않은 기기들에게 전송.

 

2) command payload 필드
   : MAC 명령이 포함된다.

 MAC계층에는 상위 계층인 네트워크(NWK)계층을 위한 데이터서비스인 MCPS - SAP(MAC Common Part Sublayer - Service Access Point)를 통하여 전달되며 MAC프레임 중 비컨 프레임과 데이터 프레임만이 MCPS - SAP를 통하여 전달된다.
 네트워크(NWK)계층에서 관리메시지는 MLME-SAP(MAC Layer Management Entity-Service Access Point)를 통하여 관리하며 네트워크(NWK)계층과 연관하여 MAC PIB를 설정하고 네트워크(NWK)계층에서 필요한 MAC동작을 관리한다.
 확인 프레임과 MAC명령프레임은 PD-SAP를 통하여 동일 계층의 다른 노드의 MAC과 상호작용을 통하여 MAC프레임을 관리한다. 즉, MAC 프레임 중 데이터프레임과 비컨프레임만 상위계층에 전달되고, 확인프레임과 MAC명령프레임은 MAC 계층 간의 제어를 위해 사용된다.

- Security enabled
     : 네트워크가 보안기능을 사용 할 것인지를 알리는 필드. 사용하면 1, 하지 않으면 0으로 세팅된다.

- Frame pending 
     : 프레임을 전송하는 디바이스가 수신측보다 더 많은 데이터를 가지고 있으면 1, 그렇지 않으면 0으로 세팅된다.

 - ACK request 
     : ACK를 데이터 또는 MAC명령프레임의 수신측에 있는 수신 디바이스에서 필요로 하는지를 규정한다. 1로 설정되었다면, 수신측 디바이스에서만 ACK프레임을 전송 할 수 있다. 0으로 설정되었다면, 수신측 디바이스에서는 ACK프레임을 전송하지 못한다.

- PAN ID compression 
     : 송신지, 목적지 주소가 모두 존재할 때, PAN ID필드들 중 오직 하나만 포함해서 전송 할 수 있는지를 규정한다.
1으로 설정 및 송신지, 목적지 주소 존재 : 프레임에 목적지 PAN ID필드만 포함한다.
0으로 설정 및 송신지, 목적지 주소 존재 : 프레임에 송신지, 목적지 PAN ID필드 모두 포함한다.
0으로 설정 및 송신지, 목적지 주소 중 하나만 존재 : 프레임에 해당 PAN ID필드만 포함한다.
0으로 설정 및 송신지, 목적지 주소 존재하지 않음 : 프레임에 아무 필드도 포함되지 않는다.  

- Destination Addressing Mode , Source Addressing Mode 
00 : PAN코디네이터로 주소를 받지 못해 주소가 없는 경우
01 : 예약 된 값.
10 : IEEE 802.15.4의 16비트 주소를 사용하는 경우 
11 : 64비트 주소를 사용하는 경우

- Frame version 필드
프레임에 대응하는 버전번호를 규정한다.
0x00 : IEEE Std 802.15.4-2003 호환 프레임.
0x01 : IEEE P802.15.4REVb/D6 enhanced 프레임.
다른 값들은 향후 사용을 위해 예약되었다.

 

(3-3) MFR(MAC  footer)

FCS(Frame Check Sequence) 필드
  : 전송 중 발생하는 에러를 검출하기 위한 필드이다.

댓글0