Gilgamesh-151 Inserito: 12 giugno 2017 Segnala Share Inserito: 12 giugno 2017 Buongiorno a tutti, Non riesco a trovare dai fornitori di materiale elettronico (RS, Digikey, Mouser, ecc) una presa con un interruttore di inserzione, e ci sto diventando matto. Ma andiamo in ordine, per focalizzare bene il problema: Sto ideando e costruendo un sistema modulare, e se va bene non escludo di passare alla produzione su piccola scala. i vari moduli comunicano tra di loro tramite RS 485, protocollo modbus, su piccole distanze (max 100mt). Ogni modulo ha un paio di microcontrollori dedicati a questo scopo (propeller, no arduino), e, anche se ancora materialmente non ho costruito e provato questa parte non credo ci siano problemi. Il problema è che per una corretta trasmissione la linea rs485 necessita di una resistenza di terminazione, e se il progetto passa alla fase di produzione ogni utente può collegare qualsiasi modulo in qualsiasi punto. Per questo lascerei in ogni modulo un ingresso e un'uscita rs485, in modo che l'utente può collegare i moduli solo in cascata uno dietro all'altro. Ma l'ultimo modulo che l'utente collega deve avere la resistenza di terminazione, per cui avrei pensato che la presa di uscita di ogni modulo avesse un interruttore NC che inserisse la resistenza qualora non vi sia il connettore di uscita inserito. Semplice e efficace (?), ma per far questo mi serve una presa, di qualunque tipo purchè economica, che possa andare bene per una linea RS485 full duplex e che abbia questo fatidico interruttore (come per i jack e le vecchie prese Din). Mi andrebbe bene anche un tipo di presa non standard o canonica per la rs485... qualcuno conosce qualcosa? Grazie in anticipo.. Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 12 giugno 2017 Segnala Share Inserita: 12 giugno 2017 Quote andare bene per una linea RS485 full duplex Il protocollo elettrico RS485 non è full duplex ma half duplex; se vuoi avere un full duplex devi usare il protocollo elettrico RS422 che ha 4 fili e non 2. In entrambi i casi le linee vanno terminate sulle stazioni terminali, quindi per la RS422 i resistori sono 4 e non 2. Purtroppo sino ad oggi nessuno ha pensato di fare connettori del tipo che ti servirebboro, anche per reali problemi meccanici che porterebbero i costi di simili connettori a livelli esagerati. Credo che tu debba rassegnarti alla soluzione usuale: jumpers o dip switches Link al commento Condividi su altri siti More sharing options...
Gilgamesh-151 Inserita: 13 giugno 2017 Autore Segnala Share Inserita: 13 giugno 2017 Grazie per la risposta. Mi dispiace che non esistano prese con interruttore, magari qualcun altro ne ha sentito parlare? Non volevo innescare la solita discussione tra rs485 e rs422, scrivendo full duplex pensavo solo ai 4 fili, e non alla differenza dei protocolli. Concordo comunque che non dovevo scrivere full duplex. Ho detto che userò modbus: modbus a quanto ne so io è un protocollo esclusivamente half duplex. Ho detto che avrei usato RS 485: e questo è un protocollo elettrico esclusivamente half duplex. Quindi sarà tutto half duplex. Un solo master e diversi slaves, senza necessità di velocità. Pensavo di usare 4 fili al posto di 2, come in esempio nell’immagine: ho visto che questa configurazione viene adottata da molti, e ci sono integrati che a questo scopo supportano la divisione tra trasmettitore e ricevitore. Nulla volendo togliere alla bontà e funzionalità della connessione “canonica” RS485 con 2 fili, vorrei fare un paio di considerazioni MIE PERSONALI che al momento mi portano a cablare 4 fili al posto di 2: 2 fili: tutti sentono tutto il traffico: gli slaves ricevono non solo comandi dal master ma anche possono sentire ogni risposta da tutti gli altri slaves, e tutti possono anche sentirsi parlare. 4 fili: resta una rs485 con le sue caratteristiche elettriche, ma separata nelle linee trasmissione e ricezione: su una linea trasmette solo il master, e gli slaves ascoltano e basta. Sull’altra il master ascolta solo quello che trasmettono gli slaves. 2 fili: Si può generare confusione se i dispositivi collegati, per errore, trasmettono più di uno alla volta (magari per un disturbo esterno uno slave interpreta erroneamente la risposta di un altro slave come comando da parte del master a rispondere). Chiaramente esiste il CRC per verificare, e si spera che il master sia in grado di ripristinare la corretta comunicazione (personalmente non so come, dovrei pensarci). 4 fili: se i dispositivi collegati, per errore, trasmettono come sopra più di uno alla volta o generano confusione, il master può mandare a tutti sul suo canale inequivocabile e in modo chiaro il comando “fermi tutti! Si ricomincia”. In aggiunta la configurazione a 4 fili, a quanto letto, dovrebbe ridurre gli echi sulla linea, e offrirmi la possibilità di un miglior monitoraggio e dubugging. Insomma, mi limito a cablare 2 fili in più, senza toccare altro. Controindicazioni? Consigli? Saluti.. Per Livio: Wikipedia riporta: "EIA RS-485, come l'EIA RS-422 può essere resa full-duplex utilizzando quattro fili (due doppini)". Se vuoi provare a cambiare quella pagina il link è https://it.wikipedia.org/wiki/EIA_RS-485 Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 13 giugno 2017 Segnala Share Inserita: 13 giugno 2017 Premesso che wikipedia non è infallibile, il protocollo elettrico differenziale full duplex a 4 fili è codificato come RS422, questo secondo gli standard riconosciuti. Poi uno è libero di chiamarlo RS485 a 4 fili. Il protocollo elettrico RS485, avendo ununico doppino per trasmissione e ricezione, necessita di un segnale che abiliti alla trasmissione. Se si usano 2 doppini distinti per trasmissione e ricezione non è più necessaria la scelta tra trasmissione e ricezione, ma è necessario un protocollo Sw che stabilisce chi ha diritto di trasmettere. La terminazione differenziale non è il massimo meglio, molto meglio, la terminazione in modo comune con 2 resistori. C'è una bellissima AN della TI, che ho archiviato sia in forma cartacea che in forma elettronica ma che ora non riesco a reperire, che tratta l'argomento in modo approfondito. Link al commento Condividi su altri siti More sharing options...
Gilgamesh-151 Inserita: 14 giugno 2017 Autore Segnala Share Inserita: 14 giugno 2017 Quote La terminazione differenziale non è il massimo meglio, molto meglio, la terminazione in modo comune con 2 resistori. Si, avevo visto molti tipi di terminazioni, sia a 1 semplice resistore, sia a 2, sia a 2 in serie con condensatore centrale verso massa, a 3 resistori... ogni metodo con i suoi pro e contro. Avevo iniziato a documentarmi sul metodo migliore per il mio caso, e ho scoperto inaspettatamente che la terminazione (come la schermatura) non è da sottovalutare e che spesso può decidere sul buono o cattivo funzionamento delle trasmissioni. inserisco qualche link a documenti che ho trovato interessanti, che trattano di terminazioni, schermature, metodologie di connessioni elettriche. Magari potrebbero esere utili a qualcuno, se non altro come partenza per poi approfondire.. magari la tua AN è una di queste... The RS-485 Design Guide - AN (application note) della TI (Texas Instruments) - pdf - abbastanza pratico, approfondisce le terminazioni RS-422 and RS-485 Standards Overview and System Configurations - AN TI - pdf - un pò più teorico ma approfondisce le terminazioni AN-1057 Ten Ways to Bulletproof RS-485 Interfaces - AN TI - pdf - letteralmente: 10 modi per blindare l'interfaccia RS485 How to Properly Configure and Wire RS-422 and RS-485 Networks - articolo web interessante, consigli su schermatura Basics of RS-422 and RS-485 Communications - panoramica su differenze pratiche tra RS485 e RS422 Saluti! dimenticavo la più interessante: AN-903 A Comparison of Differential TerminationTechniques Link al commento Condividi su altri siti More sharing options...
Livio Orsini Inserita: 14 giugno 2017 Segnala Share Inserita: 14 giugno 2017 No quella cui faccio riferimento io è spcialistica per la protezione EMC delle linee RS485-RS422 Link al commento Condividi su altri siti More sharing options...
NoNickName Inserita: 15 giugno 2017 Segnala Share Inserita: 15 giugno 2017 Se può essere utile, visto che stai anche progettando l'hardware, noi abbiamo implementato l'inserimento della resistenza di terminazione come comando modbus. Tramite un registro coil, possiamo attivare o disattivare un pin del micro che inserisce o disinserisce la resistenza di terminazione. Link al commento Condividi su altri siti More sharing options...
Gilgamesh-151 Inserita: 16 giugno 2017 Autore Segnala Share Inserita: 16 giugno 2017 Quote noi abbiamo implementato l'inserimento della resistenza di terminazione come comando modbus Metodo interessante, non per il mio caso ma, a mia idea, per permettere al master di variare la resistenza di terminazione, o il filtro rc di terminazione, o le resistenze di precaricamento (BIAS), quando lo stesso master riscontra problemi sulla linea. Utile per un cablaggio a stella, per il mio caso (in serie) come dicevo non va bene, in quanto se l’ultimo slave della linea si spenge o si guasta o rimane senza alimentazione, la linea resta senza terminazione. Avevo trovato uno spunto - schema di interfaccia rs485 con terminazione automatica, che riporto a mò di cronaca: Usando cavi con una coppia in cortocircuito, il circuito riconosce sia la presenza di cavo in ingresso inserito ( e lo comunica al processore), sia di cavo di uscita inserito (in questo caso attiva un interruttore analogico per inserire la resistenza di terminazione). Stesso discorso: se il circuito non è alimentato niente resistenza di terminazione, e la linea diventa un bel dipolo per ascoltare radio EMI international, con le sue tante emittenti cinesi). In verità avevo pensato ad un circuito simile, con la differenza che lo slave successivo (contando dal master) inviava su un doppino dedicato del cavo una tensione che arrivando allo slave precedente disattivava la sua resistenza di terminazione. L’ultimo slave, non avendo a valle altri slaves che gli mandassero questa tensione, avrebbe lasciato inserita la sua resistenza. Ma anche qui c’è il problema della mancanza di alimentazione o di guasto di uno slave: in questo caso è vero che il precedente inserisce automaticamente la sua resistenza di terminazione, ma tutta la linea da quello slave precedente in poi resta senza terminazione… bell’antennona! Non esistendo, a mia conoscenza, interruttori digitali che siano NC anche senza tensione di alimentazione, la faccenda poteva essere risolta con i “vecchi” relais elettromeccanici con contatti NC. Avrebbe funzionato, fino a quando funzionavano i relais. Ma sperare nella loro eternità e lasciarli eccitati per “sempre” mi sembra una soluzione davvero poco elegante. Per questo ho pensato alla presa con interruttore, semplice e sicura: se è inserito un cavo in uscita disattiva meccanicamente (perciò alimentazione o no) la resistenza del modulo. Bastava non lasciare cavi scollegati, certo. La brutta notizia che nessuno ha visto queste prese mi fa decidere per la soluzione un po’ meno a prova di stupido, ma eficace: il master con una sola presa femmina di uscita. Ogni slave con una presa di ingresso maschio e di uscita femmina. Tutti i cavi con terminazione maschio-femmina. Un terminale di linea composta da una spina femmina con all’interno cablata la resistenza di terminazione, filtri e/o BIAS. E la raccomandazione perentoria di non lasciare mai nessuna presa vuota. Dovrebbe funzionare, e magari permettere anche di avere vari tipi di spine terminali con all’interno tipi o valori diversi di terminazione di linea, da provare empiricamente. Grazie a tutti, Guglielmo Link al commento Condividi su altri siti More sharing options...
Messaggi consigliati
Crea un account o accedi per commentare
Devi essere un utente per poter lasciare un commento
Crea un account
Registrati per un nuovo account nella nostra comunità. è facile!
Registra un nuovo accountAccedi
Hai già un account? Accedi qui.
Accedi ora