Home
Su
Francobolli
Sport
Elettronica
Astronomia
Il lavoro
Gli altri


Links:

Hubble

AstroPicture
Spaceflight

Notizie

Teazzo - iBolli

Forum F&F
[D*] new
 

La mia SMARTHOME

Clikkare per ingrandire


Come usare la parallela per un dialogo tra un PC e HW esterno

Il sistema non ha lo scopo di allarme o protezione antifurto; serve solo per collezionare dati provenienti da varie sorgenti, e reagire secondo una macchina a stati.  Il sistema costituito da  tre parti principali.

*    La prima un programma in linguaggio macchina per 6502 (per un vecchio computer Apple ][ ) che effettua una misurazione ciclica dei valori che variano lentamente, ed un controllo frequente per i segnali che hanno brevi transienti (es. suona il campanello). Le misurazioni vengono convertite in un sistema di messaggi a byte che vengono inviate, via interfaccia parallela, ad un PC con sistema operativo DOS.
*     In questo PC gira un programma in C (QuickC2.5) compilato, e che contiene una grande macchina a stati, che reagisce in vari modi in funzione dei segnali ricevuti dall'altro computer.
*     La terza componente tutto l'hardware necessario a condizionare i segnali

 

L'interfacciamento tra l'hardware e l'apple2 (nello schema sopra chiamato Driver I/O) presentato qui a lato. In sintesi la comunicazione avviene tramite memory-mapped I/O (tipica del processore 6502) e dove vengono usate le locazioni da C060 a C07F.
Viene usata una logica di decodifica che usa le linee A0..A3 dell'address bus, il data bus D0..D7, il segnale /C070 (che indica che in fase di accesso la memoria che va da C070 a C07F), il segnale /C060 (analogo), il segnale R/W dal processore ed il segnale di clock phi0.
Tramite un 74LS138 estraggo i segnali da C060 a C067, mentre tramite un 74LS259 ottengo 8 linee di output dal C07X (X sono 4 bit, dove il MSB deve essere 0, gli altri tre indicano quale linea deve essere variata, e R/W  indica acceso/spento).
Sono usati anche due riconoscitori DTMF 8870, un ADC a 8 ingressi multiplexati, e vari integrati di I/O. Si noti che ho dovuto aggiungere qualche condensatore per eliminare strani spike che creavano problemi.

Qui ci sono gli schemi dei rilevatori di tre segnali: luce SCALE (220volt), CAMPANELLO (12 volt), APERTURA PORTONCINO (12volt). Dal progetto originale ho dovuto variare il valore di qualche componente (dal progetto alla realt... cambiano molte cose).

Questo lo schema della parte che riguarda la commutazione telefonica, ed il rilevamento dello stato della linea: RING e LINEA ESTERNA OCCUPATA. Come si vede, i tre telefoni di casa possono essere collegati, ognuno in modo indipendente, alla linea esterna, a quella interna, o alla linea di "ring" (che fa squillare il telefono).

Qui invece c' un circuito che mi ha fatto perdere un bel po' di tempo: l'interfacciamento audio telefono, che prevede sia l'amplificazione dell'audio in ingresso, sia l'iniezione di audio in uscita.

 

Anche questo schema stato molto sofferto: come misurare la corrente consumata dalla casa?? Basta misurare la tensione indotta su alcune spire avvolte su uno dei due fili che portano il 220v alla casa. Ma si parla di microvolt!! E' stata dura amplificare quel segnale, e non solo rumore...
Questo l'alimentatore ed piuttosto semplice. Il secondario del trasformatore un 17+17 volt. Si noti come ricavo la tensione di 60volt con un raddoppiatore (usato per la linea telefonica interna), e come uso un'impedenza per evitare che il segnale di fonia sulla linea interna venga annullatto dal condensatore di stabilizzazione.
Il software per l'Apple2 non tantissimo. Ecco il LISTATO!
Se vi interessa saperne di pi contattatemi. Al solito non il massimo cercare di capire qualcosa da un listato assembler. Ad ogni modo basti capire che questo programma un loop continuo che tiene sotto controllo vari valori, e comunica tramite un opportuno protocollo le variazioni al PC tramite la parallela.
Dopo un anno di variazioni, il SW si stabilizzato, ed ho lavorato poi solo sul programma in C.