CAN-bus (Controller Area Network) är ett mycket pålitligt,-realtidsseriellt kommunikationsprotokoll som används inom fordon, industriell automation och andra områden. Det gör det möjligt för flera mikrokontroller och enheter att kommunicera med varandra utan en värddator.

CAN-bussen utvecklades ursprungligen av Bosch i Tyskland i början av 1980-talet för kommunikation i-fordon. 1993 publicerade ISO CAN-bussstandarden (ISO 11898), som omfattar både datalänkslagerprotokollet och det fysiska lagerprotokollet.
ISO 11898-1: Definierar datalänkslagerprotokollet.
ISO 11898-2: Definierar det fysiska lagerprotokollet för hög-CAN-buss, som stöder en maximal dataöverföringshastighet på 1 Mbps. Den rekommenderar en linjär topologi och är lämplig för applikationer med höga realtidskrav.
ISO 11898-3: Definierar det fysiska lagerprotokollet för låg-CAN-buss, med dataöverföringshastigheter från 40 Kbps till 125 Kbps. Även känd som -feltolerant CAN, möjliggör den fortsatt kommunikation även när en signallinje misslyckas, vilket gör den lämplig för applikationer med lägre realtidskrav.
CAN Buss funktioner:
Multi-Master Control:CAN-bussen stöder flera masterenheter som samexisterar i nätverket utan en master-slavhierarki. Enheter kommunicerar baserat på meddelandeprioritet.
Differentiell signalering:Använder två ledningar (CAN_H och CAN_L) för att överföra differentialsignaler, vilket ökar motståndet mot elektromagnetiska störningar.
Icke-destruktiv skiljedom:Under meddelandeöverföring, om en kollision inträffar, sänds meddelandet med högre-prioritet medan meddelandet med lägre-prioritet väntar på återsändning.
Felsökning och hantering:Har robusta feldetekterings- och hanteringsmöjligheter, inklusive verifiering av CRC-kontrollsummor och bitfelskontroll.
Flexibel topologi:Stöder flera nätverkstopologier som linjär-, stjärn-, träd- och ringkonfigurationer.
På CAN-bussen säkerställer den betydande spänningsskillnaden mellan logisk "0" och "1" tillförlitlig kommunikation. Med hänvisning till beskrivningen ovan är de två logiska nivåerna på CAN-bussen:
Dominant: 0
Recessiv: 1
Signalnivåerna på CAN-bussen visar linje-och egenskaper. Denna linje-och beteende utgör kretsgrunden för CAN-bussarbitrering: den dominanta nivån (0) maskerar alltid den recessiva nivån (1). Om olika noder samtidigt sänder dominanta och recessiva nivåer, uppvisar bussen den dominanta nivån (0). Först när alla noder sänder den recessiva nivån (1) uppvisar bussen det recessiva tillståndet.
Dominant nivå:Logisk 0. I höghastighets-CAN driver CAN_H-stiftet till 5V, medan CAN_L-stiftet driver till 0V.
Undergiven nivå:Logik 1. Ingen av stiften drivs.

Hög-CAN- och låghastighets-CAN-bussar- skiljer sig åt i sina fysiska lagersignalnivådefinitioner:
Hög-CAN definierar en logisk "1" när CANH- och CANL-spänningarna är lika (CANH=CANL=2.5V), och en logisk "0" när spänningsskillnaden mellan CANH och CANL är 2V (CANH=3.5V, CANL=1.5V).
Inom det vanliga-lägesspänningsområdet (-12V till 12V), tolkar höghastighets-CAN-sändtagaren en spänningsskillnad större än 0,9V mellan CANH och CANL som dominant tillstånd, och en skillnad mindre än 0,5V som recessivt tillstånd. En intern hystereskrets minskar störningar.
Låg-CAN definierar en logisk "1" när spänningsskillnaden mellan CANH och CANL är 5V (CANH=0V, CANL=5V), och en logisk "0" när spänningsskillnaden är 2,2V (CANH=3.6V, CANL=1.4V).
Höga-CAN-signalnivåer (ISO 11898-2)
Låg-CAN-signalnivåer (ISO 11898-3)
CAN-felhanteringsmekanismer:
CRC-fel:Upptäcker fel genom att beräkna och verifiera CRC-värdet för data.
Bitfel:Upptäcker bitfel i realtid-under överföring.
Felramar:Skickar felramar för att begära omsändning när fel upptäcks.
Sammanfattning
CAN-buss har fått bred användning inom flera områden tack vare dess höga tillförlitlighet,-realtidsprestanda och flexibilitet. I takt med att tekniken går framåt fortsätter CAN-buss att utvecklas-till exempel, CAN FD-standarden (Flexible Data-Rate) som släppts av BOSCH förbättrar dataöverföringshastigheterna ytterligare för att möta kraven från applikationer som kräver högre bandbredd.




