Controller Area Network

Controller Area Network , også kjent som CAN-bus , er en seriell multicast -standard for feltbuss (hovedsakelig i bilmiljøet), introdusert på 1980-tallet av Robert Bosch GmbH , for å koble sammen forskjellige elektroniske kontrollenheter (ECU). CAN er uttrykkelig designet for å fungere uten problemer selv i miljøer som er sterkt forstyrret av tilstedeværelsen av elektromagnetiske bølger og kan bruke en balansert potensialdifferanselinje som RS-485 som overføringsmedium . EMC-støyimmunitet kan økes ytterligere ved å bruke tvunnet -par kabler .

Selv om den opprinnelig ble brukt i bilbransjen , for eksempel bilbuss, brukes den for tiden i mange industrielle applikasjoner av den innebygde typen , der det kreves et høyt nivå av immunitet mot forstyrrelser. Bithastigheten kan1 Mbit/s for lange nettverk mindre enn40 m . Lavere hastigheter lar deg nå større avstander (f.125 kbit/s for500 m ). Kommunikasjonsprotokollen til CAN er standardisert som ISO 11898-1 (2015). Denne standarden beskriver hovedsakelig datautvekslingslaget ( datalinklag ) , sammensatt av det underliggende "logiske" ( Logical Link Control, LLC ) laget ( underlaget ) og det underliggende laget til Media Access Control, (MAC) og noen aspekter av fysisk lag beskrevet av ISO / OSI-modellen ( ISO / OSI Reference Model ). Protokollene til alle de andre lagene er overlatt til nettverksdesignerens frie valg.

Dataoverføring

CAN overfører data i henhold til en modell basert på "dominante" og "recessive" biter, der de dominerende bitene er de logiske 0 -ene og de recessive bitene er de logiske 1- ene . Hvis en node sender en dominant bit og en annen en recessiv bit, så "vinner" den "dominante" biten mellom de to (gjør en logisk OG -kombinasjon ).

Sannhetstabell over dominante / recessive biter (logisk OG):
Bussstatus når to noder sender
dominerende recessiv
dominerende dominerende dominerende
recessiv dominerende recessiv
Logisk OG
0 1
0 0 0
1 0 1

Med denne teknikken, når en recessiv bit sendes, og samtidig en annen enhet sender en dominant bit, er det en kollisjon, og bare den dominante biten er synlig på nettverket (alle andre kollisjoner er usynlige). I praksis hender det at en dominerende bit blir "hevdet" ved generering av en spenning mellom lederne, mens en recessiv bit ganske enkelt ignoreres. Vi er så sikre på at hver gang en potensiell forskjell pålegges, oppdager hele nettverket det, og derfor «vet» at det er en dominerende bit.

Vanligvis, når den brukes i en differensialbuss, brukes CSMA / BA (Carrier Sense Multiple Access / Bitwise Arbitration) -skjemaet : hvis to eller flere enheter begynner å sende samtidig, brukes en prioritetsbasert voldgiftsmekanisme for å bestemme hvilken enhet la overføringen fortsette. Under overføring sjekker hver sendenode bussstatusen og sammenligner den mottatte biten med den overførte biten. Hvis en dominant bit mottas mens en recessiv bit sendes, stopper noden overføringen (dvs. mister arbitreringen ). Voldgiften utføres under overføringen av nodeidentifikasjonsdatapakken. Noder som begynner å sende samtidig sender en dominerende binær 0 ID, som begynner med den høye biten. Så snart deres ID er representert med et større tall (derfor med lavere prioritet), sender nodene selv en 1 bit (recessiv) og venter på svaret på en 0 (dominant), og stopp deretter overføringen. På slutten av sendingen av ID-ene har alle nodene gått tilbake til AV-tilstanden, og meldingen med maksimal gjeldende prioritet kan fritt overføres.

Rammer

Alle rammer (også kalt "meldinger") begynner med en "start-av-ramme" (SOF) bit. CAN-rammer kan være av fire typer:

Dataramme

Dette er rammene som utfører selve dataoverføringen. Meldinger kan ha to formater:

CAN-standarden må nødvendigvis gjenkjenne basisrammeformatet og kan valgfritt gjenkjenne det utvidede rammeformatet (som imidlertid må tolereres).

Den grunnleggende CAN tillater 2 11 = 2 048 forskjellige typer meldinger, men i henhold til Bosch-spesifikasjoner kan kun 2 031. I den utvidede versjonen kan du ha opptil 2 29 = 536 870 912 typer meldinger.

Grunnrammeformat

Grunnrammeformatet har følgende struktur:

Feltnavn Lengde (antall bits) Funksjon
Start-på-ramme 1 Indikerer starten på overføringssekvensen
Identifikator 11 (Unik) identifikator for dataene
Fjernforespørsel om overføring (RTR) 1 Det må være en dominerende bit
Ekstra identifikasjonsbit (IDE) 1 Det må være en dominerende bit
Reservert bit (r0) 1 Reservert
Datalengdekode (DLC) 4 Antall byte for å kode hver data (0-8 byte)
Datafelt 0-8 byte Data som skal overføres (lengde er spesifisert av DLC-feltet)
CRC 15 Paritetssjekk med redundans
CRC-skilletegn 1 Det må være litt recessivt
ACK-spor 1 Senderen sender en recessiv bit og hver mottaker kan kvittere for mottak med en dominerende bit
ACK-avgrensning 1 Det må være litt recessivt
End-of-frame (EOF) 7 De må være litt recessive

En begrensning på identifikatorfeltet er at de første 7 bitene ikke alle kan være recessive.

Utvidet rammeformat

Formatet til den utvidede rammen har følgende struktur:

Feltnavn Lengde (antall bits) Funksjon
Start-på-ramme 1 Indikerer starten på overføringssekvensen
Identifikator A 11 Første del av den (unike) identifikatoren til dataene
Replacement Remote Request (SRR) 1 Det må være litt recessivt
Ekstra identifikasjonsbit (IDE) 1 Det må være litt recessivt
Identifikator B 18 Andre del av den (unike) dataidentifikatoren
Fjernforespørsel om overføring (RTR) 1 Det må være en dominerende bit
Reserverte biter (r1 og r0) 2 Reservert
Datalengdekode (DLC) 4 Antall databyte (0-8 byte)
Datafelt 0-8 byte Data som skal overføres (lengde spesifisert av DLC-feltet)
CRC 15 Paritetssjekk med redundans
CRC-skilletegn 1 Det må være litt recessivt
ACK-spor 1 Senderen sender en recessiv bit og hver mottaker kan kvittere for mottak med en dominerende bit
ACK-avgrensning 1 Det må være litt recessivt
End-of-frame (EOF) 7 De må være litt recessive

De to identifikatorene (A og B) kombinert danner en enkelt 29-bits identifikator.

Ekstern ramme

Den eksterne rammen er identisk med datarammen, bortsett fra at:

  • RTR-biten satt til den recessive bittilstanden,
  • datalengdefeltet inneholder antall byte (relatert til pakkenyttelasten) som kreves for datarammen.

Feilramme

Feilrammen består av to felt:

  • den første er dannet av kombinasjonen av feilflaggene aktivert av en av nodene koblet til nettverket;
  • den andre er den såkalte " Error Delimiter "

Det finnes to typer feilflagg:

  • Aktivt feilflagg : overført av en node som har oppdaget en nettverksfeil, og som er i "feil aktiv"-tilstand;
  • Passivt feilflagg : overført av en node som har oppdaget tilstedeværelsen på nettverket av et aktivt feilflagg, og som er i "feilpassiv" tilstand.

Frame Overload

Overbelastningsramme inneholder to felt: Overbelastningsflagg og Overbelastningsavgrenser. Det er to overbelastningsforhold som kan føre til at et overbelastningsflagg passeres:

1. Status for mottakeren, som krever en overføringsforsinkelse fra neste dataramme eller fjernramme, 2. En dominant bit detekteres under et intervall i overføringen.

En case 1-overbelastningsramme tillates bare å starte på tidspunktet for den første biten i et forventet intervall, mens en case 2-overbelastningsramme starter én bit etter å ha oppdaget den dominerende biten. Overbelastningsflagget består av seks dominerende biter (alle lik 0). Den generelle formen er som for et aktivt feilflagg, som sletter intervallfeltene. Følgelig oppdager også de andre nodene i nettverket en overbelastningstilstand og sender et overbelastningsflagg. Delimiter-overbelastningen består av 8 recessive bits (alle lik 1) og har samme form som en " Error Delimiter ".

Bit stuffing

Den består av å sette inn en bit med motsatt verdi etter fem påfølgende biter med samme verdi. Denne praksisen kalles bitstuffing (bokstavelig talt fylling av biter ), og er nødvendig på grunn av kodingen som brukes i rammen, av typen NRZ ( Non Return to Zero ), som i tilfelle påfølgende like verdier opprettholder samme spenningsverdi og genererer ikke overganger som er nyttige for resynkronisering av kommuniserende enheter. Rammene som utsettes for denne operasjonen blir deretter "dekodet" av mottakeren, som fjerner bitene som er satt inn tidligere. Følgelig, når seks påfølgende like biter med samme verdi (111111 eller 000000) mottas, anses de som en feil. Bitstuffing innebærer at datarammene som overføres kan være større enn hva man kan forvente ved å bruke tabellene ovenfor.

Gjeldende ISO-standarder

  • ISO 11898-2: 2003 : Høyhastighets CAN
  • ISO 11898-3: 2006 : CAN - feiltolerant (lav hastighet)
  • ISO 11992-1: 2003 : Feiltolerant CAN for motorkjøretøyer
  • ISO 11898-5: 2007: KAN høyhastighets / selektiv vekking
  • SAE J2411 : CAN entråds CAN (SWC)

ISO 11898-2- standarden bruker en balansert to-leder linje for signaler. Det er det mest brukte fysiske laget i bil- og industrikontrollapplikasjoner.

ISO 11898-4- standarden definerer typen CAN-kommunikasjon kalt tidsutløst (TTCAN), basert på en lagprotokoll utstyrt med en systemklokke for å planlegge videresending av meldinger.

Applikasjonslag

Siden CAN-standarden ikke i seg selv sørger for applikasjonslagsprotokoller, slik som flytkontroll , krevde adressering av enheter koblet til bussen og overføring av datablokker større enn en enkelt melding implementering av spesifikke protokoller. Disse inkluderer DeviceNet , CANopen , CANaerospace , SDS og CAN Kingdom .

Relaterte elementer

Andre prosjekter

Eksterne lenker