OB-DAQ  Modulo 8-ingressi analogici 16-bit

Protocollo di comunicazione

REV.1 8-02-2002  WWW.QFP.IT 


Introduzione

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.

Formato dei dati

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.

Comandi

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

 

Arruolamento

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.

Arruolamento manuale

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.

Arruolamento semiautomatico

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.

Arruolamento automatico

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