페이지

글목록

2017년 2월 12일 일요일

[ESP8266] WiFi FTP Server with SD-Card[5] (속도 개선)

esp8266 FTP 서버의 전송 속도를 개선하는 방법을 여러가지 찾아보고 적용해 봤습니다.

전송 속도에 관련된 사항은 다음과 같습니다. 
1. WIFI FTP BUFFER 의 크기 : ESP8266FtpServer.h 파일에 FTP_BUF_SIZE 로 정의가 되어 있는데,
   크기가 기본으로 1024 // 512 로 설정되어 있는데 이 설정으로는 너무 느리다.
   512 로 9KB/s , 1024로 18KB/s 밖에 안나온다.
   하지만 이 크기를 1460 의 배수인 1460*2 로 바꾸면 460KB/s 의 속도가 나온다. 
   이 속도는 SD-Card에서 읽어서 PC로 전송하는 속도이고, SPI Single 방식의 SD-Card Write 시에는 약 86KB/s 가 나온다.
   즉, SD 카드를 읽는 데는 엄청 빠른데, 쓸 때는 SPI Single 에다가 Write 할 동안 기다려야 하므로 아주 느리다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <SPI.h>
#include <SD.h>
//#include <FS.h>
#include <WiFiClient.h>
#define FTP_SERVER_VERSION "FTP-2016-01-14"
#define FTP_CTRL_PORT    21       // Command port on wich server is listening  
#define FTP_DATA_PORT_PASV 50009  // Data port in passive mode
#define FTP_TIME_OUT  5      // Disconnect client after 5 minutes of inactivity
#define FTP_CMD_SIZE 255 + 8 // max size of a command
#define FTP_CWD_SIZE 255 + 8 // max size of a directory name
#define FTP_FIL_SIZE 255     // max size of a file name
//#define FTP_BUF_SIZE 1024 //512   // size of file buffer for read/write
#define FTP_BUF_SIZE 2*1460
cs

2. CPU Clock 속도 Up : 80MHz 에서 160MHz 로 올리면 조금 더 빨라진다. 
3. SPI CLK 속도 UP : 현재 24MHz 까지 올렸는데 50MHz 까지 올려 볼 예정이다.
  이 과정은 선 길이에 영향을 많이 받기 때문에, PCB가 나와봐야 알 수 있을 것이다.


버퍼 크기는 1460 배수가 아니면 속도 차가 읽기 모드에서 최대 51배나 차이가 납니다.
쓰실 때, 꼭 알아두세요. ^^

다음은 FTP 서버에서 PC로 전송시 속도를 동영상으로 찍어 봤습니다.


댓글 없음:

댓글 쓰기