시험 준비 및 공부 기록 아카이브용으로 작성하는 글입니다.
다소 내용이 정제되어 있지 않을 수도 있습니다.
ZigBee

전력 소모가 크고 네트워크 구성이 제한적인 기존 블루투스의 단점을 보완하기 위해 필립스, 모토로라, 인텔, 삼성전자 등 글로벌 기업들이 모여 만든 표준. IEEE 802.15.4를 기반으로 만들어져, 하부 구조인 물리 계층과 MAC 계층은 IEEE 802.15.4를 그대로 사용하고, 상부 구조인 API과 네트워크를 통해 개발자가 응용 프로그램을 쉽게 만들게 하고 기기의 연결을 관리함.
ZigBee는 100mW 미만의 전력을 사용하고 1cm 미만의 소형 모듈로 구현되며, 클래식 블루투스의 4분의 1 수준인 50KB 크기의 프로토콜을 사용함. 또한, 1대1, 1대다(1:n), 메쉬(Mesh), 멀티홉 등 다양한 네트워크 모드를 지원하며, 최대 65,536개($2^{16}$개)의 노드를 수용할 수 있어 대규모 네트워크 구성이 가능함. 신뢰성과 표준화 측면에서는 IEEE 802.15.4(4b) 및 지그비 얼라이언스의 업계 표준을 따르며, 최신 암호화 알고리즘을 적용하여 보안성을 확보하고, 신뢰성 있는 라우팅을 지원하여 안정적인 네트워크 운영을 보장함.

Wi-Fi와 블루투스는 고속 데이터 전송에 집중하느라 전력을 많이 사용하지만, Zigbee는 속도를 약간 포기하고 저전력에 집중해 배터리가 오래 가고 값싼 통신이 필요한 센서, 제어에 주로 사용됨.

ZigBee는 저주파 대역(868MHz / 915MHz)에서 20kbps ~ 40kbps의 속도로 신호를 전송하며 변조 방식으로 BPSK를 사용하고, 고주파 대역(2.4GHz)에서 250kbps의 속도, OQPSK 변조 방식을 사용함.
ZigBee는 기본적으로 1mW(0dBm) 미만의 전력을 사용하며, 외부 증폭기를 달면 100mW(20dBm)까지도 사용함.
기본적으로 통신 시 충돌을 피하기 위해 CSMA-CA를 사용하고, 필요 시 GTS(Guaranteed Time Slot)을 사용해 시간을 예약해 중요한 데이터 전송에 사용하며, 핸드셰이킹을 통해 데이터가 잘 전송되었는지 확인함.
전력 소모가 적고 가동률이 0.1%로 극도로 낮아 배터리로 수개월에서 반영구적으로 사용할 수 있음.
통신 거리는 일반적으로 30m이지만 이론상 1km까지도 가능함.
한 번에 보내는 데이터 패킷의 크기는 최대 127바이트로 작으며, 64비트 IEEE 주소와 16비트 Short 주소를 혼용해서 사용함.
받은 데이터가 깨졌는지 검사, 채널에 노이즈가 얼마나 있는지 감지, 보내기 전에 채널이 깨끗한지 확인하는 과정을 거치기에 열악한 무선 환경에서도 잘 동작함.
ZigBee 주파수

868MHz 대역에선 채널 0 단 한 개, 915MHz 대역에선 2MHz 간격으로 떨어져 있는 채널 10개(채널 1~10)를 사용하며, 2.4GHz 대역에선 5MHz 간격으로 떨어져 있는 채널 16개(채널 11 ~ 26)를 사용함.
ZigBee 데이터 프레임

Preamble: 데이터 전송의 시작을 알리고 수신기가 신호를 준비하도록 하는 부분
SFD: 프레임의 시작을 알리는 구분자
Frame Length: 프레임의 길이를 알림
PSDU: 실제 운반할 데이터 (최대 127바이트)
Frame Control: 프레임의 종류를 알림
Data Sequence Number: 데이터의 순서를 번호로 나타냄
Address Information: 주소 정보 (목적지 PAN ID, 목적지 주소, 송신지 PAN ID, 송신지 주소)
Data Payload: 보내고자 하는 데이터
FCS: 데이터가 깨졌는지 확인하는 에러 검사 코드
ZigBee 디바이스 분류
PAN 코디네이터: 네트워크의 중앙 관리자, 네트워크를 최초로 구성하고 모든 기기의 주소 할당 및 보안 키 관리 역할을 함.
라우터: 네트워크에서 데이터를 중계하는 역할, 다른 기기로부터 받은 데이터를 최종 목적지까지 전달함.
엔드 디바이스: 데이터를 생성하거나 소비하는 말단 기기, 전력 효율을 위해 대부분 잠자는 상태로 있다가 필요할 때 자신의 데이터를 코디네이터나 라우터로 보냄.
Full Function Device(FFD): 네트워크 내에서 모든 기능을 수행할 수 있는 기기(코디네이터, 라우터)
Reduced Function Device(RFD): 기능이 축소된 기기(엔드 디바이스 only)
RFD 간의 직접 통신은 불가능하며 RFD는 반드시 FFD를 통해서만 데이터를 송수신할 수 있음
ZigBee 네트워크 특성

스타형: 배터리 수명이 가장 길지만 모든 데이터가 하나의 코디네이터로 몰려 병목 현상이 발생하기 쉬우며 코디네이터가 고장나거나 배터리가 다하면 네트워크 전체가 죽음. 기기와 코디네이터가 1대1로 연결돼 지연 시간이 짧지만 공간 커버리지가 좁음. 구조가 단순해 코드 크기가 가장 작지만, 경로 우회 등의 기능을 제공하진 않음.
클러스터 트리형: 배터리 수명이 스타형보다 짧지만 코디네이터나 라우터 일부가 고장나도 네트워크가 일부 유지됨. 공간 커버리지는 스타형보다 넓으나 지연이 스타형보다 심하며 단말이 크게 움직이면 구조에 변동이 생김. 부모-자식 관계만 관리하면 되므로 코드가 복잡하지는 않음.
메쉬형: 코디네이터와 라우터가 가장 많아 배터리 수명이 가장 짧지만 코디네이터나 라우터 일부가 고장나도 네트워크에 큰 지장이 없음. 공간 커버리지가 가장 넓고 지연 시간이 가장 짧음. 경로 우회 등의 기능을 제공해야 하기에 코드가 가장 복잡함.
ZigBee 스택

네트워크 계층 (NWK Layer)
네트워크를 생성하고, 기기들을 네트워크에 추가/제거하며, 기기에게 주소를 할당하는 역할, 전송할 메시지를 어느 경로로 보낼지 결정하고 저장하는 역할, 메시지를 암호화하고 복호화해 보안을 강화하는 역할.
APS 계층
기기 내부의 애플리케이션과 통신하는 역할. 애플리케이션 인스턴스에는 이를 식별하는 번호(1~240)인 엔드포인트 주소가 할당되며, ZigBee 네트워크 내에서 특정 애플리케이션 인스턴스를 식별하려면 관련 네트워크 주소와 엔드포인트 주소가 필요함.
ZDO 계층
엔드포인트 0번 주소는 ZDO 계층에 할당되며, ZDO 계층은 노드 타입(코디네이터, 라우터, 엔드 디바이스) 정의, 기기 초기화 및 네트워크 생성에 참여하는 역할을 함.
슈퍼프레임 구조

비콘: 슈퍼프레임의 시작을 알리고 다른 기기들과 신호를 동기화하며, PAN의 존재를 알리는 프레임, 코디네이터한테 대기 중인 데이터에 대한 알림도 보냄, 비콘의 간격은 15ms~252s까지 조절 가능
CAP(Contention Access Period): 기기들이 채널 사용 권한을 얻기 위해 경쟁하는 구간, CSMA-CA 알고리즘을 사용함
CFP(Contention Free Period): 코디네이터가 특정 기기에 GTS를 할당함, 경쟁 없이 채널을 독점해서 사용하므로 지연 시간에 민감하거나 대역폭 보장이 필요한 데이터 전송에 사용됨.
비활성 구간: 코디네이터와 기기들이 절전 모드로 진입하는 구간, 이를 통해 배터리 수명을 늘림.

비콘을 사용하지 않는 네트워크: 시간을 정해두지 않는 비슬롯 CSMA/CA를 사용하며, 기기들이 언제 데이터를 보낼지 모르기 때문에 코디네이터가 항상 깨어있어 전력 소모가 큼
비콘을 사용하는 네트워크: 정해진 시간에만 데이터를 보내는 슬롯 CSMA/CA를 사용하며, 비콘을 통해 시간을 맞추므로 비활성 구간엔 기기들이 절전 모드에 들어가 배터리를 아낌. 특정 기기에게 GTS를 할당해서 데이터를 전송함.
GTS: 특정 기기가 할당받아 독점적으로 사용하는 타임 슬롯, GTS는 네트워크의 관리자인 PAN 코디네이터만이 할당해 주며, PAN 코디네이터는 최대 7개의 GTS를 할당할 수 있음. 코디네이터는 기기가 GTS 할당 요청을 보내면 기기의 요청 내용과 남은 GTS 용량을 고려해서 할당 여부를 결정함.
가입 절차

1. 탐색(Scan Channel): 기기가 주변의 네트워크를 탐색함
2. 가입 신청(Association req.): 마음에 드는 코디네이터를 발견하면 가입 신청을 보냄
3. ACK(코디네이터 측에서 전송)
4. 심사(Make decision): 기기를 받을지 말지 결정함
5. 결과 알림(Beacon - pending address): 코디네이터는 정기적으로 보내는 비콘에 신청 기기의 결과가 대기 중이라고 표시함
6. 데이터 요청(Data req.): 이를 확인한 기기는 코디네이터에게 데이터를 요청함
7. ACK(코디네이터 측에서 전송)
8. 신청 응답(Association resp.): 코디네이터가 가입 성공 여부를 전송함 (가입 성공 시 16비트 Short 주소 할당)
9. ACK(기기 측에서 전송)
라우팅(트리 네트워크):

$C_m$: 부모 하나가 가질 수 있는 최대 자식 수
$R_m$: 자식 중 라우터 역할을 하는 최대 자식 수
$L_m$: 네트워크의 최대 깊이
$Cskip$: 다음 형제 라우터의 주소까지의 간격
트리 네트워크에선 별도의 탐색 과정 없이 현재 위치 주소와 $Cskip$ 값을 이용한 수학적 계산으로 경로를 찾음
라우팅(메쉬 네트워크)

노드 S가 T를 찾고 싶을 때, 이웃한 노드에게 T의 위치를 찾는다고 방송함(Broadcast) -> 이 요청을 받은 이웃한 노드들은 이를 계속해서 방송함 (BFS처럼) -> 요청이 T에 도착하면, T는 자신의 위치를 왔던 길을 따라 발송함 (최단 경로 생성)
Discard route request: 이미 처리한 요청이거나 자신과 상관 없는 요청이면 무시함
Without routing capacity: 방송할 능력이 없어 부모 노드에게 1:1 전송만 함 (Unicast)
근거리 무선통신 비교
| 구분 | ZigBee | Classic Bluetooth | WLAN(802.11b/g) |
| 동작 주파수 | 2.4GHz | 2.4GHz | 2.4GHz |
| 전송 속도 | 250Kbps (1Mbps) | 1Mbps -> 3Mbps 이상 | 11Mbps -> 54Mbps |
| 디바이스 확장성 | 65536개($2^{16}$개) | 7개 | 2~32개 |
| 통신 채널 | 16개 | 79개 | Overlap 없이 3~4개 |
| 기반 규격 | IEEE 802.15.4 | IEEE 802.15.1 | IEEE 802.11b/g |
| 배터리 동작 시간 | 수십 일 ~ 수 년 | 수 일 | 수 일 |
| 네트워크 형성 시간 | 30ms | 수 초 | 수 초 |
| 실내 통신 거리 | 50m | 10m | 100m |
ZigBee는 Classic Bluetooth 대비 매우 낮은 전류와 전력을 소모하고, 네트워크 형성이 빠르며, 커버리지가 넓고(실외 LOS 1km), 유연한 네트워크 기능(라우팅, 메쉬-스타-트리 네트워크)을 가지며, 최대 65536개의 네트워크 노드와 연결할 수 있음 (BT는 최대 7개)
ZigBee + 6LoWPAN

물리적 스택인 MAC과 PHY는 기존의 것을 그대로 사용하지만, 인터넷 패킷(IPv6)은 크기가 크기 때문에 6LoWPAN을 이용해 패킷을 잘게 쪼개고 압축해 ZigBee에서 사용할 수 있게 함.
ZigBee는 한 번에 최대 127바이트를 전송할 수 있지만 IPv6은 MTU가 1280바이트임 -> Fragmentation과 헤더 압축(40바이트 -> 3바이트), MAC 주소를 이용한 IPv6 주소 자동 생성을 통해 이를 해결함.
TCP: M2M 통신에 웹 기반 기술(HTTP)을 그대로 사용하기 위해 TCP를 사용, 호환성이 좋지만 데이터 확인 절차가 많아 배터리가 적고 신호가 잘 끊기는 ZigBee 네트워크에서 쓰기 어려움
UDP: CoAP를 사용하기 위해 UDP를 사용함, IETF 표준 기구 내의 CoRE WG에서 개발하였으며, 성능 낮은 기기에서도 RESTful protocol을 사용할 수 있음.
ZigBee SE 2.0을 위한 RESTful HTTP/XML: CIM이라는 데이터 모델 표준을 맞추기 위해 RESTful HTTP/XML을 사용하기로 함. 이 과정에서 XML을 내용 압축하는 EXI (Efficient XML Interchange) 기술을 도입함.
'학교 공부 > 사물인터넷' 카테고리의 다른 글
| 5. Bluetooth (0) | 2025.12.08 |
|---|---|
| 3. LTE (0) | 2025.11.24 |
| 2. Wi-Fi (0) | 2025.10.09 |
| 1. 사물인터넷 기본 개념 및 표준 규격 (0) | 2025.10.08 |