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



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

Microduino, W5500 소개

    미니 W5500 보드 작게 만든 만큼 정성이 있어 보이는 보드들.
    자료는 아래 위키페이지를 통해 살펴볼 수 있습니다.
    물론, duino를 붙인 만큼 소프트웨어는 아두이노와 함께 사용할 수 있다는 장점을 가지고 있습니다.

    하드웨어 자료도 공개소프트웨어로 오픈하고 있습니다.

    세상은 넓다~

    ^~^


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

    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/


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


    이정도로 마무리~~

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


    끝.



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

    Arduino Internet of Things 예제 프로젝트들 - WIZ550io module

    아두이노 + WIZ550io (made by WIZnet) 모듈을 이용하여 다양한 Internet of Things 예제들을 코드 구현 및 데모를 실은 동영상이다.



    관련된 소스코드는 Github을 통해서 공유하고 있다.

    https://github.com/MD4N1/Wiz550io-Tutorial-Series


    예제들을 보니 왠만한 프로젝트는 다 있다. 예제 소스가 있는 폴더를 스크린샷해서 가져왔다.


    요즘 유행하는 것들은 다 있네.

    Twitter, Thingspeak, Web Server, Xively ...

    각각 하나하나가 가치 있는 프로젝트들인데


    #Internet of Things 에 관심이 있는 사람들이면 한번씩들 들어봤을 이름들..

    한번씩 받아서 돌려보기만 해도 큰 공부가 될 듯 하다.


    medium.com 에서 작성한 페이지도 여기에 한번 실험삼아 embed 해본다.


    Ethernet Shield — Arduino, WIZ550io




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

    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.



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

    PPPoE 서버 설치 및 구성

    참 오래된 기술이다.

    이런걸 정리해 놓은 게 있으려나..........있지.

    간단히 국산블로그에서도

    리눅스에 PPPoE 서버 구축하기


    해외 블로그 에서도

    http://www.howtodoityourself.org/pppoe-server-how-to-do-it-yourself.html


    간단히 옮겨보자꾸나.


    1. Make sure you have an active internet connection. If not, set it up by using your favorite text editor (I use vim):

    vim /etc/network/interfaces 
    auto lo
    iface lo inet loopback
    
    iface eth0 inet static
    address 89.xxx.yyy.zzz     #Your public IP address
    netmask 255.255.255.240  #Your subnet mask
    gateway 89.xxx.xxx.xxx    #Your gateway
    
    iface eth1 inet static
    address 192.168.1.254
    netmask 255.255.255.0
    

    Set up one or more nameservers (I use the free ones provided by Google):

    echo "nameserver 8.8.8.8" > /etc/resolv.conf
    echo "nameserver 8.8.4.4" >> /etc/resolv.conf
    

    Ping some website to make sure your internet connection is working:

    cristian@desktop:~$ ping google.com
    PING google.com (209.85.229.147) 56(84) bytes of data.
    64 bytes from ww-in-f147.1e100.net (209.85.229.147): icmp_req=1 ttl=52 time=83.0 ms
    

    2. Install ppp daemon:

    sudo apt-get install ppp
    

    3. Now get rp-pppoe from here.

    wget http://www.roaringpenguin.com/files/download/rp-pppoe-3.10.tar.gz

    And extract it

     tar -zxvf  rp-pppoe-3.10.tar.gz

    Now compile it

    cd rp-pppoe-3.10/src/
    ./configure
    make && make install

    4. Now, we shall edit the PPPoE server options:

    vim /etc/ppp/pppoe-server-options
    
    require-chap
    login
    lcp-echo-interval 10
    lcp-echo-failure 2
    ms-dns 8.8.8.8
    ms-dns 8.8.4.4
    netmask 255.255.255.0
    defaultroute
    noipdefault
    usepeerdns
    

    5. Add usernames and passwords:

    vim /etc/ppp/chap-secrets
    

    # Secrets for authentication using CHAP # client server secret IP addresses #USERNAME SERVER PASSWORD CLIENT IP ADDRESS "사용자이름" * "비밀번호" 192.168.1.1

    6. Set up the IP addresses pool:

    echo "192.168.1.1-20" > /etc/ppp/allip

    This will assign the future clients one IP address from the 192.168.1.1 until 192.168.1.20 range.

    7. Start the PPPoE server:

    pppoe-server -C isp -L 192.168.1.254 -p /etc/ppp/allip -I eth1

    8. Enable packet forwarding between network interfaces:

    echo 1 > /proc/sys/net/ipv4/ip_forward

    9. Set up NAT in order to provide internet access to the LAN computers:

    iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

    클라이언트 구성 및 설명은 위에 언급한 한글 사이트에서


    타깃 보드에 연결 설정을 합니다.

     

     # cat > tee /etc/ppp/options << "EOF"
     plugin rp-pppoe.so
     eth0
     defaultroute
     usepeerdns
     user "test"
     noauth
     noipdefault
     hide-password
     debug
     EOF

     

     # cat << "EOF" | tee -a /etc/ppp/chap-secrets > /dev/null 2>&1
     "test" * "test" *
     EOF

     

    다음과 같이 ppp 데몬을 실행하면 접속이 된 것을 확인하실 수 있습니다.

     

     # pppd
     Plugin rp-pppoe.so loaded.
     RP-PPPoE plugin version 3.8p compiled against pppd 2.4.5
     # ifconfig
     eth0      Link encap:Ethernet  HWaddr 12:34:56:78:90:AA  
               inet6 addr: fe80::1034:56ff:fe78:90aa/64 Scope:Link
               UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
               RX packets:43 errors:0 dropped:0 overruns:0 frame:0
               TX packets:21 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:1000 
               RX bytes:4429 (4.3 KiB)  TX bytes:4018 (3.9 KiB)
               Interrupt:33
     
     lo        Link encap:Local Loopback  
               inet addr:127.0.0.1  Mask:255.0.0.0
               inet6 addr: ::1/128 Scope:Host
               UP LOOPBACK RUNNING  MTU:16436  Metric:1
               RX packets:0 errors:0 dropped:0 overruns:0 frame:0
               TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:0 
               RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
     
     ppp0      Link encap:Point-to-Point Protocol  
               inet addr:192.168.1.1  P-t-P:192.168.1.254  Mask:255.255.255.255
               UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1492  Metric:1
               RX packets:4 errors:0 dropped:0 overruns:0 frame:0
               TX packets:4 errors:0 dropped:0 overruns:0 carrier:0
               collisions:0 txqueuelen:3 
               RX bytes:76 (76.0 B)  TX bytes:70 (70.0 B)
     
     # ping 192.168.1.254
     PING 192.168.1.254 (192.168.1.254): 56 data bytes
     64 bytes from 192.168.1.254: seq=0 ttl=64 time=26.023 ms
     64 bytes from 192.168.1.254: seq=1 ttl=64 time=23.892 ms
     64 bytes from 192.168.1.254: seq=2 ttl=64 time=22.464 ms
     64 bytes from 192.168.1.254: seq=3 ttl=64 time=21.808 ms
     
     --- 192.168.1.254 ping statistics ---
     4 packets transmitted, 4 packets received, 0% packet loss
     round-trip min/avg/max = 21.808/23.546/26.023 ms


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

    IPv6 EUI-64bit address 생성하기 - IPv6

    (원본글 https://supportforums.cisco.com/document/100566/understanding-ipv6-eui-64-bit-address)


    MAC 어드레스로 Interface-ID를 생성해 내는 방식에 관한 것이다.

    약간 변경된 것이 있다는 책의 내용을 보고 웹 서칭..

    만드는 방법은 아래 그림과 같다.



    문제는 맨 왼쪽 바이트의 2번째 비트이다.

    이 비트가 로컬이냐 글로벌(?)이냐를 나타내는 비트.

    이전 EUI-64의 경우 '1'이 로컬, '0'이 글로벌(영어로 univeral이네 ^^)이었는데,

    Modified EUI-64에서는 이를 뒤집었다고.

    The reason for inverting can be found in RFC4291 section 2.5.1.


    일단, 우리는 최신껏만 기억하는게 좋을 듯.


    Once the above is done, we have a fully functional EUI-64 format address. 

    원본글에서 누구나 생각할 수 있는 질문이 있어 옮겨둠..

    그럼 라우터에서는 이 비트를 활용하고 있는냐? 현재는 아무것도 하지 않는다는 내용.

    Another doubt or frequently asked question is, are IPv6 devices (routers etc) today doing anything to that universal/local bit? Currently, nothing is being done be the U/L bit 1 or 0. However, per RFC4291 2.5.1 (The use of the universal/local bit in the Modified EUI-64 format identifier is to allow development of future technology that can take advantage of interface identifiers with universal scope), this may change in the future as the technology evolves. 

    끝.



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

    Realtek PHY RTL8201BL - MDC/MDIO 파형, 데이터시트

    Realtek PHY chip - 데이터시트

    자주 찾는데, 보관용으로 하나 포스팅


    MDC/MDIO 파형을 볼려구 했는데, 일단 그림도 캡쳐해 두고

    파형을 보면 간단한 동작은 간단히 구현 가능~~ 




    겸사겸사 간단한 설명도 스크랩


    RTL8201BL


    Single-Port 10/100M Fast Ethernet PHYceiver
     
    General Description

    The RTL8201BL is a single-port PHYceiver with an MII (Media Independent Interface). It implements all 10/100M Ethernet Physical-layer functions including the Physical Coding Sublayer (PCS), Physical Medium Attachment (PMA), Twisted Pair Physical Medium Dependent Sublayer (TP-PMD), 10Base-Tx Encoder/Decoder and Twisted Pair Media Access Unit (TPMAU). A PECL interface is supported to connect with an external 100Base-FX fiber optical transceiver. The chip is fabricated with an advanced CMOS process to meet low voltage and low power requirements.



    RTL8201BL.PDF



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

    RF Considerations in Wireless Sensor Networks

    간단하게 본게 아까워서 여기에 남겨둠. 에버노트 플러그인 기능 확인도 할 겸..

    꼭 원본 글을 보자. 삽질한 내용만 보다가는 실패할 수도 ^^;;

    살펴보면 자세하게 관련된 논문링크도 있고, 영어도 배우고 좋을 듯 



    아래내용은 간단히 필요한 내용만 추려서 삽질~~


    전통적인 WSN은 센서, MCU, RF로 구성이 된다. 센서는 언제나 파워가 공급된다 배터리로, 따라서 파워소모량이 핵심적인 고려사항이다.


    일반적으로 데이터 처리하는 과정 보다 데이터 송수신에 많은 에너지를 소비한다는 것이 핵심 따라서 RF 송수신이 파워소모측면에서는 가장 중요한 요소이다.


    모든 선택에는 tradeoffs가 있다. 한예로 WiFi는 54Mbps의 속도를 가지고 파워 소모는 수신시 100mW, 송신시 200mW나 사용한다. 반면, ZigBee의 경우 low power이긴 하지만 속도가 낮다. 


    원 저자가 언급한 고려사항은 아래와 같다.


    동작주파수. 현재 시장에서 널리 쓰이는 무선기술은대부분 ISM 주파수 밴드를 사용한다. 특히 sub-GHz(1GHz 이하의 주파수) 대역과 2.4 GHz 근처의 주파수 밴드를 사용한다. sub-GHz는 몇가지 장점이 있다 2.4GHz와 비교해서. 전송중에 Path loss 혹은 signal loss는 캐리어 주파수와 관련이 있다. 2.4GHz를 사용하면서 10 미터 정도의 거리에서 데이터를 보내면 PL이 약 60dB이다. 반면에 900 MHz는 같은 조건에서 51.5dB로 약간 낮아진다. 계산해보면 900MHz는 2.4GHz에 비해 2.6배 긴 거리에서 전송이 가능하다. 또한 같은 link budget에서는 2.4GHz 대역이 거의 2배의 파워를 소모한다.


    그동안, WiFi, Bluetooth, microwave, baby monitors, 무선전화기등은 2.4GHz대역을 사용해 왔다. 이 대역은 많이 붐빈다. 그리고 간섭이 많다. sub-GHz 대역이 더 나은 선택인 것 같다고 WSN에서는


    동작전압도 또다른 고려사항이다. 송수신의 파워를 낮추는 것이 가장 좋은 방법이다. 현재 RF회로는 2V미만으로 동작하는 것이 일반적이다. 높은 전압의 동작은 출력 파워가 5dBm이상인 경우에 요구되어 진다. 센서노드의 경우, 1.2V 혹은 1V 미만의 전압이 공급되고 이것은 파워소모를 줄이는 효과를 가져온다.


    반면, data rate도 송수신 속도는 중요한 요소이다. 파워소모를 결정하는. 에너지 효율을 높이기 위해선 높은 data rate을 가지는 것이 좋다.


    여기에 필요한 것이 변조기술이다. 802.11b는 3가지 표준 변조방식을 지원한다. BPSK는 1Mbps, QPSK는 2Mbps, CCK는 5.5 Mbps와 11Mbps를 지원한다. 더 복잡한 변조는 data rate을 더 올릴 수 있다. 그러나 data rate이 올라가면 RF 회로 설계가 좀 어려워진다. WSN에서는 data volume이 WiFi보다 작기때문에 쉬운 변조방식을 가진 합리적인 data rate(?)이 필요하다.


    가장 적은 에너지를 소모하기 위해서 동작하지 않을 때, RF회로는 shut down되어야 한다 즉 센서 노드가 RF 파워를 제어하는 기능이 있어야 한다는 의미이다. 


    끝 =).



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