CAN-bus (Controller Area Network) er en yderst pålidelig,-realtids seriel kommunikationsprotokol, der bruges i køretøjer, industriel automation og andre områder. Det gør det muligt for flere mikrocontrollere og enheder at kommunikere med hinanden uden en værtscomputer.

CAN-bussen blev oprindeligt udviklet af Bosch i Tyskland i begyndelsen af 1980'erne til kommunikation i-biler. I 1993 udgav ISO CAN-bus-standarden (ISO 11898), der omfatter både datalink-lag-protokollen og den fysiske lag-protokol.
ISO 11898-1: Definerer datalink-lagprotokollen.
ISO 11898-2: Definerer den fysiske lagprotokol for høj-CAN-bus, der understøtter en maksimal dataoverførselshastighed på 1 Mbps. Den anbefaler en lineær topologi og er velegnet til applikationer med høje realtidskrav.
ISO 11898-3: Definerer den fysiske lagprotokol for lav-CAN-bus med dataoverførselshastigheder fra 40 Kbps til 125 Kbps. Også kendt som -fejltolerant CAN, det muliggør fortsat kommunikation, selv når en signallinje svigter, hvilket gør den velegnet til applikationer med lavere realtidskrav.
CAN Bus funktioner:
Multi-Master Control:CAN-bussen understøtter flere masterenheder, der sameksisterer på netværket uden et master-slavehierarki. Enheder kommunikerer baseret på beskedprioritet.
Differentiel signalering:Bruger to ledninger (CAN_H og CAN_L) til at transmittere differentielle signaler, hvilket øger modstanden mod elektromagnetisk interferens.
Ikke-destruktiv voldgift:Under meddelelsestransmission, hvis der opstår en kollision, transmitteres meddelelsen med højere-prioritet, mens meddelelsen med lavere-prioritet venter på gentransmission.
Fejlsøgning og håndtering:Indeholder robuste fejldetektions- og håndteringsfunktioner, herunder CRC-kontrolsumverifikation og bitfejlkontrol.
Fleksibel topologi:Understøtter flere netværkstopologier såsom lineære, stjerne-, træ- og ringkonfigurationer.
På CAN-bussen sikrer den betydelige spændingsforskel mellem logisk "0" og "1" pålidelig kommunikation. Med henvisning til beskrivelsen ovenfor er de to logiske niveauer på CAN-bussen:
Dominerende: 0
Recessiv: 1
Signalniveauerne på CAN-bussen viser linje-og karakteristika. Denne linje-og adfærd danner kredsløbsgrundlaget for CAN-bus-arbitration: det dominerende niveau (0) maskerer altid det recessive niveau (1). Hvis forskellige knudepunkter samtidigt transmitterer dominante og recessive niveauer, udviser bussen det dominante niveau (0). Først når alle knudepunkter transmitterer det recessive niveau (1), udviser bussen den recessive tilstand.
Dominerende niveau:Logisk 0. I høj-CAN kører CAN_H-benet til 5V, mens CAN_L-benet kører til 0V.
Underdanig niveau:Logik 1. Ingen af stifterne er drevet.

Høj-CAN-busser og lav-hastigheds-CAN-busser adskiller sig i deres fysiske lagsignalniveaudefinitioner:
Høj-hastigheds-CAN definerer et logisk "1", når CANH- og CANL-spændingerne er ens (CANH=CANL=2.5V), og et logisk "0", når spændingsforskellen mellem CANH og CANL er 2V (CANH=3.5V, CANL=1.5V).
Inden for det almindelige-spændingsområde (-12V til 12V) fortolker højhastigheds-CAN-transceiveren en spændingsforskel på mere end 0,9V mellem CANH og CANL som den dominerende tilstand og en forskel på mindre end 0,5V som den recessive tilstand. Et internt hysteresekredsløb reducerer interferens.
Lav-hastigheds CAN definerer en logisk "1", når spændingsforskellen mellem CANH og CANL er 5V (CANH=0V, CANL=5V), og en logisk "0", når spændingsforskellen er 2,2V (CANH=3.6V, CANL=1.4V).
Høj-CAN-signalniveauer (ISO 11898-2)
Lave-CAN-signalniveauer (ISO 11898-3)
CAN-fejlhåndteringsmekanismer:
CRC-fejl:Registrerer fejl ved at beregne og verificere CRC-værdien af data.
Bitfejl:Registrerer bitfejl i realtid- under transmission.
Fejlrammer:Sender fejlrammer for at anmode om gentransmission, når der opdages fejl.
Oversigt
CAN bus har vundet udbredt anvendelse på tværs af flere felter på grund af dens høje pålidelighed,-realtidsydelse og fleksibilitet. Efterhånden som teknologien udvikler sig, fortsætter CAN-bus med at udvikle sig-for eksempel forbedrer CAN FD-standarden (Flexible Data-Rate) udgivet af BOSCH dataoverførselshastighederne yderligere for at imødekomme kravene fra applikationer, der kræver højere båndbredde.




