Dispositivi di polling e controllo

2

Sono nelle prime fasi della pianificazione di un dispositivo di input che consisterà in un numero di controlli fisici numerici ancora da determinare. Dall'esperienza precedente con tali dispositivi ho scoperto che sarebbe estremamente vantaggioso avere il dispositivo restituire dati sullo stato di tutti i controlli in risposta a una query dal sistema, invece di riportare le modifiche man mano che si verificano.

Supponendo una frequenza di interrogazione accettabile di 1000 query al secondo o superiore, l'hardware incorporato è sufficientemente avanzato per supportare questo? Un driver per tale dispositivo sarebbe eccessivamente dispendioso in termini di risorse? Quale sarebbe una stima stimata per la RAM / CPU richiesta sia sul "server" che sul "client"?

    
posta jamesson 18.02.2013 - 02:08
fonte

1 risposta

1

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:

  1. 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.
  2. 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.

    
risposta data 14.03.2013 - 03:31
fonte

Leggi altre domande sui tag