WIZnet Developer Forum

W5300 UDP통신 getSn_RX_RSR 홀수개 데이터 & send 시간

안녕하세요.

포럼의 다른 글들을 통해 W5300의 설정 및 통신에 성공을 하였는데요.

2가지 질문이 있어 문의를 드립니다.

  1. 홀수개 데이터 통신
    W5300이 짝수개의 데이터를 수신할 때만 getSn_RX_RSR가 정상적인 len를 반환하는 것 같습니다.
    홀수개를 준 경우 헤더를 포함하여 2를 반환하는데 이는 어떻게 해결할 수 있나요?
    (필요한 경우 host에서 짝수개를 만들어 보낼 수는 있으나 일반적인 해결책이 알고 싶습니다.

  2. SEND 시간
    현재 1ms 간격으로 host와 W5300이 통신을 하게 될 예정입니다.
    때문에 W5300의 recvfrom과 sendto 함수가 빠르게 동작해야 하는데요.
    recvfrom은 30us 이내에 끝나 괜찮지만 sendto의 경우 약 200us가 소요됩니다.
    함수 내부를 확인해보니 write_buf는 15us 정도만 소요를 하는데 그 다음의 while문에서
    Sn_IR_SENDOK 신호가 얻어지는 데만 200us를 소요하는 것을 알았습니다.
    자료를 보내는 데에는 더 적은 시간이 걸릴 것 같은데 어떤 이유로 이와 같이 긴 시간이 소요되었는지 알고 싶습니다.
    (참고로 w5300과 연결된 dsp의 WR, RD 신호는 주기가 87ns 입니다.)

감사합니다.

안녕하세요. 위즈네트의 방보현 연구원입니다.

1.번의 내용은 기존 포럼의 내용과 유사한 것 같아 URL을 첨부합니다.
결론은 W5300이 16bit 버스이기 때문에 발생하는 자연스러운 현상입니다.
아래 URL을 참고해주시기 바랍니다.

[url]W5300에서 8bit모드 실행시 수신한 데이터의 양에서 문제가 있습니다]

2.번의 sendto의 SENDOK가 200uS이 소요되는 것은 제가 생각해도 너무 큽니다. 하지만 정보가 많지 않아 정확한 답변을 드릴 수가 없습니다.
아래 사항을 말씀해 주시면 더욱 정확한 답변을 드릴 수 있을 것 같습니다.
ㄱ. 데이터를 정상적으로 받아지는지?
ㄴ. 한번에 보내는 데이터 사이즈가 얼마인지?
ㄷ. Ethernet 망에 부하 상태는 어떤지?

문제가 잘 해결되길 바랍니다.

감사합니다.

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