Maturità Elettronica e Telecomunicazioni 97

a cura del prof. Giuseppe Spalierno - docente di Elettronica presso l'I.T.I. "Modesto PANETTI" - B  A  R  I


Soluzione

Il sistema di fotorivelazione genera un impulso quando il nastro si sposta di 10cm.

Se il nastro si muove a velocità costante v (m/s) si ha un treno di onde rettangolari con frequenza f (Hz) proporzionale alla velocità del nastro attraverso la formula:

v = f · d

(1)

ove d = 10cm è la distanza tra una tacca nera e la successiva.

Inviando gli impulsi ad un PC è possibile, attraverso un software opportuno, risalire alla frequenza e quindi alla velocità del nastro. Per facilitare l’acquisizione si decide di trasformare l’onda impulsiva avente duty-cycle:

D = TH / T = (1mm/v) / (10cm/v) = 0.01

in onda quadra con D=0.5 attraverso un divisore di frequenza per due realizzato con un FLIP-FLOP avente J=K=1 ed inviando gli impulsi del fotorivelatore all’ingresso di clock come in figura.

a gestione del sistema di controllo se la velocità è fuori range è affidata interamente al software che consente l’attivazione del sistema di allarme acustico attraverso l’emissione di un suono specifico irradiato grazie all’impiego di una scheda sonora interna al PC. L’allarme ottico avviene attraverso l’invio di un messaggio sul monitor del computer.

Le funzioni richieste al software, pertanto, sono:

Dimensionamento del fotorivelatore.

Si utilizza un fotodiodo che, quando è colpito dal fascio di luce, genera la fotocorrente:

IP = 50 µA mentre IP = 0 in condizioni di buio.

     VCC -VD       5 - 0
R = ------------- = ----------- = 100K Ohm
          ID           50·10
-6

La traccia del compito impone che il sistema abbia, come risoluzione, la seconda cifra decimale della velocità, per cui, se il nastro si muovesse con la velocità di 0.01m/s=1cm/s, l’intervallo di tempo tra due impulsi consecutivi sarebbe:

Dt = d/ Dv=10cm / 1cm/s = 10s

Avendo deciso di acquisire la forma d’onda Q avente frequenza pari alla metà di quella associata ad A, per conservare la stessa risoluzione di 1cm/s utilizzo una finestra temporale pari a Dt = 20s.

Indicando con N il numero di livelli alti campionati nell’intervallo di tempo Dt, la frequenza dei livelli alti vale N/Dt e quella degli impulsi emessi dal fotorivelatore vale: f = 2·N/Dt. La velocità del nastro, finalmente, vale per la (1):

v = 2·N·d/Dt = 2·N·0.1 / 20 = 0.01·N          (2)

Esempio:

se v=1m/s (velocità minima) in 20 secondi il nastro percorre lo spazio pari a 20m.
Il numero di impulsi emessi dal fotorivelatore sono: 

20m/10cm. = 200; 

il software rileva un numero N = 200/2 = 100 livelli alti della linea Q.

Applicando direttamente la (2) ricavo la velocità: v = 0.01 · N = 0.01 · 100 = 1.00 m/s

se v=10m/s (velocità massima) in 20 secondi il nastro percorre lo spazio pari a 200m.

Il numero di impulsi emessi dal fotorivelatore sono: 

200m/10cm. = 2000; 

il software rileva un numero N=2000/2=1000 livelli alti della linea Q.

Applicando direttamente la (2) ricavo la velocità: v = 0.01 · N = 0.01 · 1000 = 10.00 m/s

Per l’acquisizione della linea Q si decide l’impiego dell’interfaccia Centronics normalmente utilizzata per il pilotaggio di una stampante. Le linee del connettore Centronics disponibili sul retro del PC hanno piedinatura, significato, valore ed indirizzo riportate nella seguente tabella.

Linee interfaccia Centronics

PIN

NOME

DIREZIONE

INDIRIZZO ED USO

 1

 STROBE

 USCITA 

890    OUT 890,1      (0V)
          OUT 890,0     (5V)

2

 DATA1

 USCITA 

 

3

 DATA2

 USCITA

 

4

 DATA3

 USCITA

 

5

 DATA4

 USCITA

  OUT 888, N

6

 DATA5

 USCITA

per

7

 DATA6

 USCITA

 0 £ N £ 255

8

 DATA7

 USCITA

 

9

 DATA8

 USCITA

 

10

 ACK

 INGRESSO

B3 (64) SE ALTO

11

 BUSY

 INGRESSO

B4 (128) SE BASSO

12

 PAPER OUT

 INGRESSO

B2 (32) SE ALTO

13

 SELECTED

 INGRESSO

B1 (16) SE ALTO

14

 AUTOFEED

 USCITA

890 OUT 890,2 (0V)

15

 ERROR

 INGRESSO

B0 ( 8 ) SE ALTO

16

  INIZIALIZE PRINTER

  USCITA

890 OUT 890,4 (5V)

17

 SELECT INPUT

  USCITA

890 OUT 890,8 (0V)

25

GND

   

Le linee di uscita DATA8...DATA1, di indirizzo 888 (378 esadecimale), situate tra i pin 9....2, sono memorizzate.

INDIRIZZO: 888

DATA8

DATA7

DATA6

DATA5

DATA4

DATA3

DATA2

DATA1

PIN: 9 8 7 6 5 4 3 2

L’interfaccia Centronics possiede 5 linee di ingresso all’indirizzo 889 (379 esadecimale) con i seguenti valori e logiche di funzionamento:

BUSY (pin 11) vale 128 se è al livello basso (logica negativa).

ACK (pin 10) vale 64 se è al livello alto (logica positiva).

PAPER OUT (pin 12) vale 32 se è al livello alto (logica positiva).

SELECTED (pin 13) vale 16 se è al livello alto (logica positiva).

Pin 15 vale 8 se è al livello alto (logica positiva).

indirizzo 889 :

 BUSY

ACK

PAPER OUT

SELECTED

ERROR

1

1

1

11 10 12 13 15      

 

i rimanenti 3 bit meno significativi del byte di ingresso non sono accessibili sul connettore e sono poste, internamente, al livello alto (1112 = 710 ).

Avendo a disposizione 5 bit (32 combinazioni) è possibile acquisire valore compresi tra 0 e 31.

Ciò si realizza con i seguenti passaggi:

A = A XOR 128 (per complementare il bit applicato su BUSY);

A = A - 7 (per azzerare i tre bit meno significativi : operazione, comunque, non necessaria);

A = A/8 (per lo scorrimento a destra di 3 posizioni).

 

L'algoritmo di acquisizione in linguaggio QBASIC risulta, pertanto:

A = ((INP(889) XOR 128) - 7 ) / 8

In questo modo la parola di ingresso A assume un valore compreso tra 0 e 31.

L’indirizzo Centronics 890 (37A esadecimale) rende disponibile in uscita altri 4 bit di cui tre attive in logica negativa ed una in logica positiva :

STB = STROBE (pin 1) vale 1 se è al livello basso (logica negativa).

AF = AUTOFEED (pin 14) vale 2 se è al livello basso (logica negativa).

IP = INIZIALIZE PRINTER (pin 16) vale 4 se è al livello alto (logica positiva).

SI = SELECT INPUT (pin 17) vale 8 se è al livello basso (logica negativa).

IRQE = ABILITA INTERRUPT vale 16 se è al livello alto (logica positiva) ma non è disponibile fisicamente.

indirizzo 890 :

     

IRQE

SI

IP

AF

STB

PIN:         17 16 14 1

 

Se si intende trasmettere una parola a 4 bit con valore compreso tra 0 e 15 e con i bit attivi

in logica positiva, occorre commutare (XOR con 1 logico) i bit STB, AF e SI  e lasciare inalterato (XOR con zero logico) il bit IP :

OUT(890), A XOR 11

 

A3

A2

A1

A0

A

Dato nel PC

1

0

1

1

11

Maschera

A3

A2

A1

A0

A XOR 11

complementa A3 A1 e A0

A3

A2

A1

A0

A

Dato in uscita

 

Si riporta l’istruzione di acquisizione in C++ della linea Q applicata al pin 15 dell’interfaccia Centronics:

q = (inport(889) & 8 )/8

q = 1 se sul pin 15 c’è il livello logico alto, viceversa si ha: q = 0.

L’istruzione consente di non preoccuparci del livello logico esistente sulle altre linee della porta di ingresso all’indirizzo 889; infatti, indicando con B7…B0 il byte acquisito con l’istruzione inport(889), il prodotto logico: (inport(889) & 8 ) fornisce:

 

inport(889)

B7

B6

B5

B4

B3

B2

B1

B0

8

0

0

0

0

1

0

0

0

inport(889) & 8

0

0

0

0

B3

0

0

0

Torna