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.