위즈네트 아카데미

TUTORIAL

튜토리얼

Home  > 튜토리얼

W5500 ioLibrary 100% 활용하기 (1)

WIZnet Academy 2015.06.08 17:50 조회 수 : 30

ioLibray?


ioLibrary는 WIZnet의 W5XXX(W5100,W5200,W5300,W5500) 기반의 통합 BSD socket Library입니다.
칩별로 차이가 있는 Hardware dependent code들을 Driver로 분리하여 각각 구현되었으며, 이를 이용하여 BSD Socket API를 구현함으로써, Webserver, FTP와 같은 Application Protocol을 구현함에 있어 Hardware적 제약 조건으로부터 자유로워질 수 있으며, Application의 최소한의 수정으로 쉽게 원하는 WIZnet Chip들로 Porting이 가능합니다.

ioLibrary 특징



  • DRIVER 분리

    • 기본 입출력 기능

      1. WIZCHIP_READ 및 WIZCHIP_WRITE

      2. 모든 Register & Memory Access를 WIZCHIP_READ & WIZCHIP_WRITE로 통일

      3. Hardware dependent I/F code는 Callback Function으로 분리

      4. Driver 수정없이 callback function 등록만으로 바로 사용



    • 추가 기능

      1. 옵션 : 코드 최적화를위한 Omissble

      2. User-freindly name : 같은 기능 다른 이름의 Register 들을 통일





  • 소켓 API

    • Berkeley Socket API와 유사

    • 네트워크 응용 개발 경험자들은 쉽게 ioLibrary 활용 가능

    • 모든 함수의 상황별 Error Code 지원

    • 차단하거나 기능을 비는 차단 지원

    • Datagram Data 처리의 유연성 : 한 Packet을 원하는 크기로 나누어 수신 가능



  • APPLICATIION의 프로토콜

    • 더욱 풍부해지는 Standard application protocol

    • WIZnet Chip별로 각각 제공되는 Application protocol을 Chip에 관계없이 재사용 가능



  • 사용자 응용 프로그램

    • 마이그레이션이 용이

    • 업그레이드가 용이

    • Maintainment 쉬운



  • TCP / IP 스택에 대한 최소 resouces 사용량

  • 동일한 보드에서 최고의 성능


ioLibrary Version 3.0 Directory 구조



  • [ioLibrary]

    • [이더넷]

      • wizchip_conf.h & wizchip_conf.c

      • socket.h & socket.c에

      • [W5100]

        • w5100.h & w5100.c



      • [W5200]

        • W5200.h & W5200.c



      • [W5300]

        • w5300.h & w5300.c



      • [W5500]

        • w5500.h & w5500.c





    • [인터넷]

      • [DHCP]

        • DHCP.h & DHCP.c



      • [DNS]

        • dns.h & dns.c



      • [FtpClient]

        • ftpc.h & ftpc.c

        • stdio_private.h



      • [FTPServer]

        • ftpd.h & ftpd.c

        • stdio_private.h



      • [HttpServer에]

        • httpParser.h & httpParser.c

        • httpServer.h & httpServer.c

        • httpUtil.h & httpUtil.c



      • [SNMP]

        • snmp.h & snmap.c

        • snmap_custom.h & smtp_custom.c



      • [SNTP]

        • sntp.h & sntp.c



      • [TFTP]

        • tftp.h & tftp.c



      • [기타가 추가됩니다]






다운로드


[gallery size="large" ids="4650"]

[Download on GitHub]

ioLibrary 100% 활용하기 – 1

ioLibrary 100% 활용하기 – 2

ioLibrary 100% 활용하기 - 3

ioLibrary 100% 활용하기 - 4

출처 : 밤소의 잠못드는 밤 IoT 이야기