OWFS: un file system Linux per i dispositivi 1-Wire

One Wire File system (OWFS) è un'applicazione Linux (disponibile anche per altri sistemi operativi tra cui Windows) che consente di lavorare con i dispositivi 1-Wire di Dallas/Maxim come se fossero dei normali file - le comuni operazioni operazioni di lettura e scrittura eseguite su un file vengono in realta' eseguite in modo trasparente sul dispositivo fisico.

Che cos’è il 1-Wire

Il bus 1-Wire è un sistema di comunicazione sviluppato da Dallas Semiconductor che usa soltanto un filo. Per certi versi è abbastanza simile all’I2C, ma ne differisce per la velocità di trasmissione, che è inferiore, per i costi, molto contenuti, e per la distanza che è in grado di coprire, che è superiore. Il protocollo 1-Wire consente la comunicazione tra diversi tipi di dispositivi prodotti da Dallas Semiconductors/Maxim, come ad esempio:

  • sensori di temperatura, umidità, pressione, e termocoppie
  • display LCD e contatori
  • memorie eeprom e rom, dispositivi per la crittografia (protezione dell’IP)
  • dispositivi per l’identificazione (chiavi elettroniche)

Le principali aree di applicazione dei dispositivi 1-Wire sono le seguenti:

  • identificazione delle cartucce per stampante
  • identificazione prodotti ad uso medicale
  • identificazione e autenticazione dei PCB (Printed Circuit Board)
  • identificazione e controllo di accessori e periferiche
  • protezione dell’IP, sistemi anticlonatura
  • elettronica di consumo
  • controllo di accesso
  • sistemi di pagamento elettronico
  • dispositivi per consolle e videogiochi
1 wire

1-Wire è un bus half-duplex, bi-direzionale, e la comunicazione viene instaurata tra un dispositivo, il master, il quale controlla attraverso il bus stesso uno o più slave.

Nella figura seguente è visualizzato lo schema a blocchi del bus di comunicazione 1-Wire, con un dettaglio del dispositivo master (HOST in figura) e di un generico slave.

OWFS

Il dispositivo master è collegato al bus tramite una configurazione open-drain, mentre la tensione di alimentazione (Vcc, compresa tra 2.8V e 5.25V) è collegata al bus tramite la resistenza di pull-up R (di solito il suo valore è pari a 4.7 Kohm). Come visibile in figura, lo slave riceve tutta l’energia di cui ha bisogno direttamente dal bus, cioè dall’unico filo di cui è composto. Occorre poi notare come il condensatore all’interno di ogni slave (normalmente il suo valore è di circa 800 pF) venga caricato quando il bus si trova nello stato idle (corrispondente ad un livello alto, o positivo, del bus 1-Wire). Viceversa, quando il bus si trova ad un livello basso, cioè quando la comunicazione tra il master e lo slave si è instaurata, lo slave utilizza l’energia immagazzinata nel condensatore per alimentare se stesso. A differenza di altri protocolli come I2C o SPI, il bus 1-Wire richiede che ciascuno slave sia fisicamente connesso al bus: se infatti uno slave viene disconnesso, questo non potrà più rimanere operativo, e si porterà in uno stato di reset. Quando poi verrà connesso nuovamente al bus, si risveglierà e, ricevendo la tensione di alimentazione direttamente dal bus, potrà dichiarare la propria presenza al bus controller (il dispositivo master).

I principali vantaggi della tecnologia 1-Wire sono i seguenti:

  • dispositivi molto economici, cablaggio molto semplice, alimentazione “parassita” degli slave
  • indirizzi univoci
  • adattatori per interfaccia USB, seriale, e I2C
  • tecnologia matura ed affidabile
  • dispositivi iButton in contenitore metallico ed ermetico a forma di bottone
  • un solo contatto richiesto per eseguire il controllo e le operazioni del bus
  • ID univoco associato ad ogni dispositivo durante la fabbricazione
  • architettura di tipo single master/multi slave
  • prestazioni ESD eccezionali, dovute alla presenza di un solo filo
  • protezione dell’IP e protezione dalle frodi

Ogni slave connesso al bus 1-Wire dispone di un serial number unico e non modificabile: attraverso questo ID, lo slave può essere univocamente selezionato ed indirizzato dal dispositivo master. Il numero, composto da 64-bit, viene scritto durante il processo di fabbricazione ed include i seguenti campi: un Family Code di 8 bit che identifica il tipo di slave e la sua funzionalità (sono supportati fino a 256 tipi differenti di slave), un Serial Number di 48 bit, e infine un CRC di 8 bit. Nel bus 1-Wire non è necessario alcun clock, dal momento che la sincronizzazione è compiuta dagli slave sul fronte di discesa del bus controllato dal master. Il bus 1-Wire supporta due tipi di velocità di trasmissione: standard, con una velocità di circa 16 Kbps, e overdrive, che incrementa la velocità di un fattore 10.
La prima operazione che un’applicazione deve eseguire sul bus 1-Wire consiste nella selezione del dispositivo slave. Una volta selezionato lo slave, il master invia specifici comandi sul bus per scrivere informazioni sullo slave o per acquisirle da esso. Il comando di reset viene accettato da tutti gli slave connessi al bus.

OWFS: un interessante progetto open-source relativo al bus 1-Wire

OWFS (acronimo di One Wire File System) è un progetto creato da Paul H. Alfille e dal team di sviluppo Owfs (l’homepage di Owfs è la seguente: http://owfs.sourceforge.net/). Si tratta di un progetto open-source sviluppato sotto il sistema operativo Linux con il seguente proposito: consentire l’accesso ad un qualsiasi dispositivo di tipo 1-Wire come se questo fosse un normale file appartenente al file system. Ad esempio, per eseguire la lettura di tutti i sensori di temperatura 1-Wire connessi al bus, è sufficiente digitare il seguente comando sulla shell: "cat */temperature". Inoltre, ciascun sensore di temperatura di cui sopra è indirizzabile individualmente, e l’applicazione si riconfigura automaticamente man mano che i dispositivi 1-Wire vengono aggiunti o rimossi dal bus. OWFS è uno strumento originale e molto utile per lavorare e divertirsi con i dispositivi 1-Wire di Dallas Semiconductor/Maxim. Inoltre, i comandi impartiti dalla shell sono molto potenti, e possono essere organizzati in script da eseguire (anche automaticamente tramite delle procedure batch) durante le fasi di sviluppo, test, e validazione di un’applicazione 1-Wire.
Le principali caratteristiche di Owfs sono:

  • accesso tramite Filesystem
  • accesso via Web (browser), attraverso il tool owhttpd
  • accesso remoto via rete, attraverso il tool owserver
  • supporto diretto per i linguaggi perl, python, php, tcl, C
  • versione bootable su CD
  • supporto per molti processori e sistemi operativi (tra cui Windows)
  • è un programma free sotto licenza GPL

Universal 1-Wire COM Port Adapter

Dallas Semiconductor-Maxim offre anche uno strumento interessante (il DS9097U) per eseguire il test ed il debugging di applicazioni basate su 1-Wire. Si tratta fondamentalmente di un adattatore che si connette alla porta seriale RS232 del PC (sono supportati sia i connettori DB-9 che DB-25) e, in unione con un driver software TMEX, consente di eseguire la lettura e la scrittura su dispositivi 1-Wire, connessi all’adattatore tramite una porta RJ-11; entrambi i data rate (regular e overdrive) possono essere utilizzati. Con il connettore DB-9 è possibile comunicare con tutti i dispositivi 1-Wire ad eccezione delle eeprom, mentre il connettore DB-25 permette anche di eseguire la scrittura sulle eeprom, a condizione che venga applicata un’opportuna tensione di alimentazione esterna. L’adattatore DS9097U si basa sul chip DS2480B, un line driver seriale per il bus 1-Wire, mentre i driver software sono liberamente scaricabili dal seguente url: http://www.ibutton.com/software/tmex/index.html.

Scarica subito una copia gratis

Una risposta

  1. Avatar photo Ionela 20 Marzo 2009

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend