W5500 Driver open source projects - 오픈소스


W5500 Driver open source projects - 오픈소스

이전에 PSoC W5500 Driver 에 관련된 글을 작성했었다. 

W5500 Ethernet driver for PSoC - FreeRTOS

이외에 많은 대중적인 MCU 들이 많이 있는데 관련해서 드라이버 소스들을 정리해 보고자 한다.

일단, 공식적으로 WIZnet에서 제공하고 있는 통합 라이브러리는 아래와 같다.


https://github.com/Wiznet/ioLibrary_Driver ; SOCKET APIs like BSD & WIZCHIP(W5500 / W5300 / W5200 / W5100) Driver


AVR - ATmel

- 일단 아두이노 소스를 모두 활용할 수 있다.

Arduino Ethernet Github site

https://github.com/arduino/Arduino/tree/master/libraries/Ethernet


- 또다른 아두이노 진영인 arduino.org 의 최신 소스코드 - 여기가 좀 더 W5500 테스트가 많이 되어 있는 것 같다.

https://github.com/arduino-org/Arduino/tree/ide-org-1.6.1.x/libraries/Ethernet2

보드에 같이 올라가 있는 상품도 있고. 

http://www.arduino.org/products/boards/4-arduino-boards/arduino-leonardo-eth



- 칩 제작사인 위즈네트에서 제공하는 통합 라이브러리

https://github.com/Wiznet/WIZ_Ethernet_Library


- 통합 라이브러리 이전에 먼저 개발하고 테스트한 공신할 수 있는 embeddist 님께서 작성해 주신, 


- 호주의 뛰어난 개발자 이신 Phillip Stevens 가 만드신 freeRTOS & libraries for AVR ATmega 프로젝트 소스, FreeRTOS 포트 정보를 찾는다면 단언코 이 프로젝트가 레퍼런스 1순위. Goldilocks Analogue 라는 ADC 기능이 기본적으로 탑재되어 있는 Arduino 호환 보드를 개발해서 사업을 하고 있기도 하다.

- ehajo 라는 독일업체에서 만든 보드와 예제 코드.

- 기타 제작자들의 작품들.


LPC 시리즈 - NXP LPC11exxx ...

- 위즈네트에서 개발된 W5500 용 EVB, 메인 칩셋으로 NXP사의 LPC 시리즈를 이용하고 있다.



https://github.com/Wiznet/W5500_EVB

개발 환경의 구축에 관련된 내용은 위즈네트 아카데미(http://wiznetacademy.com) 에서 강의를 들어 볼 수 있으며,

강의노트 - WIZnet Academy (http://wiznetacademy.com/wp/wp-content/uploads/2015/02/WIZnet-Academy-W5500-WebServer.pdf)


또한 아래 글을 참고해도 된다.

W5500으로 이더넷 구현하기 (개발 환경 구축)


- ARM 사의 오픈소스개발환경인 http://mbed.com 을 통해서도 많은 예제와 소스코드를 찾을 수 있다.

먼저 하드웨어는 W5500 Ethernet Kit for IoT (https://developer.mbed.org/components/W5500-Ethernet-Kit-for-IoT/) 을 사용하면 된다.



ARM mbed 환경에서는 Cortex-M 시리즈의 칩셋을 기본적으로 제공하고 있으므로 NXP 뿐 아니라 STM32 코드로도 활용이 가능하다.


STM32 시리즈 - ST Microelectronics

- 먼저 WIZnet(http://wiznet.co.kr) 에서 제공하고 있는 Web module 의 소스코드를 가장 먼저 레퍼런스 할 수 있다.

https://github.com/Wiznet/WIZ550web

https://github.com/Wiznet/WIZ550Web_STM32F103RB_CoIDE ; 무료 컴파일러 Coocox 버전 (http://www1.coocox.org/CooCox_CoIDE.htm)


- Arduino for STM32 Project (https://github.com/rogerclarkmelbourne/Arduino_STM32) 의 일부 프로젝트로 진행된 라이브러리.

Vassilis Serasidis 님이 개인적으로 코드사이즈, DHCP 라이브러리를 직접 테스트 하며 완성된 통합 라이브러리 버전이다. 짝짝~~

https://github.com/Serasidis/Ethernet_STM ; WIZnet W5500, W5200, W5100 ethernet library for 8-bit, 32-bit Arduino and STM32F1 (STM32F103) micro-controllers

성공스토리는 이 포럼글에서 확인해 볼 수 있다. : "W5500 library is (finally) ported"

참고로 Arduino STM 프로젝트는 이전에 Maple Project (http://www.leaflabs.com/about-maple/)에서 생성된 것으로 아두이노 IDE를 ARM 계열에서도 사용해 보자고 하는 운동에서 시작되었다.


국내 개발자, w5500 모듈을 가지고 기본 라이브러리를 활용하여 TCP/IP 서버와 클라이언트를 구현한 KEIL 프로젝트로 아래 링크에서 소스코드를 다운로드 받을 수 있다.

wiznet ethernet controller w5500 with STM32F10


PIC 시리즈 - Microchips PIC18, PIC24 ...

- 유럽에서 진행되고 있는 통합 EVB 같은 ETH WIZ click

본 모듈은 http://www.mikroe.com/ 이라는 곳에서 기본 보드와 아주 다양한 기능별 모듈을 제공하여 Prototype 설계를 가능하게 해 준다.

그림처럼 아주 깔끔한 형태의 보드를 제공하고 있고, 물론 예제 라이브러리도 아주 고급지게 제공된다.

물론 아래와 같이 PIC 시리즈를 포함하여 AVR, ARM 소스도 같이 제공하고 있어 다양한 활용이 가능하다.

http://libstock.mikroe.com/projects/view/1314/eth-wiz-click-board-example


Examples are written for :

  • EasyPIC v7 - PIC18F45K22
  • EasyPIC v7 for dsPIC30 - dsPIC30F4013
  • EasyPIC Fusion v7 - PIC32MX795F512L
  • EasyAVR v7 - ATmega32
  • EasyMX PRO v7 STM32 - STM32F107VC
  • EasyFT90x v7 - FT900 


- 약간 특이하게 아래와 같이 아두이노 호환형태의 보드와 Basic 형태의 코드와 라이브러리를 배포하고 있는 Firewing Project 도 PIC 시리즈를 이용하시는 분들은 참고할 만 하다.

단, 컴파일러/IDE의 지원이 이곳(http://www.firewing.info/pmwiki.php?n=Main.HomePage)에서 유료로? 무료로 받는지는 확인해보고 사용해 보시길.

W5500 Dirver 페이지는 http://www.firewing.info/pmwiki.php?n=FirewingUser.W5500 


https://github.com/FeezingCode/pic18_W5500


PSoC 시리즈 - Cypress

W5500 Ethernet driver for PSoC - FreeRTOS 여기에 정리를 해 두었다. 

그래도 간략하게, 해당 링크는 

http://www.e2forlife.com/2015/09/its-been-a-while/

이 페이지에는 W5500 드라이버는 물론이고, FreeRTOS 사용자들을 위해 porting 작업이 완료되어 있는 소스를 공개하고 있다.

해당 소스의 위치는 

Check out the “example” project at https://github.com/e2forlife/PSoC-W5500-Example.git

아직 FreeRTOS 전체적인 프로젝트가 종료되지 않아서 최종 릴리즈 버전은 없지만 

개발 버전은 자신의 Github을 통해 공유하고 있다. 소스의 위치는 아래 링크를 참고하기 바란다.

프로젝트 페이지 https://github.com/e2forlife/PSoC-FreeRTOS

개발 버전 공개페이지 : https://github.com/e2forlife/PSoC-FreeRTOS/tree/Implement-PSoC5



저작자 표시 비영리 동일 조건 변경 허락
신고

IoT Cloud Platfrom - Internet of Things 를 위한 클라우드 서비스 개발 키트들

이미 스크랩 해놓은 것 부터 그냥 정리해 두자. (업데이트를 기대하며..)


(via Xively Jumpstart Kit, ARM® mbed Edition - Xively)
영어권은 좋겠다..저들끼리 잘허네~~
무튼 요는 간단히 킷을 사서 뚝딱 하면 간단 IoT 완성
데이터는 http://xively.com 에서 이쁘게 관리해 주고
멀 관리할 것인지만 꾸며 넣으면 됨..이런 세상이야~~
관련 ARM techcon review 하나 추가

(via Xively Jumpstart Kit, ARM® mbed Edition - Xively)

영어권은 좋겠다..저들끼리 잘허네~~

무튼 요는 간단히 킷을 사서 뚝딱 하면 간단 IoT 완성

데이터는 http://xively.com 에서 이쁘게 관리해 주고

멀 관리할 것인지만 꾸며 넣으면 됨..이런 세상이야~~

관련 ARM techcon review 하나 추가


몇개 더 있다. 자세한 정보는 여기 -> http://exosite.com/solutions/development-kits/

(via TI Launches “Connected LaunchPad”)
이건 머 할 것이 없다.다 된다.  서비스까지 (아래 동영상 참고, Exosite.com 에서 제공하는 서비스 기존의 Xively, Thingspeak 류의 서비스도 같이 제공한다. ㅠㅠ)

이 Kit의 판매가격은 현재 홈페이지에 나와 있는 것으로 하면 
$19.99
아래는 어플리케이션 데모 화면 캡쳐.


For the launch, TI has partnered with Exosite to provide easy access to the LaunchPad from the internet. A pre-loaded demo application will allow you to toggle LEDs, read button states, and measure temperature over the internet using Exosite. 

보드를 작게하거나, 어떤 가치있는 정보를 보내고 저장하고 보여줄까 고민하는 정도
아이디어를 구현하는 것은 쉬워진다. 아이디어가 문제 혹은 추진력?과 빽 ㅋㅋ

(via TI Launches “Connected LaunchPad”)

이건 머 할 것이 없다.다 된다. 
서비스까지 (아래 동영상 참고, Exosite.com 에서 제공하는 서비스 기존의 Xively, Thingspeak 류의 서비스도 같이 제공한다. ㅠㅠ)

이 Kit의 판매가격은 현재 홈페이지에 나와 있는 것으로 하면 

$19.99

아래는 어플리케이션 데모 화면 캡쳐.

For the launch, TI has partnered with Exosite to provide easy access to the LaunchPad from the internet. A pre-loaded demo application will allow you to toggle LEDs, read button states, and measure temperature over the internet using Exosite. 

보드를 작게하거나, 어떤 가치있는 정보를 보내고 저장하고 보여줄까 고민하는 정도

아이디어를 구현하는 것은 쉬워진다. 아이디어가 문제 혹은 추진력?과 빽 ㅋㅋ



저작자 표시 비영리 변경 금지
신고

Evrythng 서비스 간단 사용기 - Internet of Things 클라우드 서비스

여기저기 클라우드 서비스가 생겨나고 있다.

Internet of Things device 를 위한 서비스들도 많이 나오고 있네.

대표적인 것은 물론,


http://xively.com <- 난, 여기를 강추. 인터페이스며 API며 다른 솔루션보다 나아 보인다.

http://thingspeak.com

(삼성이 인수해서 알게된 Smart Things..) 등등..


여기에 영쿡에서 http://Evrythng.com 이 만들어 져 있네. (왜 국내는 빅벤더들이 가만이 있을까나~~ ㅎㅎ, API가 문제인가)

모음만 싹 뺀 이름으로 만든 에브리띵스 닷 컴. 

간단히 사용해 보자.


일단 개발자를 위해서는 http://dev.evrythng.com 으로 접속. 

머 대충 아이디 만들어 로그인 하면 짠..이런 화면인..



간단하게 기기를 등록해볼까. 

왼쪽에 Thngs 메뉴 누르고, 아래 그림 오른쪽의 "+Add THNG"를 누러면, 아래와 같이 등록할 수 있는 페이지 나옴.



이름 넣고 간단한 설명. 그리고 "Save". 끝



이렇게 생성된 기기가 나타난다. 일단 속성을 등록해 줘야 한다.

온도 기기 같으면, 온도라는 속성

습도 기기면 습도.

아니면 2개 이상을 등록해도 된다.

일단 위에 나타난 기기의 이름을 누르면 자세한 정보들이 나오는데, 그중에 "View Properties"를 눌러 등록한다.



여차저차..prop3 이란 속성을 등록해 놓았다. 


일단, 정보를 받고 저장할 수 있는 기기 하나를 http://evrythng.com 에 등록 완료.

이제 기기에서 실제 여기로 정보를 올리고 가져오고 할 수 있도록 하면

간단한 IoT를 맛볼 수 있다.


mbed(http://mbed.org) 를 사용하고 있다면, (Ethernet 혹은 WiFi 연결 가능한 모듈이 있어야 한다.)

예제를 제공하고 있으니 쉽게 따라할 수 있을 것 같다.


간단한게 만든 예제는 여기를 참조.

http://mbed.org/teams/EthernetInterfaceW5500-makers/code/EvrythngApiExampleW5500/


혹은 Evrythng에서 제공하는 예제를 참고해도 된다.

http://mbed.org/users/vladounet/code/EvrythngApiExample/


이 코드로 데이터를 올렸더니 이렇게 볼 수 있네.


이정도로 마무리~~

자세한 코드관련 내용은 기회가 닿는대로 하나 더 올리도록 하자..(다짐ㅋ)


끝.



저작자 표시 비영리 변경 금지
신고

IPv6 - Solicited-Node Multicast Address

Global 이든 Link-local 이든 Unicast 주소를 인터페이스에 하나씩 할당 할 때 마다, 아래와 같은 "Solicited-Node Multicast Address"가 하나씩 있어야 한다. (또는 처리할 수 있어야 한다.)
아래 주소로 패킷이 들어왔는데, 처리하지 않으면 이상하겠지.
스펙상 의도하여 생성하지 않았지만 각 unicast 주소에 저절로 맵핑되어야 하는 것이므로

추가) 당연히 all nodes multicast 주소인 "FF02::1"과 로컬주소 "::1" 도 처리해 주어야 겠지 =)

출처 : How IPv6 Works: IPv6

Mapping Unicast IPv6 Addresses to Solicited Node IPv6 Addresses

For example, for the node with the link-local IPv6 address of FE80::2AA:FF:FE28:9C5A, the corresponding solicited-node address is FF02::1:FF28:9C5A. This node is listening for multicast traffic at the solicited-node address of FF02::1:FF28:9C5A and, for interfaces that correspond to a physical network adapter, has registered the corresponding multicast address with the network adapter. To resolve the address of FE80::2AA:FF:FE28:9C5A to its link-layer address, a neighboring node sends a Neighbor Solicitation to the solicited-node address of FF02::1:FF28:9C5A.

The result of using the solicited-node multicast address is that address resolutions, a common occurrence on a link, are not required to use a mechanism that disturbs all network nodes. By using the solicited-node address, address resolution disturbs very few nodes. In practice, due to the relationship between the Ethernet MAC address, the IPv6 interface ID, and the solicited-node address, the solicited-node address acts as a pseudo-unicast address for very efficient address resolution.



저작자 표시 비영리 변경 금지
신고
◀ PREV 1 NEXT ▶