Questo si riduce a una questione di larghezza di banda e latenza. Per un sistema semplice ipotizziamo una sonda con larghezza di banda di 100 MHz con frequenza di campionamento di 1GS / s e un convertitore A / D a 10 bit (ho avuto brutte esperienze con oscilloscopi a 8 bit).
Voglio una visualizzazione in tempo reale sul PC con una finestra di campionamento minima di diciamo 10 ns - 1 ciclo di un'onda sinusoidale da 100 MHz e una finestra massima di (sarò generoso con te in questo) mezzo secondo. In altre parole, l'impostazione del tempo più basso sarà qualcosa come 1 ns / div e il massimo è 0,05 s / div. Voglio anche diverse modalità di tensione: range da 100 mV a 20 V, diciamo.
Che tipo di velocità dei dati comporta questo?
1Gs / s * 10 bit / campione = 10Gbit / s
Quelle non sono velocità USB. Lontano da esso. E non ho nemmeno preso in considerazione le spese generali. Prima di tutto, non hai la larghezza di banda. E non è nemmeno solo larghezza di banda. Per la visualizzazione in tempo reale è necessario essere coerenti. È necessario trasferire 100 bit nel layer dell'applicazione ogni 10 nano secondi. Questo tipo di coerenza non può essere ottenuto da USB. Non è progettato per soddisfare un dispositivo con esigenze stravaganti: è progettato come un bus. E non puoi controllare quando possiedi il bus: i dispositivi sono solo schiavi. Se l'host consente a un altro dispositivo di comunicare quando è necessario inviare i dati, questi verranno persi.
Potresti piangere male - perché trasferire i dati in tempo reale sul computer quando "in tempo reale" per una persona è di 60Hz? Se tutto ciò che devi fare è aggiornare il display, sicuramente non avrai bisogno di così tanti dati. Tranne te, il tuo display è una combinazione lineare di tutti i campioni che hai raccolto. Interpolazione spline cubica approssimata mediamente quadrata approssimata al minimo, non importa. Per creare un bel display carino che non sia solo un mucchio di punti, devi avere la maggior parte di tutti quei dati e devi postarli. Qualche innesco? I calcoli devono essere eseguiti sull'host - a livello di applicazione. Indipendentemente dal modo in cui lo tagli, per visualizzazioni in tempo reale a velocità di 1GS / s per qualsiasi precisione degna di nota, devi trasferire ordini di grandezza più dati di quelli che USB è in grado di gestire e devi farlo in modo più affidabile di te '
Quali sono i modi per aggirare questo? Non eseguire una visualizzazione in tempo reale. Alcuni ambiti USB offrono solo modalità attivate. Il trigger viene gestito sul dispositivo e quando viene rilevato un trigger, i dati vengono raccolti in un buffer. Quando il buffer si riempie, l'oscilloscopio USB lo trasferisce lentamente all'applicazione e quindi l'applicazione lo visualizza. Questo è sufficiente per l'uso dell'ambito di applicazione, ma non è in tempo reale. E il trasferimento richiede anche un po 'di tempo. È scomodo. E di solito i driver fanno schifo. Puoi dire che ho avuto brutte esperienze.
Mi sono sempre chiesto perché Firewire non fosse usato per gli scopi. Evita alcuni dei mal di testa dell'USB. È peer-to-peer, offre modalità isocrone (timing coerente) ed è una larghezza di banda relativamente elevata. Potresti essere in grado di realizzare un ambito in tempo reale da 10 MHz o giù di lì.
Per indirizzare i tuoi punti dopo la modifica:
L'usabilità di un ambito aumenta enormemente con il prezzo. Quando si passa da un ambito USB da $ 200 a un $ 500 autonomo, si ottengono enormi aumenti delle caratteristiche e delle funzionalità di base. Perché spendere solo $ 200 quando per un po 'di più puoi ottenere un ambito reale? Ora che la Cina ha aperto le porte di obiettivi economici ed efficaci, ci sono poche ragioni per voler risparmiare $ 300 che ti frustreranno in seguito. Gli ambiti "fantasiosi" che hanno queste caratteristiche sono al giorno d'oggi economici.
Sì, limitare il trasferimento dei dati in modo da fornire solo dati coerenti con una frequenza di circa 60Hz sarà più facile con USB, ma non è ancora qualcosa che si desidera fare. Non dimenticare le tue classi DSP: solo prendere determinati dati dallo stream equivale alla decimazione. Quando decimali, devi aggiungere filtri antialiasing. Quando lo fai, perdi la larghezza di banda. Questo rende il tuo ambito meno utile - limiterà la larghezza di banda sul display in tempo reale (e solo per il tempo reale - le modalità attivate andrebbero bene) a molto meno della larghezza di banda del tuo front-end analogico. Gestire gli aspetti di elaborazione del segnale di un oscilloscopio è un affare complicato.
Chiaro display reattivo? Il PC? Non costantemente. Indipendentemente da come lo fai, devi bufferizzare i dati. Come ho detto prima, l'USB non garantisce il trasferimento dei dati. Lo dirò in modo diverso: USB non è progettato per adattarsi al trasferimento di dati in tempo reale. Certo, per quantità sufficientemente piccole di dati a grandi intervalli potresti ottenere delle buone prestazioni, ma prestazioni non coerenti. Utilizzerai il buffering e di tanto in tanto perderai il trasferimento del buffer in modo tempestivo. Quindi il display salta, i dati sono obsoleti, ecc. Ecc. I display chiari e reattivi in tempo reale richiedono collegamenti dati in tempo reale, punto.
Trigger semplice: di nuovo, torniamo ai costi vs. complessità vs. reattività. Per eseguire il trigger sul dispositivo per rilevare i transitori, il tuo dispositivo non può essere solo una stupida pipa di dati che trasferisce i campioni irresponsabilmente su USB. Devi buffer, buffer, buffer campioni sul dispositivofino a quando non vedi la tua condizione di innesco. Ciò significa che hai bisogno di memoria e intelligenza sul tuo dispositivo: un grande FPGA o un grande microcontrollore. Questo aggiunge dimensioni e spazio. Se si utilizza un FPGA, è necessario bilanciare la quantità di logica di trigger con la necessità di molta RAM per lo spazio del buffer. Quindi il tuo buffer è più piccolo di quanto vorresti che fosse già. Ciò significa che ottieni una minuscola quantità di dati attorno al punto di attivazione. Se non aggiungi memoria esterna, puoi fare di più. Ciò aumenta le dimensioni e il costo del tuo dispositivo, ma sicuramente non sarà solo una sonda con un cavo USB collegato.
Saresti fortunato ad ottenere una larghezza di banda di 100 MHz - di solito 10 volte la frequenza di campionamento è considerata il limite minimo per la larghezza di banda. Quindi, se hai una frequenza di campionamento di 1GS / s che a malapena ti offre una larghezza di banda di 100 MHz. Non puoi ottenere di più: un'onda quadra a 200 MHz sembrerà un'onda sinusoidale a 200 MHz. Che schifo È stupido - non è affatto vicino al livello professionale.
L'altra serie di punti:
- $ 200? Come immagini? Qual è l'elenco delle parti?
- Una buona portata per leggere segnali ad alta velocità non costa migliaia di dollari. Costano forse mille dollari. 100MHz è un gioco da ragazzi nel dipartimento dell'ambito e la tua idea non soddisferà nemmeno quel benchmark e un ambito di $ 1000
- Sì, dal modo in cui lo descrivi sarebbe davvero molto limitato. Gli aspetti tecnici anche dei pochi requisiti che hai significano un dispositivo molto limitato.
- Non sarebbe utile quanto l'ambito $ 1100 che ho comprato con un analizzatore logico e una larghezza di banda analogica a 60 MHz. Preferirei pagare per le mie apparecchiature di prova che vanno in giro con giocattoli per bambini intenzionalmente limitati.
Vivi e muori dalla tua attrezzatura di prova come ingegnere. Se non sei sicuro di poterti fidare, stai perdendo tempo. Data la mancanza di esperienza che hai dimostrato sulla comunicazione ad alta velocità, l'elaborazione del segnale e la potenza dell'elaborazione integrata (in FPGA o microcontrollori), non scommetterei che sei pronto a progettarlo tu stesso e nessun altro a cui viene data risposta è qualcosa altro che ambivalente.
Se ci fosse una serie di requisiti più mirati che rispondessero a un reale bisogno nella comunità che non veniva servito, che avrei potuto essere tecnicamente fattibile sarei stato a bordo. Ma i tuoi vaghi requisiti non sembrano ricercati. Devi fare un sondaggio sulle opzioni disponibili là fuori per gli appassionati - quali ambiti USB e standalones sono le persone che usano, quali sono i loro punti di forza e di debolezza e determinare se non vengono riempite alcune nicchie. Altrimenti questo è solo fantastico.