Assuming an acceptable poll frequency of 1000 queries per second or
higher, is the embedded hardware sufficiently advanced to support
this?
La risposta breve è sì :-). A 1000 query / secondo, hai 1 millisecondo per ricevere, gestire e rispondere a ogni query. Ci sono diversi fattori da considerare. Due dei più importanti sono:
- Ho abbastanza istruzioni di elaborazione per ricevere, gestire e rispondere alla query. Ciò include la lettura della query, l'analisi della query, la lettura dei dati dai registri hardware, la formattazione dei dati per l'output, l'invio di dati e l'overhead associato alla gestione dell'interrupt.
- Il canale I / O utilizzato ha la larghezza di banda per trasportare i dati?
Puoi ottenere processori ARM dual core a prezzi ragionevoli schede di sviluppo in esecuzione nella gamma GHz, che ti dà un milione di istruzioni ogni millesimo di secondo. Con un'interfaccia USB 2.0, puoi trasferire fino a 480K bit (15000 parole a 32 bit) nello stesso periodo di tempo.
Would a driver for such a device be excessively resource-intensive?
No. Supponendo che un processore multi-core funzioni > 1 GHz, se l'interrupt che gestisce il sovraccarico e l'elaborazione è di 20K istruzioni, stai utilizzando ~ 1% della CPU per gestire i tuoi interrupt.
What would a good ballpark estimate for the ram/cpu required on both
the "server" and "client"?
I requisiti della RAM dipendono dalla quantità di cache richiesta dall'applicazione. Sul dispositivo incorporato, è possibile ridimensionare la RAM per gestire tre buffer, uno per leggere le informazioni dai controlli fisici, uno per contenere i dati mentre viene formattato per l'output e un altro buffer per l'output stesso. Ogni buffer viene dimensionato in base al numero di bit di informazioni per dispositivo.