W5100 과 w5500 간의 차이점(호환성)

#1

안녕하세요. CON2U 라는 업체의 최석원이라고 합니다.

수개월전에 AVR을 기반으로 w5100칩을 통해 이더넷 통신을 구현하여 제품을 제작했던 업체입니다.

이번에는 6개 이상의 포트를 동시에 열거나 혹은 UDP를 브로드캐스팅하여 동시접속을 시키는 서버를 만들어야

하는 상황이라서 확인을 해본 결과 w5100 에서는 두가지 다 불가능 하다는 결론을 얻게 되었습니다.

따라서 문의 결과 w5500 칩을 사용하여 개별 TCP 포트를 열어야 한다고 들었습니다.

그렇다면 저희는 w5100 에서 마이그레이션을 하기위한 레퍼런스가 필요합니다만…

혹시 도와 주실수 있는지 알고 싶습니다.

그리고 혹시나 기존 AVR-GCC용 소스를 최신 컴파일러에 맞게 수정하여 사용 했습니다만…

어느정도 수정하여 사용 할 수 있는지 아니면 모두 새로 작업해야 하는지도 알고 싶습니다.

기존 w5100은 레퍼런스 보드의 소스를 spi 방식으로 외부메모리 없이 구동하도록 수정하여 사용 했습니다.

이번에는 외부메모리를 장착할 예정입니다. 통신방식은 기존 spi 로 그대로 유지할 예정이구요.

유선상으로는 자세한 문의가 불가능하다고 하여 여기에 문의 드립니다.

잘 부탁드립니다.

행복한 나날 되시길…

#2

W5100과 W5500은 TCP/IP 기능은 같으나 칩 Interface 부분은 다릅니다.
우선 SPI interface는 동일하나, SPI protocol은 완전히 다릅니다. (자세한 것은 Datasheet를 참조하세요)

W5100이나 W5500의 Driver 구조는 거의 유사합니다.
기본 IO access function과 SOCET API 구조는 BSD socket 과 거의 유사합니다.
하지만, W5500 의 Socket API는 Block / Non-Block등을 지원하기 위해 일정 부분 많이 update되어 있습니다.

기존 사용하시는 Application을 W5500으로 포팅하는데는 크게 어려움이 없을 거라 생각되나,
현재 8bit 드라이버 예제는 Arduino용으로만 제공되고 있고 BSD type의 Driver는 제공되고 있지 않습니다.
따라서 32bit 용을 8bit로 porting하셔야 합니다.

기존 BSD socket API(W5100 ,W5200 & W5300) 과 W5500 BSD socket API의 차이점은 wiki에 잘 설명되어 있습니다.

여기 참조하세요.
http://www.wizwiki.net/wiki/doku.php?id=products:w5500:driver