4 Arduino Master Slave in RS485

Ciao a tutti.

Intervengo nella discussione per affrontare con voi un aspetto dell'architettura proposta che mi pare più problematico del protocollo di comunicazione. Naturalmente non voglio confondere le idee a peppe91 per cui se volete, possiamo aprire un thread a parte oppure rimandare la questione a quando peppe91 avrà dissipato i suoi dubbi. Per il momento mi limito ad esporre la cosa.

In una installazione reale, oltre al master ci potranno essere numerosi slaves (diciamo fino a circa 250). Il master è l'oggetto sul quale gira la logica di controllo, gli slaves fanno invece da sensori (pulsanti, termometri, igrometri, sensori di luminosità...) o da attuatori (relè, dimmer...) o magari da entrambe le cose insieme.

Il master è l'unico che può avviare una comunicazione verso uno slave; quest'ultimo si limita a rispodere quando interrogato. In questo modo si evitano collisioni sulla linea che sono la ragione per cui si ricorre all'architettura master/slave. Questo però vuol dire che il master deve ciclicamente interrogare gli slaves per conoscere il loro stato ed eventualmente per comandare una o più attuazioni in caso di necessità.

Per esempio, l'utente preme un pulsante sullo slave 1; il master comanda la chiusura di un relè sullo slave 2 e di un relè sullo slave 5 (accensione di due lampade diverse, per esempio).

Tutto questo però dovrebbe avvenire in tempi brevissimi per garantire una reattività del sistema accettabile. D'altro canto però se il master impiegasse anche solo 10ms per interrogare ogni slave (e mi sembrano davvero pochi dato che bisognerebbe comunque concedere un certo timeout allo slave per rispondere), l'interrogazione di tutti gli slaves richiederebbe 2,5 secondi (ovviamente nel caso peggiore in cui ci siano davvero 250 slaves sulla rete). Questo tempo mi pare inaccettabile per un utente che potrebbe vedere le luci accendersi con un ritardo considerevole.

Accenno ad una possibile soluzione: gli slaves hanno priorità diversa, cioè alcuni vengono interrogati più spesso di altri. Un esempio: lo slave con i pulsanti deve essere interrogato molto più spesso di uno slave che fa da termometro. Anche così però mi pare che i tempi siano troppo stretti.

Cosa ve ne pare? Mi sfugge qualcosa?

Ciao.
Vittorio.