수정이 안돼서 글을 다시올립니다.
안녕하세요? W5300 관련 문의드립니다.
현재 2초 간격으로 UDP 12 byte request data 수신 시 1ms 의 지연시간을 갖고
150 byte의 데이터를 송신하는 통신을 구현하였습니다.
통신시작 후 5~10분 정도의 시간이 지나면 송신 데이터 중 1 bit의 데이터가 변형되는 현상이 발생해서 문의드립니다.
10000(0x2710) 송신 시 9984(0x2700)로 변형
5400(0x1518) 송신 시 5912(0x1718)이나 1816(0x0718)로 변형
되는 현상이 발생합니다.
저희는 현재 UDP PORT 8 소켓 중 0,1,4,5,6,7,8번 소켓을 열어놓고 동일 번호의 포트를 사용하고 있습니다.
소켓 각각 8K byte의 메모리를 할당하여 사용중인데, 증상 완화를 위해
4개 소켓에 각각 16K byte의 메모리를 할당하고 0,1,3->UDP, 2->TCP 로 사용하면서 증상이 완화되긴 했는데 완전히 해결되진 않았습니다.
근본적인 해결방안이 없는지 궁금하고, 소켓수를 줄이고 메모리를 늘려서 증상이 완화됐는데 왜 그렇게 됐는지 궁금해서 문의드립니다.
내용 추가입니다.
- Tx packet 중 payload data 가 1-bit 만 깨져서 Tx 될 수 있는 경우가 어떤 경우인지 궁금합니다.
(CRC 가 정상으로 봐서는 대국과 연결된 cable 이나 phy 등에서 문제가 발생하지 않았다고 판단됩니다.) - W5300 socket 의 memory size 를 8kByte 에서 16kByte 로 변경(socket 사용 개수도 8개에서 4개로 변경)하면 현상이 개선되는 이유가 무엇인지 궁금합니다. 현상이 개선되는 것으로 추정해보면 tx buffer size 가 늘어나면서 buffer full 시 개선되는 것인가요?
- W5300 socket 의 memory 중에 tx/rx buffer 용도로 별도 할당되는 구조인지 궁금합니다.
tx/rx buffer 용도로 별도 할당되는 구조라면 8kByte 기준으로 몇 byte 인? 16kbyte 기준으로 몇 byte 인지 알려주시기 바랍니다.
감사합니다.