WIZnet Developer Forum

데이터 깨짐 및 명령어 오류

문의 사항이 있어 글을 남깁니다.

  1. wizfi210을 테스트 중에 데이터 깨짐 현상이 나타나고 있습니다.
    데이터는 8ms 마다 기본 32 byte 최대64byte가 전송 되고 있습니다.
    전송 된 데이터를 확인해 보면 데이터 일부가 짤려서 없고 Z 명령어가 포함 되어 있습니다.
    정상 : 66 xx xx xx xx xx xx xx xx xx xx xx xx xx 18 ff
    깨짐 : 66 xx xx xx xx xx xx xx xx 18 ff 1b 5a 30 30 33

증상을 보면 전송 상태가 좋을 때는 해당 증상이 나타 나지 않으며, 감도가 좋지 않을 때만 해당 증상이 나타 납니다.

66 68 31 32 33 34 35 36 37 38 39 61 62 63 18 FF 66 69 31 32 33 34 35 36 37 38 39 61 62 63 18 FF 66 6A 31 32 33 34 35 36 37 38 39 61 62 63 18 FF 66 6B 31 32 33 34 35 36 37 38 39 61 62 63 18 FF 66 6C 31 32 33 34 35 36 37 38 39 61 62 63 18 FF 66 6D 31 32 33 34 35 36 37 38 39 61 62 63 18 FF 66 6E 31 32 33 61 62 63 18 FF 1B 5A 30 30 30 33 32 66 0A 31 32 33 34 35 36 37 38 39 61 62 63 18 66 0C 31 32 33 34 35 36 37 38 39 61 62 63 18 FF 66 0D 31 32 33 34 35 36 37 38 39 61 62 63 18 FF 66 0E 31 32 33 34 35 36 37 38 39 61 62 63 18 FF 66 0F 31 32 33 34 35 36 37 38 39 61 62 63 18 FF 66 10 31 32 33 34 35 36 37 38 39 61 62 63 18 FF

  1. 위에 8ms 마다 데이터 전송 중 또는 감도 측정을 위해 at+wrssi 명령어를 중간 중간 사용할 경우
    가끔 [ERROR: INVALID INPUT] 메시지가 출력 됩니다.
    wizfi 로 보내는 데이터를 확인해 보면 데이터 깨짐이 없고 서버에 정상적으로 연결된 상태 입니다.

위 두가지 현상을 해결하기 위하 방법좀 알려 주시기 바랍니다.
예를 들어 Z 명령어 끼리의 delay time 또는 at+wrssi의 delay time
Z 명령어를 몇십ms 마다 모아서 전송 등
기타 필요한 내용을 알려 주시기 바랍니다.

감사합니다.

안녕하세요

Z 명령 사이의 딜레이는 직접 코딩하셔야 하는 부분입니다.
WizFi210을 data mode로 운영시, 특정상황에서 모듈 스스로 데이터를 모아서 보내는 딜레이가 존재하긴 합니다.(default 100ms)
그런데 8ms로 데이터를 전송하시기 위해서 escape command를 사용하시는 것 같은데,
이러한 경우 명령 즉시 데이터 패킷을 전송하게 됩니다.

AT+WRSSI 명령의 응답에 ERROR가 나오는 이유도, 8ms마다 데이터 전송을 시도하기 때문에 AT명령에 쓰래기 값이 포함된 것으로 보입니다.

다시 문의 드립니다.

  1. 현재 8ms 마다 데이터를 보내고 있지만 데이터는 모아서 보내도 상관이 없습니다.
    문제는 8ms 마다 보내든 모아서 20~30 ms 마다 보내든 데이터가 일부 깨지는 문제가 있습니다.
    위에 첨부해드림 데이터값을 보면
    66 count 31 32 33 34 35 36 37 38 39 61 62 63 18 ff 형태로 count는 0~FF 까지 증가하게 되어 있습니다.
    그런데 데이터 깨졌을때를 보면 6E 이후 바로 0a가 나오는 것을 보아 중간에 약 160 패킷 정도가 사라진것으로 보입니다.
    서버에서의 접속이 끊김이 없이 이런 현상이 나타날 수 있는 이유가 있는지 알고 싶습니다.

  2. 명령어 뒤에 at+wrssi 명령어를 보낼 때, 디버그 상태로 uart통신으로 나가는 데이터를 확인 하여
    명령어와 rssi 명령어 사이에 쓰레기 값이 없는것을 확인 했습니다.
    그러므로 쓰레기 값에 때문에 에러가 발생하는 것은 아닌것 같습니다.

두가지에 대한 답변 부탁드립니다.

감사합니다.

말씀하신 내용처럼, 빠른 시간안에 많은 데이터를 처리하는 도중에는 무선 환경에 따라 데이터를 놓치는 경우가 있을 수 있습니다.
(무선 모듈의 내부 버퍼는 제한적인데, 무선 환경에 따라 보내는 데이터 처리가 신속하게 안되는 경우)

이 때에는 UART의 H/W Flow Control(CTS, RTS)을 적용하고 테스트를 해보시기 바랍니다.

Copyright © 2017 WIZnet Co., Ltd. All Rights Reserved.