패킷전송이라는 부분은 특별한 것이 아닙니다.
시리얼 포트로 해당 데이터를 차례대로 보내면 됩니다.
전체 10 Bytes(0xAA부터 0x55까지)를 차례대로 보내면 됩니다.
전 C로 개발하지 않았습니다만..
C로 된 시리얼통신 소스가 많이 공개되어 있으니 그것을 이용하면 쉽게 해결할 수 있을 것입니다.
안녕하세요..
zbs-100은 저도 사용해보지는 못했습니다.
프로토콜이 동일하다면 사용할 수 있을 것입니다.(두 모델의 매뉴얼을 비교해 보세요)
그리고, H/W가 제대로 되어 있다면 PC에 모듈을 연결한 상태에서 이 프로그램으로 특정 명령을 전송하여 제어 가능합니다.
이준석
2010/11/10 10:04
안녕하세요. ZBS-200 모델을 사용하기 위해 정보를 찾다가 여기까지 오게 되었네요. 본사 홈페이지는 관리를 안하는것인지.. 자료도 별로 없고 메뉴얼이 너무도 허접하여 접근을 할수가 없네요;;
우선은 현재 ZBS-200 2개와 같은회사 제품인 USB Dongle 제품을 1개 가지고 있습니다. 이렇게 제품을 구입한 목적은
센서의 출력을 무선통신을 이용해서 PC 에서 받아보기 위함인데요.
저의 생각으로는 컨트롤러(FPGA)를 사용하여 센서의 출력값을 지그비 송신모듈로 전달하면,,,PC쪽의 USB Dongle 제품에서 수신하여 하이퍼 터미널 혹은 모니터링 프로그램을 사용해서 무선으로 값을 받아 볼수 있을거 같은데요.
접근 방법을 모르겠네요. 선풍기 제어 시스템을 만드셨다고 하셨는데요. 제품을 먼저 사용해보신 입장에서 조언을 구해보고자 합니다. 감사합니다.
안녕하세요..
정확히 어떤 부분이 알고 싶은 것이지 모르겠습니다만..
구입하신 ZBS-200으로 구현하는데 크게 문제는 없을 것 같지만 한 가지 제약이 있습니다.
센서의 출력을 PC로 전송하는 것이 주 목적인데요..
문제는 ZBS-200은 PC로 전송할 수 있는 데이터로 2Bytes만 제어할 수 있습니다.
매뉴얼에 보면 Command와 Value라고 표시되어 있는 부분으로 각각 1Byte씩해서 전체 2Bytes만 사용자가 사용할 수 있습니다.
센서의 출력 등 모든 데이터를 2Bytes 내에서 해결 가능하다면 구성하는데 별 문제는 없을 것 같습니다.
ZBS-200 모듈은 처음에 ID, Tx/Rx 등의 설정만 제대로 하면 큰 문제는 없을 것입니다.
이준석
2010/11/10 10:03
답변 감사드립니다.
모듈의 ID 를 설정한다고 하셨는데요. 송신부랑 수신부 2개의 ID가 달라야 하는거죠?
그리고 센서의 출력을 FPGA서 처리하고 그 데이터를 최대 16bit 까지 지그비로 보내줄수 있는거 같은데요.
그렇다면 지그비에서 데이터를 받는 속도는 어떻게 처리해야 하나요? FPGA에서 지그비 모듈로 데이터 넘기는 속도를 모르겠습니다. 감사합니다.
예. 송신부랑 수신부의 ID는 달라야 됩니다.
예.. 2Byte, 즉 16bit죠.
전 FPGA를 사용하지 않아서.. 잘 모르겠습니다..
그냥 ZBS-200과 연결된 시리얼 포트에 통신 속도만 설정하고 보내주면 됩니다.
이준석
2010/11/10 10:41
친절한 답변 감사합니다^^
너무안대ㅠㅠ
2010/11/17 19:54
안녕하십니까?
운영자님께서 만드신 ZBS-200 프로그램을 사용중인데요.
통신데이터 중에 체크섬이 패리티 체크 하는거 같은데 맞나요?
맞다면,,체크섬 값이 어떻게 연산되는지 모르겠네요.
메뉴얼에 보면 xor 연산을 한것으로 보이는데요.
손으로 푼 xor 연산과 프로그램상에서 체크섬 값이 차이가 나더라구요.
안녕하세요..
오래 되어서 정확히 기억이 나지 않습니다만...
저도 그때 체크섬 때문에 고민했었던 기억이 납니다.
제가 본 매뉴얼 상에는 체크섬 계산법이 Length부터 Value까지 모두 더하라고 되어 있는데 계산해보니 매뉴얼 상에 나와있는 값과 동일하게 나오지 않더군요.
제가 만든 프로그램 상에서는 값을 임의로 동일하게 하기 위해서 2번째 바이트부터 체크섬 바이트 이전까지(7 바이트)를 각각 더한 후 3을 빼줬습니다. 지금 계산해보니 이것도 맞지 않네요..
정확한 계산법을 알아내셔서 알려주시면 프로그램 수정해서 올리겠습니다.
너무안대ㅠㅠ
2010/11/18 15:16
음 그렇군요. 체크섬 이녀석이 너무 애매하네요..
운영자님 한가지만 더 질문하겠습니다;;
스타트1바이트 부터 시작해서 엔드1바이트까지 순서대로 보내게 되는데요.
스타트의 LSB부터 전송하는게 맞는건가요? (0xAA//1010_1010 이니깐,,데이터가 흘러들어가는 순서는 0101_0101이 되겠네요)
스타트 보내고 그리고 랭스 보내고,, 이런식으로 하는게 맞는지 궁금합니다.
감사합니다^^