Go Down

Topic: rs422 full duplex (Read 2775 times) previous topic - next topic

astrobeed


Rifletterei inoltre ancora un po' sulla soluzione I2C. Dovendo controllare un acquario, quindi un sistema relativamente piccolo dove i diversi arduino saranno probabilmente posizionati molto vicini


Dal punto di vista realizzazione la soluzione basata su I2C è quella più semplice ed economica, tutte le schede Arduino dispongono di questo bus e basta collegarlo con un cavo, poi c'è il discorso della I2C multimaster che se non mi ricordo male dovrebbe già esserci una libreria dedicata.
Però c'è un "piccolo" problema, la gestione I2C di Arduino non è affidabile, ovvero in caso di errori sul bus c'è il reale rischio di trovarsi con il bus bloccato e nessuno può più comunicare, peggio ancora lo sketch rimane fermo in eterno in attesa di un qualcosa che non arriverà mai, cose che avrebbe effetti disatrosi sull'acquario, è possibile risolvere però tocca scriversi delle proprie routine di gestione I2C che non siano bloccanti in caso di errore e stabilire un modo di autoripristino, ovvero c'è molto lavoro software da fare.

Bruschetta


Le soluzioni possibili sono due, I2C e CAN, per la prima non ti serve hardware aggiuntivo però ci sono dei grossi limiti sulla lunghezza delle connessioni, o meglio il limite è la capacità totale della linea che non deve superare i 400 pf e questo penalizza molto la lunghezza dei cavi e il numero di device collegabili al bus.
Il CAN bus è la soluzione ottimale, velocissimo e senza problemi di lunghezza cavi visto che possono essere anche di centinaia di metri, però non puoi gestirlo nativamente da Arduino, devi usare appositi IC che ti forniscono sia la parte trasceiver che lo strato più basso del protocollo software.
Una buona soluzione per implementare il CAN bus su Arduino, senza gravare troppo sul micro, è utilizzare l'abbinata MCP215 (CAN controller) e MCP2551 (CAN trasceiver) esistono delle shield con questi IC e relative librerie per l'utilizzo.


prima di tutto ti ringrazio per l'auto che mi stai dando ...

secondo avresti qualche link delle librerie e di qualche esempio di trasmissione? tanto a me serve solo che invi un macro comando poi il ricevente effettua tutte le operazioni ...

per adesso grazie :-)

Bruschetta

allora ragazzi ...

i2c non è possibile in quanto l'attrezzatura tante volte si trova anche a molti metri di distanza ... vi spiego meglio ... l'acquario marino ha bisogno (solitamente) di tre vasche:
1) Acquario
2) Vasca tecnica (dove vengono allogiate le attrezzature)
3) Vasca di Ripristino acqua evaporata

Molti malati (nel buon senso della parola) hanno l'Acquario al piano di sopra e la vasca tecnica al piano di sotto ...

Riguardo agli Xbee cercando in rete mi è sembrato che anche qui serve per forza un coordinatore ma in questo sistema potrebbe non esserci (dipende se uno compra tutto il sistema subito) ...

:-)

leo72


Molti malati (nel buon senso della parola) hanno l'Acquario al piano di sopra e la vasca tecnica al piano di sotto ...

ma per "piano" intendi il piano della casa oppure "livello", cioè prendendo come esempio un mobile, la vasca acquario sul ripiano superiore e la vasca tecnica sul ripiano inferiore? Se la distanza è di circa mezzo metro con l'I2C dovresti farcela.

astrobeed


Riguardo agli Xbee cercando in rete mi è sembrato che anche qui serve per forza un coordinatore ma in questo sistema potrebbe non esserci (dipende se uno compra tutto il sistema subito) ...


Il coordinatore è uno, ma anche più di uno, dei moduli Xbee in rete, serve per gestire le comunicazioni tra i moduli.
In pratica un mesh network Xbee è composto da almeno due moduli Xbee serie 2, uno è il coordinatore e l'altro un router, puoi inserire molti altri router e altri coordinatori nella rete, tutti i moduli Xbee possono parlare tra di loro e ricevere comunicazioni broadcast, cioè quello che viene trasmesso da uno arriva a tutti gli altri.
Per il CAN ti conviene iniziare dal topic messo in evidenza sul blog di Arduino che ti avevo linkato http://arduino.cc/forum/index.php/topic,8730.0.html, li trovi anche le librerie, se opti per l'utilizzo della coppia MCP2515 (controller) e MCP2551(transceiver) praticamente hai il 95% del carico di lavoro svolto dal 2515, che in realtà è un micro preprogrammato per gestire il protocollo CAN.
Come puoi vedere nella foto del topic che ti ho linkato i due IC esistono anche in formato pdip il che ti semplifica molto la loro integrazione su una tua shield se non vuoi "combattere" con gli SMD.

Bruschetta

no intendo piano di casa :-)

conta che la vasca tecnica oltre a contenere l'attrezzatura deve anche contenere l'eventuale acqua che scende in caso di black out ... conosco persone che hanno acquari di 1000/1500 litri :-)

vi sto facendo un corso accellerato sull'acquario di barriera :-)

Bruschetta



Il coordinatore è uno, ma anche più di uno, dei moduli Xbee in rete, serve per gestire le comunicazioni tra i moduli.
In pratica un mesh network Xbee è composto da almeno due moduli Xbee serie 2, uno è il coordinatore e l'altro un router, puoi inserire molti altri router e altri coordinatori nella rete, tutti i moduli Xbee possono parlare tra di loro e ricevere comunicazioni broadcast, cioè quello che viene trasmesso da uno arriva a tutti gli altri.



Cercando su wiki:

Ci sono tre differenti tipi di dispositivo ZigBee:

-ZigBee Coordinator (ZC): è il dispositivo più "intelligente" tra quelli disponibili, costituisce la radice di una rete ZigBee e può operare da ponte tra più reti. Ci può essere un solo Coordinator in ogni rete. Esso è inoltre in grado di memorizzare informazioni riguardo alla sua rete e può agire come deposito per le chiavi di sicurezza.

-ZigBee Router (ZR): questi dispositivi agiscono come router intermedi passando i dati da e verso altri dispositivi.

-ZigBee End Device (ZED): includono solo le funzionalità minime per dialogare con il suo nodo parente (Coordinator o Router), non possono trasmettere dati provenienti da altri dispositivi; sono i nodi che richiedono il minor quantitativo di memoria e quindi risultano spesso più economici rispetto ai ZR o ai ZC.

Bruschetta



Per il CAN ti conviene iniziare dal topic messo in evidenza sul blog di Arduino che ti avevo linkato http://arduino.cc/forum/index.php/topic,8730.0.html, li trovi anche le librerie, se opti per l'utilizzo della coppia MCP2515 (controller) e MCP2551(transceiver) praticamente hai il 95% del carico di lavoro svolto dal 2515, che in realtà è un micro preprogrammato per gestire il protocollo CAN.
Come puoi vedere nella foto del topic che ti ho linkato i due IC esistono anche in formato pdip il che ti semplifica molto la loro integrazione su una tua shield se non vuoi "combattere" con gli SMD.



provo a dargli un'occhiata anche se l'inglese lo mastico mooolto poco :-(

astrobeed


Ci sono tre differenti tipi di dispositivo ZigBee:


Gli Xbee consentono di utilizzare reti con più coordinatori, estendono le possibilità del protocollo Zigbee e non sono dei moduli Zigbee generici.



Bruschetta



Ci sono tre differenti tipi di dispositivo ZigBee:


Gli Xbee consentono di utilizzare reti con più coordinatori, estendono le possibilità del protocollo Zigbee e non sono dei moduli Zigbee generici.





quindi alla fine che cosa mi consiglieresti tu tra il can e zigbee (con l'utilizzo degli xbee) ... forse il can è più economico ...

astrobeed


quindi alla fine che cosa mi consiglieresti tu tra il can e zigbee (con l'utilizzo degli xbee) ... forse il can è più economico ...


Sicuramente il CAN, costa molto di meno (la coppia 2515+2551 costa circa 3.5 Euro) e hai meno problemi con il software, gli Xbee non sono semplici da gestire in modalità API (Mesh Network), poi c'è il fattore velocità di trasmissione che sugli Xbee è abbastanza limitato, banda reale 80 kbps, mentre sul CAN viaggi senza problemi a velocità altissime, non ultimo il fattore sicurezza offerto dal cavo.


Bruschetta

ok mi hai convinto ... can ... :-) ... questa sera vedo di capire il funzionamento delle librerie ... se ho problemi mi puoi dare una mano?

grazie e ciao

Go Up