OB-DAQ Modulo 8-ingressi analogici 16-bit Protocollo di comunicazione REV.1 8-02-2002 WWW.QFP.IT |
OB-DAQ è un modulo di acquisizione dati ad 8 canali che può essere utilizzato per monitorare segnali analogici provenienti da sensori, termocoppie, misuratori di pressione, sensori di temperatura al platino (PT100), sensori industriali 4-20mA ecc.
Il dispositivo comunica con il PC, attraverso un'interfaccia seriale RS232 o attraverso un cavo a quattro conduttori (RS485 + alimentazione). Le impostazioni per la comunicazione seriale sono: 9600 bps, nessuna parità, 8 bit dati, 1 stop bit.
La comunicazione è di tipo half-duplex, se la comunicazione è di tipo RS232, durante la trasmissione dal PC al dispositivo, l'interfaccia restituisce l'eco dei caratteri inviati.
Il dispositivo accetta comandi costituiti da una stringa di byte avente il seguente formato:
START | NBYTE | FADDRL | FADDRH | CMD | DATA 1 ... DATA N | CECKSUM |
Il significato dei byte è il seguente:
START | 1 Byte | Inizio pacchetto sempre 0x00 |
NBYTE | 1 Byte | Numero di byte da FADDR a DATA N compreso |
FADDRL | 1 Byte | Indirizzo fisico del dispositivo byte meno significativo (LSB) |
FADDRH | 1 Byte | Indirizzo fisico del dispositivo byte più significativo (MSB) |
CMD | 1 Byte | Comando da inviare al dispositivo |
DATA1 ... DATA N | N Byte | N byte di dati per il dispositivo, la lunghezza di questo campo dipende dal comando. |
CECKSUM | 1 Byte | Somma modulo 256 dei byte da NBYTE a DATAN compreso |
Il dispositivo risponde entro massimo 3ms con una stringa di dati nel seguente formato:
START | NBYTE | FADDRL | FADDRH | ACK | DATA 1 ... DATA N | CECKSUM |
Il significato dei byte è il seguente:
START | 1 Byte | Inizio pacchetto sempre 0x00 |
NBYTE | 1 Byte | Numero di byte da FADDR a DATA N compreso |
FADDRL | 1 Byte | Indirizzo fisico del dispositivo byte meno significativo (LSB) |
FADDRH | 1 Byte | Indirizzo fisico del dispositivo byte più significativo (MSB) |
ACK | 1 Byte | Risposta al comando ricevuto: 254 = Comando accettato, 253 = Comando rifiutato |
DATA | N Byte | N byte di dati di risposta al comando, la lunghezza di questo campo dipende dal comando. |
CECKSUM | 1 Byte | Somma dei byte da NBYTE a DATAN compreso |
NOTA: L'indirizzo fisico del dispositivo è riportato nell'etichetta applicata sul microcontrollore della scheda di I/O ed è in formato esadecimale.
READ
Legge gli ingressi analogici
START | NBYTE | FADDRL | FADDRH | CMDREAD | ENABLEMASK | CECKSUM |
CMDREAD = 0x05
Ad ogni bit di ENABLEMASK è associato un canale di ingresso, se il bit è 1 il canale viene letto, se il bit è 0 il canale viene escluso.
es. ENABLEMASK=0xFF legge tutti i canali, ENABLEMASK=0x0F legge solo i canali 1,2,3,4.
Risposta del dispositivo:
START | NBYTE | FADDRL | FADDRH | ACK | CH1H,CH1L,CH2H,CH2L,CH3H,...CH8H,CH8L | CECKSUM |
CH1H, CH1L sono rispettivamente il byte più significativo e il byte meno significativo del valore letto sul canale 1, questi byte sono presenti solo se il bit 0 di ENABLEMASK è settato a 1.
In generale, CHnH e CHnL con n che va da 1 a 8, rappresentano la lettura sul canale n. Questi byte sono presenti se il bit n-1 del byte ENABLEMASK è settato a 1.
Per ogni canale il valore in uscita dal convertitore A/D è dato da:
CHn = CHnH * 256 + CHnL
Il valore di CHn è espresso su 16 bit in unità del convertitore analogico/digitale. Il valore di tensione corrispondente dipende dai parametri di configurazione che si sono scelti in fase di configurazione delle scheda (guadagno, segnale monopolare/bipolare). Per ottenere il valore di tensione occorre usare le seguenti formule.
Se si è scelta la modalità bipolare:
Vn = (CHn - 32768) * Vref / 32767 /InputGain
Per la modalità monopolare:
Vn = CHn * Vref / 65535 / InputGain
Dove Vref =2.5 volt e InputGain può essere 1, 2, 32 o 128
Per maggiori informazioni si rimanda alla documentazione DAQCTL Controllo ActiveX per schede OB-DAQ
WRITE CONFIGURATION
Imposta i parametri di configurazione per i canali analogici.
START | NBYTE | FADDRL | FADDRH | CMDAWRSTAT | STATUSREG1, ... STATUSREG8, 0, 0, 0, 0 | CECKSUM |
CMDAWRSTAT = 0x03
Risposta del dispositivo:
START | NBYTE | FADDRL | FADDRH | ACK | CECKSUM |
Ogni byte STATUSREGn con n compreso tra 1 e 8 rappresenta la configurazione del canale di ingresso n.
Il significato dei bit di STATUSREGn è il seguente:
Bit 7 (msb) | Bit 6 | Bit 5 | Bit 4 | Bit 3 | Bit 2 | Bit 1 | Bit 0 (lsb) |
G1 | G0 | 1 | FS1 | FS0 | BU | BUF | 0 |
Il range di misura del canale dipende dai bit G0,G1 e BU secondo la seguente tabella:
G1 | G0 | BU | Range di misura | Risoluzione |
0 | 0 | 0 | -2.5V..+2.5V | 76uV |
0 | 1 | 0 | -1.25V..+1.25V | 38uV |
1 | 0 | 0 | -75mV .. +75mV | 2.4uV |
1 | 1 | 0 | - 20mV .. +20mV | 0.6uV |
0 | 0 | 1 | 0 ..+2.5V | 38uV |
0 | 1 | 1 | 0 ..+1.25V | 19uV |
1 | 0 | 1 | 0 .. +75mV | 1.2uV |
1 | 1 | 1 | 0 .. +20mV | 0.3uV |
Il convertitore analogico / digitale è dotato di un filtro numerico passa - basso programmabile.
I bit FS0,FS1 permettono di impostare i parametri del filtro in base alla seguente tabella.
FS1 | FS0 | Frequenza |
0 |
0 |
50Hz |
0 |
1 |
60Hz |
1 |
0 |
250Hz |
1 |
1 |
500Hz |
La risposta in frequenza del filtro è del tipo (Sin(x)/x)^3, il valore della proprietà rappresenta la frequenza in Hz del primo notch del filtro (primo punto in cui la risposta in frequenza si azzera). L'impostazione di questa proprietà, oltre che a determinare la frequenza di taglio del filtro, influisce sulla velocità di acquisizione del singolo canale e sul rumore in ingresso al convertitore a/d.
First notch frequency | -3dB frequency | Acquisition time for single channel* | Peak to Peak Noise (% of FSR) |
50Hz | 13.1Hz | 180ms | 0.0015% |
60Hz | 15.7Hz | 150ms | 0.003% |
250Hz | 65.5Hz | 36ms | 0.012% |
500Hz | 131Hz | 18ms | 0.19% |
* gli 8 canali vengono acquisiti in sequenza, uno dopo l'altro, pertanto, il periodo di aggiornamento del singolo canale è dato dalla somma dei tempi di acquisizione di ognuno degli 8 canali.
Il convertitore analogico / digitale è dotato di un buffer di ingresso ad elevata impedenza.
Il bit BUF consente di abilitare o disabilitare tale buffer.
Quando il buffer è disabilitato, la tensione di modo comune che può essere applicata ad un ingresso deve essere compresa tra 0V e + 5V, mentre quando il buffer è abilitato il range ammesso è +50mV ... +3.5V, in questo caso, l'impedenza di ingresso è elevatissima (DC Input current <1nA).
I bit 0 e 5 sono riservati e devono essere sempre impostati rispettivamente a 0 e a 1.
READ CONFIGURATION
Legge i parametri di configurazione per i canali analogici
START | NBYTE | FADDRL | FADDRH | CMDARDSTAT | CECKSUM |
CMDARDSTAT = 0x04
Risposta del dispositivo:
START | NBYTE | FADDRL | FADDRH | ACK | STATUSREG1, ... STATUSREG8, NC0, NC1, NC2, NC3 | CECKSUM |
Ogni byte STATUSREGn con n compreso tra 1 e 8 rappresenta la configurazione del canale di ingresso n.
Il significato dei bit di STATUSREGn è analogo a quanto descritto nel comando WRITE CONFIGURATION.
I byte NC0-NC3 sono riservati.
SAVE CONFIGURATION
Salva i parametri di configurazione per i canali analogici nella memoria non volatile del dispositivo
START | NBYTE | FADDRL | FADDRH | CMDAWREP | 0xA0 | 0x00 | 0x08 | STATUSREG1, ... STATUSREG8 | CECKSUM |
CMDAWREP = 0x01
Risposta del dispositivo:
START | NBYTE | FADDRL | FADDRH | ACK | CECKSUM |
Ogni byte STATUSREGn con n compreso tra 1 e 8 rappresenta la configurazione del canale di ingresso n.
Il significato dei bit di STATUSREGn è analogo a quanto descritto nel comando WRITE CONFIGURATION.
I parametri salvati saranno applicati solo dopo lo spegnimento e la riaccensione della scheda.
Il protocollo è di tipo master-slave, ogni scheda è dotata di un proprio indirizzo fisico diverso da tutte le altre. Per comunicare con la scheda, il master (es. PC), deve conoscere questo indirizzo.
Tipicamente, quando vengono inserite delle nuove schede in un impianto, è necessaria una fase di "arruolamento" in cui il mater acquisisce l'indirizzo fisico di tutti gli slave.
Questo processo può avvenire manualmente, inserendo gli indirizzi delle schede in una tabella sul master, oppure automaticamente, sfruttando le caratteristiche del protocollo di comunicazione OmniBus.
In fase di configurazione, l'indirizzo fisico che è riportato sull'etichetta posta sul microcontrollore, deve essere inserito manualmente in una memoria non volatile del master.
In fase di configurazione, il master è messo un una modalità in cui è in ascolto sul bus.
Ogni slave è dotato di un pulsante di configurazione. Alla pressione di questo pulsante, la scheda prende il controllo del bus ed invia una richiesta di attenzione al master:
START | NBYTE | FADDRL | FADDRH | CMDATN | CECKSUM |
Il master può usare questa richiesta per registrare l'indirizzo fisico della scheda in una tabella.
Il processo è ripetuto per ogni scheda nell'impianto. Una volta completata la procedura il master viene riportato nella condizione di normale funzionamento.
Il master esegue una richiesta di tipo broadcast a tutte le schede collegate, la scheda che risponde prima delle altre prende il controllo del bus ed invia al master un descrittore del dispositivo. A questo punto il master può decidere di arruolare la scheda inviando un opportuno comando di arruolamento. Il processo continua fino a quando il master ha gli indirizzi fisici di tutti i dispositivi. Per maggiori dettagli si rimanda al supporto tecnico support@qfpeng.com