CANOpen: supporto fisico

Salve NG,

devo mettere le mani su una apparecchiatura che comunica in CANOpen. Purtroppo io ho esperienza solo di MODbus dove la comunicazione avviene mediante rs485. Il protocollo CANOpen lavora sempre sulla rs485 o è una roba a parte?

Grazie, Nicola.

--
chi va pian va san e va lontan
Reply to
NicoKid
Loading thread data ...

Il 15/04/2011 11:55, NicoKid ha scritto:

Il CANopen implementa i livelli a partire da quello di rete. Per cui sotto non è roba sua. Spesso il livello fisico è basato sul CAN (che non è una 485/422) ma potrebbe essere altro.

Marco

Reply to
Marco Trapanese

NicoKid:

Sì, il protocollo elettrico è assai simile a quello RS 485, con un'importante differenza: vengono trasmessi solo gli zeri (detti bit dominanti), mente gli uni non vengono trasmessi. In pratica il trasmettitore avrà la linea dati inchiodata a zero e la trasmissione viene effettuata attraverso il pin di enable.

Reply to
F. Bertolazzi

D' accordo, che il canopen è un livello più alto. Allora la domanda potrebbe essere: il livello fisico rs485 è compatibile con il livello fisico CAN (su cui si appoggia canopen)? In entrambi i casi si usa un doppino (per l'rs485 a 2 fili) ma le tensioni sono le stesse?

Non mi sembra che il canopen possa viaggiare su roba fisica diversa dal CAN. O si? Scusate ma sono un po' scarsino su questi argomenti :)

Grazie, Nicola.

--
chi va pian va san e va lontan
Reply to
NicoKid

Il 15/04/2011 17:16, NicoKid ha scritto:

No. Bertolazzi ha spiegato le differenze.

Qui:

formatting link

Si parla ad esempio anche di Ethernet Powerlink e EtherCAT.

Marco

Reply to
Marco Trapanese

Uhmm, non le ho capite. Infatti stavo ancora cercando di comprendere il suo post :O

Già primo posto dove ho guardato, ma non ho trovato riferimenti di tipo "elettrico" sul canopen. Mi stò documentando qua:

formatting link

qualcosa qui' c'è, devo leggere bene la pagina.

Ah, già hai ragione. Nel mio caso però ho un doppino, quindi credo sia il normale CanOpen su Canbus.

Grazie, Nicola.

--
chi va pian va san e va lontan
Reply to
NicoKid

Il 15/04/2011 19:38, NicoKid ha scritto:

Cosa non è chiaro? Prendi il classico LTC485. Metti il DI a 0V e trasmetti utilizzando il DE/RE. In pratica alterni lo stato di alta impedenza (bit recessivo) con la trasmissione dello stato attivo (bit dominante).

Comunque se cerchi su internet trovi la spiegazione dettagliata.

La motivazione te l'ho spiegata prima. Se ti serve il layer fisico del CAN devi cercare documenti che trattano il CAN non il CANopen.

Esatto. Infatti al paragrafo Data transmission è spiegato il discorso dei bit dominanti/recessivi e relativa codifica fisica.

Quasi certo.

Ciao! Marco

Reply to
Marco Trapanese

Scusa ma sono un po' duro (le mie letture sulla rs485 risalgono a 10 anni fa). Ricapitolando: la faccenda del bit dominante e recessivo l'avevo letta qua:

formatting link
e mi pare abbastanza chiara: chi ha il primo bit logico a "0" vince.

In quanto al LTC485 ho riguardato il datasheet; l'uso "normale" prevede che si attivi il driver con il DE e si trasmetta con il DI, mentre per la ricezione si abilita l'RE (che poi si lascia sempre abilitato) e si riceve con RO. Quando il DE è high posso "spedire" un bit mettendo il DI a high in modo che la tensione sia A > B (maggiore di almeno 200mv mi pare).

Se lascio il DI a 0V come dici, e il DE high mi trovo B > A. Ma se metto DE a low che succede? Mi pare di aver capito che DE low e RE high si limitano ad alzare l'impedenza della linea.

Comunque se devo operare come suggerito da te, direi che non posso usare un normale convertitore rs232-rs485.

Grazie, Nicola.

--
chi va pian va san e va lontan
Reply to
NicoKid

Grazie della risposta, ti prego di leggere quello che ho risposto a Marco Trapanese. Mi devo schiarire ancora parecchie cose sulla questione.

Grazie, Nicola.

--
chi va pian va san e va lontan
Reply to
NicoKid

Il 17/04/2011 23:46, NicoKid ha scritto:

Si ma sei già alle collisioni. In realtà si stava parlando solo di come trasmettere i bit.

Se lo usi in modalità RS485 puoi più semplicemente collegare assieme il DE e l'RE.

Hai detto niente? :)

Cos'è un "normale convertitore rs232-rs485"? Non è chiaro come ti devi interfacciare a questa macchina, ma basta un driver RS485 (es. l'LTC485 già menzionato) collegato opportunamente. Ma dietro cosa c'è? Un micro?

Marco

Reply to
Marco Trapanese

Ok.

Si ma per i non competenti (come il sottoscritto) che succede? Al massimo la linea non consumerà corrente (mA) o no?

Si, scusa non mi ero spiegato bene. Io devo programmare un encoder che comunica in canopen. Quindi devo trovare il modo di attaccarmi con il PC. Data l'abbondanza che ho in casa di convertitori rs232-rs485 speravo di attaccarmi al bus CAN tramite questi.

Grazie, Nicola.

--
chi va pian va san e va lontan
Reply to
NicoKid

Il 18/04/2011 18:02, NicoKid ha scritto:

Succede che essendo in alta impedenza, la linea potrà essere "tirata giù" da qualche altro nodo.

Capito. Onestamente non mi è mai capitata una cosa del genere, ma a occhio direi che non si può fare.

Marco

Reply to
Marco Trapanese

Ah, ok comunque non ho capito come dovrei comunicare "tirando" su e giù l'impedenza della linea.

Ok, pazienza acquisterò qualche aggeggio che faccia la conversione da can bus a qualcosa_per_il_pc. Oppure mi faccio qualcosa in casa; hai qualche link a riguardo?

Grazie, Nicola.

--
chi va pian va san e va lontan
Reply to
NicoKid

NicoKid:

E' semplice: se tutti i trasmettitori sono ad alta impedenza la differenza di tensione tra le due linee di trasmissione sarà pochi millivolt, se c'è almeno un trasmettitore acceso (ovvero che sta inviando un bit dominante, ovvero uno 0) la differenza sarà di qualche volt.

Reply to
F. Bertolazzi

Uhmm, credo che prenderò in mano l'oscilloscopio e faccio delle prove.

Grazie della pazienza, Nicola

--
chi va pian va san e va lontan
Reply to
NicoKid

Ciao, il can =E8 una linea differenziale come l rs485 ma molto pi=F9 veloce e i livelli logici variano tra 0 e circa 3.5V per poter dialogare su questo bus devi usare un transceiver tipo tja1040 e un micro anche un pic va bene. Fai attenzione che il bus abbia le due resistenze da 60ohm di terminazione.

Ciao gian

Reply to
EcuBurner

Grazie per il nome del transceiver.

Nicola.

--
chi va pian va san e va lontan
Reply to
NicoKid

EcuBurner:

Sicuro? Fonte?

Reply to
F. Bertolazzi

Basta che ti leggi la normativa J1939

Reply to
EcuBurner

Un bel giorno EcuBurner digitò:

Non ricordo le specifiche in termini di margine di rumore dei due livelli fisici (e quindi la prestazione teorica che il driver deve essere in grado di raggiungere), comunque nessuno usa la CAN sopra a 1 Mbps, mentre la J1939 non supera i 500 kbps. Lo standard RS485 contempla invece velocità fin sopra ai 10 Mbps e molti costruttori hanno esteso ulteriormente questa specifica: ci sono dei driver TI che arrivano a 50 Mbps.

--
emboliaschizoide.splinder.com
Reply to
dalai lamah

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.