WIZnet Developer Forum

[W5300] UDP 데이터 버퍼 수신 중 초기화

안녕하세요. UDP 데이터 수신 중 버퍼 초기화 관련 질의가 있습니다.

현재 TMS320C28346와 W5300을 이용하여 1214Byte 패킷 데이터를 2000Hz정도로 수신하고 있습니다.

패킷 전체를 DSP로 가져오지 않고 반정도만 가져온뒤 다음 패킷을 가져오고 싶습니다.

그래서 상위데이터 일부만(ex. 상위 50byte) DSP로 복사한뒤 **'setSn_CR(s,Sn_CR_RECV);**을 하였더니 상위부터
읽어오면 ip와 port 정보가 포함되어 있어야 하는데 이 정보가 없는 영역외의 데이터가 들어오는 현상이 발생하였습니다.

W5300에서 한패킷의 데이터를 끝까지 가져오지 않고 중간에 버퍼를 비우고 다음 패킷의 데이터를 가져오게 하는 방법에 도움을 주셨으면 합니다.

예를 들어보겠습니다.
1000byte data를 가진 패킷을 수신했을시
buffer에는 8byte의 ip정보가 들어있는 header와 1000byte의 data가 쌓이게 됩니다.
CR_RECV의 경우 pointer를 업데이트해줄 뿐이니
처음 8byte와 함께 500byte를 recv command로 포인트 업데이트 했을 시엔 데이터만 500byte가 남게됩니다.
이해가 되시는지요

만약 그렇게 사용하고 싶으시면 포인터 업데이트를 받은 패킷의 size만큼 더 해주시면 됩니다.
즉 recv 함수를 수정하셔서 사용하셔야합니다.

감사합니다.

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