Du satte dig ind i din bil, trykkede på startknappen, og motoren kom til live på ingen tid, men hvordan besluttede din bil, om den skulle starte eller ej?

Nå, for at få bilen til at starte, kommunikerede flere antenner og elektroniske kontrolenheder med nøglebrikken. Controller Area Network (CAN)-protokollen sikrer, at kommunikationen mellem din nøglebrik, antenner og ECU'er foregår korrekt inde i din bil.

Så hvad er CAN-protokollen, og hvordan hjælper den enhederne på dit køretøjs systemer med at arbejde sammen? Nå, lad os finde ud af det.

Hvad er CAN-protokollen, og hvorfor er den nødvendig?

Dengang havde biler ikke meget elektronik. Faktisk, hvis du ville starte dit køretøj i begyndelsen af ​​1900-tallet, skulle du ud af dit køretøj og starte motoren med hånden.

Nutidens biler har tværtimod flere elektroniske sensorer, og elektroniske enheder overvåger alt fra kabinetemperaturen til krumtapakslens omdrejninger.

Når det er sagt, er data modtaget fra disse sensorer uden værdi, før de er behandlet. Denne databehandling udføres af computerenheder kendt som elektroniske kontrolenheder (ECU'er).

instagram viewer

Billedkreditering: SenseiAlan/Flickr

I modsætning til en computer med en enkelt CPU, har en bil flere ECU'er, som hver især er ansvarlige for at udføre en bestemt opgave. Selvom disse ECU'er kan udføre en enkelt opgave effektivt, skal de arbejde sammen for at sikre funktioner som f.eks ABS og ESC fungere korrekt.

På grund af dette skal alle ECU'er på en bil tilsluttes. Man kunne bruge en punkt-til-punkt topologi til at lave disse forbindelser, hvor hver ECU er forbundet direkte med hver anden ECU. Denne arkitektur ville dog gøre systemet komplekst. Faktisk har et moderne køretøj over 70 ECU'er, og at forbinde dem på en en-til-en måde ville øge vægten af ​​ledningerne eksponentielt.

For at løse dette problem skabte Bosch sammen med Mercedes-Benz og Intel Controller Area Network-protokollen i 1986. Denne protokol gjorde det muligt for ECU'er at kommunikere med hinanden ved hjælp af en delt databus kendt som CAN-bussen.

Hvordan virker KAN?

CAN-protokollen er en meddelelsesbaseret kommunikationsmetodologi, der er afhængig af et sæt parsnoede kabler til datatransmission. Disse ledninger er kendt som CAN høj og CAN lav.

For at muliggøre datatransmission på disse ledninger ændres deres spændingsniveauer. Disse ændringer i spændingsniveauer oversættes derefter til logiske niveauer, der gør det muligt for ECU'erne på en bil at kommunikere med hinanden.

Billedkredit: Spinningspark/Wikimedia

For at sende logik en på CAN-bussen er spændingen på begge linjer sat til 2,5 volt. Denne tilstand er også kendt som den recessive tilstand, hvilket betyder, at CAN-bussen er tilgængelig til brug af enhver ECU.

Tværtimod transmitteres logisk 0 på CAN-bussen, når CAN-højledningen har en spænding på 3,5 volt og CAN-lavledningen på 1,5 volt. Denne tilstand af bussen er også kendt som den dominerende tilstand, som fortæller hver ECU i systemet, at en anden ECU sender, så de bør vente, indtil transmissionen er overstået, før de begynder at sende deres besked.

For at muliggøre disse spændingsændringer er bilens ECU'er forbundet til CAN-bussen gennem en CAN-transceiver og en CAN-controller. Transceiveren er ansvarlig for at konvertere spændingsniveauerne på CAN-bussen til niveauer, som ECU'en kan forstå. Den registeransvarlige på den anden side bruges til at administrere de modtagne data og sikre, at kravene i protokollen er opfyldt.

Alle disse ECU'er, der er tilsluttet CAN-bussen, kan overføre data på det snoede kabel, men der er en spærring, kun meddelelsen med højeste prioritet kan transmitteres på CAN-bussen. For at forstå, hvordan en ECU transmitterer data på CAN-bussen, skal vi forstå meddelelsesstrukturen i CAN-protokollen.

Forstå meddelelsesstrukturen i CAN-protokollen

Når to ECU'er ønsker at kommunikere, sendes meddelelser med nedenstående struktur på CAN-bussen.

Disse meddelelser overføres ved at ændre spændingsniveauerne på CAN-bussen, og det parsnoede design af CAN-ledningerne forhindrer datakorruption under transmission.

  • SOF: Kort for Start Of Frame, SOF-bitten er en enkelt dominerende bitdataramme. Denne bit transmitteres af en node, når den ønsker at sende data på CAN-bussen.
  • Identifikator: Identifikationen på CAN-protokollen kan være enten 11 bit eller 29 bit stor. Størrelsen af ​​identifikatoren er baseret på den version af CAN-protokollen, der anvendes. Hvis den udvidede version af CAN bruges, så er størrelsen af ​​identifikatoren 29 bit, og i andre tilfælde er størrelsen af ​​identifikatoren 11 bit. Hovedmålet med identifikatoren er at identificere meddelelsens prioritet.
  • RTR: Fjerntransmissionsanmodningen eller RTR'en bruges af en node, når der skal anmodes om data fra en anden node. For at gøre dette sender den node, der ønsker dataene, en besked med en recessiv bit i RTR-rammen til den tilsigtede node.
  • DLC: Datalængdekoden definerer størrelsen af ​​data, der transmitteres i datafeltet.
  • Datafelt: Dette felt indeholder datanyttelasten. Størrelsen af ​​denne nyttelast er 8 bytes, men nyere protokoller som CAN FD øger størrelsen af ​​denne nyttelast til 64 bytes.
  • CRC: Forkortelse for Cyclic Redundancy Check, CRC-feltet er en fejlkontrolramme. Det samme er 15 bit i størrelse og beregnes af både modtageren og senderen. Den transmitterende node opretter en CRC for dataene, når de transmitteres. Ved modtagelse af dataene beregner modtageren CRC for de modtagne data. Hvis begge CRC'er matcher, bekræftes integriteten af ​​dataene. Hvis ikke, har dataene fejl.
  • Kvitteringsfelt: Når først dataene er modtaget og er fri for fejl, føder den modtagende node en dominerende bit ind i bekræftelsesrammen og sender den tilbage til senderen. Dette fortæller senderen, at dataene er modtaget og er fri for fejl.
  • End of Frame: Når datatransmissionen er afsluttet, transmitteres syv på hinanden følgende recessive bits. Dette sikrer, at alle noder ved, at en node har gennemført datatransmission, og de kan transmittere data på bussen.

Ud over ovenstående bits har CAN-protokollen nogle få bits reserveret til fremtidig brug.

Forenkling af CAN gennem et eksempel

Nu hvor vi har en grundlæggende forståelse af, hvordan en besked på CAN-bussen ser ud, kan vi forstå, hvordan data transmitteres mellem forskellige ECU'er.

Lad os for nemheds skyld sige, at vores bil har 3 ECU'er: Node 1, Node 2 og Node 3. Ud af de 3 ECU'er ønsker Node 1 og Node 2 at kommunikere med Node 3.

Lad os se, hvordan CAN-protokollen hjælper med at sikre kommunikation i et sådant scenarie.

  • Registrering af bussens tilstand: Alle ECU'er på bilen er forbundet til CAN-bussen. I tilfældet med vores eksempel ønsker Node 1 og Node 2 at sende data til en anden ECU; før du gør det, skal begge ECU'er kontrollere CAN-bussens tilstand. Hvis bussen er i en dominerende tilstand, kan ECU'erne ikke transmittere data, da bussen er i brug. På den anden side, hvis bussen er i en recessiv tilstand, kan ECU'erne transmittere data.
  • Afsendelse af start af ramme: Hvis differentialspændingen på CAN-bussen er nul, ændrer både Node 1 og Node 2 bussens tilstand til dominant. For at gøre dette hæves spændingen på CAN høj til 3,5 volt, og spændingen på CAN lav reduceres til 1,5 volt.
  • Beslutte hvilken node der kan få adgang til bussen: Når først SOF'en er sendt, konkurrerer begge noder om at få adgang til CAN-bussen. CAN-bussen bruger Carrier Sense Multiple Access/Collision Detection (CSMA/CD)-protokollen til at bestemme, hvilken node der får adgang. Denne protokol sammenligner identifikatorerne transmitteret af begge noder og giver adgang til den med den højeste prioritet.
  • Sender data: Når noden har adgang til bussen, sendes datafeltet sammen med CRC'en til modtageren.
  • Kontrol og afslutning af kommunikationen: Ved modtagelse af dataene kontrollerer knudepunkt 3 de modtagne datas CRC. Hvis der ikke er nogen fejl, sender node 3 en CAN-meddelelse til den transmitterende node med en dominerende bit på bekræftelsesrammen sammen med EOF for at afslutte kommunikationen.

Forskellige typer CAN

Selvom meddelelsesstrukturen, der bruges af CAN-protokollen, forbliver den samme, ændres datatransmissionshastigheden og størrelsen af ​​databittene for at overføre større båndbredder af data.

På grund af disse forskelle har CAN-protokollen forskellige versioner, og en oversigt over det samme er givet nedenfor:

  • Højhastigheds CAN: Dataene på CAN-ledningerne transmitteres serielt, og denne transmission kan ske med forskellige hastigheder. For højhastigheds-CAN er denne hastighed 1 Mbps. På grund af denne høje dataoverførselshastighed bruges højhastighedsbeholdere til ECU'er, som styrer drivaggregatet og sikkerhedssystemerne.
  • Lav hastighed CAN: I tilfælde af lavhastigheds-CAN reduceres hastigheden, hvormed data overføres, til 125 kbps. Da den lave hastighed kan tilbyde lavere datahastigheder, bruges den til at forbinde ECU'er, der styrer passagerens komfort, såsom klimaanlægget eller infotainmentsystemet.
  • Kan FD: Forkortelse for CAN fleksibel datahastighed, CAN FD er den nyeste version af CAN-protokollen. Det øger størrelsen af ​​datarammen til 64 bytes og gør det muligt for ECU'erne at transmittere data med hastigheder fra 1 Mbps til 8 Mbps. Denne datatransmissionshastighed kan styres af ECU'erne i realtid baseret på systemkrav, hvilket gør det muligt at overføre data ved højere hastigheder.

Hvad er fremtiden for bilkommunikation?

CAN-protokollen tillader flere ECU'er at kommunikere med hinanden. Denne kommunikation muliggør sikkerhedsfunktioner som elektronisk stabilitetskontrol og avancerede førerassistentsystemer som blindvinkelregistrering og adaptiv fartpilot.

Når det er sagt, med fremkomsten af ​​avancerede funktioner som autonom kørsel, stiger mængden af ​​data, der transmitteres af CAN-bussen, eksponentielt. For at aktivere disse funktioner kommer nyere versioner af CAN-protokollen, som CAN FD, på markedet.