logo

CAN (Controller Area Network) protokoll

CAN står for Controller Area Network protokoll. Det er en protokoll som ble utviklet av Robert Bosch i rundt 1986. CAN-protokollen er en standard utviklet for å tillate mikrokontrolleren og andre enheter å kommunisere med hverandre uten noen vertsdatamaskin. Funksjonen som gjør CAN-protokollen unik blant andre kommunikasjonsprotokoller er kringkastingstypen buss. Her betyr broadcast at informasjonen overføres til alle nodene. Noden kan være en sensor, mikrokontroller eller en gateway som lar datamaskinen kommunisere over nettverket gjennom USB-kabelen eller Ethernet-porten. CAN er en meldingsbasert protokoll, som betyr at meldingen bærer meldingsidentifikatoren, og basert på identifikatoren bestemmes prioritet. Det er ikke behov for nodeidentifikasjon i CAN-nettverket, så det blir veldig enkelt å sette inn eller slette det fra nettverket. Det er en seriell halv-dupleks og asynkron type kommunikasjonsprotokoll. CAN er en to-kablet kommunikasjonsprotokoll ettersom CAN-nettverket er koblet til via den to-ledede bussen. Ledningene er tvunnet par med 120Ω karakteristikk impedans koblet i hver ende. Opprinnelig var den hovedsakelig designet for kommunikasjon i kjøretøyene, men den brukes nå i mange andre sammenhenger. I likhet med UDS og KWP 2000, KAN også brukes til diagnostikk ombord.

Hvorfor kan?

Behovet for en sentralisert standard kommunikasjonsprotokoll kom på grunn av økningen i antall elektroniske enheter. For eksempel kan det være mer enn 7 TCU for ulike delsystemer som dashbord, girkontroll, motorkontrollenhet og mange flere i et moderne kjøretøy. Hvis alle nodene er koblet en-til-en, vil hastigheten på kommunikasjonen være veldig høy, men kompleksiteten og kostnadene til ledningene vil være veldig høye. I eksemplet ovenfor krever et enkelt dashbord 8 kontakter, så for å overvinne dette problemet ble CAN introdusert som en sentralisert løsning som krever to ledninger, dvs. CAN høy og CAN lav. Løsningen med å bruke CAN-protokoll er ganske effektiv på grunn av meldingsprioriteringen, og fleksibel da en node kan settes inn eller fjernes uten å påvirke nettverket.

Anvendelser av CAN-protokoll

Opprinnelig ble CAN-protokollen designet for å målrette mot kommunikasjonsproblemet som oppstår i kjøretøyene. Men senere, på grunn av funksjonene den tilbyr, brukes den på forskjellige andre felt. Følgende er applikasjonene til CAN-protokollen:

  • Bil (personbiler, lastebiler, busser)
  • Elektronisk utstyr for luftfart og navigasjon
  • Industriell automasjon og mekanisk kontroll
  • Heis og rulletrapper
  • Bygningsautomatisering
  • Medisinske instrumenter og utstyr
  • Marin, medisinsk, industri, medisinsk

KAN lagdelt arkitektur

Som vi vet at OSI-modell deler opp kommunikasjonssystemet i 7 forskjellige lag. Men CAN lagdelt arkitektur består av to lag, dvs.

La oss forstå begge lagene.

  • Datalinklag: Dette laget er ansvarlig for node til node dataoverføring. Den lar deg opprette og avslutte forbindelsen. Den er også ansvarlig for å oppdage og rette opp feilene som kan oppstå på det fysiske laget. Datalinklag er delt inn i to underlag:
      MAC:MAC står for Media Access Control. Den definerer hvordan enheter i et nettverk får tilgang til mediet. Den gir innkapsling og dekapsling av data, feildeteksjon og signalering.
  • LLC:LLC står for logisk lenkekontroll. Den er ansvarlig for filtrering av rammeaksept, overbelastningsvarsling og gjenopprettingsadministrasjon.
  • Fysisk lag: Det fysiske laget er ansvarlig for overføring av rådata. Den definerer spesifikasjonene for parametere som spenningsnivå, timing, datahastigheter og kontakt.

CAN-spesifikasjoner definerer CAN-protokoll og CAN fysisk lag, som er definert i CAN-standarden ISO 11898. ISO 11898 har tre deler:

javascript søvn
  • ISO 11898-1: Denne delen inneholder spesifikasjonen for datalinklaget og fysisk signallink.
  • ISO 11898-2: Denne delen kommer under CAN fysisk lag for høyhastighets CAN. Høyhastighets CAN tillater datahastigheter på opptil 1 Mbps brukt i drivverket og ladeområdet til kjøretøyet.
  • ISO 11898-3: Denne delen kommer også under CAN fysisk lag for lavhastighets CAN. Den tillater datahastigheter på opptil 125 kbps, og lavhastighets CAN brukes der kommunikasjonshastigheten ikke er en kritisk faktor.

CiA DS-102: Den fullstendige formen for CiA er CAN in Automation, som definerer spesifikasjonene for CAN-kontakten.

execlp

Når det gjelder implementeringen, er CAN-kontrolleren og CAN-transceiveren implementert i programvaren ved hjelp av applikasjonen, operativsystemet og nettverksadministrasjonsfunksjonene.

KAN innramming

La oss forstå strukturen til CAN-rammen.

CAN-protokoll
    SOF:SOF står for start of frame, som indikerer at den nye rammen legges inn i et nettverk. Den er på 1 bit.Identifikator:Et standard dataformat definert under CAN 2.0 A-spesifikasjonen bruker en 11-bits meldingsidentifikator for voldgift. I utgangspunktet setter denne meldingsidentifikatoren prioriteten til datarammen.RTR:RTR står for Remote Transmission Request, som definerer rammetypen, enten det er en dataramme eller en ekstern ramme. Den er på 1-bit.Kontrollfelt:Den har brukerdefinerte funksjoner.
      GÅ:En IDE-bit i et kontrollfelt står for identifikatorutvidelse. En dominerende IDE-bit definerer 11-biters standardidentifikator, mens recessiv IDE-bit definerer den 29-bits utvidede identifikatoren.DLC:DLC står for Data Length Code, som definerer datalengden i et datafelt. Den er på 4 bits.Datafelt:Datafeltet kan inneholde opptil 8 byte.
    CRC-felt:Datarammen inneholder også et syklisk redundanskontrollfelt på 15 bit, som brukes til å oppdage korrupsjonen hvis den oppstår i løpet av overføringstiden. Avsenderen vil beregne CRC før sending av datarammen, og mottakeren beregner også CRC og sammenligner deretter den beregnede CRC med CRC mottatt fra avsender. Hvis CRC ikke samsvarer, vil mottakeren generere feilen.ACK-felt:Dette er mottakerens bekreftelse. I andre protokoller sendes en egen pakke for en bekreftelse etter å ha mottatt alle pakkene, men ved CAN-protokoll sendes ingen egen pakke for en bekreftelse.EOF:EOF står for end of frame. Den inneholder 7 påfølgende recessive biter kjent End of frame.

Nå skal vi se hvordan data overføres gjennom CAN-nettverket.

CAN-protokoll

Et CAN-nettverk består av flere CAN-noder. I tilfellet ovenfor har vi vurdert tre CAN-noder, og navngitt dem som node A, node B og node C. CAN-noden består av tre elementer som er gitt nedenfor:

  • Vert
    En vert er en mikrokontroller eller mikroprosessor som kjører et program for å gjøre en bestemt jobb. En vert bestemmer hva den mottatte meldingen betyr og hvilken melding den skal sende neste gang.
  • CAN-kontroller
    CAN-kontrolleren håndterer kommunikasjonsfunksjonene beskrevet av CAN-protokollen. Det utløser også overføringen eller mottaket av CAN-meldingene.
  • CAN sender/mottaker
    CAN transceiver er ansvarlig for overføring eller mottak av data på CAN-bussen. Den konverterer datasignalet til strømmen av data som samles inn fra CAN-bussen som CAN-kontrolleren kan forstå.

I diagrammet ovenfor brukes uskjermet tvunnet parkabel til å overføre eller motta dataene. Den er også kjent som CAN-buss, og CAN-buss består av to linjer, dvs. CAN-lavlinje og CAN-høylinje, som også er kjent som henholdsvis CANH og CANL. Overføringen skjer på grunn av differensialspenningen som påføres disse linjene. CAN-en bruker tvunnet parkabel og differensialspenning på grunn av miljøet. For eksempel, i en bil, kan motor, tenningssystem og mange andre enheter forårsake tap av data og datakorrupsjon på grunn av støy. Vridningen av de to linjene reduserer også magnetfeltet. Bussen termineres med 120Ω motstand i hver ende.

CAN-egenskaper

CAN-protokoll

Ved hjelp av differensialspenning vil vi bestemme hvordan 0 og 1 sendes gjennom CAN-bussen. Figuren ovenfor er spenningsgrafen som viser spenningsnivået for CAN lav og CAN høy. I CAN-terminologi sies logikk 1 å være recessiv mens logikk 0 er dominant. Når CAN high line og CAN low line brukes med 2,5 volt, vil den faktiske differensialspenningen være null volt. En null volt på CAN-bussen leses av CAN-transceiveren som en recessiv eller logisk 1. En null volt på CAN-bussen er en ideell tilstand for bussen. Når CAN high line trekkes opp til 3,5 volt og CAN low line er trukket ned til 1,5 volt, vil bussens faktiske differensialspenning være 2 volt. Den behandles som en dominant bit eller logisk 0 av CAN-sender/mottakeren. Hvis busstilstanden nås til dominant eller logisk 0, vil det bli umulig å flytte til den recessive tilstanden med en hvilken som helst annen node.

Nøkkelpunkter lært fra CAN-egenskapene

  • Logikk 1 er en recessiv tilstand. For å sende 1 på CAN-bussen, bør både CAN høy og CAN lav brukes med 2,5V.
  • Logisk 0 er en dominerende tilstand. For å sende 0 på CAN-bussen, bør CAN høy brukes ved 3,5V og CAN lav bør brukes ved 1,5V.
  • Den ideelle tilstanden til bussen er recessiv.
  • Hvis noden når den dominerende tilstanden, kan den ikke flytte tilbake til den recessive tilstanden med noen annen node.

CAN-buss logikk

CAN-protokoll
CAN-protokoll

Fra scenariet ovenfor får vi vite at den dominerende staten overskriver den recessive tilstanden. Når noden sender den dominante og den recessive biten samtidig, forblir bussen dominant. Det recessive nivået oppstår bare når alle nodene sender den recessive biten. Slik logikk er kjent som OG-logikk, og fysisk er den implementert som en åpen kollektorkrets.

CAN kommunikasjonsprinsipp

Som vi vet at meldingen sendes basert på prioritet som er satt i voldgiftsfeltet. For standardrammen er meldingsidentifikatoren 11 bit, mens for den utvidede rammen er meldingsidentifikatoren 29 bit. Det lar systemdesigneren designe meldingsidentifikatoren ved selve designet. Jo mindre meldingsidentifikatoren er, jo høyere vil meldingsprioriteten være.

La oss forstå hvordan voldgift fungerer gjennom et flytskjema.

beste biler i verden
CAN (Controller Area Network) protokoll

Avsenderen ønsker å sende meldingen og venter på at CAN-bussen skal bli inaktiv. Hvis CAN-bussen er inaktiv, sender avsenderen SOF eller den dominerende biten for busstilgangen. Deretter sender den meldingsidentifikatorbiten i den mest signifikante biten. Hvis noden oppdager den dominerende biten på bussen mens den har overført den recessive biten, betyr det at noden har mistet arbitreringen og slutter å sende ytterligere biter. Avsenderen vil vente og sende meldingen på nytt når bussen er ledig.

CAN voldgiftseksempel

CAN-protokoll

Hvis vi vurderer tre noder, dvs. node 1, node 2 og node 3, er meldingsidentifikatorene til disse nodene henholdsvis 0x7F3, 0x6B3 og 0x6D9.

CAN-protokoll

Overføringen av alle de tre nodene med den mest signifikante biten er vist i diagrammet ovenfor.

ellevethbit: Ettersom alle de tre bitene av noder er recessive, vil bussbit også forbli recessive.

konvertering av int til streng i java

10thbit: Alle nodene har 10. bit som recessive, så bussen vil også forbli recessiv.

9thbit: Node 1 har recessiv bit mens andre noder har en dominant bit, så bussen vil også forbli dominant. I dette tilfellet har node 1 mistet voldgiften, så den slutter å sende biter.

8thbit: Både node 2 og node 3 sender recessiv bit, slik at busstilstanden forblir recessiv.

7thbit: Node 2 sender dominant bit mens node 3 har sendt recessiv bit, slik at busstilstanden vil forbli dominant. I dette tilfellet har noden 3 mistet voldgiften, så den slutter å sende meldingen mens noden 2 har vunnet voldgiften betyr at den vil fortsette å holde bussen til meldingen mottas.