Velocità lettura sd eth shield

DanielaES:
Mi chiedevo, qual'è la velocità di lettura dalla sd card sulla ethernet shield ufficiale?
Utilizzo la eth shield come web server e per l'sd log ed ho notato che un file di log da 64k viene giù a 5k al secondo. Un po' lentino. E' normale?

Il collo di bottiglia è Arduino, più di tanto non può fare, la lettura della SD e la gestione della ETH avvengono entrambe attraverso la SPI che deve essere condivisa tra questi due device.
Prima Arduino legge la SD 512 byte per volta, un blocco dati, e deve fare vari accessi solo per leggere la fat, poi deve accedere al file vero e proprio per poterlo inviare, sempre 512 byte per volta, ogni blocco dati va inviato alla ETH che a sua volta deve inviarlo in rete con tutte le latenze del caso.
Alla fine anche se Arduino può dialogare con la ETH e la SD a circa 250 kBs reali, da non confondersi con la velocità massima della SPI, per via delle varie operazioni intermedie e le latenze della rete ecco che difficilmente vai oltre i 5/10 kBs come transfer rate reale sul network.