ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Raspberry Pi Pico Ethernet 통신 Loopback 속도 얼마나 나올까?? (feat. WIZnet Ethernet HAT, LAN8720 Eth Board)
    Raspberry Pi 2021. 9. 29. 14:28

     

    안녕하세요, 이번 글은 Raspberry Pi Pico로 Ethernet 통신을 할 수 있는 두 제품 WIZnet Ethernet HATLAN8720 Eth Board의 Loopback 속도 측정한 결과를 공유하려 합니다.
    Raspberry Pi Pico에는 다양한 기능들이 있지만 아쉽게도 네트워크에 관련된 기능은 없습니다. 네트워크 환경도 구성하고 loopback 테스트를 통해 통신속도가 얼마나 나오는지 알아보도록 하겠습니다. (이번 테스트는 AX2프로그램을 사용하였습니다.)

     

    (LAN8720 테스트에 사용한 코드는 아래 github에 올라와 있는 코드에 tcpecho-server를 추가하였습니다.)

     

    GitHub - sandeepmistry/pico-rmii-ethernet

    Contribute to sandeepmistry/pico-rmii-ethernet development by creating an account on GitHub.

    github.com

     

     

    Test Environment

    두 제품을 테스트하기 위해 다음과 같이 시험 환경을 구성했습니다. 두 제품 모두 link speed 10/100 Mbps를 지원하는 제품입니다. 하지만, Pico-LAN8720 시험 환경 구성이 RMII 모듈 레퍼런스 클럭인 50 MHz를 사용하고 있고 lwIP 스택이 NO_SYS로 컴파일되어 Netcon API, Socket API를 사용하지 않고 있습니다. 그래서 link speed를 10 Mbps로 설정하여 테스트했습니다.

     

    Hardware 구성

    이번 테스트는 Raspberry Pi Pico, Micro USB Cable, Ethernet Cable, PC, 공유기를 사용했습니다.
    WIZnet Ethernet HAT은 Pico위에 바로 올려 사용하였고, LAN8720은 female to female 점퍼선을 사용해 Pico와 연결하였습니다. 자세한 핀맵은 아래 사진을 참조해 주세요.

    [Pico-WIZnet Etherent HAT 구성]

     

    [Pico-LAN8720 구성]

     

    아래 사진은 실제로 Pico와 연결된 모습입니다.

     

    이제 하드웨어 구성을 완료했으니 S/W를 빌드해서 loopback 테스트를 해보겠습니다.

     

    Loopback Test

    loopback 테스트 결과에 앞서 Pico-LAN8720 시험 중 난관(?)에 부딪쳤었습니다. 증상은 아래 사진과 같습니다.

    wireshark로 packet을 분석하는 중 Len=536으로 나눠져서 전송되는 현상을 발견하였고, 이 증상을 해결하기 위해 Raspberry Pi Pico SDK에서 제공하는 dma_channel_configure() 함수 인자인 transfer_count 값을 1500 -> 1518로 수정하였고, MTU size를 1500 -> 1400으로 수정하였습니다.

    그 결과, 아래 사진과 같이 Len=1360으로 변경되었습니다.

     

    이제 결과를 보여드리겠습니다. 500 Kbyte loopback  file size로 loopback 테스트한 결과입니다. 두 제품 모두 10회 측정하였습니다.

     

    마치며

    WIZnet Ethernet HAT 평균 약 2.4 Mbps / LAN8720 평균 약 0.32 Mbps로 WIZnet Ethernet HAT을 사용했을 시 약 7.5배 이상 빠르다는 걸 확인했습니다.
    다음에는 AX2 프로그램이 아닌 iperf를 이용해서 loopback 테스트한 글을 올리도록 하겠습니다. 감사합니다.

Designed by Tistory.