:::: MENU ::::
Posts tagged with: Ethernet

WIZnet mbed 라이브러리

W5500 Ethernet 라이브러리를 mbed에 포팅후 W5100,W5200, W5500까지 지원을 하는 라이브러리를 만들어 mbed.org에 업로드했다. 사용법은 간단하다. 라이브러리를 import하고 사용하는 Wiznet칩 또는 모듈에 따라서 wiznet.h에 있는 #define문에서 사용할 칩만 나두고 나머지는 주석 처리하면 된다.


Arduino Ethernet 라이브러리 업데이트

WZnet 칩 W5100, W5200과 W5500을 지원하는 통합 아두이노 라이브러리인 Arduino Ethernet 라이브러리를 업데이트 했다. 기존 코드에서 달라진 점은 다음과 같다.

  • Arduino IDE 1.5.x 지원 : Arduino Due를 지원하기 위함.
  • Due용  SPI 드라이버 추가
  • W5200및 W5500의 경우 SPI드라이버 속도를 높였다. 무려 42Mhz까지 지원
  • w5100::read_data함수의 파라미터의 형 변경
  • flush() 함수 추가

Arduino IDE 1.5.xx를 지원하기 위해서는

  • 32비트 SAM용 SPI 드라이버가 추가 되야한다.
  • IDE 1.5.x의 폴더 구조가 바뀌어서 헤더파일 include가 변경된다.아래 그림 참고…  예를 들면 #include “w5100.h”가 #include “utility/ w5100.h” 이런 식으로…

Arduino_Folder

  • AVR코드와의 구별은 #if defined (ARDUINO_ARCH_AVR)로 한다.

W5500 SPI

W5500_SPI

데이터 시트에는 이론상 80Mhz까지 가능하다고 나오지만 실제로는 33Mhz 정도가 최대 SPI clock으로 명기해 놓고 있다. 그리고 Atmel SAM에서  SPI clock은 다음과 같이 결정된다. 즉 메인 클럭을 분주해서 사용을 하는데, 아두이노에서는 84Mhz를 메인으로 사용하므로 14Mhz, 28Mhz, 42Mhz, 84Mhz가 설정이 가능하다.

SAM_SPI

 

아두이노 코드에서는 다음과 같이 클럭을 분주해서 42Mhz가 가능하다. 1로 분주하면 84Mhz 인데, 칩에서는 80Mhz까지만 지원하므로 84Mhz는 지원이 안된다. 42에서 84는 갭이 크다…

참고로 아두이노에서 W5100의 SPI는 4Mhz로 설정이 되어 있으니, 거의 10배 이상이 빨라짐~~


Ethernet Auto negotiation – Duplex mismatch

이더넷 네트워크에서 auto negotiation은 PHY에서 담당하는 기능으로 전송선로상에서 상대방(peer)의 속도 및 half/ full duplex여부를 자동으로 결정하는 plug and play  같은 기능이다. 이 기능은 1997년에 Fast Ethernet IEEE802.3u 표준으로 들어갔고, 1999년에 Gigabit Ethenet 802.3ab 표준이 되었다.

Fast Ethernet 일 경우 1)양쪽이 auto일 경우 2) auto – 10/100 고정일 경우 3) 10/100고정 – 10/100 고정일 경우가 발생한다. 양쪽이 auto negotiation일 경우는 속도가 높고 duplex쪽으로 잡힌다. 즉 다음과 같은 우선 순위에 의해 속도 및 duplex가 결정이 된다.

  1. 1000BASE-T full duplex
  2. 1000BASE-T half duplex
  3. 100BASE-T2 full duplex
  4. 100BASE-TX full duplex
  5. 100BASE-T2 half duplex
  6. 100BASE-T4
  7. 100BASE-TX half duplex
  8. 10BASE-T full duplex
  9. 10BASE-T half duplex

하지만 한쪽만 auto이고 다른 한 쪽이 10/100으로 고정을 할 경우 속도는 10/100잘 설정이 되는데 duplex에 문제가 발생할 수 있다. 여러 경우의 수 중에서 duplex에 문제가 생기는 경우는 한쪽이 Full Duplex인 경우이다.

즉 한쪽이 auto-negotiation으로 설정이 되어 있고, 다른 쪽이 full duplex일 경우 full duplex로 잡힐것 같지만 그렇지 않다. 이 경우는 하위 호환성을 해 무조건 half-duplex로 잡힌다는 사실…

관련 자료

http://e2epi.internet2.edu/case-studies/SC02/DuplexMismatch.html

http://en.wikipedia.org/wiki/Autonegotiation

http://en.wikipedia.org/wiki/Duplex_mismatch

 


Transformer없이 이더넷 구현하기

일반적으로 이더넷 응용에서는 PHY의 출력단에 트랜스포머가 필요하다. 하지만 길이가 짧은 경우나 특별한 응용의 경우 트랜스포머를 사용하지 않고 구현이 가능하다. 이 때는 TX+-, RX+- 신호에 DC 커플링 캐패시터 33nF를 연결을 한다.

사실 이 내용보다는 IEEE802.3에서 요구하는 PHY signal의 형태가 다른 문서에서는 볼 수 없어서 귀중한 자료…

Phy_Signal


Wake on LAN

Wake on LAN은 네트워크 패킷(매직 패킷)으로 컴퓨터를 켜거나, 깨우는 기능을 하는 AMD와 HP에서 만든 표준이다.

요즘 PC들은 전원을 꺼도 이더넷 잭에 연결된 LED가 깜박이는 것을 볼 수 있는데, 즉 LAN은 패킷을 받을 수 있는 모드에 있다. 

AMD의 White paper

cfile26.uf.1225CD3F5022E8BF13F2F0.pdf

매직 패킷의 구성

매직 패킷은 2가 있는데, ether-wakeUDP상에서 구현하는 패킷이 있다. 대부분의 PC 프로그램이 보내는 패킷은 후자이다.

아래 내용은 ether-wake패킷의 구성이다. 출처) http://wiki.wireshark.org/WakeOnLAN

이 사이트에서 관련 패킷 샘플도 다운로드 가능하다.

Synchronization Stream

Target MAC

Password (optional)

6

96

0, 4 or 6

-. Synchronization Stream : FF FF FF FF FF FF

-. Target MAC: 깨울 상대의 맥 어드레스

-. Password: 옵션

즉 옵션이 없고 맥 어드레스가 01:02:03:04:05:06 이면 패킷의 형태는 다음과 같다.

FFFFFFFFFFFF010203040506010203040506010203040506010203040506 010203040506010203040506010203040506010203040506010203040506 010203040506010203040506010203040506010203040506010203040506 010203040506010203040506



아래 첨부 파일은 매직 패킷을 Wireshark로 캡쳐한 것이다.[출처: Wireshark.org]

Ether-wake와 UDP 패킷 2가지가 나와있다.

cfile26.uf.125CBA4350259BC91C8AB5.pcap


매직 패킷을 보낼 수 있는 프로그램

Fusion WOL

http://fusionfenix.com/product/wol-1-0

찾아보면 이것말고 꽤 있다.

W5200의 WOL 기능

-. Wake On LAN과 Power down mode와는 아무 관련이 없다. 그리고 power down mode를 enable하면 패킷을 못 받는다.

-. 즉 WOL은 MCU가 sleep하고 있고, W5200은 동작하고 있는 상태에서 WOL기능을 이용해서 매직 패킷을 받으면 인터랍트가 떠서 MCU 깨울때 사용하면 다.

-. 단 주의 사항은 W5200은 ether-wake 패킷만 지원을 한다. 

   따라서 PC에서 raw Ethernet Packet을 보낼 수 있는 프로그램이 필요하다.

참고

http://en.wikipedia.org/wiki/Wake-on-LAN

http://wiki.wireshark.org/WakeOnLAN

http://support.amd.com/us/Embedded_TechDocs/20213.pdf


STM32 Journal

ST에서 발간하는 STM32 Journal 첫호입니다.

cfile24.uf.190D3B4B4EEAEA973742D8.pdf

주로 새로 출시한 STM32 F4에 대한 설명이 있습니다.


Connectivity쪽 자료를 보면 아래 그림과 같은 테이블이 나옵니다.


아래 테이블을 보면 MCU에서 초당 처리해야할 패킷의 수가 수치적으로 나와 있습니다. 당연히 한 패킷당 바이트수가 작을 수록 처리해야할 패킷의 수가 많습니다. 100Mbps의 경우는 10Mbps의 경우의 10배이고…
그리고 괄호안의 수치는 각 Bandwidth를 만족하기위한 1 패킷을 처리하기 위해 걸리는 시간입니다.
즉 MCU가 최소한 이정도 성능이 있어야 10M, 100Mbps를 만족한다는 것인데…

uC/TCP-IP 스텍을 사용시 zero copy 아키텍쳐를 사용하여 dedicated memory에 비해 장점이 있다고 설명을 합니다.


Ethernet 시스템 Layout guide

임베디드 시스템에서 Ethernet은 물리적으로 Ethernet Controller + Magnetic + RJ45로 이루어 진다.
Ethernet Controller는 다시 Etherent MAC + PHY로 구성이 되는데, Ethernet MAC의 경우 최근 MCU에 들어가 있는 경우가 많고 MAC/PHY칩으로 존재하기도 한다.
Magnetic의 경우 코일이 감겨진 transformer를 얘기하는데 RJ45잭 안에 이 Magnetic이 들어가 있는 경우 흔히 MagJack이라고 불리운다. 사실 MagJack은 BelFuse사의 trade mark이다. PoE를 지원하는 MagJack의 경우 이전 포스트를 참고.
임베디드 시스템에서 Ethernet의 하드웨어를 구현시 PCB 레이아웃을 할때는 PHY의 뒷단 부터는 신호의 무결성을 위해 
신경을 써야 한다. 대부분 PHY칩 업체의 가이드를 따르면 되며, 모든 벤더들의 가이드 역시 대동소이하다.

Micrel사의 디자인 가이드

cfile4.uf.206119494EDEFD94288766.pdf


Davicom사의 디자인 가이드
cfile9.uf.15635D494EDEFD94263063.pdf
IC Plus사의 디자인 가이드


cfile3.uf.186107494EDEFD9528439C.pdf
Reaktek 사의 디자인 가이드


cfile24.uf.127843494EDEFD95061C16.pdf


[스크랩] Wi-Fi, Ethernet, HomePlug GP 지원하는 홈 에너지 솔루션

프리스케일은 Wi-Fi, 이더넷 및 HomePlug Green PHY (HomePlug GP) 표준을 통해 Smart Energy Profile 2.0을 사용하는 홈에너지 관리 솔루션을 선보이기 위해 퀄컴 아테로스와 협력한다고 발표했다. HomePlug GP는 스마트 그리드 및 스마트 에너지 어플리케이션을 위한 사양으로, 고객들의 비용, 커버리지 및 성능 요구를 기반으로 한다.


홈 에너지 관리 시스템은 유틸리티 업체들에게 이점이 있다. 이들이 에너지 소비를 절감하기 위해 스마트 그리드 내에서 수요 반응 시스템을 활용하기 때문이다. 이는 고객들에게 관련된 실질적인 데이터를 제공해, 에너지 사용을 모니터하고 제어하기 위한 기회를 제공한다. 이 시스템은 저전력 와이파이 옵션과 파워라인 통신 옵션을 보여준다.



미터, 자동차 및 어플라이언스를 제조하는 사업뿐만 아니라 유틸리티 업체들이 HomePlug GP를 견인하고 있다. 이 시스템은 댁 내 어플라이언스 전기 소비를 모니터하고 제어하는 프리스케일의 Home Energy Manager 레퍼런스 설계를 포함하고 있다. 또한 Smart Energy 2.0 Profile의 Ubilogix 구현으로 퀄컴 아테로스 PL-14 HPGP 보드를 통해 통신할 수 있다.



Freescale Tower System 개발 플랫폼은 MCU 기반 설계용 Wi-Fi SiP(system-in-package)인 퀄컴 아테로스의 AR4100를 통합하고 있다. AR4100은 에너지 사용을 줄이면서 장거리 전송을 가능케 한다. TWR-WIFI-AR4100은 Tower System을 위한 주변 기기 모듈로, AR4100이 Kinetis 및 Coldfire 프로세서 선택 시 타워 설계에 추가될 수 있게 해준다. 이 패키지는 AR4100 설계를 구현하기 위해 필요한 모든 소프트웨어와 함께 제공된다.



프리스케일은 스마트 그리드 및 스마트 미터링 인프라와 홈 및 빌딩 네트워크를 위한 스마트 에너지 솔루션을 제공한다고 말했다. 이 솔루션 어플리케이션은 스마트 미터, 홈 에너지 관리자, 네트워크 스마트 게이트웨이, 집 내부 및 외부 통신 솔루션, 데이터 집중 장치, 재생 가능한 에너지 솔루션 및 전기 자동차 공급 장비를 포함한다.



홈 에너지 관리 시스템은 네트워크 스마트 게이트 웨이, 통합 고속 와이파이 라우터 및 에너지 관리, 자동화 및 보안을 제공하는 HAN(home area network)으로 구성된다. 또한, 스마트 미터 및 홈 시스템을 위한 비용 효율적인 원격 모니터를 제공하기 위해 HAN을 탑재한 홈 내부 에너지 디스플레이 미터 모니터를 갖추고 있다.
– 출처: 전자엔지니어


Ethernet-based Microcontrollers


8051또는 ARM core를 사용하는 Ethernet 기반의 Microcontrollers 입니다.


104개의 디바이스가 있네요.




 


Virtual Cable Tester

Ethernet 네트워크에서는 필수적으로 Ethernet PHY 칩을 사용해야한다. PHY칩에 적용되는 기술중 하나인 VCT(Virtual Cable Tester)는 Marvell에서 개발한 기술로 간단히 얘기하면 UTP 케이블의 단선 및 단락등을 검출하는 기술이다. 

즉 구체적으로 다음과 같은 문제점의 검출이 가능하다.

  • Open:  Lack of continuity between the pins at each end of the twisted-pair cable.
  • Short:  Two or more conductors short-circuited together.
  • Crossed pair:  Twisted-pair cable incorrectly connected at one end. For example, pair 3 is connected to pins 4 and 5 on one end, and pins 7 and 8 on the other end.
  • Reversed pair:  Two conductors in a twisted-pair cable connected with reverse polarity. For example, one conductor in pair 3 is connected to pin 1 on one side and to pin 2 on the other, while the second conductor is connected between pin 2 and pin 1.
  • Improper termination:  Cable terminations not equal to 100 ohms. Because the characteristic impedance of Category 5 (Cat 5) cable is 100 ohms, the cable terminations at each end must also be 100 ohms to prevent waveform reflections and potential data errors.

예를 들면 UTP케이블이 100m 짜리인데 중간에 어느 부근에서 단선, 단락이 되었는지, 선이 제대로 연결이 되었는지 등을 알 수있다.
이 기술로 원리는 특정 파형의 시그널을 보내고 이것이 반사되어 오는 시간 및 패턴을 보고 문제의 원인을 알아낸다.



Marvell의 홈페이지에서는 관련한 내용이 잘 찾아지지 않는데, 아래 링크의 내용은 Dell의 제품에 적용된 내용을 기술한 내용이다.  관련 내용 참고