Zigbee Specification RT Lab 강무진
Content 1 .Introduction 2. Structure of Address 3. Procedure of Zigbee 4. Conclusion 5. H/W Architecture 6. Conclusion 7. Q&A
Introduction Stack Architecture 801.15.4 Zigbee Specification Physical Layer MAC Layer Zigbee Specification Network Layer Application Layer Application Support Sub Layer Application Framework Zigbee Device Object Zigbee 스택은 크게 801.15.4의 physical 계층과 Mac계층이 있고 흔히 Zigbee라고 말하는 Zigbee Specification은 크게 Network 계층과 application 계층으로 나누어 진다. 이 application 계층은 다시 3개의 세부 계층으로 나누어 지는데 APS라고 applicaton support sub 계층과 상위의 application framwork과 zigbee device object로 나누어 진다. 각각의 계층간에는 서로 인터페이스를 두어 데이터나 제어 신호를 수신하고 그 응답으로 통신을 하게 된다.
Introduction Zigbee 계층도를 보고 설명하자면 크게 zigbee와 802.15.4로 나눌 수 있고 각각의 계층간에는 인터페이스를 두고 있습니다. 각각의 계층은 고유의 기능을 가지고 있으며 보통 application 계층에서는 사용자와 인터페이스 하며, 제어 신호와 데이터를 하위 계층으로 전달하는 기능을 한다. 그리고 network 계층에서 어떻게 통신을 할 것이면, 어떠한 기능을 할 것인지에 대한 기능을 담당하고 있으며, 하위 계층의 상태 정보 및 여러가지 프리미티브를 받고 그것을 데이터 베이스화 하며 상위계층으로부터 제어 신호를 받아서 어떻게 통신할 것인지 결정한 후 다시 하위계층을 제어를 하여 적절한 통신 방식을 구현합니다. 하위 계층에서는 물리적으로 어떻게 잘 전달할지 그러한 부분을 결정하고 담당하는 계층이라고 할 수 있습니다. 802.15.4
Structure of Address Channel Pan ID IEEE802.15.4 address NWK address 2.4GHz Each channel : 2MHz Pan ID 각 채널이 가지는 ID 16bit IEEE802.15.4 address Device address 64bit NWK address Logical address Zigbee에서는 여러가지 주소 구조를 사용하여 어떻게 디바이스를 구분할 것이지, 그리고 어떻게 서비스를 구분 할 것이지, 어떻게 각각의 디바이스와 연결을 할 것인지 결정하게 됩니다. 일단 물리적으로 채널이라는 것이 있습니다. 기본적으로 2개의 채널을 사용하지만 대게 2.4Ghz대역을 사용합니다. 한 개의 채널은 약 2mhz를 사용하고 각 채널마다 보호대역을 구어 구분 하고 있습니다. 그리고 PAN과 Pan을 구분하는 16bit의 PanID를 가지며 그 PANID는 coordinator에서 생성합니다. 각 디바이스들은 TCP/IP와 같이 고유의 디바이스 어드레스를 가지고 있습니다. 이 어드레스들은 물리적으로 각각의 디바이스를 구분해 줍니다. 그리고 네트워크 아이디라고 해서 기존의 이더넷 네트워크의 IP처럼 16bit 어드레스를 가집니다. 이 네트워크 어드레스는 coordinator가 생성해서 중복되지 않게 분배해 주는 것입니다.
Structure of Address Profile Endpoint Clusters 16bit SLC(Switching Load Controller), DRC(Dimmer Remote Controller) Endpoint 8bit Endpoint 0 : ZDO Endpoint 255 : Broadcast Endpoint 1~240 : Application Object Endpoint 241~254 : Future use Clusters In/out cluster 여기서는 크게 서비스 및 바인딩을 위해서 정의된 논리적인 어드레스를 살펴 보도록 하겠습니다. 홈네트워크처럼 하나의 큰서비서 형태를 구분하기 위해서 16bit 프로파일이라는 것을 두어 구분하고 있습니다. 그리고 End 포인트와 같은 것은 각각의 디바이스에 올라간 각각의 어플리케이션 오브젝트들의 구분하기 위해서 사용합니다. 그리고 마지막으로 기존의 이더넷 통신에서의 포트번호의 기능을 하는 것이라고 보시면 됩니다. 엔드 포인터 간에 바인딩을 위해서 사용하는 고유의 어드레스 입니다.
Structure of Address Coordinator PAN ID End Device_1 End Device_2 End Device_n Router_1 자 그럼 크게 하나의 코디네이터가 하나의 팬을 구성하고 하나의 팬에는 여러 개의 라우터 및 EDN 디바이스가 있습니다. 그리고 하나의 Pan에 포함된 엔디드바이스와 coodinator들은 모두 같은 PAN ID로 통신을 하며, 하나의 서비스 망을 구성하기 위해서 프로파일과 엔드포인트 그리고 클러스터 아이디를 사용하게 됩니다. Router_2 Coordinators can to make PAN A Coordinator has one PAN ID All End Device has Same PAN ID Router_n
Procedure of Zigbee The procedure to create a zigbee network Establishing a New Network Permitting Devices to Join a Network Data Transfer 그러면 다음으로 Zigbee가 어떻게 네트워크를 구성해 가지는 보면, 첫번째로 하나의 네트워크를 구성을 하고 다음으로 엔드 비다이스들이 그 네트워크에 조인을 합니다. 이렇게 조인된 디바이스들은 서로 데이터를 주고 받을수 잇고 하나의 PAN을 구성하게 되겠습니다.
Procedure of Zigbee Establishing a New Network(Coordinator) 첫번째로 코디네어터가 어떠한 방식으로 세로운 네트워크를 만드는지 알아보겠습니다. 일단 상위 레벨에서 세로운 네트워크를 만들어라 하는 요청을 하면 네트워크 레이어에서 현재 주변에 어떤한 네트워크가 있는지 스캐닝과정을 가집니다. 이 스케닝 과정은 ED스케닝이랑 엑티브 스케닝이 있습니다. ED스케닝을 주변에 있는 주파수를 보고 판단하는 것입니다. 이 주파수를 판단할 때에는 일단 Zigbee 네트워크인지 아닌지를 판단하고 그 전파의 에너지 세기의 판단하여 적절하게 주변에 어떤 Channel 이 있는 지를 판단하고 Zigbee 통신을 사용하는 디바이스에게 beacon을 요청합니다. 이것이 바로 Active스캔입니다.. 응답으로 beacon을 받아서 주변에 어떤 PAN ID와 채널을 사용하지는 확인한 후 자신을 생성할 적절한 PAN ID와 Network ID를 확인합니다. 다시 MAC 계층에게 세팅 정보를 전송한 후 다시 네트워크를 시작하겠다는 요청 을 하여 수신을 마무리 하게 됩니다.
Procedure of Zigbee Procedure for Joining a Network Through Association(Endnod or Router) 그러면 End 디바이스나 라우터의 네트워크 조인과정을 살펴 보도록 하겠습니다. 일단 조인을 원하는 디바이스는 채널을 스캐닝 합니다. 채널을 스캐닝 하여 각각 검출한 코디네이터에게 beacon을 요청하고 응답으로 beacon을 수신하여 가장 알맞은 채널 즉 coordinator에게 조인을 요청합니다. 그때 전송하는 정보가 External Address입니다. 그러면 coordinator에서는 Network address를 할당해 줍니다. 그리고 빨간선 아래는 라우터로 동작하겠다고 선언 및 수행하는 부분입니다.
Procedure of Zigbee Procedure for Handling a Join Request(Coordinator) 조인을 위한 코디네이터에서의 동작을 보여주는 그림입니다. 보시면 조인 요청을 받으면 extended address를 확인하고 short 어드레스를 할당 하여 요청한 디바이스에게 응답을 보내어 줍니다. 그리고 다시 디바이스의 상태정보를 확인하여 beacon 모드라면 beacon payload를 업데이트 하고 업데이트 된 beacon을 세팅해줍니다. 그리면 재대로 세팅 되었다는 응답신호를 다시 네트워크 계층으로 알려주고 어플리케이션 계층으로도 전달해 줍니다.
Procedure of Zigbee Data Transfer model beacon-enabled network nonbeacon-enabled network 데이터의 송수신에는 크게 두가지 방식이 있습니다. 하나는 beacon모드와 다는 하나는 nonbeacon모드가 있습니다.
Procedure of Zigbee Beacon-enabled network 비콘모드는 일단 coordinator와 같이 Pan에서 하나의 디바이스에서 beacon을 생성 송출합니다. 그리고 beacon의 주기에 따라 디바이스들은 채널을 액세스할 수 있는 권한을 가집니다.
Procedure of Zigbee Data transfer to a coordinator 코디네이터에서 beacon을 송출하고 엔디디바이스는 자신의 beacon을 받으면 자기가 엑세스를 할 수 있다는 것을 알고 데이터를 전송 합니다. 그리고 nonbeacon모드에서는 자신이 데이터를 보내고 싶을 때 바로 코디네어터로 전송하게 됩니다.
Procedure of Zigbee Data transfer from a coordinator 다음으로 코디네이터로부터 데이터를 받을 때는 일단 beacon에서는 코디네이터가 비콘을 받으면 채널을 ACCess해서 데이터를 있는지 확인을 한 후에 확인이 되면 데이터를 받습니다. 논 비콘모드에서는 데이터를 요청해서 있으면 받고 없으면 받지 않는 방식입니다.
Procedure of Zigbee Message sequence chart for synchronizing to a coordinator in a beacon-enabled PAN 단일 동기 요구 macAutoRequest = FALSE 추적 동기 요구 macAutoRequest = TRUE Beacon모드에서는 두개의 방식이 있는데 단일 동기 요구 방식으로 자기자신이 필요할때만 beacon이 수신되는지 확인해서 데이터의 요청이나 전송을 하는 것이고 나머지 추적 동기모드는 비콘을 이용해서 동기화 한다음에 다음 비콘이 올때까지 수면모드로 들어갔다가 다음 비콘이 오기전에 저절로 깨어나는 것을 말합니다.
Procedure of Zigbee Message sequence chart for requesting data from the coordinator 폴링 모드에서는 nonbeacon모드에서는 필요한 데이터가 있는지 확인하고 있으면 받고 없으면 없다는 것을 상위 레이어로 알로고 넘어가는 것을 말합니다.
Q&A