logo

CAN-protokoll (Controller Area Network).

CAN står för Controller Area Network protokoll. Det är ett protokoll som utvecklats av Robert Bosch omkring 1986. CAN-protokollet är en standard utformad för att tillåta mikrokontroller och andra enheter att kommunicera med varandra utan någon värddator. Funktionen som gör CAN-protokollet unikt bland andra kommunikationsprotokoll är sändningstypen av buss. Broadcast innebär här att informationen överförs till alla noder. Noden kan vara en sensor, mikrokontroller eller en gateway som gör att datorn kan kommunicera över nätverket via USB-kabeln eller Ethernet-porten. CAN är ett meddelandebaserat protokoll, vilket innebär att meddelandet bär meddelandeidentifieraren och baserat på identifieraren bestäms prioritet. Det finns inget behov av nodidentifiering i CAN-nätverket, så det blir mycket enkelt att infoga eller ta bort det från nätverket. Det är en seriell halvduplex och asynkron typ av kommunikationsprotokoll. CAN är ett tvåtrådigt kommunikationsprotokoll eftersom CAN-nätverket är anslutet via den tvåtrådiga bussen. Ledningarna är tvinnade par med 120Ω karakteristik impedans ansluten i varje ände. Från början var den främst designad för kommunikation inom fordonen, men den används nu i många andra sammanhang. Liksom UDS och KWP 2000, KAN även användas för inbyggd diagnostik.

Varför kan?

Behovet av ett centraliserat standardkommunikationsprotokoll kom på grund av ökningen av antalet elektroniska enheter. Till exempel kan det finnas mer än 7 TCU för olika delsystem som instrumentbräda, transmissionskontroll, motorstyrenhet och många fler i ett modernt fordon. Om alla noder är anslutna en-till-en, skulle kommunikationshastigheten vara mycket hög, men komplexiteten och kostnaden för ledningarna skulle vara mycket hög. I exemplet ovan kräver en enda instrumentbräda 8 kontakter, så för att lösa detta problem introducerades CAN som en centraliserad lösning som kräver två ledningar, dvs. CAN hög och CAN låg. Lösningen med att använda CAN-protokoll är ganska effektiv på grund av dess meddelandeprioritering, och flexibel eftersom en nod kan infogas eller tas bort utan att påverka nätverket.

Tillämpningar av CAN-protokoll

Ursprungligen utformades CAN-protokollet för att rikta in sig på kommunikationsproblemet som uppstår i fordonen. Men senare, på grund av funktionerna den erbjuder, används den inom olika andra områden. Följande är tillämpningarna av CAN-protokollet:

  • Fordon (personbilar, lastbilar, bussar)
  • Elektronisk utrustning för flyg och navigation
  • Industriell automation och mekanisk styrning
  • Hiss och rulltrappor
  • Byggnadsautomation
  • Medicinska instrument och utrustning
  • Marin, medicinsk, industriell, medicinsk

KAN skiktad arkitektur

Som vi vet att OSI-modell delar upp kommunikationssystemet i 7 olika lager. Men den CAN-skiktade arkitekturen består av två lager, dvs.

Låt oss förstå båda skikten.

pandor iterrows
  • Datalänklager: Detta lager ansvarar för nod till nod dataöverföring. Det låter dig upprätta och avsluta anslutningen. Den ansvarar också för att upptäcka och korrigera de fel som kan uppstå på det fysiska lagret. Datalänkslager är uppdelat i två underlager:
      MAC:MAC står för Media Access Control. Den definierar hur enheter i ett nätverk får tillgång till mediet. Den tillhandahåller inkapsling och dekapsling av data, feldetektering och signalering.
  • LLC:LLC står för logisk länkkontroll. Den ansvarar för filtrering av ramacceptans, överbelastningsmeddelande och återställningshantering.
  • Fysiskt lager: Det fysiska lagret ansvarar för överföringen av rådata. Den definierar specifikationerna för parametrarna som spänningsnivå, timing, datahastigheter och kontakt.

CAN-specifikationer definierar CAN-protokollet och det fysiska CAN-skiktet, som definieras i CAN-standarden ISO 11898. ISO 11898 har tre delar:

  • ISO 11898-1: Denna del innehåller specifikationen för datalänkslagret och fysisk signallänk.
  • ISO 11898-2: Denna del kommer under CAN fysiskt lager för höghastighets CAN. Höghastighets-CAN tillåter datahastigheter på upp till 1 Mbps som används i drivlinan och fordonets laddningsområde.
  • ISO 11898-3: Denna del kommer också under CAN fysiskt lager för låghastighets CAN. Den tillåter datahastigheter upp till 125 kbps, och låghastighets-CAN används där kommunikationshastigheten inte är en kritisk faktor.

CiA DS-102: Den fullständiga formen av CiA är CAN in Automation, som definierar specifikationerna för CAN-kontakten.

När det gäller implementeringen är CAN-styrenheten och CAN-transceivern implementerade i programvaran med hjälp av applikations-, operativsystem- och nätverkshanteringsfunktioner.

CAN inramning

Låt oss förstå strukturen för CAN-ramen.

CAN-protokoll
    SÅ F:SOF står för start of frame, vilket indikerar att den nya ramen är inlagd i ett nätverk. Den är på 1 bit.Identifierare:Ett standarddataformat definierat under CAN 2.0 A-specifikationen använder en 11-bitars meddelandeidentifierare för skiljedom. I grund och botten sätter denna meddelandeidentifierare dataramens prioritet.RTR:RTR står för Remote Transmission Request, som definierar ramtypen, om det är en dataram eller en fjärrbildram. Den är av 1-bit.Kontrollfält:Den har användardefinierade funktioner.
      GÅ:En IDE-bit i ett kontrollfält står för identifierarförlängning. En dominant IDE-bit definierar 11-bitars standardidentifierare, medan recessiv IDE-bit definierar den 29-bitars utökade identifieraren.DLC:DLC står för Data Length Code, som definierar datalängden i ett datafält. Den är på 4 bitar.Data fält:Datafältet kan innehålla upp till 8 byte.
    CRC-fält:Dataramen innehåller också ett cykliskt redundanskontrollfält på 15 bitar, som används för att upptäcka korruptionen om den inträffar under överföringstiden. Avsändaren kommer att beräkna CRC:n innan dataramen skickas, och mottagaren beräknar även CRC:n och jämför sedan den beräknade CRC:n med CRC:n som tas emot från avsändaren. Om CRC inte matchar kommer mottagaren att generera felet.ACK-fält:Detta är mottagarens bekräftelse. I andra protokoll skickas ett separat paket för en bekräftelse efter mottagande av alla paket, men vid CAN-protokoll skickas inget separat paket för en bekräftelse.EOF:EOF står för ramslut. Den innehåller 7 på varandra följande recessiva bitar kända End of frame.

Nu ska vi se hur data överförs genom CAN-nätverket.

verilog fall uttalande
CAN-protokoll

Ett CAN-nätverk består av flera CAN-noder. I ovanstående fall har vi övervägt tre CAN-noder och namngett dem som nod A, nod B och nod C. CAN-nod består av tre element som anges nedan:

  • Värd
    En värd är en mikrokontroller eller mikroprocessor som kör någon applikation för att göra ett specifikt jobb. En värd bestämmer vad det mottagna meddelandet betyder och vilket meddelande den ska skicka härnäst.
  • CAN Controller
    CAN-styrenheten hanterar kommunikationsfunktionerna som beskrivs av CAN-protokollet. Det utlöser också sändningen eller mottagningen av CAN-meddelanden.
  • CAN Transceiver
    CAN-sändtagaren ansvarar för sändningen eller mottagningen av data på CAN-bussen. Den omvandlar datasignalen till strömmen av data som samlas in från CAN-bussen som CAN-styrenheten kan förstå.

I diagrammet ovan används oskärmad partvinnad kabel för att överföra eller ta emot data. Den är också känd som CAN-buss, och CAN-bussen består av två linjer, dvs. CAN-låglinje och CAN-höglinje, som också är känd som CANH respektive CANL. Överföringen sker på grund av den differentialspänning som appliceras på dessa linjer. CAN använder partvinnad kabel och differentialspänning på grund av sin miljö. Till exempel, i en bil kan motor, tändningssystem och många andra enheter orsaka dataförlust och datakorruption på grund av brus. Vridningen av de två linjerna minskar också magnetfältet. Bussen avslutas med 120Ω resistans i varje ände.

np.log

CAN-egenskaper

CAN-protokoll

Med hjälp av differentialspänning kommer vi att bestämma hur 0 och 1 sänds genom CAN-bussen. Ovanstående figur är spänningsdiagrammet som visar spänningsnivån för CAN låg och CAN hög. I CAN-terminologi sägs logik 1 vara recessiv medan logik 0 är dominant. När CAN high line och CAN low line appliceras med 2,5 volt, då skulle den faktiska differentialspänningen vara noll volt. En noll volt på CAN-bussen läses av CAN-transceivern som en recessiv eller logisk 1. En noll volt på CAN-bussen är ett idealiskt tillstånd för bussen. När CAN high line dras upp till 3,5 volt och CAN low line dras ner till 1,5 volt, då skulle bussens faktiska differentialspänning vara 2 volt. Den behandlas som en dominant bit eller logisk 0 av CAN-transceivern. Om busstillståndet nås till dominant eller logisk 0 så skulle det bli omöjligt att flytta till det recessiva tillståndet av någon annan nod.

Nyckelpunkter lärda från CAN-egenskaperna

  • Logik 1 är ett recessivt tillstånd. För att sända 1 på CAN-bussen ska både CAN hög och CAN låg appliceras med 2,5V.
  • Logisk 0 är ett dominant tillstånd. För att sända 0 på CAN-bussen ska CAN hög appliceras vid 3,5V och CAN låg bör appliceras vid 1,5V.
  • Det ideala tillståndet för bussen är recessivt.
  • Om noden når det dominerande tillståndet kan den inte flytta tillbaka till det recessiva tillståndet med någon annan nod.

CAN bus logik

CAN-protokoll
CAN-protokoll

Från ovanstående scenario får vi veta att det dominerande tillståndet skriver över det recessiva tillståndet. När noden sänder den dominanta och den recessiva biten samtidigt, förblir bussen dominant. Den recessiva nivån inträffar endast när alla noder skickar den recessiva biten. Sådan logik är känd som OCH-logik, och fysiskt är den implementerad som en öppen kollektorkrets.

CAN-kommunikationsprincip

Som vi vet att meddelandet skickas baserat på den prioritet som anges i skiljedomsfältet. För standardramen är meddelandeidentifieraren 11 bitar, medan meddelandeidentifieraren för den utökade ramen är 29 bitar. Det tillåter systemdesignern att designa meddelandeidentifieraren vid själva designen. Ju mindre meddelandeidentifieraren är, desto högre skulle meddelandeprioritet vara.

Låt oss förstå hur skiljeförfarande fungerar genom ett flödesschema.

CAN-protokoll (Controller Area Network).

Avsändaren vill skicka meddelandet och väntar på att CAN-bussen ska bli ledig. Om CAN-bussen är ledig sänder avsändaren SOF eller den dominanta biten för bussaccessen. Sedan skickar den meddelandeidentifieringsbiten i den mest signifikanta biten. Om noden detekterar den dominanta biten på bussen medan den har sänt den recessiva biten, betyder det att noden har förlorat arbitreringen och slutar sända ytterligare bitar. Avsändaren kommer att vänta och skicka meddelandet igen när bussen är ledig.

CAN skiljedomsexempel

CAN-protokoll

Om vi ​​betraktar tre noder, dvs. Nod 1, Nod 2 och Nod 3, är meddelandeidentifierarna för dessa noder 0x7F3, 0x6B3 respektive 0x6D9.

logik för registeröverföring
CAN-protokoll

Överföringen av alla tre noder med den mest signifikanta biten visas i diagrammet ovan.

elvathbit: Eftersom alla tre bitarna av noder är recessiva, så kommer även bussbiten att förbli recessiv.

10thbit: Alla noder har 10:e bit som recessiv, så bussen kommer också att förbli recessiv.

9thbit: Nod 1 har recessiv bit medan andra noder har en dominant bit, så bussen kommer också att förbli dominant. I det här fallet har nod 1 förlorat skiljeförfarandet, så den slutar skicka bitar.

8thbit: Både nod 2 och nod 3 sänder recessiv bit, så att busstillståndet förblir recessivt.

7thbit: Nod 2 sänder dominant bit medan nod 3 har skickat recessiv bit, så att busstillståndet kommer att förbli dominant. I det här fallet har noden 3 förlorat skiljeförfarandet, så den slutar skicka meddelandet medan noden 2 har vunnit skiljeförfarandet innebär att den kommer att fortsätta hålla bussen tills meddelandet tas emot.

gör medan java