Il DS2431 è un chip EEPROM 1-Wire a 1024-bit, organizzato in quattro pagine di memoria di 256 bit ciascuna.
I dati vengono scritti in uno scratchpad di 8 byte, verificati, e poi copiati nella memoria EEPROM. Come caratteristica speciale, le quattro pagine di memoria possono essere individualmente protette da scrittura o messe in modalità EPROM-emulation, dove i bits possono essere modificati da uno stato 1 ad uno stato 0.
Il DS2431 comunica attraverso il bus 1-Wire. La comunicazione segue il protocollo standard 1-Wire. Ogni dispositivo ha il suo unico e inalterabile numero di registrazione di 64-bit di ROM che viene inciso con il laser in fabbrica. Il numero di registrazione viene utilizzato per indirizzare il dispositivo in un ambiente di rete 1-Wire.
Applicazioni DS2431
-
- calibrazione di sensori analogici compresi i sensori smart IEEEP 1451.4
- identificazione dell'inchiostro e del toner
Ennesimo prodotto di Maxim-Dallas compatibile con il protocollo 1-wire.
Molto interessante! Sono curioso di andarmi a vedere come funziona il protocollo 1-wire del bus!
Sarebbe utile fare un confronto con le eeprom 24XX montante in diverse stampanti laser e le migliorie apportate rispetto all’utilizzo di queste nuove prodotte dalla Maxim in termini pratici.
Se qualcuno è interessato quanto me ecco come funziona il bus 1-wire. Innovativo direi. Non lo conoscevo!
http://goo.gl/XvEwN
Interessante, Mi è sempre piaciuto il protocollo 1-wire per delle comunicazioni che non avessero particolari necessità in termini di prestazioni velocistiche. È un protocollo molto semplice, specialmente dal punto di vista elettrico. La comunicazione avviene tra master e slave. I due dispositivi sono collegati da un filo (bus) su quale è presente una resistenza di pull-up che alimenta anche il dispositivo slave. Si comincia quando il master porta a 0 volt la tensione sul bus per 480µs. Questo segnale resetta il sistema slave. La comunicazione è gestita dai tempi: quando il master vuole inviare uno 0, mantiene a 0 volt il bus tr 1 e 15µs. Per inviare un 1 tiene a zero il bus per 60µs. Nel momento in cui il bus commuta originando un fronte in discesa, il dispositivo slave può avviare un multivibratore monostabile che consenta di effettuare la lettura del segnale in ingresso dopo un tempo di circa 30µs. in questo modo se troverà il bus alimentato vorrà dire che sta arrivando un uno, altrimenti sta arrivando uno zero.
Il dispositivo slave invece per inviare un dato dipende dal master. Il master quando è pronto invia un impulso di 15µs. al che lo slave azzera la tensione sul bus per inviare uno zero, oppure non fa niente per inviare un uno. Una comunicazione master-slave è composta dunque da 3 parti: reset, comando del master, risposta dello slave. Nel caso di invio di dati, è prevista la possibilità di effettuare un controllo di ridondanza ciclica sui contenuti.
Con questo modo di comunicare è possibile arrivare a comunicare a circa 16kb/s.
È possibile comunque utilizzare una modalità di comunicazione che accelera le trasmissioni quasi di 10 volte.
Per quanto riguarda l’integrato che maxim ci propone possiamo leggere nel datasheet tutte le caratteristiche salienti. mi permetto di riassumere, descrivendo alcune cose che mi sembrano degne di nota.
Il dispositivo contiene una sorta di buffer che permette di conservare i dati ricevuti, prima di essere scritti nella eeprom. Una volta che tutto il pacchetto è arrivato a destinazione, viene effettuato il crc, e in caso risulti positivo, i dati vengono scritti nella memoria.
Tutti i dati vengono trasferiti a cominciare dal bit meno significativo.
Il codice di 64 bit che indicava l’articolo è composto in questa maniera: i primi 8 bit sono definiti dal protocollo 1-wire e rappresentano la categoria di circuito utilizzato. i successivi 48 bit sono un codice identificativo univoco del circuito e gli ultimi 8 sono un crc dei primi 56.
Le operazioni effettuabili sul bus sono 8. Ne cito qualcuna
READ (codice 33h) serve a leggere il contenuto della memoria, non è utilizzabile in maniera diretta con il bus condiviso da più memorie perchè si genererebbero collisioni.
match (codice 55h) serve a identificare uno specifico chip di memoria fornendo l’id di 64 bit. Le memorie non matchate sono temporaneamente disattivare e aspetteranno il segnale di reset.
Skip rom (codice cch) è molto utile nel caso di sistemi con una sola memoria collegata, fa in modo infatti che non sia necessario inviare l’id della memoria per procedere con le operazioni.
Sono presenti anche altre istruzioni un pò macchinose per gestire ed identificare le varie memorie presenti sul bus, ed altre per effettuare le operazioni in modalità overdrive, cioè con la velocità moltiplicata.
sicuramente questo tipo integratopuò dare tanti vantaggi soprattutto quando si è limitati Il numero a disposizione di pin su un microcontrollore a disposizione ,
Certamente ancora e molto di attualità EEPROM con protocollo I2C E al vantaggio di poter essere messi anche più integrati sullo stesso BUS .
Un altro aspetto molto interessante è il suo Package molto piccolo essendo uno TO92 , Che ha le dimensioni di un piccolo transistor ,
sicuramente uno dei problemi maggiori di questo componente è il suo poco spazio di memoria a disposizione .
solo una cosa non sono riuscito a capire: ma se la comunicazione è 1 wire, il controllo per sincronizzare il dispositivo, come si fa, cioè come riesco ad usare questa eeprom con un microcontrollore?!?!
guarda qui http://it.emcelettronica.com/ds2431-eeprom-1-wire-1024-bit#comment-12940
o cerca il protocollo di comunicazione 1-wire, per usarla col microcontrollore dovresti creare una funzione apposita credo… 🙂
In realtà il BUS è di tipo asincrono ,
quindi non viene trasmesso il clock mantiene creato da tutte le due parti ,
si sincronizzano all’inizio della trasmissione , della stessa linea dopo serve sia Andata o ritorno per i dati .
Questa tecnica si usava moltissimo nelle reti prima che venisse introdotto RJ45 per intendersi quelle che avevano come collettore di rete BNC .
dove tutta la trasmissione si faceva sullo stesso cavo .
Giusto, il problema principale di queste connessioni è la gestione delle collisioni. il protocollo 1-wire permette di disabilitare i dispositivi non interessati mentre quello attivo effettua il trasferimento dei dati. In altri protocolli le collisioni vengono gestite diversamente: ad esempio nel protocollo cc-talk se non ricordo male, le collisioni di più dispositivi slave che devono inviare un dato al master è risolto inserendo un ritardo proporzionale all’id del dispositivo. Nelle reti LAN sempre se non ricordo male, le collisioni vengono gestite ritardando con un certo algoritmo l’invio del pacchetto. Per fortuna al giorno d’oggi si usano gli switch piuttosto che gli hub, e quindi non esiste più il problema delle collisioni
A livello di reti ethernet ormai gli hub sono scomparsi. Ma il problema delle collissioni di pacchetti e ancora molto moderno. Nelle reti di sensori per esempio. Dove non viene usato il protocollo wifi ma altri che ora nemmeno ricordo [forzse lo zigbee…]
Comunque qui i sensori vengono controllati da un server centrale e i dati che i sensori rilevano devono essere ben sicnronizzati tra loro. In questo campo un errore può essere fatale, a differenza di quello ethernet dove perdere un pacchetto non è la fine del mondo.
Perdere un pacchetto in una rete di sensori senza fili può, per esempio, far perdere l’informazione sulla velocità di un oggetto al quale è applicato il sensore e creare delle situazioni spiacevoli. Possono causare vari danni. In questo settore si cercano protocolli anti-collisioni sempre più efficienti anche dal punto di vista della velocità di scambio-dati, oltre che della loro integrità.
Deve pensare che questo protocollo è stato basato per la sua semplificazione di utilizzo è soprattutto per il fatto che usa un solo pin del microcontrollori ,
quindi in questi casi le collisioni sono abbastanza limitate , visto alla capacità di questa memoria che piuttosto esigua all’attuale visto che l’ordine di 1 kB , Le applicazioni siano bisogno di questo grande sa non hanno problemi più di tanto di collisioni ,
attualmente anche il più semplice microcontrollori PIC 12F629 della microchip comunque sia possiede comunque una con EEPROM di 1 KB .
dove la necessità di avere tutti i dati senza sbagli si opta per soluzioni di solito per qualsiasi sensori di tipo Appunto a Appunto come delle correzioni seriali ,
allo stesso scopo esistono delle schede PCI dove sono presenti fino al 24 seriali ,
in queste applicazioni critiche di solito va integrato con una soluzione anche del sistema operativo di gente non si usa tipicamente hard soft real-time , secondo le necessità dell’applicazione .
http://it.wikipedia.org/wiki/Sistema_operativo_real-time
Il prof mio di sistemi operativi c’era fatto una battuta molto interessante ,
Questi sistemi si usano tipicamente inattese critiche come il pilotaggio di meglio per il semplice motivo che non vogliamo un disastro aereo è che il sistema era occupato a fare il la deframmentazione del disco al posto di controllare l’assetto dell’aereo .
Devi tenere conto che non tutte le schede possono però supportare sistemi operativi.
Certo che sarebbe veramente disastroso far precipitare un aereo a causa della deframmentazione XD
Non possiamo dire se la perdita di un pacchetto è pericolosa o meno solo nominando il protocollo di trasmissione. tramite ethernet puoi trasferire di tutto, per questo con ad esempio il protocollo tcp/ip puoi permetterti di sbagliare, SOLO CHE il tcp provvede a rispedire il pacchetto non ricevuto, quindi di fatto l’errore è come se non si fosse verificato. inoltre la rilevazione di collisioni tramite rete cablata (ethernet o altro) è più facile perchè tutti i dispositivi che appartengono al medesimo dominio di collisione sono in vista tra loro, cioè possono vedere tutti i messaggi degli altri.
Tramite onde radio la situazione è più complicata perchè le due emittenti “slave” potrebbero non vedersi tra di loro, e quindi continuerebbero a inviare dati al master senza accorgersi della collisione in corso. Anche qua la perdita di un pacchetto può essere più o meno importante ai fini del sistema complessivo. Se ad esempio ho delle trasmittenti che ogni tanto mi dicono la temperatura, perdere un pacchetto non sarebbe un problema importante, visto che comunque la temperatura varia in genere lentamente