Domanda

  1. È probabile che la scheda di interfaccia CAN sia installata come porta COM?

  2. Come posso suddividere un messaggio da inviare come frame separati? Che dire dell'assemblaggio di dati da più frame ricevuti in un messaggio? È una preoccupazione valida?

  3. Che cos'è lo stack CANopen? Se ho già un'API per comunicare con le porte seriali, posso fare in modo che il mio programma legga / invii messaggi CANopen senza lo stack CANopen? Cosa deve fare esattamente il mio programma?

  4. Qual è il modo ideale / corretto di implementare il dizionario degli oggetti (OD) nel software?

(Situazione attuale: devo scrivere un programma Java per interpretare i messaggi CANopen. A causa di determinate circostanze, non riesco a mettere le mani sull'hardware CAN.)

(Questa è la continuazione della serie di domande Stack & nbsp; Overflow che ho pubblicato la scorsa settimana a Java e CANopen ).

È stato utile?

Soluzione

  1. Dipende dalla scheda di interfaccia. Ma molto probabilmente, non sarà una porta COM, ma otterrai un file DLL che ha esportato funzioni per accedere alla scheda (la maggior parte delle interfacce CAN disponibili sono collegate tramite la porta USB al tuo PC). Ma non preoccuparti: anche se non è uno standard ufficiale, la maggior parte di quei file DLL utilizza le stesse funzioni in modo da poter scambiare la tua interfaccia CAN con un'altra di un altro produttore senza problemi.

  2. È molto raro inviare così tanti dati sul bus CAN che devi dividerli in più frame. Ma se assolutamente devi, allora devi farlo da solo.

  3. Uno stack CANopen è una libreria che fornisce funzioni di livello superiore da utilizzare. Si prende cura di tutto ciò che CANopen richiede (ad es. Battito cardiaco), quindi non devi farlo da solo. Un buon stack si occupa anche di più frame (2). Sfortunatamente, tali stack non sono disponibili a buon mercato, ma ne vale la pena.

  4. La maggior parte delle implementazioni utilizza una struttura, sia nella ROM che nella RAM, a seconda che il OD possa essere modificato o meno. Ma un buon stack CANopen si occupa anche di questo per te.

Altri suggerimenti

3) Mentre uno stack CANopen commerciale è sicuramente una buona idea, è ancora possibile leggere / inviare messaggi CANopen senza usarne uno.

Non sappiamo quale sia lo scopo della tua applicazione. Ma un esempio in cui probabilmente andresti bene senza uno stack CANopen è se hai già un bus CANopen funzionante con nodi master e slave e vuoi solo ascoltare un particolare messaggio. Un altro esempio potrebbe essere se si sta scrivendo una piccola configurazione o un'utilità di test con un set di messaggi piccolo e ben definito utilizzato. In tali casi uno stack CANopen commerciale completo può essere eccessivo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top