W5100 sendto 관련 문의
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Ethernet Chips
No replies yet. Be the first to reply.
Join the discussion.
Share projects and connect with makers.
Joined before the site update? first.
New to WIZnet Makers?
We sent a verification link to your address. Open it to activate your account, then log in.
Accounts from this email provider are reviewed by an administrator after verification. Approval usually takes one business day.
Already have an account?
Enter your email address. If it belongs to an account, we'll send a link to set a new password. Members who joined before the site update use this to set their password.
If an account uses that address, we sent a link to set a new password. The link works once and expires in 30 minutes.
Know your password?
Need an account?
RE: W5100 sendto 관련 문의
by faithmaker ·
tx와 rx를 동시에 처리한다고 가정하고, 이론적 bandwidth를 계산해보면
721us:1500B=1s:x
x = 2083333B = 2083MB 입니다. 그리고 원하는 40Mbps를 바이트로 환산하면 5MBps입니다.
따라서 현재 사용하는 MCU에서 40Mbps를 구현한다는 것은 무리가 따를 것으로 보입니다만…
=> 이부분은 저희 cpu처리 문제입니다. cpu 클락을 높이면서 테스트 중입니다.
delay는 필요합니다. 아니 Delay보단 반드시 Send OK를 확인하셔야 합니다. Send OK가 발생하지 않은 패킷은 정상적으로 전송되었다 볼수 없습니다. Send OK의 확인을 위한 Delay는 Data의 크기,이전 Packet 전송여부 및 네트워크 통신량등 많은 변수가 있어 정확히 얼마가 걸린다 확답은 드릴수 없습니다. 이부분은 추후 다시 답변드리겠습니다.
=> 계산상으로 1500byte는 100Mbps 기준으로 0.00011444…sec(114…usec)가 걸립니다. 114:1500byte=x:40Mbit(5,242,880byte) 이론상 0.398sec가 걸립니다. 즉, 0.602초에 process가 끝나면 되구요. rx고려하면,…약 0.3초 이내에 process가 끝나면 됩니다. process는 4.17*10-5에 끝나면 됩니다.
UDP에서 Timeout은 ARP Timeout입니다. 1:1통신을 할 경우 Destination IP에 대해 최초에 한번만 ARP를 수행하므로
그 이후 전송되는 Data들은 Timeout이 발생하지 않습니다.
=>코드상 sendok만 되면 timeout문제는 해결되겠군요. 아니면 최초 arp에 대한 flag만 두면 되구요. sockclose후 전송하면 다시 최초 한번만 arp를 수행하게 되는지요? 그리고 sendok체크 루틴에 delay를 추가하여 실험해 보겠읍니다.
코드상 semaphore를 사용하시는 것을 보아 OS를 사용하시는 듯 합니다.
Send Ok를 기다리는 동안 (말씀하신 500us Delay동안 Rx와 같은 다른 작업을 수행하여 MCU의 효율을 높이고)
또한 Memory Copy는 DMA engine을 사용하는 것, Code Optimization 등이 있습니다만, 이부분은 잘 하셨을 거라 믿습니다.
=> os define은 사용하지 않고 있읍니다.
질문 요점은 프로세스 시간이 0이 걸리고, sendto에 무한 루프도 무시하더라도 500usec delay가 들어가면, 계산상으로 1초이내에 40Mbps가 나올수 없다는 겁니다. (500usec:1500=x:5,242,880 => 1.747sec가 걸립니다.)