^^1-Wire communication.

Sensore di temperatura. | Arduino. | Bus rxtx | Com informatica.

 

  1. Pratica SW
  2. Pratica HW
  3. Definizione 1-Wire (communication system). Teoria.

Pratica SW

1-wire library, per gestire il bus 1-wire con Arduino come master.

La libreria di riferimento e' OneWire

  1. manteiner Paul Stoffregen's
  2. Arduino OneWire library
  3. Bus is a subclass of the OneWire library.
  4. Tom Boyd's guide to 1-Wire

OneWire non e' l'unica lib

  1. arduino/OneWireNg

Libreria 1-Wire per altri controller

esp32 1-Wire.

ing:

banging   /ˈbaŋɪŋ/
(of music) having a loud, energetic beat that is good for dancing to.
"she's got one of the most banging albums of last year"

Struttura software: 2 livelli

si puo' organiizzare in 2 livelli, anche se storicamente durante lo sviluppo era tutto un calderone

  1. basso livello: libreria per gestire il bus di comunicazione
  2. alto livello: libreria che gestisce il dispositivo che usa il bus per comunicare

la libreria di alto livello usa la libreria di basso livello.

Nel caso Sensore di temperatura:

  1. bus lib: OneWire
  2. dev lib: Dallas Temperature Control Library

OneWire e' la citata in tutti gli articoli che ho letto, ma nell'elenco delle librerie nel sito Arduino esiste anche OneWireNg che si dichiara migliore.

History

Dallas Temperature Control Library

The intention of this Library is to build on Jim Studt work and make it quick and easy for beginners to get started.

ref: www.milesburton.com/w/index.php/Dallas_Temperature_Control_Library

OneWire library

Miles Burton derived its Dallas Temperature Control Library from OneWire library.

ref: playground.arduino.cc/Learning/OneWire/

Incontro accidentale Raccolta dati occidentali fatta dai cinesi man.hubwiz.com/docset/Arduino.docset/Contents/Resources/Documents/www.arduino.cc/playground/Learning/OneWire.html

Programmazione

ogni cdm a una periferica deve essere preceduto dalla selezione, poiche' essendo multiperiferica, potrebbe essere rivolto ad un'altra, quindi:

corretto errato
selezione 

convertire

selezione 

leggere risultato

selezione 

convertire

                 (non selezionare)

leggere risultato.

In questo caso i dati letti sono tutti FF

Pratica HW

1pin OR more, to isolate wiring problems

Even though you can connect many 1-wire devices to the same pin,

You can create multiple OneWire objects, one for each pin.
www.pjrc.com/teensy/td_libs_OneWire

Connessione, connettori, per 1-Wire

Some laboratory systems connect to 1-Wire devices using cables with modular connectors or CAT-5 cable. In such systems, RJ11 (6P2C or 6P4C modular plugs, commonly used for telephones) are popular.

modular connector wp  a type of electrical connector for cords and cables for electronic. 

Ex: 6P4C  6 position 4 contacts  

Modular plugs are described by

RJ Registered Jacks wp 

RJ14  4 pin RJ

Bus in corto circuito

se il bus va in corto circuito, il pin del controller che pilota il bus puo' "fondere".

Cio' e' piu' probabile nel caso di "parasite power" in cui il pin e' anche usato per alimentare le periferiche.

Parasite power

Sperimentato in proprio: 2 periferiche: 1 alimentata con VDD, l'altra in parasite.

idem anche con 1 sola periferica.

Periferiche 1-wire

DS18B20 Sensore di Temperatura Digitale >>>

Definizione 1-Wire (communication system). Teoria.

1-Wire bus communication bus system wp

1-Wire bus: come dice il nome, la comunicazione avviene con 1 solo filo

Il filo dati e' normalmente alto, e quindi puo' fungere anche da alimentazione.

The 1-Wire bus requires an external pullup resistor of approximately 5kΩ; thus, the idle state for the 1-Wire bus is high.

 

Linea dati con resistore di pull-up

un dispositivo esce sulla linea con uscita open-drain o open-collector, a seconda della tecnologia usata MOSFET o BJT.
Quando un dispositivo

Se tutti gli host della linea sono open-collector, il vantaggio e'
niente conflitti hardware poiche' nessun host può forzare tensione alta.

If the bus is held low for more than 480μs, all components on the bus will be reset.

Protocollo 1-Wire

e' un protocollo master-slave, in particolare:

  1. il master e' fisso; i.e. no arbitraggio.
  2. slave tx only when the master requests it to tx;
    i.e. not allowed slave-initiated tx
  3. one speaks, all listen: any information sent by one station is received by all even if that information is intended for just one destination.
  4. master riconosce collisioni sul bus quando piu' slaves rispondono contemporanemente.

I Segnali

sono fatti dagli host tirando basso il bus con certe tempistiche, chiamiamoli "impulsi".

Una comunicazione parte quando

  1. il master resetta tutti gli slave, cioe' li pone in un preciso stato iniziale.

    Il comando di Reset e' un impulso di almeno 480μs

    impulso di 480μs :=  bus giù per 480μs, poi rilasciato (che torna alto causa pull-up), lasciando il controllo allo slave che deve rispondere

  2. Ogni singolo slave risponde al comando di Reset con un impulso di "presenza" di almeno 60μs, dopo che il master ha rilasciato il bus.
  3. Master dopo 70μs dal rilascio (550μs dall'inizio Reset) legge il bus

Master invia un bit

master: inviare 1: impulso breve, min 1μs, max 15μs

             inviare 0: impulso lungo,  60μs

slave: dopo 30μs dall'inizio dell'impulso del master (cioe' sul fronte di discesa del livello di tensione del filo dati), lo slave legge lo stato del bus, cioe' il valore del bit inviato dal master

Master richiede un bit

master: impulso breve, min 1μs, max 15μs, per dare il via all'invio del bit da parte dello slave

slave: inviare 1: non fa nulla, il bus rimane in pull-up

          inviare 0: impulso lungo,  60μs

16.3 kbit/s  velocita' tx sul bus

The basic sequence

a reset pulse followed by an 8-bit command

then data are sent or received in groups of 8 bits.

Comandi

1-Wire bus enumeration protocol

per sapere gli slaves presenti, ricavandone ID.

Each 1-Wire chip has a unique identifier code of 64 bits.

Nomi piedini

  1. Q name for the output of stateful elements.  electronics.stackexchange
  2. DQ name for pin which is both input & output pin, i.e. a common I/O, i.e. a bidirectional pin.  electronics.stackexchange

Answer: On a D flipflop the data-in pin is generally called D, and the data-out pin, Q.

Questo pero' e' solo un ramo della risposta alberata, che ha alternative e precedenti storici.

Collisions on the bus

Doc

  1. en.wikipedia/1-Wire
  2. Analog Devices guide-to-1wire-communication  e' l'attuale proprietario
  3. docs.arduino.cc/learn/communication/one-wire

Links

^^  | Rete Ethernet.Rete Wi-Fi.

esof: Comunicazione informatica.

wp/Open_collector