Misuratore lunghezza cavi (TDR)

Ciao a tutti, vorrei realizzare un misuratore di lunghezza per cavi elettrici/telefonici/lan; l'idea di base è quella di inviare un onda quadra con ampiezza p.p. di 4-5 volt e periodo nell'ordine delle decine di nanosecondi. Sapete se è una cosa fattibile con Arduino oppure se qualcuno ci sta lavorando o c'è già riuscito?

Premetto che sono abbastanza novizio su Arduino :frowning:

Un grazie anticipato a tutti coloro che vorranno rispondere.

Gabriele

gabriello:
Ciao a tutti, vorrei realizzare un misuratore di lunghezza per cavi elettrici/telefonici/lan; l'idea di base è quella di inviare un onda quadra con ampiezza p.p. di 4-5 volt e periodo nell'ordine delle decine di nanosecondi. Sapete se è una cosa fattibile con Arduino oppure se qualcuno ci sta lavorando o c'è già riuscito?

Con solo Arduino non è fattibile, devi aggiungere molto, ma molto, hardware esterno, in pratica tutto il misuratore e Arduino fa solo da elemento di controllo e visualizzazione.

Domandina: perchè hai scritto su Megatopic?

Per il misuratore hai qualche suggerimento?

astrobeed:

gabriello:
Ciao a tutti, vorrei realizzare un misuratore di lunghezza per cavi elettrici/telefonici/lan; l'idea di base è quella di inviare un onda quadra con ampiezza p.p. di 4-5 volt e periodo nell'ordine delle decine di nanosecondi. Sapete se è una cosa fattibile con Arduino oppure se qualcuno ci sta lavorando o c'è già riuscito?

Con solo Arduino non è fattibile, devi aggiungere molto, ma molto, hardware esterno, in pratica tutto il misuratore e Arduino fa solo da elemento di controllo e visualizzazione.

Se, come sembra, intendi realizzare un misuratore di lunghezza che si basa sulla riflessione di frequenza, non lo puoi fare ... non e' che sia impossibile, ma a parte la complicazione circuitale, dovresti anche conoscere in anticipo tutti i parametri del cavo ... diametri, sezioni, numero dei conduttori, tipo e caratteristiche dielettriche degli isolamenti, influenza delle schermature (se presenti) sui parametri generali del cavo, ecc ... ed inoltre, un cavo avvolto darebbe misure diverse da un cavo teso, diverse da un cavo ammucchiato per terra, ecc ...

In alternativa, ma solo con approssimazione, potresti usare un sistema del genere con rocche di cavi tutte identiche, avendo un campione ... ad esempio, hai tot rocche di cavi tutte dello stesso diametro e tutte avvolte nello stesso modo, ed avendone una che e' esattamente una misura conosciuta (esempio, esattamente 100m), potresti usarla come lettura campione e poi controllare tutte le altre per vedere se sono uguali ... ma anche cosi, avresti comunque un errore impredicibile ...

I parametri costruttivi dei vari tipi di cavi da testare li conosco, la sola incognita è la lunghezza. Dallo studio dell'onda riflessa (tramite operazioni di derivata prima e derivata seconda - se ho letto bene la teoria della riflettometria) si può sapere se il cavo è interrotto o in corto circuito ed anche a quale distanza dal punto di misura.

La teoria e', appunto, teoria :wink: ... tu parli di spedire impulsi di nanosecondi (quindi sul GHz) in un cavo del quale, probabilmente, ignori il posizionamento (suppongo, non siano spezzoni di cavo teso in aria) ... immagino tu sappia che a quelle frequenze, una curva nel cavo, un'angolo, anche un pezzo di filo teso in parte ad un'altro, sono induttanze ed accoppiamenti induttivi, giusto ? (ricordo alcuni circuiti in cui come accoppiamenti fra uno stadio e l'altro si usavano un paio di cm di filo isolato, avvolti ma non elettricamente collegati ... o spezzoni di filo rigido da 3cm affiancati ad 1mm di distanza :P)

Facciamo un'esempio, tu citi il doppino telefonico ... se spedisci impulsi sul GHz in un doppino telefonico twistato, con isolamento da 300V e portata in frequenza di qualche centinaio di KHz, quanti metri pensi che fara' il tuo segnale, prima di essere talmente attenuato e disperso da risultare inutilizzabile ? :wink:

Limitando la lunghezza, e quindi la portata dello strumento, tra 20 e 2000 metri. Pensi possa essere fattibile?

quale incertezza massima è tollerabile?
cmq facendo due calcoli:ipotizziamo che il segnale di solito fa 200.000.000m/s(poi dipende da molti fattori)
l'arduino gira a 16 mhz,quindi nel caso ipotetico potesse fare una rilevazione a ogni clock,la risoluzione massima sarebbe di 200 000 000 / 16 000 000=12.5 metri(cioè 6 metri,dato che il filo vien percorso due volte..ora no so la frequenza di aggiornamenti dell'input digitale al secondo,ma cmq direi che fatichi a scendere a una precisione di 60m,e se veramente ti impegni(sfruttando x esempio riflessi multipli e co,ottima conoscenza del canale),stai sui 20m,più altre incertezze relative,e cmq probab ti conviene divertirti con l'assembler(almeno parzialmente)..le mie considerazioni son molto campate in aria..secondo me hai bisogno di apparecchiature a frequanza più alta..

Etemenanki:
La teoria e', appunto, teoria :wink: ... tu parli di spedire impulsi di nanosecondi (quindi sul GHz) in un cavo del quale, probabilmente, ignori il posizionamento (suppongo, non siano spezzoni di cavo teso in aria) ... immagino tu sappia che a quelle frequenze, una curva nel cavo, un'angolo, anche un pezzo di filo teso in parte ad un'altro, sono induttanze ed accoppiamenti induttivi, giusto ? (ricordo alcuni circuiti in cui come accoppiamenti fra uno stadio e l'altro si usavano un paio di cm di filo isolato, avvolti ma non elettricamente collegati ... o spezzoni di filo rigido da 3cm affiancati ad 1mm di distanza :P)
...

In realtà la cosa è perfettamente fattibile, solo ... NON con un Arduino ... XD XD XD

Ho usato per molti anni (... e, all'occorrenza, ancora uso), per certificare reti LAN, questo strumento : http://www.aaatesters.com/LANTEK_PRO_XL-Wavetek_LANTEK_PRO_XL_1300nm_Cat5_Cable_Certifier_1.html che fa esattamente (... più tante altre belle cose) quello che vorrebbe fare gabriello ... solo che il costo è quello di un VERO strumento di misura :wink:

Guglielmo

niente..ripensandoci,usare le entrate digitali(con un partitore di tensione sull'ingresso x avere H solo al rimbalzo) non è il massimo..e la frequenza dell'ADC,anche truschinando,non è soddisfacente..con la beagle bone potresti avere prestazioni simili a quelle da me descritte sopra(forse)..l'ideale sarebbe avere un processore >500Mhz(meglio 1 ghz) e un adc di almeno 100mhz,anche se non è di alta risoluzione(flash dovrebbe andare più che bene)..e avere molta voglia di sbattersi :slight_smile:

forse però si può usare un arduino due..di cui però non son pratico..se è capace di cambiare gli ingressi-uscite digitali a ogni clock(o ogni due),si potrebbero mandare onde quadre a varie frequenza,e studiare x quali frequenze ci sono/non ci "pozzi" alla terminazione..(es. se la lunghezza della parte alta è uguale alla lunghezza del canale,o multiplo,non dovresti avere pressoche variazioni di tensione sulla terminazione)..una volta trovata la lunghezza(a tentativi),aumenti la precisione usando prima una frequanza doppia,poi quadrupla,etc...non so se funziona,è una mia idea..

ho visto che c'è un paper qui http://www.ipc.org/4.0_Knowledge/4.1_Standards/test/2-5_2-5-5-11.pdf
e qualcosa qua http://www.cprl.ars.usda.gov/pdfs/IAEAEVET.PDF

c'è già, sia per rame che ottico... serve per sapere interruzioni, cc ed altro

Nuova Elettronica nel 2008 presentò un piccolo circuito che riusciva a generare un impulso da 20 a 120 ns necessario per il TDR, usando poi l'oscilloscopio per determinare il ritardo e fase dell'eventuale onda riflessa.

Il problema, perciò, è misurare il ritardo e questo non può essere fatto direttamente da Arduino: alla partenza dell'impulso dovrebbe partire un contatore con un clock di almeno 4 volte la frequenza da leggere (diciamo un 50 ns = 20 MHz cioè 80MHz)

Sembrerebbe che la DUE sia un buon candidato, se non altro per la sperimentazione.

Ciao, avresti qualche indicazione per recuperare il circuito proposto da Nuova Elettronica a cui ti riferisci?

Grazie, gabriele.

cyberhs:
Nuova Elettronica nel 2008 presentò un piccolo circuito che riusciva a generare un impulso da 20 a 120 ns necessario per il TDR, usando poi l'oscilloscopio per determinare il ritardo e fase dell'eventuale onda riflessa.

Il problema, perciò, è misurare il ritardo e questo non può essere fatto direttamente da Arduino: alla partenza dell'impulso dovrebbe partire un contatore con un clock di almeno 4 volte la frequenza da leggere (diciamo un 50 ns = 20 MHz cioè 80MHz)

Sembrerebbe che la DUE sia un buon candidato, se non altro per la sperimentazione.

La rivista è la n° 234 e puoi richiedere l'arretrato ed il circuito sul sito www.nuovaelettronica.it

Se hai difficoltà posso eventualmente riprodurre il solo schema, ma ti consiglio di comprare l'arretrato che è molto interessante.

se conosci la sezione dei cavi , cortocircuiti i 2 fili al termine del cavo , nessuna alimentazione sul cavo e nessun carico , con un generatore a corrente costante su 1 ampere alimenti il cavo , misuri la caduta di tensione sul cavo V, la lunghezza in metri è data da:

(V x sezione_cavo) / (2 x 0.017) = lunghezza_metri

0.017 è la resistività del rame
2 è perchè ci sono 2 fili (andata e ritorno)

non sarà estremamente precisa a motivo della temperatura ma se stai poco tempo sei a posto , se invece di 1Amp fornisci 0.1A devi moltiplicare il tutto per 10

se conosci la sezione dei cavi , cortocircuiti i 2 fili al termine del cavo , nessuna alimentazione sul cavo e nessun carico , con un generatore a corrente costante su 1 ampere alimenti il cavo , misuri la caduta di tensione sul cavo V, la lunghezza in metri è data da:

Non hai, però, considerato che il cavo possa essere interrotto in qualche punto.

Il TDR serve a sapere anche dov'è l'interruzione.

Sì, è vero cyberhs, non rileva il circuito aperto ma solo i cortocircuiti

FYI: TDR prototype

Post #9:
http://forum.arduino.cc/index.php?topic=183770.msg1365676#msg1365676