OB-GPD Modulo 24 I/O digitali, 4 ingressi analogici

Protocollo di comunicazione

V1.1 rev.2  1-09-2003  WWW.QFPENG.COM


Introduzione

OB-GPD è un modulo di input/output distribuito che può essere utilizzato per monitorare segnali digitali provenienti da sensori, interruttori, optoisolatori, per controllare led, relè, motori, per effettuare misure di tensione, temperatura ecc.

Il dispositivo è dotato di 3 porte di I/O generiche da 8-bit ognuna (PortA, PortB, PortC). Ogni bit è configurabile singolarmente come ingresso o come uscita digitale. 

I bit 0-3 di PortA possono essere configurati come input analogici (10-bit ADC).

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
DATA 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 10ms 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 modulo 256 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 lo stato degli I/O digitali

START NBYTE FADDRL FADDRH 0x05 CECKSUM

Risposta del dispositivo:

START NBYTE FADDRL FADDRH ACK PortA, PortB, PortC CECKSUM

PortA, PortB, PortC rappresentano lo stato attuale degli I/O.

Ad ogni bit di PortA,PortB,PortC è associato un Pin di I/O sul connettore JP4 della scheda OB-GPD-XXX (Vedi data-sheet). I bit di PortA,PortB,PortC, rappresentano lo stato dei corrispondenti PIN di I/O sulla scheda.

 

WRITE

Modifica lo stato degli IO digitali

START NBYTE FADDRL FADDRH 0x06 OutA, OutB, OutC CECKSUM

OutA, OutB, OutC rappresentano lo stato desiderato per le uscite. Solo gli ingressi configurati come uscite subiranno variazioni di stato.

Risposta del dispositivo:

START NBYTE FADDRL FADDRH ACK PORTA, PORTB, PORTC CECKSUM

PortA, PortB, PortC  rappresentano lo stato attuale degli I/O.

Ad ogni bit di PortA, PortB, PortC è associato un Pin di I/O sul connettore JP4 della scheda OB-GPD-XXX (Vedi data-sheet). I bit di PortA, PortB, PortC, rappresentano lo stato dei corrispondenti PIN di I/O sulla scheda.

 

READ CONFIG

Legge i dati di configurazione del dispositivo

START NBYTE FADDRL FADDRH 0x04 CECKSUM

Risposta del dispositivo:

START NBYTE FADDRL FADDRH ACK Config, PortA ,PortB, PortC, DirA, DirB, DirC, WDTIMER, STATO CECKSUM

Config Bit 0 Riservato

Config Bit 1 Abilitazione funzione di watchdog (1= abilitata, 0=disabilitata)

La funzione di watchdog del dispositivo consente di portare le uscite in uno stato di sicurezza predefinito qualora dovesse cadere la comunicazione tra il dispositivo ed il PC. In particolare, quando il la funzione di watchdog è abilitata, la scheda si aspetta ad intervalli regolari un comando di read o write. Se questi comandi non arrivano ad intervalli minori di WDTIMER, le uscite assumono l'ultimo valore salvato nella memoria non volatile del dispositivo. Per maggiori informazioni si rimanda al data sheet del controllo ocx (dpd-ctl.htm)

Config Bit.2 Abilitazione ingressi analogici (1= A0-A3 ingressi analogici, 0= A0-A3 I/O digitali)

Quando è impostato su 1, gli ingressi analogici A0-A3 sono abilitati. I corrispondenti bit di DirA devono essere impostati come ingressi. Quando A0-A3 sono impostati come ingressi analogici, i corrispondenti bit di PortA sono letti come '0'.

Config Bit.3 Abilitazione tensione di riferimento esterna (1= Vref esterna, 0=Vref interna)

Normalmente la tensione di riferimento del convertitore analogico/digitale è 5V. Tuttavia, per particolari esigenze, è possibile fornire tale tensione dall'esterno. Se Config Bit. 3 = 1, sull'ingresso A3 deve essere applicata la tensione di riferimento del convertitore analogico digitale. Gli ingressi A0-A3 devono essere impostati come ingressi analogici (Config. Bit. 2 = 1).

PortA, PortB, PortC Stato degli di I/O

Ad ogni bit di PortA,PortB,PortC è associato un Pin di I/O sul connettore JP4 della scheda OB-GPD-XXX (Vedi data-sheet). I bit di PortA, PortB, PortC, rappresentano lo stato dei corrispondenti PIN di I/O sulla scheda.

DirA, DirB, DirC Configurazione degli I/O

Ad ogni bit di DirA,DirB,DirC è associato un Pin di I/O sul connettore JP4 della scheda OB-GPD-XXX (Vedi data-sheet). Se il bit è 0, il pin è configurato come uscita, se il bit è 1 il pin è configurato come ingresso.

WDTIMER  Vedi Config Bit 1

STATO Riservato

 

WRITE CONFIG

Scrive i dati di configurazione del dispositivo

START NBYTE FADDRL FADDRH 0x03 Config, PortA ,PortB, PortC, DirA, DirB, DirC, WDTIMER CECKSUM

Risposta del dispositivo:

START NBYTE FADDRL FADDRH ACK CECKSUM

Config Bit 0 Riservato

Config Bit 1 Abilitazione funzione di watchdog (1= abilitata, 0=disabilitata)

La funzione di watchdog del dispositivo consente di portare le uscite in uno stato di sicurezza predefinito qualora dovesse cadere la comunicazione tra il dispositivo ed il PC. In particolare, quando il la funzione di watchdog è abilitata, la scheda si aspetta ad intervalli regolari un comando di read o write. Se questi comandi non arrivano ad intervalli minori di WDTIMER, le uscite assumono l'ultimo valore salvato nella memoria non volatile del dispositivo. Per maggiori informazioni si rimanda al data sheet del controllo ocx (dpd-ctl.htm)

Config Bit.2 Abilitazione ingressi analogici (1= A0-A3 ingressi analogici, 0= A0-A3 I/O digitali)

Quando è impostato su 1, gli ingressi analogici A0-A3 sono abilitati. I corrispondenti bit di DirA devono essere impostati come ingressi. Quando A0-A3 sono impostati come ingressi analogici, i corrispondenti bit di PortA sono letti come '0'.

Config Bit.3 Abilitazione tensione di riferimento esterna (1= Vref esterna, 0=Vref interna)

Normalmente la tensione di riferimento del convertitore analogico/digitale è 5V. Tuttavia, per particolari esigenze, è possibile fornire tale tensione dall'esterno. Se Config Bit. 3 = 1, sull'ingresso A3 deve essere applicata la tensione di riferimento del convertitore analogico digitale. Gli ingressi A0-A3 devono essere impostati come ingressi analogici (Config. Bit. 2 = 1).

PortA, PortB, PortC Stato degli di I/O

Ad ogni bit di PortA,PortB,PortC è associato un Pin di I/O sul connettore JP4 della scheda OB-GPD-XXX (Vedi data-sheet). I bit di PortA, PortB, PortC, rappresentano lo stato dei corrispondenti PIN di I/O sulla scheda.

DirA, DirB, DirC Configurazione degli I/O

Ad ogni bit di DirA,DirB,DirC è associato un Pin di I/O sul connettore JP4 della scheda OB-GPD-XXX (Vedi data-sheet). Se il bit è 0, il pin è configurato come uscita, se il bit è 1 il pin è configurato come ingresso.

WDTIMER  Vedi Config Bit 1

STATO Riservato

 

READ ANALOG

Legge gli ingressi analogici del dispositivo

START NBYTE FADDRL FADDRH 0x08 CECKSUM

Risposta del dispositivo:

START NBYTE FADDRL FADDRH ACK Analog0L, Analog1L, Analog2L, Analog3L;AnalogH CECKSUM

Analog0-Analog3, rappresentano il valore letto dal convertitore analogico/digitale sui pin A0/AN0-A3/AN3.

Il valore è  un numero intero compreso tra 0 e 1023. Per ottenere il valore di tensione corrispondente occorre usare la seguente formula: V=Analog0/1023*Vref.

Per ottenere tali valori considerare il significato dei byte di risposta:

Analog0L-Analog3L Bit meno significativi di Analog0 ... Analog3

AnalogH Bit 0-1 Bit più significativi di Analog0

AnalogH Bit 2-3 Bit più significativi di Analog1

AnalogH Bit 4-5 Bit più significativi di Analog2

AnalogH Bit 6-7 Bit più significativi di Analog3

 

READ ALL

Legge i canali digitali e analogici

START NBYTE FADDRL FADDRH 0x09 CECKSUM

Risposta del dispositivo:

START NBYTE FADDRL FADDRH ACK Analog0L, Analog1L, Analog2L, Analog3L;AnalogH,PORTA, PORTB, PORTC CECKSUM

Analog0-Analog3, rappresentano il valore letto dal convertitore analogico/digitale sui pin A0/AN0-A3/AN3.

Il valore è  un numero intero compreso tra 0 e 1023. Per ottenere il valore di tensione corrispondente occorre usare la seguente formula: V=Analog0/1023*Vref.

Per ottenere tali valori considerare il significato dei byte di risposta:

Analog0L-Analog3L Bit meno significativi di Analog0 ... Analog3

AnalogH Bit 0-1 Bit più significativi di Analog0

AnalogH Bit 2-3 Bit più significativi di Analog1

AnalogH Bit 4-5 Bit più significativi di Analog2

AnalogH Bit 6-7 Bit più significativi di Analog3

PortA, PortB, PortC rappresentano lo stato attuale degli I/O.

Ad ogni bit di PortA,PortB,PortC è associato un Pin di I/O sul connettore JP4 della scheda OB-GPD-XXX (Vedi data-sheet). I bit di PortA,PortB,PortC, rappresentano lo stato dei corrispondenti PIN di I/O sulla scheda.