Corso di BASCOM AVR - (32) Corso Teorico/Pratico di programmazione in BASCOM AVR. Autore: DAMINO Salvatore. Protocollo Standard da Campo 1-Wire. Possibilità offerte dal Protocollo Standard da Campo 1-Wire. La rete da campo 1-Wire é un protocollo standard basato su di un solo filo di comunicazione, come indica lo stesso nome, che include numerosi dispositivi e sensori frequentemente utilizzati nel campo dell'automazione industriale e domestica. Attualmente esistono sul mercato numerosi componenti basati su questo standard di comunicazione che hanno un interessantissimo rapporto prezzo/prestazioni. Quest'ultimo é inoltre migliorato anche da una semplice ed 192
economica modalità di collegamento, infatti normalmente il cablaggio necessita di soli tre fili: due per l'alimentazione ed un terzo per la comunicazione bidirezionale. Su queste linee possono essere collegati, in rete, tutti i dispositivi necessari scegliendo la disposizione fisica necessaria per l'applicazione. Tra i vari dispositivi 1-Wire disponibili si ricordano: SENSORI. Temperatura Pressione Umidità Termostati ecc. MEMORIE. EEPROM ROM ecc IDENTIFICATORI. Chiavi Elettroniche Codici Progressivi Codici Variabili ecc. Il protocollo 1-Wire é dotato di tutte le modalità di comunicazione necessarie. Esse consentono di ottenere un elevato trasferimento dati ed una notevole sicurezza intrinseca sulla loro validità. Questo avviene grazie a tecniche di indirizzamento univoche, CRC Polinomiali di controllo, numerosi comandi di verifica e complessi algoritmi di gestione. Dispositivi ibutton in 1 Wire. 193
Studiando la documentazione sul protocollo 1-Wire potrete proficuamente disporre della conoscenza necessaria su come utilizzarlo. A questo fine, da un punto di vista fisico, è sufficiente che il dispositivo utilizzato abbia almeno una linea di I/O Digitale Bidirezionale. Tramite questa linea si possono fornire i Comandi Implementati nei vari dispositivi 1-Wire. E' possibile interagire con tutti i componenti che sono presenti sul BUS 1-Wire e, con questi, scambiare le informazioni necessarie. Lo scambio di informazioni avviene con una sequenza di stati, e tempistiche, ben definite così come illustrato nei diagrammi temporali riportati nelle pagine seguenti. Dettaglio "Master Read 1 Timing". Raccomandato "Master Read 1 Timing". 194
Diagramma delle Temporizzazioni di R/W. 195
Combinando in sequenza le operazioni fondamentali, sopra descritte, si possono anche fornire i comandi definiti dallo standard 1-WIRE, di seguito elencati: RESET del BUS 1-WIRE Scrittura di un bit sul BUS 1-WIRE Lettura di un bit dal BUS 1-WIRE Scrittura di un byte sul BUS 1-WIRE Lettura di un byte dal BUS 1-WIRE Ricerca del Codice ROM sul BUS 1-WIRE Lettura del Codice ROM sul BUS 1-WIRE Comparazione del Codice ROM sul BUS 1-WIRE Ricerca allarmi sul BUS 1-WIRE Il BASCOM possiede una serie di Istruzioni Specializzate per utilizzare efficacemente il protocollo 1-WIRE. Grazie a queste istruzioni l utente può facilmente comunicare con la maggioranza dei dispositivi senza doversi preoccupare di Tempistiche, Direzionalità della linea dati, CRC, conflitti, ecc. E' sufficiente limitarsi semplicemente a trasmettere, e ricevere, gli opportuni i dati. Alcune Istruzioni realizzano completi aspetti della comunicazione 1-WIRE come il riconoscimento di quanti, e quali, dispositivi sono collegati; la gestione dei comandi associati al Codice ROM; la verifica di errori, ecc. 196
Dispositivi ibutton. Una menzione a parte meritano i dispositivi ibutton. Questi interessantissimi prodotti hanno l'aspetto di un bottone, con uno spessore di 6 millimetri, un diametro di 17 mm, ed hanno un robusto involucro di acciaio inossidabile. I dispositivi in questione ricordano, come forma, una piccola pila a bottone e racchiudono un chip che può avere una delle seguenti caratteristiche. Tipi di ibutton. Chiave Elettroniche Memorie del tipo NV RAM Memorie del tipo EPROM Memorie del tipo EEPROM Real Time Clock Multichiave Memoria di Password Protetta Sensore di Temperatura Data Logger di Temperatura Data Logger di Umidità ecc. Tipico Utilizzo di ibutton in 1-Wire. 197
Una delle caratteristiche più interessanti, di questi dispositivi, è che per funzionare non hanno bisogno di una fonte di alimentazione. I bottoni di acciaio possono essere montati praticamente ovunque, perché il contenitore è robusto e sopporta ambienti difficili, chiusi o aperti che siano. Detto contenitore è piccolo tanto che può essere alloggiato in un portachiave, orologio, o altri oggetti personali, ed essere utilizzato quotidianamente per le applicazioni come il controllo degli accessi agli edifici e computer, gestione patrimoniale, e la registrazione di dati di diversa natura. Possibili Reti di connessioni tramite il BUS 1 Wire. Studiando la documentazione sul protocollo 1-Wire potrete profiquamente disporre della conoscenza necessaria su come poterlo utilizzare. A questo fine, da un punto di vista fisico, è sufficiente che il dispositivo utilizzato abbia almeno una linea di I/O digitale bidirezionale. Per la gestione il BASCOM AVR possiede de una serie di Istruzioni specializzate per utilizzare efficacemente il protocollo 1-Wire. 198
Sensore Temperatura DS18S20 Il componente DS18S20 è un completo Sensore di Temperatura che opera nel range -55..+125 C, con risoluzione di 0,5 C, dotato di interfaccia 1-WIRE. Inoltre il sensore controlla se la temperatura misurata rientra in un campo preimpostato e riconosce eventuali allarmi di uscita dallo stesso campo. Il limite inferiore e superiore del campo possono essere impostati tramite appositi comandi 1-Wire sia in modo temporaneo che permanente. Pin-Out Sensore di Temperatura 1 Wire tipo DS18S20. Le applicazioni tipiche del DS18S20 sono il controllo di temperatura multi punto con sensori distribuiti oppure semplici controlli di termostato centralizzati. Ulteriori informazioni sul componente sono riportate nelle seguenti figure e nel relativo Data Sheet. 199
Sfruttando una serie di appositi comandi, l'utente, può facilmente comunicare con la maggioranza dei dispositivi senza doversi preoccupare di Tempistiche, Direzionalità della linea, CRC, Conflitti, ecc. E' sufficiente limitarsi a trasmettere e ricevere gli opportuni dati. I comandi implementati sono: Reset del BUS 1-Wire Scrittura di un bit sul BUS 1-Wire Lettura di un bit dal BUS 1-Wire Scrittura di byte sul BUS 1-Wire Lettura di byte dal BUS 1-Wire Lettura del codice ROM su BUS 1-Wire Comparazione del codice ROM su BUS 1-Wire Omissione del codice ROM su BUS 1-Wire Ricerca allarmi sul BUS 1-Wire Schema a Blocchi del Sensore di Temperatura 1-Wire tipo DS18S20. 200
Formato dei Registri di Temperatura. Tabella con Relazione tra Temperatura e Valori Restituito. 201
Esempio.056. - Gestione e Pilotaggio dei dispositivi ibutton e di una Linea di BUS in 1-WIRE. Definizioni aggiunte: Nessuna Dichiarazioni aggiunte: Nessuna Istruzioni aggiunte: CONFIG 1WIRE ; 1WRESET ; 1WIRECOUNT ; 1WSEARCHFIRST ; 1WSEARCHNEXT. Operatori aggiunti: Nessuno Programma di Esempio.056 del corso BASCOM AVR. Circuiteria di Interfacciamento in 1-Wire. 202
Programma per la gestione di un BUS 1-WIRE, che identifica e presenta le informazioni sui dispositivi collegati compresi i dispositivi ibutton. Il programma usa un'interfaccia 1-WIRE a tre fili di cui una per i dati (DQ) e due per l'alimentazione (GND, Vdd), ma può operare anche con dispositivi dotati di due soli fili. Dal punto di vista elettrico tali segnali sono stati arbitrariamente scelti come indicato nelle seguenti definizioni ed al bisogno possono essere facilmente riassegnati, come descritto nell'aiuto in linea del BASCOM. Tipico ibutton Inserito in un Portachiavi. Il programma si limita a contare gli eventuali dispositivi collegati al BUS 1-WIRE. Per ognuno dei dispositivi individuati presenta le informazioni che lo Identificano e Caratterizzano, ovvero il suo ROM Code. Questo lavoro è effettuato usando solo i ROM Commands, disponibili su ogni dispositivo con protocollo 1-WIRE. Ulteriori informazioni sui ROM Commands, e ROM Code, sono disponibili nei Data Sheet dei dispositivi usati, oppure, li potete trovare nei documenti sul protocollo 1-WIRE disponibili presso la DALLAS (MAXIM). 203
Schedina Applicativa e Chiave per ibutton in 1-Wire. Il programma si presenta ed usa una console seriale dotata di monitor e tastiera, con un protocollo fisico costante a 19.200 Baud, 8 Bit x chr, 1 Stop bit, Nessuna Parità. Questa console può coincidere con un sistema in grado di gestire una comunicazione seriale in RS 2 3 2. Al fine di semplificarne l'uso si può usare un PC dotato di una linea COMx, che esegue un programma di Emulazione Terminale come HYPERTERMINAL o l'omonima modalità offerta dal BASCOM AVR (vedere Configurazioni IDE). Il programma funziona solo se la GMM AM08 è montata sullo zoccolo Z2 della GMM TST3!! 204
Esempio.057. Aquisizione di Temperatura e gestione di un DS1820 in 1-WIRE. Definizioni aggiunte: Nessuna Dichiarazioni aggiunte: Nessuna Istruzioni aggiunte: 1WVERIFY ; 1WWRITE ; 1WREAD ; CRC8. Operatori aggiunti: Nessuno Programma di Esempio.057 del corso BASCOM AVR. Acquisizione temperatura da sensore DS18S20 tramite BUS 1-WIRE. Schema Applicativo del Sensore di Temperatura in 1-Wire DS18S20. 205
Ogni secondo il programma preleva, e rappresenta, la temperatura del sensore usando un'interfaccia 1-WIRE a tre fili (DQ, GND, Vdd). La temperatura è rappresentata sulla console con la risoluzione del mezzo grado, nel range da -55 C a +125 C, caratteristica del sensore. Nel caso sul BUS 1-WIRE siano collegati diversi dispositivi, il programma cerca e gestisce solo il primo sensore DS18S20, senza interferire con gli altri. Il programma si presenta ed usa una console seriale dotata di monitor e tastiera, con un protocollo fisico costante a 19.200 Baud, 8 Bit x chr, 1 Stop bit, Nessuna Parità. Questa console può coincidere con un sistema in grado di gestire una comunicazione seriale in RS 2 3 2. Al fine di semplificarne l'uso si può usare un PC dotato di una linea COMx, che esegue un programma di Emulazione Terminale come HYPERTERMINAL o l'omonima modalità offerta dal BASCOM AVR (vedere Configurazioni IDE). Il programma funziona solo se la GMM AM08 è montata sullo zoccolo Z2 della GMM TST3!! 206
Esempio.058. Controllore di Temperatura 1-WIRE con Gestione di una Banda di Controllo ed Isteresi. Definizioni aggiunte: Nessuna Dichiarazioni aggiunte: Nessuna Istruzioni aggiunte: Nessuna Operatori aggiunti: Nessuno Programma di Esempio.058 del corso BASCOM AVR. Controllo temperatura con sensore DS18S20 su BUS 1-WIRE con banda di Controllo od Isteresi. Andamento del Controllo di Temperatura nel Tempo. 207
Ogni secondo il programma acquisisce la temperatura dal sensore di temperatura e poi effettua la funzione di un termostato di riscaldamento. La sua fonzionalità è limitata a controllare se sono stati superati il limiti, (Set Point) con Isteresi, impostabili. La temperatura è prelevata usando un'interfaccia 1-WIRE a tre fili (DQ, GND, Vdd), è gestita con una risoluzione di 1 Grado Centigrado ed è rappresentata sulla console assieme agli altri parametri del termostato. Inoltre con la console si possono impostare i valori attuali del Set Point e dell'isteresi. Nel caso sul BUS 1-WIRE siano collegati diversi dispositivi, il programma cerca e gestisce solo il primo sensore DS18S20, senza interferire con gli altri. Il programma si presenta ed usa una console seriale dotata di monitor e tastiera, con un protocollo fisico costante a 19.200 Baud, 8 Bit x chr, 1 Stop bit, Nessuna Parità. Questa Console può coincidere con un sistema in grado di gestire una comunicazione seriale in RS 2 3 2. Al fine di semplificarne l'uso si può usare un PC dotato di una linea COMx, che esegue un programma di Emulazione Terminale come HYPERTERMINAL o l'omonima modalità offerta dal BASCOM AVR (vedere Configurazioni IDE). Il programma funziona solo se la GMM AM08 è montata sullo zoccolo Z2 della GMM TST3!! 208