Domanda
Sto ricevendo i valori I e Q tramite controllo remoto. Come vengono inseriti i valori I e Q nel flusso di dati?
Sto ricevendo i valori I e Q tramite controllo remoto. Come vengono inseriti i valori I e Q nel flusso di dati?
Leggere da remoto i dati I/Q dall'R&S FSV
La descrizione spiega i formati della lettura dei dati I/Q in modalità binaria. L'ordine delle informazioni I e Q nel flusso di byte binario è specificato dal formato di trasferimento. Sono stati specificati tre diversi formati di trasferimento.
Il comando remoto per specificare il formato di trasferimento è
TRACe<n>:IQ:DATA:FORMat <Format>
Questi tre formati di trasferimento sono denominati come segue:
COMPatible -> 512k campioni di dati I, 512k campioni di dati Q, 512k dati I ......
IQBLock -> blocco di dati I, blocco di dati Q
IQPair -> campione di dati I, campione di dati Q, campione di dati I, campione di dati Q, dati I ......
Il disegno contiene dei campioni (non byte). Quattro byte contengono il contenuto di un campione.
Nel caso dei blocchi di dati, i 512k campioni di dati I sono: 512k campioni = 512 * 1024 = 524288 campioni
Nel caso dei blocchi di dati, i 512k campioni di dati Q sono: 512k campioni = 512 * 1024 = 524288 campioni
Ci sono due modi diversi per avviare un trasferimento di dati: ottenere tutti i dati contemporaneamente e ottenere i dati in piccole quantità.
Ottenere tutti i dati contemporaneamente: TRACe<n>:IQ:DATA?
Ottenere tutti i dati in piccole quantità: TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
Il numero totale di byte di dati trasferiti tramite l'interfaccia è il seguente:
L = H + s * b * i
L -> numero totale di byte di dati trasferiti
H -> lunghezza delle informazioni dell'intestazione (vedere specifiche dell'intestazione alla fine di questa nota)
s -> numero di campioni
b -> sempre 4 perché quattro byte contengono il contenuto di un campione
i -> sempre 2 perché un campione campiona i dati I e i dati Q
Esempi:
===================================================================================================
Formato di trasferimento: COMPatible
Numero di campioni misurati: 10
Numero di byte da trasferire: 10 campioni * 4 * 2 + intestazione = 80 byte + intestazione
------------------------------------------------------------------------------------------------------------
Utilizzando TRACe<n>:IQ:DATA?
Il flusso di dati contiene: Intestazione
Dati I da 40 byte
Dati Q da 40 byte
------------------------------------------------------------------------------------------------------------
Utilizzando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
Il flusso di dati contiene: Intestazione
Dati I da 12 byte
Dati Q da 12 byte
TRACe<n>:IQ:DATA:MEMory? 3, 3
Il flusso di dati contiene: Intestazione
Dati I da 12 byte
Dati Q da 12 byte
TRACe<n>:IQ:DATA:MEMory? 6, 3
Il flusso di dati contiene: Intestazione
Dati I da 12 byte
Dati Q da 12 byte
TRACe<n>:IQ:DATA:MEMory? 9, 1
Il flusso di dati contiene: Intestazione
Dati I da 4 byte
Dati Q da 4 byte
==============================================================
==============================================================
Formato di trasferimento: COMPatible
Numero di campioni misurati: 700000
Numero di byte da trasferire: 700000 campioni * 4 * 2 + intestazione = 5600000 byte + intestazione
------------------------------------------------------------------------------------------------------------
Utilizzando TRACe<n>:IQ:DATA?
Il flusso di dati contiene: Intestazione
Dati I da 2097152 byte
Dati Q da 2097152 byte
Dati I da 702848 byte
Dati Q da 702848 byte
------------------------------------------------------------------------------------------------------------
Utilizzando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
Il flusso di dati contiene: Intestazione
Dati I da 20000 byte
Dati Q da 20000 byte
TRACe<n>:IQ:DATA:MEMory? 5000, 600000
Il flusso di dati contiene: Intestazione
Dati I da 2097152 byte
Dati Q da 2097152 byte
Dati I da 302848 byte
Dati Q da 302848 byte
TRACe<n>:IQ:DATA:MEMory? 605000, 95000
Il flusso di dati contiene: Intestazione
Dati I da 380000 byte
Dati Q da 380000 byte
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Formato di trasferimento: IQBLock
Numero di campioni misurati: 10
Numero di byte da trasferire: 10 campioni * 4 * 2 + intestazione = 80 byte + intestazione
------------------------------------------------------------------------------------------------------------
Utilizzando TRACe<n>:IQ:DATA?
Il flusso di dati contiene: Intestazione
Dati I da 40 byte
Dati Q da 40 byte
------------------------------------------------------------------------------------------------------------
Utilizzando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
Il flusso di dati contiene: Intestazione
Dati I da 12 byte
Dati Q da 12 byte
TRACe<n>:IQ:DATA:MEMory? 3, 3
Il flusso di dati contiene: Intestazione
Dati I da 12 byte
Dati Q da 12 byte
TRACe<n>:IQ:DATA:MEMory? 6, 3
Il flusso di dati contiene: Intestazione
Dati I da 12 byte
Dati Q da 12 byte
TRACe<n>:IQ:DATA:MEMory? 9, 1
Il flusso di dati contiene: Intestazione
Dati I da 4 byte
Dati Q da 4 byte
==============================================================
==============================================================
Formato di trasferimento: IQBLock
Numero di campioni misurati: 700000
Numero di byte da trasferire: 700000 campioni * 4 * 2 + intestazione = 5600000 byte + intestazione
------------------------------------------------------------------------------------------------------------
Utilizzando TRACe<n>:IQ:DATA?
Il flusso di dati contiene: Intestazione
Dati I da 2800000 byte
Dati Q da 2800000 byte
------------------------------------------------------------------------------------------------------------
Utilizzando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
Il flusso di dati contiene: Intestazione
Dati I da 20000 byte
Dati Q da 20000 byte
TRACe<n>:IQ:DATA:MEMory? 5000, 600000
Il flusso di dati contiene: Intestazione
Dati I da 24000000 byte
Dati Q da 24000000 byte
TRACe<n>:IQ:DATA:MEMory? 605000, 95000
Il flusso di dati contiene: Intestazione
Dati I da 380000 byte
Dati Q da 380000 byte
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Formato di trasferimento: IQPair
Numero di campioni misurati: 10
Numero di byte da trasferire: 10 campioni * 4 * 2 + intestazione = 80 byte + intestazione
------------------------------------------------------------------------------------------------------------
Utilizzando TRACe<n>:IQ:DATA?
Il flusso di dati contiene: Intestazione
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
........
........
Dati I da 4 byte
Dati Q da 4 byte
Nel complesso ci sono dati I da 40 byte e dati Q da 40 byte
------------------------------------------------------------------------------------------------------------
Utilizzando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 3
Il flusso di dati contiene: Intestazione
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
TRACe<n>:IQ:DATA:MEMory? 3, 3
Il flusso di dati contiene: Intestazione
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
TRACe<n>:IQ:DATA:MEMory? 6, 3
Il flusso di dati contiene: Intestazione
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
TRACe<n>:IQ:DATA:MEMory? 9, 1
Il flusso di dati contiene: Intestazione
Dati I da 4 byte
Dati Q da 4 byte
==============================================================
==============================================================
Formato di trasferimento: IQPair
Numero di campioni misurati: 700000
Numero di byte da trasferire: 700000 campioni * 4 * 2 + intestazione = 5600000 byte + intestazione
------------------------------------------------------------------------------------------------------------
Utilizzando TRACe<n>:IQ:DATA?
Il flusso di dati contiene: Intestazione
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
......
......
Dati I da 4 byte
Dati Q da 4 byte
Nel complesso ci sono dati I da 2800000 byte e dati Q da 2800000 byte
------------------------------------------------------------------------------------------------------------
Utilizzando TRACe<n>:IQ:DATA:MEMory? <OffsetSamples>,<NoOfSamples>
TRACe<n>:IQ:DATA:MEMory? 0, 5000
Il flusso di dati contiene: Intestazione
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
......
......
Dati I da 4 byte
Dati Q da 4 byte
Nel complesso ci sono dati I da 20000 byte e dati Q da 20000 byte
TRACe<n>:IQ:DATA:MEMory? 5000, 600000
Il flusso di dati contiene: Intestazione
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
......
......
Dati I da 4 byte
Dati Q da 4 byte
Nel complesso ci sono dati I da 24000000 byte e dati Q da 24000000 byte
TRACe<n>:IQ:DATA:MEMory? 605000, 95000
Il flusso di dati contiene: Intestazione
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
Dati I da 4 byte
Dati Q da 4 byte
......
......
Dati I da 4 byte
Dati Q da 4 byte
Nel complesso ci sono dati I da 380000 byte e dati Q da 380000 byte
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
===================================================================================================
Specifiche dell'intestazione in un flusso di dati binario:
#45168xxxxxxxx
Il carattere ASCII # introduce il blocco di dati. Il numero successivo indica quante delle successive cifre descrivono la lunghezza del blocco di dati. Nell'esempio, le successive 4 cifre indicano una lunghezza di 5168 byte. Seguono i byte dei dati. Durante la trasmissione di questi byte di dati, tutti gli End o gli altri caratteri di controllo vengono ignorati finché tutti i byte non sono trasferiti.
Questo formato supporta solo un conteggio di byte fino a 9 cifre per il numero di byte. Per più di 999999999 byte, viene utilizzato il seguente formato.
#(1100000000) xxxxxxxx
Il conteggio della lunghezza dei byte è inserito tra parentesi. Nell'esempio, il conteggio dei byte indica una lunghezza di 1.100.000.000 byte. I byte dei dati seguono la parentesi di chiusura.