• Non ci sono risultati.

I comandi inviati da CANsoftware

4.2 CAN2USBinterface: una nuova interfaccia seriale

5.1.1 Struttura ed elenco dei comandi

5.1.1.1 I comandi inviati da CANsoftware

I comandi che vengono inviati dal PC al micro servono per impostare la modalit`a operativa dell’analizzatore e fissare i parametri di funzionamento

CANinterface/ MICROsoftware Personal Computer/ CANsoftware Inizializzazione COM Attesa parametri Configurazione sistema Acquisizione dati Reinizializzazione Selezione parametri Verifica connessione Disconnessione Decodifica e salvataggio messaggi Visualizzazione cmdActiveMonitor cmdAcktoAM 14byte ini_array[x] CAN messages cmdDisconnect

Comandi e dati che i due sottosistemi si scambiano Comandi e dati che i due sottosistemi si scambiano

Autobaud (bit timing parameters)

Procedura di inizializzazione

Figura 5.1: MICROsoftware: descrizione dell’handshake tra CANsoftware e MICROsoftware.

Capitolo 5. Il software di CANanalyser 132

Mnemonic Description Bin Hex

cmdActiveMonitor Attiva acquisizione dati 0000 0001 01h cmdDisconnect Disconnessione 0000 0010 02h cmdActiveSim Attiva simulazione nodo virtuale 0000 0011 03h

ini array[0] CANIDM1 (ID Mask register 1) ini array[1] CANIDM2 (ID Mask register 2) ini array[2] CANIDM3 (ID Mask register 3) ini array[3] CANIDM4 (ID Mask register 4) ini array[4] CANIDT1 (ID Tag register 1) ini array[5] CANIDT2 (ID Tag register 2) ini array[6] CANIDT3 (ID Tag register 3) ini array[7] CANIDT4 (ID Tag register 4)

ini array[8] vedi tabella 5.2 000x xxxx

ini array[9] Bit timing Prescaler BRP 00xx xxxx 00-3Fh ini array[10] Bit timing Re-sync. SJW 0000 00xx 00-03h ini array[11] Bit timing Prop. time PRS 0000 0xxx 00-07h ini array[12] Bit timing Phase seg.1 PHS1 0000 0xxx 00-07h ini array[13] Bit timing Phase seg.2 PHS2 0000 0xxx 00-07h

Tabella 5.1: CANsoftware: comandi inviati.

del CAN controller; per semplificare l’analisi sono stati suddivisi in quattro gruppi e riportati in tabella5.1.

I primi 3 comandi (I gruppo) impostano la modalit`a operativa di CANinterface. L’operatore per mezzo di CANsoftware pu`o decidere di mo- nitorare i dati sulla linea, utilizzare il micro come un nodo virtuale o di- sconnettere il PC dall’interfaccia per compiere un’analisi off-line dei dati precedentemente acquisiti.

Il secondo gruppo `e costituito dai byte che MICROsoftware utilizza per configurare i 4 registri CANIDM (CAN IDentifier Mask register) ed i 4 CA- NIDT (CAN IDentifier Tag register);CANsoftware formatta questi dati in modo tale che MICROsoftware debba preoccuparsi solo ed unicamente di caricare i byte ricevuti nei registri corrispondenti senza eseguire ulteriori elaborazioni.

I registri CANIDT, per ogni singolo canale, specificano l’identificatore associato al messaggio CAN (da inviare se il canale `e di trasmissione o da usare per filtrare i messaggi ricevuti se il canale `e programmato in ricezione). CANsoftware nella generazione dei byte da inviare tiene conto che: CANIDT3 `e significativo solo se il canale `e programmato

CANIDT1 IDT4 IDT3 IDT2 IDT1 IDT0RTRTAG NOTUSE NOTUSE

IDM4 IDM3 IDM2 IDM1 IDM0RTR MSK NOT USE IDE MSK CON CH1 CON CH0 RPLIDE DLC 3 DLC 2 DLC 1 DLC 0 1 0 X X 1 1 0 0 Mask Acceptance Filter 1 0 1 0 Identifier CANIDT2 CANIDT3 CANIDT4

CANIDM1 CANIDM2 CANIDM3

CANIDM4

CANCONCH

Esempio:

Figura 5.2: ATMEL T89C51CC01: meccanismo di filtraggio degli identificatori o “Acceptance Filtering”.

per gestire identificatori estesi1, il bit RTRTAG (Remote Transmission Request Tag value) di CANIDT4 specifica se l’identificatore deve essere associato ad un canale destinato a contenere/ricevere un DATA Frame o a un REMOTE Frame.

I 4 registri CANIDM definiscono una maschera che il CAN controller utilizza durante l’operazione di “acceptance filter” per selezionare i bit dei corrispondenti 4 registri CANIDT su cui effettuare la verifica in fase di ricezione (figura 5.2). Oltre al bit RTRMSK associato all’RTRTAG, il registro CANIDM4 include un bit IDEMSK (IDentifier Extension Mask value) che abilita il controllo sul tipo di identificatore associato al messaggio (standard o esteso) e specificato nel bit IDE (IDentifier Extension) del registro CANCONCH (CAN message object CONtrol and DLC register).

Con gli ultimi cinque comandi (IV gruppo) CANsoftware fornisce al microcontrollore i dati da utilizzare per configurare i registri che contengono

1Gli identificatori estesi previsti dalla versione 2.0B del protocollo CAN sono composti

da 29 bit, il T89C51CC01 appartiene alla categoria dei “moduli CAN attivi”: il CAN controller integrato gestisce indifferentemente il protocollo standard (2.0A) e quello esteso (2.0B).

Capitolo 5. Il software di CANanalyser 134

Bit Position Mnemonic Description

0 cmdSMPEnable Se 1 abilita la funzione di tripli- ce campionamento del bus all’inter- no dello stesso bit time (funzione “SMP”).

1 cmdMessageEnable Se 1 abilita MICROsoftware all’invio del contenuto del campo DATA dei messaggi ricevuti.

2 cmdTimeEnable Se 1 abilita l’invio delle informazio- ni di stamping per la gestione della funzione di “time stamp”.

3 cmdAutobaud Se 1 abilita la funzione di “auto- baud”.

4 cmdIdeTag Imposta il valore del campo IDE di CANCONCH: 0 - “standard” 2.0A; 1 - “extended” 2.0B

5

6 Not used

7

Tabella 5.2: CANanalyser : dettaglio della struttura del comando “iniarray[8]”.

i parametri di bit-timing del CAN controller dettagliatamente descritti in appendiceC:

CANBT1: “CAN Bit Timing register 1”;

CANBT2: “CAN Bit Timing register 2”;

CANBT3: “CAN Bit Timing register 3”.

I dati che compongono il vettore “ini array[x]” sono i 14 byte della “se- quenza di inizializzazione” per mezzo della quale CANsoftware invia i para- metri da utilizzare per configurare il CAN controller (ID e maschera per il filtro dei messaggi ed i parametri di bit-timing); di questi 14 byte ci rimane solo da esaminare il nono, l’“ini array[8]” (il III gruppo).

“ini array[8]” ha una struttura composta da 5 campi organizzati come de- scritto in tabella5.2. Per mezzo dei bit “cmdAutobaud”, “cmdSMPEnable” e “cmdIdeTag” si completa la configurazione del CAN controller; rispetti- vamente viene abilitata/disabilitata la procedura di autoconfigurazione dei parametri di bit-timing, del campionamento ripetitivo del bus e il tipo di messaggi da filtrare. Per mezzo dei campi rimanenti si attivano/disattivano

Bit Position Mnemonic Value Description

0 1 Reserved

1 cmdAckToDISflag x Comando di ACK alla richie-

sta di disconnessione.

2 cmdAckToAMflag x Comando di ACK alla richie-

sta di inizio acquisizione da- ti (conferma anche la corret- ta connessione dell’interfaccia alla porta PC).

3 1 Reserved

4 cmdAckToSIMflag x Comando di ACK alla richie-

sta di inizio simulazione (non implementata).

5 cmdOvrRunFlag x Notifica dell’overflow del re-

gistro CANSTMP per la ge- stione della funzione di “time stamp”.

6 cmdOvrBufFlag x Notifica della condizione di

overbuffer ed utilizzato per la gestione della funzione di “time stamp”.

7 Not Used

Tabella 5.3: MICROsoftware: dettaglio della struttura dei comandi inviati.

alcune funzionalit`a e cio`e quella di “time stamp” che consente di produrre un riferimento assoluto di tempo per la rete CAN e l’invio dei dati contenuti nei DATA Frame acquisiti.

Documenti correlati