ANTI-COLLISIONI SUI BUS SERIALI

Salve,

c'è qualcuno che mi può aiutare a trovare una soluzione per gestire via software le possibili collisioni nel trasferimento di dati fra periferiche collegate ad un stesso bus?

Per essere più preciso: devo gestire in remoto tramite una seriale tipo RS485 (con dei PIC), circa 20 alimentatori più altre 8 periferiche. Per vari motivi, che ora non stò ad elencare, non devo vincolarmi ad un sistema gestito da una periferica Master ma devo lasciare ad ognuno la possibilità di scaricare dati sul bus in maniera asincrona: da qui l'esigenza di trasmettere solo quando la linea è libera dovendo però accorgermi se si sono verificati conflitti dovuti al fatto che più periferiche trasmettono contemporaneamente. Io qualche idea me la sono fatta, ma vorrei confrontarla con qualcuno che ne sà più di mè.

Grazie

Claudio

Reply to
Salomon Claudio
Loading thread data ...

E' una delle prime problematiche che si affrontano nelle reti di calcolatori. Il primo e piu' semplice modo di arbitrare le collisioni e' il cosiddetto "aloha" che consiste semplicemente nel mettere alla fine di ogni pacchetto un buon checksum (CRC16 minimo, meglio CRC32) e lasciare che le collisioni avvengano. In tal caso i device in ascolto riceveranno porcherie e scarteranno i dati in arrivo. Se ti serve qualcosa di meglio se ne puo' parlare, ma senza hardware specifico le soluzioni migliori sono impraticabili.

Reply to
Blade

Bisogna avere una idea del numero dei messaggi per unita` di tempo, la loro lunghezza, la velocita` di trasmissione e la lunghezza della rete.

Gli ultimi due parametri servono per sapere se i bit sono "piu` lunghi" o piu` corti del bus.

--

Franco

Derzeit keine Unterschrift verfügbar.
Reply to
Franco

Mah, o il CRC finale e li lasci collidere o un piccolo master/bus arbiter che mette ordine e di volta in volta abilita le periferiche a tranmettere...

Oppure una bella rete ad anello in cui l'uscita di una periferiche è collegata all'ingresso dell'altra. In questa maniera ogni periferica ritrasmette il dato della precedente e sa quando può inserirsi...

Comunque io taglierei la testa al toro e metterei un piccolo arbitro sulla linea, sarebbe più ordinato di un collider (INFN?)...

"Salomon Claudio" ha scritto nel messaggio news:cp20ts$14n$ snipped-for-privacy@newsfeed.cineca.it...

ne

Reply to
Mirobaldo

Io più semplicemente adotterei la tecnica usata sul bus di sistema delle main board dei computer(reminiscenze di calcolatori elettronici) una linea del bus viene posta ad 1 da chi trasmette così gli altri si accorgono che il canale è occupato e aspettano un tempo arbitrario. Quando finisce la trasmissione lo riporta a 0.

tranmettere...

periferiche

che

Reply to
Michele

La RS485 ha una sola linea se half duplex o 2 se full duplex. Ma per multipoint di solto si usa half duplex, mi sa che non si può fare.

ciao Stefano

Reply to
SB

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.