WIZnet Developer Forum

W5300의 통신 정지관련

TI의 DSP인 TMS320VC33과 PC를 W5300을 이용하여 통신을 하고 있으며 아래와 같이 설정되어있습니다.

프로토콜 : UDP
OP_MODE : 10 BASE-T HDX (Manual)
Internal PHY 이용

일반적으로는 정상적으로 동작을 하지만 전기적 환경이 혹독한 특정 환경테스트를 할 시 통신이 멈추는 현상이 발생하였습니다.

디버그를 해 보니 W5300에 SEND 명령이 주어졌음에도 FSR의 크기가 0x2000으로 다시 늘어나지 못하는 것을 확인하였습니다.

위의 현상에서 W5300의 H/W, S/W 리셋을 제외하고 다시 통신을 재개시킬 방법이 있는지, 있다면 리셋과 다른점은 무엇인지 설명해 주시길 부탁드립니다.

W5300 Erratum #1 을 적용해보세요.
적용후에도 동일한 문제가 발생하는지 확인바랍니다.

여기 참조하세요.
http://www.wiznet.co.kr/UpLoad_Files/BoardFiles/W5300_ET_V122K.pdf

보내주신 답변은 TCP를 통신방식으로서 사용할 때 소켓을 닫기 전에 UDP로 SEND명령을 내려 오동작을 방지하는 것으로 이해하였습니다.

그런데 저희는 UDP를 사용하여 데이터를 송신하고 DSP가 리셋되기 전 까지 소켓을 닫지 않습니다.

그러므로 평소에 사용되는 UDP로 계속해서 SEND 명령을 동작시키는 데다가 소켓 또한 닫지 않기 때문에 답변해 주신 것과는 다른 문제인 것 같습니다.

Errata #1 상황이 아니라면,
상대방이 ACK를 주지 못해서 fsr값이 풀리지 않는 것으로 판단 할 수 있습니다.

가능하시다면, 해당사항이 발생하는 패킷을 Wireshark로 캡쳐하여 보내주시면 분석에 도움이 되겠습니다.

UDP를 사용하면 ACK이 없는것으로 알고있습니다.

다시한번 정리해서 질문드리겠습니다.

사용 프로토콜 : UDP

환경 : 전기 노이즈 환경실험 (일반적인 환경에선 아래 현상이 발생하지 않음)

OP_MODE : 10 BASE-T HDX (Manual)

현상 : SEND 명령이 주어졌음에도 FSR의 크기가 복구되지 않아 발생하는 통신의 정지

발생빈도 : 낮음

문의사항 : 이 상황에서 전원을 재투입하지 않고 통신을 재개시킬 수 있는 방안

감사합니다.

UDP를 사용하시는 사용하시는 경우라면 말씀하신 ACK가 없습니다.
Errata #1이 발생하는 경우는 칩로직이 오동작상태에서 빠져 나올수는 없는 경우 입니다. 따라서 리셋 이외에는 다른 방법이 없습니다.

Errata 설명과 같이 MII_RXDV 신호를 감지하여 1이 아닌 동안 SEND COMMAND를 수행하는 것이 1차적인 회피 방법입니다.

사용하시는 UDP SOCKET이 혹시 송신과 수신이 동시에 발생할 수 있는지요? 혹은 Broadcasting 패킷을 송수신하는지 확인 부탁드립니다.

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