본문 바로가기
프로그래밍

[Zigbee] FZ200BS 모듈 정리

by YuminK 2023. 12. 11.

지그비 모듈인 FZ200BS을 회사에서 테스트하면서 학습한 내용을 정리한다. (대부분 문서 정리한 내용)

조립하는 법

안테나를 뒤에 꼽고, USB 부분을 PC에 연결하면 된다. 

 

코디네이터, 라우터, 엔드디바이스

지그비 네트워크 구성에는 코디네이터, 라우터, 엔드디바이스가 존재한다. 

 

1) 코디네이터는 지그비 네트워크를 구성합니다. 코디네이터는 라우터/엔드디바이스와 통신합니다.

2) 라우터는 코디네이터 또는 라우터와 연결되어 네트워크를 확장합니다. 라우터는 코디네이터/라우터/엔드디바이스와 통신합니다.

3) 엔드디바이스는 지그비 네트워크에 참여 하여 라우터 또는 코디네이터와 통신합니다.

 

지그비 네트워크를 구성함에 있어서 코디네이터는 반드시 있어야 하며, 한 개의 지그비 네트워크에는 한 개의 코디네이터가 존재해야 합니다. 네트워크 관리는 코디네이터가 담당합니다. 네트워크 확장은 라우터를 사용합니다. 저전력을 이용한 지그비 네트워크 참여시 엔드디바이스를 사용합니다.

 

FZ200BS

• 코디네이터/라우터/엔드디바이스 중 하나로 자유로이 설정하여 사용합니다.

• Mesh Network를 지원합니다.

• USB type으로 구성됩니다.

• AT 명령어를 사용하여 제어 가능합니다.

• 엔드디바이스의 경우 저전력 모드를 지원합니다. (옵션 사항)

• 데이터 송신에 대한 ACK기능을 지원합니다.

• 데이터 재전송과 경로 재 설정 기능을 제공 합니다.

 

"FZ200BS의시리얼데이터 송신은 53Byte까지 가능하며 데이터 송신 시 시리얼데이터 입력 후 반드시 마지막에 0x0D(Carriage Return)이 입력되어야 Target 디바이스로 시리얼데이터 송신이 됩니다." - 펌테크 QnA에서

 

FZ200BS 주요특징 

1. 지그비 2006 지원

2. Mesh Network 지원

3. USB Interface로 구성되어 있어 USB 드라이버를 설치하면 손쉽게 시리얼 데이터의 입력/출력 가능

 

FZ200BS는 시리얼 데이터 송/수신 전용 장치 입니다. FZ200BS는 코디네이터/라우터로만 사용하기 바랍니다.

 

내부에서 사용하는 AT 커맨드를 이용하여 장치를 설정할 수 있다. AT 커맨드를 통해 데이터를 전송할 타겟 디바이스를 정하거나 각 역할(라우터, 코디네이터, 엔드디바이스)를 설정해줄 수 있다. 모듈을 사용하기 위해서는 드라이버 설치를 하라고 하는데, win11 환경에서 별도의 설정없이 바로 연결 되었다. (장치관리자 - 포트)

 

하이퍼터미널이라는 프로그램으로 각 모듈 설정 및 테스트를 진행할 수 있다. 연결을 추가하여 포트를 설정하고 코디용 1개, 라우터용 1개씩 총 2개를 띄운다. (모듈이 2개밖에 없었다) 비트/초 115200, 호출 제어: 없음으로 설정

 

옵션 처리하고 시작해서 터미널 띄우고 재시작하여 start를 띄운다. 하이퍼터미널의 전화기 버튼을 눌러서, 가상 시리얼 포트 연결 해제가 가능하다고 한다. 다양하게 네트워크를 구성할 수 있는데 나의 경우, 2개 밖에 없어서 coordinator + router로 구성했다. N번 포트를 Coordinator, N+1번 포트를 Router

 

하이퍼터미널에서 +++을 입력하면 Operation Mode에서 AT Command Mode가 된다고 한다. AT Command 상태에서 ATZ를 입력하면 리셋되고 다시 Operation Mode로 변한다. ATO를 입력하면 Operation Mode로 변경된다. (리셋없이)

 

타겟 디바이스 설정

코디는 브로드캐스트 주소로 라우터한테 던지고, 만약 라우터에서 처리를 해줘야 한다면 코디 주소를 알고 있으면 된다. 코디 <=> 라우터

라우터의 타겟디바이스를 코디네이터로 설정, 코디네이터의 타겟디바이스를 All Device로 설정한다. (브로드캐스트 방식은 필요할 때만 쓰는 것을 권장하고 있다)

 

시리얼 데이터 뿐만 아니라 Key 데이터, adc 데이터, 카운트 데이터, gpio 데이터를 보낼 수 있도록 되어 있다. 내부에 존재하는 포트에서 GPIO, GND, ADC, KEY 전용 포트가 존재한다. 회로 설계할 때 사용할 수 있는 것으로 보인다. 각 포트마다 처리하기 위한 용도가 정해져 있는 듯. 각 포트마다 특정 타입의 데이터를 보내기위해 사용한다는 이야기도 있다. 

 

수신 데이터 타입

디바이스가 지그비 네트워크에 참여된 이후, 무선 데이터의 수신이 가능합니다. 디바이스가 타겟 디바이스로 설정된 경우, 송신 디바이스로부터 무선 데이터를 수신하면 디바이스의 시리얼 포트(UART 또는 USB Port)에서 데이터가 출력됩니다.

디바이스가 KEY 데이터 수신 시, “KEY_EVT_001551000000000B”를 시리얼로 출력합니다.

디바이스가 ADC 데이터 수신 시, “ADC0012_001551000000000B”를 시리얼로 출력합니다.

디바이스가 시리얼 데이터 수신 시, 수신 받은 데이터 그대로 시리얼로 출력합니다.

디바이스가 COUNT 데이터 수신 시, “CNT0005_001551000000000B”를 시리얼로 출력합니다.

디바이스가 GPIO 데이터 수신 시, “GPT007F_001551000000000B”를 시리얼로 출력합니다

 

엔드디바이스의 특징

디바이스를 엔드디바이스로 설정한 경우, 코디네이터/라우터 디바이스와 운영되는 방법에 차이가 있습니다. 엔드디바이스는 다른 디바이스의 타겟디바이스로 설정하지 않습니다. 엔드디바이스가 운영되기 시작하면(타겟 디바이스가 설정된 경우)자동적으로 저전력 모드로 진입합니다. 저전력 모드로 진입한 디바이스는 입력된 시리얼 데이터 또는 다른 디바이스가 전달하거나 요청한 데이터를 무시합니다.

엔드디바이스의 주 기능은 ADC / KEY 데이터를 타겟 디바이스(라우터 또는 코디네이터)에 송신하는 것입니다. 

 

FZ200BS 모듈 페이지인데, 제공해주는 문서에서 Zigbee에 대한 내용이 너무 괜찮다.

http://www.firmtech.co.kr/default/product/zigbee/fz200bs.php#01

 

지그비와 관련된 이야기

http://tcplink.com/notice/3170

 

지그비와 관련된 이야기2

https://blog.naver.com/ubicomputing/150095686064

'프로그래밍' 카테고리의 다른 글

[LoRa] Wio-E5 mini 모듈 정리  (0) 2023.12.19
함수형 프로그래밍이란?  (0) 2023.12.12
Socket vs WebSocket  (1) 2023.11.14
비동기 프로그래밍과 쓰레드  (0) 2023.11.13
디자인 패턴에 대한 생각  (0) 2023.11.12

댓글