Il bus CAN (ControlleRAREANETWork), IE Controller Area Network Bus, è stato ampiamente utilizzato in controllo industriale, elettronica medica, elettrodomestici e campi di sensori. Al momento, la letteratura nazionale ed estera per l'analisi del protocollo del bus CAN dell'articolo è principalmente per la struttura del telaio del protocollo CAN o le caratteristiche di temporizzazione dell'analisi, come la letteratura, è raramente dal punto di vista della comunicazione sull'analisi del protocollo del Bus Can Bus , raramente dal punto di vista delle applicazioni ingegneristiche, il meccanismo di comunicazione del bus CAN per l'analisi approfondita dell'articolo.
1. Caratteristiche dell'applicazione e composizione strutturale
Il protocollo del bus CAN ha due standard internazionali, ISO11898 e ISO11519, di cui IS011898 è uno standard di comunicazione CAN ad alta velocità con un tasso di comunicazione da 125 kbps a 1 Mbps, che è un bus a circuito chiuso con una lunghezza massima di 40 m/1 Mbps. ISO11519 definisce uno standard di comunicazione CAN a bassa velocità con un tasso di comunicazione da 10 a 125kbps, che è uno standard di comunicazione a bassa velocità con una lunghezza massima di 40 m/1 Mbps. ISO11519 definisce il tasso di comunicazione da 10 a 125kbps a bassa velocità Can Standard di comunicazione, appartiene al bus ad anello aperto, la lunghezza massima di 1 km / 40kbps. A causa delle caratteristiche elettriche delle limitazioni, ovvero la distribuzione del bus della capacità e la distribuzione della resistenza sulla forma d'onda del bus, il numero massimo di nodi sul bus CAN è 110. Per l'ingegnere dell'applicazione, solo la velocità di baud e i parametri di bit del lato ricetrasmettitore deve essere configurato correttamente per ottenere la sincronizzazione dei dati dei nodi del ricetrasmettitore. Attraverso l'hardware del controller CAN sul filtro marcatore dei messaggi può essere realizzato in una trasmissione punto-punto, punto-multipoint e globale e altri modi per trasmettere e ricevere dati. Allo stesso tempo, a causa della struttura del frame corto di CAN Telegrams e ogni frame contiene una parte di controllo CRC, che garantisce un tasso di errore di dati molto basso.
Il livello delle applicazioni CAN, il sistema operativo (implementato come programma di fondo nelle applicazioni senza un sistema operativo) e il driver nell'implementazione del sistema si rendono insieme le funzioni del livello dell'applicazione nel modello di riferimento ISO. Tra questi, il livello di applicazione CAN definisce il raggruppamento ID, l'invio del caricamento dei dati, la ricezione dell'elaborazione dei dati e il monitoraggio della sicurezza del bus di livello dell'applicazione; Il programma operativo/programma di fondo viene utilizzato per pianificare il driver CAN per elaborare i dati dopo l'arrivo dell'interruzione CAN; Il driver include l'inizializzazione (impostazione dello stato di lavoro del controller, l'impostazione della velocità di baud, la configurazione del filtro di accettazione), il driver del ricetrasmettitore e il programma di gestione delle anomalie.
Per lo strato medio di trasmissione, deve essere determinato in base al rumore di interferenza ambientale, alla lunghezza del bus e così via. Nel caso di un forte rumore di interferenza deve essere usato il filo schermato; A causa della distribuzione della capacità causata dalla distorsione della forma d'onda del bus e dalla distribuzione della resistenza causata dall'attenuazione del livello del bus, la lunghezza del bus deve tenere conto della distribuzione della resistenza e delle caratteristiche di capacità del mezzo di trasmissione utilizzato; Allo stesso tempo, se l'uso del bus ad alta velocità deve anche sperimentare per determinare il valore della resistenza corrispondente del bus.
Per la realizzazione del controller CAN, è possibile scegliere il controller CAN integrato nel chip Master di sistema, come la serie di microcontrollori LPC2000 di NXP, oppure è possibile utilizzare componenti discreti del controller CAN, come SJA1000 per la realizzazione di Can Transceseiver , puoi scegliere CTM1050, TJA1050, ecc. Se il rumore di interferenza ambientale è grande, è necessario considerare la distribuzione del mezzo di trasmissione Caratteristiche di capacità di resistenza e distribuzione; Allo stesso tempo, se si utilizza un bus ad alta velocità deve anche determinare la resistenza corrispondente del bus attraverso la sperimentazione. Se il rumore di interferenza ambientale è grande, è necessario aggiungere un chip di isolamento tra il controller e il ricetrasmettitore o l'uso della funzione di isolamento integrata del ricetrasmettitore CAN. Vale la pena ricordare che il nuovo chip microcontrollore LPC11c24 di NXP non solo integra un controller CAN, ma integra anche una funzione del ricetrasmettitore CAN, che fornisce un buon supporto per il rapido sviluppo dei sistemi di bus CAN. Inoltre, secondo l'effettiva applicazione della lunghezza del bus e il numero di nodi sul bus, è anche necessario considerare il tempo di ritardo della trasmissione e della ricezione del chip del ricetrasmettitore.
Per il livello del driver CAN e il livello dell'applicazione, il driver include l'inizializzazione CAN (incluso abilitazione hardware, impostazione della velocità di baud, impostazione della modalità operativa del controller e configurazione della tabella del filtro di accettazione), driver di ricezione/trasmissione e fornisce funzioni di interfaccia al livello superiore, di cui È necessario spiegare che la configurazione della tabella dell'ID filtro di accettazione deve essere basata sul raggruppamento dell'ID di sistema da parte del livello dell'applicazione; Il livello dell'applicazione CAN esegue le pacchetti di dati in base alla relazione di invio/ricezione dei dati tra i nodi sul bus. Può essere il livello dell'applicazione in base alle relazioni di invio e ricezione dei dati tra i nodi sul bus per il raggruppamento dell'ID pacchetto, l'invio di pacchetti di dati, la ricezione di elaborazione dei dati e il monitoraggio della sicurezza del bus del livello dell'applicazione. Inoltre, i protocolli di strato superiore del bus CAN comunemente utilizzati includono Canopen, Devicenet e ICAN.
2. Analisi del meccanismo di sincronizzazione del bus
Nel processo di comunicazione, uno dei problemi più importanti da risolvere è come ottenere la sincronizzazione dei dati alla fine del mittente e del ricevitore, ad esempio, la fine del ricevitore può ricevere correttamente e analizzare i dati inviati dalla fine del mittente. è una sorta di protocollo di comunicazione seriale asincrono, che appartiene alla comunicazione della banda di base, e la sua sincronizzazione è realizzata dal protocollo di controllo dei collegamenti dati di alto livello (HDLC). In particolare, la sincronizzazione del protocollo del bus CAN è ottenuta attraverso 3 aspetti come descritto di seguito.
2.1 Impostazione dei parametri
Entrambi i lati della comunicazione tramite il software impostano la stessa velocità di baud, la stessa lunghezza del segmento di regolazione della fase, la stessa larghezza di salto di sincronizzazione, attraverso i tre elementi precedenti, definisce la lunghezza del tempo di bit nel processo di trasmissione del bus Can come così come la posizione del punto di campionamento, la struttura bit come mostrato in Fig. 2, l'orologio lattina nella figura che è definita nel protocollo del tempo TQ, che si ottiene attraverso la divisione di frequenza di un orologio esterno o Un orologio periferico della CPU. Il segnale di clock di base del controller CAN viene ottenuto dividendo la frequenza dell'orologio esterno o dell'orologio periferico della CPU. Il segmento SS corrisponde al segmento iniziale e il bordo di salto sul bus dovrebbe verificarsi durante questo periodo, Tesg1 corrisponde al segmento di trasmissione e al segmento di regolazione della fase 1 e Tesg2 corrisponde al segmento di regolazione della fase 2 e per il alto livello Speed Bus, il controller campioni e discrimina il bus tra Tesg1 e Tesg2.

2.2 Struttura del telaio fisso
Il protocollo può definisce chiaramente una struttura del frame fisso per facilitare il controller e il ricetrasmettitore per monitorare lo stato del bus, nella specifica del protocollo CAN2. 0, divisa in frame standard e frame esteso due strutture del frame, la differenza si trova solo nella parte della differenza dominio arbitrato, il frame standard usando 11- identificatore bit, mentre il frame esteso ha un identificatore di bit 29-, il specifico Frame standard, struttura del telaio del telaio esteso.
2.3.3 Sincronizzazione dura e risincronizzazione
2.3.1 Sincronizzazione dura
La cosiddetta sincronizzazione dura significa che durante il periodo inattivo del bus (cioè il livello del bus è espresso come una punta recessiva continua), una volta che il controller rileva il salto dal livello recessivo al livello dominante, significa che in questo momento lì è una stazione sul bus per iniziare a inviare dati, quindi forzare il contatore dello stato bit del controller CAN per sincronizzazione al segmento SS mostrato in Fig. 2 e allo stesso tempo, l'orologio bit inizia a raccontare Questo punto in poi (il tempo di bit può essere impostato dal livello software superiore). La sincronizzazione dura viene utilizzata per l'inizio della determinazione del frame.
2.3.2 Resincronizzazione
Nel protocollo del bus CAN, la risincronizzazione viene implementata in base al meccanismo di riempimento dei bit. Simile al protocollo HDLC, nella struttura del frame di CAN, una volta che cinque bit consecutivi della stessa polarità vengono rilevati dall'inizio del frame fino a quando la sequenza CRC, il controller CAN inserisce automaticamente un po 'della polarità opposta. La ri-sincronizzazione è che durante la trasmissione dei dati, il controller CAN regola il segmento di regolazione di fase 1 e il segmento di regolazione della fase 2 rilevando la differenza tra il bordo di salto sul bus e il tempo di bit interno del nodo e la dimensione della regolazione è programmata dalla sincronizzazione La larghezza di salto e la dimensione della regolazione è impostata in TQ. La regola di regolazione specifica è che, nel processo di trasmissione, il bordo di salto sul bus rilevato dal controller CAN viene regolato dal controller CAN se si trova all'interno del periodo di tempo del bit SS interno del nodo, quindi non è necessaria alcuna regolazione; Se il bordo di salto si trova nel segmento TESG1, significa che c'è un ritardo nel tempo bit sul bus rispetto al tempo di bit del nodo, il controller CAN estende il periodo di tempo di bit TESG1 del nodo e se Il valore del tempo di ritardo (il valore di t 0) è maggiore della larghezza di salto di sincronizzazione, il tempo di estensione è il valore della larghezza di salto di sincronizzazione, altrimenti il controller CAN Il nodo estende la differenza tra esso e il tempo bit del bus; Se il bordo del salto si trova nel segmento TESG2, indicando che il tempo di bit sul bus è invaso rispetto al tempo di bit del nodo, il controller CAN riduce il periodo di tempo del bit Tesg2 del nodo, le regole di regolazione specifiche sono simili a quelli del segmento TESG1.
3. Analisi del meccanismo di indirizzi del bus
A differenza di Ethernet industriale, rs485 e altri autobus, il bus CAN invia e riceve dati tramite l'ID pacchetto anziché l'indirizzo del nodo, cioè i nodi sul bus CAN non hanno un indirizzo fisso, invece, ogni nodo deve essere configurato attraverso Software con una tabella ID (nell'unità filtro di accettazione del nodo) e se esiste il numero ID del pacchetto di dati sul bus nella tabella ID del nodo, il pacchetto correttamente Passa l'accettazione dell'unità filtro di accettazione di quel nodo e verrà inviato all'unità di elaborazione del software superiore ed elaborato di conseguenza, altrimenti il pacchetto viene scartato. Ad esempio, se il nodo A sul bus desidera inviare un pacchetto al nodo B, il numero ID del pacchetto deve trovarsi nella tabella ID del nodo B. Allo stesso modo, se il nodo A desidera trasmettere un pacchetto sul bus, il Il numero ID del pacchetto deve trovarsi nelle tabelle ID di tutti gli altri nodi sul bus. Come accennato in precedenza, la tabella ID è configurata attraverso il software, ma la funzione di filtraggio di accettazione viene eseguita tramite il filtro di accettazione, un'unità hardware nel controller CAN, quindi il ritardo causato dall'accettazione è piccolo in termini di velocità. Inoltre, il vantaggio di utilizzare questo meccanismo di indirizzo è che il sistema che impiega questo bus è altamente flessibile, ad es. Nuovi nodi aggiunti o eliminati non influiscono sulla comunicazione tra i nodi originali del sistema.
Quanto segue prenderà il controller CAN integrato con il chip LPC2478 di NXP come esempio per specificare il metodo di configurazione dell'indirizzo del sistema Bus Can. Come mostrato nella Figura 3, prima classificati in base ai pacchetti di dati da trasmettere sul bus, ovvero l'ID pacchetto e la pianificazione del nodo corrispondente, ad esempio, nel nostro sistema ci sono principalmente i seguenti tipi di pacchetti: pacchetti di query, I pacchetti di comando di controllo (inclusi pacchetti di azione e parametri), pacchetti di allarme e pacchetti di parametri di feedback, corrispondenti alle caratteristiche del nodo dei pacchetti di query e dei pacchetti di comando di controllo sono principalmente la stazione principale inviata a ciascuna unità slave, mentre I pacchetti di dati di allarme e i pacchetti di dati dei parametri di feedback vengono inviati principalmente da ciascuna unità di nodo dello slave al nodo dell'unità principale. Quindi, l'unità filtro di accettazione di ciascun nodo è configurata in base alla classificazione ID e il metodo di configurazione specifico è il seguente: In primo luogo, configurare le modalità di lavoro del filtro di accettazione corrispondenti in base alle caratteristiche del nodo: la modalità OFF (non ricevere messaggi del bus) , la modalità di bypass (che riceve tutti i messaggi sul bus) e la normale modalità di lavoro (filtraggio hardware). Se la configurazione per la normale modalità di funzionamento, è necessario configurare la tabella del filtro di accettazione corrispondente (tabella ID), ovvero il nodo deve ricevere il numero ID del pacchetto del controller del nodo per compilare l'area della tabella ID corrispondente, E questo completa il lavoro di allocazione dell'indirizzo del nodo del bus CAN. In generale, la tabella ID è divisa nelle seguenti quattro aree: area di identificatore di frame standard trasparente, area di identificatore in formato di gruppo di frame standard, area identificativa in formato telaio esteso trasparente e area identificativa del gruppo di frame esteso. Tra questi, il formato esplicito è un singolo identificatore ID indipendente, mentre l'area del formato di gruppo ha identificatori ID numerati consecutivi.
4. Analisi del meccanismo di arbitrato in autobus
Arbitrato del bus, si riferisce a quando il bus ha più di un nodo contemporaneamente per inviare metodi di elaborazione del protocollo del bus dati. Il bus può utilizzare un meccanismo di arbitrato non distruttivo, ovvero se più di un nodo sul bus contemporaneamente per inviare dati, con vittorie arbitrali del nodo pacchetti ad alta priorità, è possibile continuare a inviare dati e altri guasti all'arbitrato Il nodo uscirà dallo stato di invio e si trasformerà in un nodo ricevente, con altri meccanismi di arbitrato degli autobus (come il CSMA di LAN). (Rispetto ad altri meccanismi di arbitrato del bus (ad es. CSMA/CD di LAN), non solo non distruggerà i dati inviati, ma non causerà il ritardo di invio dei dati, che è uno dei vantaggi del bus Can rispetto ad altri autobus , ed è principalmente realizzato dalle seguenti due caratteristiche di Can Bus: 1) la linea e le caratteristiche del bus CAN, cioè, quando più di un nodo sul bus invia livelli dominanti e invisibili allo stesso tempo, il Il livello degli autobus è a livello dominante. 2) La linea e la caratteristica del bus CAN, cioè, quando più di un nodo sul bus invia livelli dominanti e invisibili allo stesso tempo, il livello del bus mostra il livello dominante. 2) Il controller può monitorare lo stato del livello del bus anche durante l'invio di dati, cioè quando in arbitrato, quando il controller invia un livello invisibile ma rileva il bus come livello visibile, l'arbitrato del nodo non riesce e si gira verso il nodo ricevente.
5. Analisi robustezza in autobus
La robustezza del bus CAN è realizzata attraverso il suo rilevamento e il monitoraggio in tempo reale del nodo e della sicurezza dei pacchetti di bus, inoltre, CAN Bus ha una forte inibizione dei segnali di interferenza esterna attraverso l'uso di segnali differenziali. Specialmente discusso di seguito.
5.1 Monitoraggio in tempo reale della forma d'onda del bus
Il controller può monitorare non solo i pacchetti di dati inviati da altri nodi sul bus continuamente dopo l'accensione, ma anche monitorare i dati inviati da soli nel processo di invio dei pacchetti di dati in tempo reale, una volta rilevato gli errori in atto, Errori di imbottitura, errori CRC, errori di formattazione o errori di risposta, il nodo si baserà sullo stato dell'errore in cui è (errore di errore attivato o di errore) per inviare il flag di errore corrispondente. In effetti, credo che solo il sito di attivazione dell'errore invii il logo di errore di attivazione (cioè 6 bit dominanti consecutivi seguiti da 8 bit recessivi del logo di errore che definiscono il carattere) avrà un impatto sul bus e sui nodi sul bus, mentre Il nodo nello stato di riconoscimento degli errori invia il logo di riconoscimento degli errori non ha effettivamente alcun effetto sul bus (i 6 livelli recessivi inviati con lo stato inattivo del bus sono gli stessi).
5.2 Monitoraggio in tempo reale dello stato del nodo per determinare i privilegi di nodo
I nodi cambiano il loro stato (stato attivato dall'errore, riconosciuto da errori o stato di off-off) in tempo reale secondo i pacchetti inviati sul bus. I nodi nello stato attivato dall'errore partecipano normalmente alla comunicazione del bus e le unità riconosciute dall'errore partecipano alla comunicazione del bus, ma devono inviare 8 bit impliciti aggiuntivi prima di iniziare la prossima invio. Per i pacchetti inviati sul bus, come mostrato nella Tabella 1, la sequenza CRC di bit 15- implementa il monitoraggio del bit di avvio, il campo arbitrato, il campo di controllo e il campo dati (se presenti) Genera la sequenza CRC del pacchetto in base allo stesso algoritmo di quella del nodo di invio quando riceve i dati e li confronta con la sequenza CRC ricevuta, se è diverso, significa che lì è un errore e il nodo ricevente non risponderà al nodo ricevente non risponderà al pacchetto e il nodo di invio rileverà l'errore di risposta e nuovamente il pacchetto. In conclusione, il bus CAN ha raggiunto un'elevata sicurezza dei dati e stabilità del bus attraverso il livello di collegamento dei dati e il livello fisico.
6. Conclusione
Sulla base delle specifiche del protocollo ISO11898, il documento analizza in dettaglio il principio di realizzazione e le basi del meccanismo di sincronizzazione del nodo del bus, il meccanismo dell'indirizzo del nodo, il meccanismo di arbitrato del bus (meccanismo di risoluzione dei conflitti del bus dei bus) e la robustezza del bus dal punto di vista della comunicazione e allo stesso modo Il tempo introduce brevemente le caratteristiche dell'applicazione del bus CAN e la struttura a strati di sistema del bus quando viene applicata al sistema reale, il che è molto importante per il Comprensione approfondita del protocollo del bus CAN e dell'applicazione del bus CAN al sistema reale. È una guida per comprendere il protocollo del bus CAN e applicare il bus CAN a specifici progetti di ingegneria, nonché la ricerca o lo sviluppo di sistemi di autobus per requisiti specifici.




