본문 바로가기

TCP속도

(30)
Raspberry Pi Pico RP2040 - Arduino IDE에서 Iperf로 W5500의 TCP Throughput 측정 테스트 Raspberry Pi Pico 확장 테스트 보드를 이용하여 W5500 모듈의 TCP IP전송률 테스트를 iperf로 진행 해 보자. 확장 테스트보드의 SSM Type EVM 연결 커넥터에 W5500 CS핀이 GP12에 할당 되어 있다. Arduino 에서 iperf 를 이용하여 한 네트웍 전송율 테스트를 하기 위해 TCP Server를 구현 하면 된다. #include #include #define USE_THIS_SS_PIN 12 byte mac[] = {0x00, 0x08, 0xDC, 0x00, 0x00, 0x00}; EthernetServer server(5001); void setup() { Serial.begin(115200); while (!Serial) { ; // wait for seri..
[STM32F-Tx SSM] STM32F103T - Iperf로 W5500의 TCP Throughput 측정 테스트 STM32F103 시리즈를 이용하여 W5500 Ethernet 모듈의 TCP Throughput 을 측정해 보자. STM32F103의 SPI클럭 최대 주파수는 18Mhz 이다. 18Mhz SPI 클럭에서 3.5Mbps정도로 측정된다. STM32F103의 SPI DMA를 사용하면 8Mbps 정도로 측정이 된다. W5500의 버퍼를 최대한 키워보자. W5500의 FIFO 메모리를 최대로 키우고 SPI DMA를 사용하여 STM32F103에서 W5500 iperf TCP 전송율 테스트 결과 14Mbps로 측정이 된다.
[STM32G4 SM] STM32CubeIDE STM32G431 - Iperf로 W5500의 TCP Throughput 측정 테스트 STM32G431은 170Mhz로 구동이 되고 SPI는 80Mhz(최대 보장75Mhz) 까지 설정 가능하므로 SPI로 구동되는 W5500모듈의 전송율을 테스트 해 보기에 좋을것 같다. 네트웍 전송율 테스트를 위해 PC에서는 iperf 프로그램을 사용하고 STM32에서는 W5500 TCP loopback 테스트 코를 조금 수정해 iperf 클라이언트 코드로 작성했다. int32_t iperf_tcps(uint8_t sn, uint8_t* buf, uint16_t port) { int32_t ret; uint16_t size = 0, sentsize=0; switch(getSn_SR(sn)) { case SOCK_ESTABLISHED : if(getSn_IR(sn) & Sn_IR_CON) { setSn_IR..
[STM32-64 Ardu] STM32F732 W5500 iperf 네트웍 전송율 테스트 STM32F732 Arduino SPI 속도 테스트에서 설정한 최대 SPI 클럭값으로 W5500의 네트웍 전송율을 테스트 해 보자. [STM32-64 Ardu] 보드에서 W5500 EVM 모듈을 연결 할 수 있는 SSM 커넥터의 CS 핀는 PB0에 할당되어 있다. 우선 W5500 Arduino 라이브러리 파일에서 클럭 속도를 최대치로 설정 한다. \Arduino\libraries\Ethernet2\src\utility\w5500.cpp //SPISettings wiznet_SPI_settings(8000000, MSBFIRST, SPI_MODE0); SPISettings wiznet_SPI_settings(54000000, MSBFIRST, SPI_MODE0); 소스코드는 [STM32-64 Ardu] S..
[STM32-48 SSM] Arduino IDE에서 W5500 iperf 전송률 테스트 STM32F103 Aruino TCP 예제를 이용하여 iperf로 W5500의 네트웍 전송율 테스트를 해 보자 #include #include #define USE_THIS_SS_PIN PB0 byte mac[] = { 0x00, 0x08, 0xDC, 0x00, 0x00, 0x00 }; EthernetServer server(5001); void setup() { Serial.begin(115200); Serial.print("Iperf server address : "); Ethernet.w5500_cspin = USE_THIS_SS_PIN; // initialize the ethernet device Ethernet.begin(mac); // start listening for clients serv..
W5300 을 이용한 UDP loopback 전송률 테스트 W5300을 이용한 Wiznet ioLibrary Driver 포팅 및 TCP Loopback 전송률 테스트 결과 코드를 활용하여 UDP통신에서 전송률 테스트를 해 보았다. Wiznet ioLibrary Driver 코드에서 제공하는 loopback_udps 함수를 이용하여 UDP 테스트 코드를 작성 했다. int32_t loopback_udps(uint8_t sn, uint8_t* buf, uint16_t port) { int32_t ret; uint16_t size, sentsize; uint8_t destip[4]; uint16_t destport; switch(getSn_SR(sn)) { case SOCK_UDP : if((size = getSn_RX_RSR(sn)) > 0) { if(size >..
W5300 을 이용한 네트워크 카메라 구현 2/3 - TCP 전송률 테스트 Wiznet ioLibrary Driver 포팅 및 TCP Loopback 전송률 테스트 Wiznet ioLibrary Driver 포팅 W5300을 제어 하기 위해 가장 기본적으로 해야 할 일이 W5300의 레지스터에 원하는 값을 쓰고 읽어 보는 것이다. 레지스터의 값을 쓰고 읽는 함수는 Wiznet ioLibrary Driver에 포함되어 있고 보드에 맞도록 포팅해 주어야 한다. W5300 loopback 테스트 소스코드는 https://github.com/elabsystem/STM32_RP/tree/master/ex10_w5300_loopback 에서 확인 가능하다. W5300 테스트를 위한 [STM32F4-RP] 보드의 기본 개발환경 설정이 완료 되었다면 다운로드 받은 ioLibrary의 Ethe..
STM32G0 SSM - STM32CubeIDE에서 Iperf로 W5500의 TCP Throughput 측정 테스트 STM32G0에서 SPI 클럭의 최대 속도는 32Mhz로 STM32F1의 SPI 클럭속도(18Mhz)보다 빨라 졌다. W5500 SPI 전송율 테스트를 해 보면 STM32G0의 SPI성능을 테스트 해 볼수 있을것 같다. 우선 STM32CubeIDE에서 SPI 설정을 하자. 네트웍 전송율 테스트를 위해 PC에서는 iperf 프로그램을 사용하고 STM32에서는 W5500 TCP loopback 테스트 코를 조금 수정해 iperf 클라이언트 코드로 작성했다. int32_t iperf_tcps(uint8_t sn, uint8_t* buf, uint16_t port) { int32_t ret; uint16_t size = 0, sentsize=0; switch(getSn_SR(sn)) { case SOCK_EST..

반응형