개발자입니다.
포럼에 올라온 글들을 보면서 많은 도움을 받고 있습니다. 감사드립니다.
이번 개발은 W5100을 사용한 프로젝터입니다.
개발환경은 다음과 같습니다.
- 마이컴 : STM32H743(32bit)
- 컴파일러:IAR ARM
- 통신방식:FMC(병렬)
- 현재상태:연결/해제를 반복하면 SOCKET_LISTEN/SOCK_ESTABLISHED를 반복합니다.
데이터를 1회 수신하고(수신DATA양호/10byte)해제/연결을 하면
SOCKET_LISTEN/SOCK_SYNRECV 상태가 되면서 더이상 통신을 하지 않습니다.
==>송신만 1회하면 통신이 끊어집니다.
- 포럼을 보다가 저와 같은 문제의 문의를 보았으나, 답이 없어서 혹시그문제가 해결이 되었나요?
도움 부탁드립니다.
TCP Sever로 동작을 할때 Sn_SR의 동작은
기본적으로는 아래와 같습니다.
0x00 → 0x13(init) → 0x14 (listen)->0x17(established)->0x00(close - 연결을 끊었을때)
-
연결을 끊긴 후 다시 init → linsten의 상태로 변경되는지 확인해주세요
-
정확히 연결이 끊겼는지 확인하는 방법은 wireshark tool(freeware)을 이용하여 네트워크 패킷을 확인하는것입니다.
-
저희가 제공하는 ioLibrary를 참고하셔서 구현중이 아니라면, 기본 TCP Server로 동작하는 시퀀스가 있으니, 참고해서 사용하셔야할것 같습니다.
iolibrary : GitHub - Wiznet/ioLibrary_Driver: ioLibrary_Driver can be used for the application design of WIZnet TCP/IP chips as W5500, W5300, W5200, W5100 W5100S.
W5100의 메뉴얼에도 간단한 설명이 있으니, 그것을 참고하시는것도 도움이 될것 같습니다.
P.43이 TCP Server동작 예제입니다.
감사합니다.
iolibrary : [https://github.com/Wiznet/ioLibrary_Driver를 참조 했더니 모든 문제가 해결되었습니다.
진심으로 감사드립니다.