Manuale d’uso - MCM260X - 109
11.a CAN Application Layer (CAL)
COB-ID Descrizione
0 Servizi NMT start/stop
1..220 CMS priorità oggetto 0
221..440 CMS priorità oggetto 1
441..660 CMS priorità oggetto 2
661..880 CMS priorità oggetto 3
881..1100 CMS priorità oggetto 4
1101..1320 CMS priorità oggetto 5
1321..1540 CMS priorità oggetto 6
1541..1760 CMS priorità oggetto 7
1761..2015 NMT Node Guarding
2016..2031 Servizi NMT, LMT, DBT
CAL non definisce il contenuto degli oggetti CMS, definisce come, ma non cosa. CANopen fornisce
un’implementazione di un controllo di sistema distribuito usando servizi e protocolli CAL.
11.1 Object Dictionary
L’Object dictionary è fondamentale per un dispositivo CANopen. Tutti i dati e le informazioni
riguardanti la configurazione sono salvati in esso. È un gruppo ordinato di oggetti, dove ognuno è
indirizzato da un ID a 16 bit. L’object dictionary è diviso in 3 aree, dove ciascun area è rappresentata da
una tabella che ne elenca tutti gli oggetti:
Communication Profile Area (Indirizzi 0x1000-0x1FFF): contiene tutti i parametri fondamentali per la
comunicazione ed è comune per tutti i dispositivi CANopen.
Manufacturer Specific Profile Area (Indirizzi 0x2000-0x5FFF): in quest’area ogni produttore può
implementare le proprie specifiche funzionalità.
Standardized Device Profile Area (Indirizzi 0x6000-0x9FFF): definisce le modalità di trasmissione/
ricezione di ingressi/uscite. E’ definita dallo standard DS-401 (Device Profile per dispositivi I/O)
Nell’object dictionary è usato uno schema di indirizzamento per accedere ai parametri, alla
comunicazione, alle funzioni ed ai dati del dispositivo. Ogni indirizzo è definito da un numero da 16 bit
che indica l’indirizzo di riga della tabella. Sono permessi fino a 65536 indirizzi.
Se un oggetto è composto di più elementi, sono identificati da dei sotto-indirizzi (chiamati sub-index).
Ogni sub-index identifica quindi l’indirizzo colonna dell’oggeto, per un massimo di 256 sotto-indirizzi.
Se l’indirizzo corrisponde a variabili semplici (8bit senza segno, 16bit senza segno, ecc.), il sub-index
sarà sempre 0. Per gli altri oggetti, come array, record, ecc. sub-index 0 indicherà il numero massimo
di sub-index dell’oggetto.
I dati sono codificati nei seguenti sub-index:
• nome dell’oggetto descrivente le funzioni
• un attributo che indica il tipo di dato
• un attributo di accesso: sola lettura, sola scrittura, lettura/scrittura