Præsentation er lastning. Vent venligst

Præsentation er lastning. Vent venligst

CAN-BUS CONTROLLER AREA NETWORK

Lignende præsentationer


Præsentationer af emnet: "CAN-BUS CONTROLLER AREA NETWORK"— Præsentationens transcript:

1 CAN-BUS CONTROLLER AREA NETWORK
The CAN protocol is developed by Robert Bosch GmbH and protected by patents.

2 Indhold Det fysiske lag - Kabling og impedans - Bit signalering
- Transmissions hastighed - Nominel bus signal level De facto standarden DS-102 pin assignment (CIA) Datalink laget. Dataframe, bit identifier, frame coding. Arbitration, hvad er det? Bit stuffing, error handling, Bit timing Synkronisering (sample point) Acceptance filter (ACF) De væsentligste forskelle mellem CAN 2.0A og CAN 2.0B

3 Det fysiske lag

4 Kabling og impedans To-leder bussen er består normalt af et ”twisted-pair” (skærmet eller uskærmet) kabel. Fladkabel (som til telefoner) fungerer også fint, men genererer mere støj og mere modtagelig for udefrakommende støjkilder. Bussens linie skal være tilsluttet i hver ende med en modstand for at modvirke refleksion. Ved brug af modstanden, skal størrelsen være: min. 100 Ω, norm. 120 Ω, max. 130 Ω. Det fysiske medie, er en to-leder bus linie, med normale slutmodstande i hver ende, der svarer til impedancen i lederne. Kabeltyperne i et CAN netværk, bør være så tæt som muligt på en enkelt linie struktur, for at undgå kabel-reflekterede bølger. Kablerne bør være så korte som muligt når man kører high bit-rates. Ved 1Mb/s bør ledningerne maksimum være 30 cm. Teoretisk er max længden 40 m ved en data-strøm på 1Mb/s. Ved data-strømme lavere end 1Mb/s kan kabellængderne øges væsentligt. Maksimum 1 km ved max 50Kb/s. Hvis man benytter en ”bridge” eller en ”repeater” kan man begrænse modstanden i knudepunkterne. En anden mulighed for at begrænse knudepunkterne, er at formindske afstanden mellem dem eller forsyne dem med galvanisk adskillelse. En connetor til brug ved tilslutning til bus linien, skal have en nominel impedans på 120 Ω og en nominel transmissionsmodstand på 70 mΩ. Kablerne skal have en nominel impedans på 120 Ω og en længde-relateret modstand på 70 m/m og et specifikt linie delay på 5 ns/m. Hvis bus længden er længere en 40 meter, skal den specifikke modstand på bus kabelet være lavere. Bus kablerne bliver dirigeret parallelt, snoet og/eller skærmet, afhængig af EMC forskrifterne. Nogle ISO kompatible integrerede transceiver kredse, er forsynet med en ”slope-control” funktion, for at reducere elektromagnetisk udstråling (fx ved brug af uskærmede kabler). Hvis ”slope-control” funktionen bliver brugt, begrænses det interne delay. Dette er modsvaret til et maximum på bus længden i en given bit-rate.

5 Bit signalering, NRZ CAN-bussen består af en såkaldt ”Non Return to Zero” (NRZ) kodning (med bit-stuffing) til data kommunikation i en to-leder bus. Brugen af NRZ kodning sikrer kompakte beskeder med et minimum af omkoblinger og høj afskærmningsevne i forhold til forstyrrelser udefra.

6 Transmissionshastighed
Transmissionshastigheden på en CAN-bus er ifølge standard 1Mbit/s. Nogle CAN kontrollere kan ikke desto mindre håndtere hastigheder der er højere end det. Hastigheden på en CAN-bus kan også være lavere end 1Mbit/s, hastigheden er afhængig af længden på kablet. Jo større modstand jo mindre hastighed. Herunder ses en oversigt over estimerede hastigheder ved forskellige længder: • meter ved 500 kbit/s • meter ved 250 kbit/s • meters ved 125 kbit/s • kilometer ved 10 kbit/s

7 Nominel bus signal level
Det at CAN-Bussens siganeler er nomineller, vil sige at de ledninger, to, sender forskellige signaler. Det er den forskel der er mellem de to signaler, som bestemmer om det er et logisk 0 eller 1, der skal sendes. F.eks. et 0, logisk, sendes med cirka 2 V. mellem de to ledere, imens vil et 1 sendes med samme spænding på begge ledere. Og på denne måde bliver bussen samtidig godt beskyttet mod støj, elektrisk.

8 De facto standarden DS-102 pin assignment (CIA)
CiA DS-102 standarden inkluderer en pin tildeling for 9-polet Sub-D connectorer til forbindelse af noder til CAN bus linien. Pin tildelingen er brugt af nogle høj-lags protokol specifikationer (f.eks. CANopen, Smart Distributed System). Her er to eksempler:

9

10

11 Datalink laget

12 Dataframe Dataframe, er d en mest andvendte meddelelsestype. Det udgør følgende hovedpunkter (nogle detaljer er udeladt da det ellers ville fylde for meget.): ·        Voldgifts feltet, som bestemmer prioriteten af beskeden når to eller flere noder er ”kæmper” om bussen. Voldgifts feltet indeholder: I CAN 2.0A, en 11-bit genkender og et bit, RTR bittet, som er dominant for data frames. I CAN 2.0B, en 29-bit genkender (som også indeholder to recessive bits: SRR og IDE) og RTR bittet   ·        Data feltet, som indeholder nul til otte byte af data. ·        CRC feltet, som indeholder en 15-bit checksum udregnet på denstørste del af beskden. Denne Checksum er brugt til fejl-finding. ·        Et anerkendelses slot; enhver CAN controller der har været i stand til et anerkendelses bit for enden af enhver besked. Afsenderen tjekker for tilstedeværelsen af anerkendelses bittet og gen-sender beskeden hvis der ikke er fundet nogen anerkendelse.    Note 1: Det er værd at bemærke, at tilstedeværelsen af et anerkendelses bit på bussen, ikke er en garanti for at ’ nogen af de tilsigtede adresser har modtaget beskeden. Den eneste ting man ved er at en eller flere noder på bussen der modtaget korrekt. Note 2: Genkendelsen i voldgifts feltet er ikke, på trods af navnet, nødvendigvis i stand til at genkende indholdet af beskeden.

13 Bit identifier Bit-identifier – Frame-coding.
En besked sent via CAN udvidede frame-format er ca. det samme som i standard frame-formatet. Forskellen er længden på den ”identifier” der bliver brugt. Denne er bygget op omkring den eksisterende 11-bit identifier (den såkaldte base-identifier) og en 18-bit udvidelse. Forskellen mellem disse to, er lavet ved hjælp af IDE-bittet som bliver transmitteret som den dominerende i en CAN standard-framen og som den tilbagetrukne i det udvidede CAN frame-format. Dvs. at den besked sendt i standard-formatet, altid overtrumfer det udvidede format!

14 Arbitration, hvad er det?
CAN protokolellen bruger principperne fra Carrier Sense Multiple Access with Non Destructive Arbitration. Denne ”voldgifts” koncept undgår kollisioner af beskeder når mere end én node transmiteres samtidig.

15 På vores oscilloscope skærm, kan man se kurven af transmit stikbenene af to-noder kaldet A og B. De er lige inaktive og det er resultatet af bus linien er i overensstemmelse med ”wired-AND principle”.

16 Lad os antage at kun node A venter på at tgransmitere en besked
Lad os antage at kun node A venter på at tgransmitere en besked. En standard transmision uden ”voldgift” virker sådan her. Node A lytter på CAN bussen for at være sikker på er i ”ikke aktiv” tilstand, og at ikke andre noder sender samtidig.

17 Hvis bussen er ”ikke aktiv” og ingen andre noder ønsker at sende på samme tid, bliver node A ”bus master” og starter med at transmittere sin besked. Vi kan se beskedens bit-mønster rulle igennem fra højre til venstre, transmiteres til busseb af node A. Alle de andre noder på bussen skifter til ”modtage tilstand” i løbet af det første transmitterede bit, ”Start Of Frame” bit.

18 Efter korrekt modtagelse af denne besked, som er anerkendt af hver modtage node i godkendelses slot’tet, hver bus node tjekker besked identifikationen og gemmer beskeden, hvis det er krævet. Ellers, er beskeden kasseret.

19 Hvis, efter at bussen er fundet inaktiv, to eller flere bus noder starter deres transmission samtidig, kollisioner er af beskederne bliver undgået ved bit-by-bit ”voldgift”. Her er hvordan det virker, hver node bittet fra dets besked-genkendelse og overvåger bus niveauet. Så længe som genkendelses-bittene er ens, hver node fortsætter med at sende sin besked.

20 På genkendelses bittets position, fremhævet herover, node A sender et dominant genkendelses bit, mens node B sender et vigende/recessiv 1. Node B forvente at læse et recessiv bus niveau tilbage, men aflytter et dominant niveau i stedet for. Så den taber ”voldgiften” og skifter til modtage status. Denne tilstand forekommer når besked-genkendelsen, når en af de konkurrerende noder har et lavere binær værdi og indikerer at den konkurrerende node er ved sende en besked med en højere prioritet. På denne måde, bussen med den højeste prioritets besked vinder ”voldgiften” uden tab af tid sådan at beskeden gentages.

21 Når først bussen returnerer til inaktiv tilstand, noderne har tabt ”voldgiften”, ligesom node B i vores eksempel, prøver den automatisk at gentage den trnsmission. To noder må ikke sende beskeder med den samme genkendelse da ”voldgiften” vil fejle og føre til collision og fejlmeddelelser. Nu da vi har set hvordan CAN-Bus ”voldgiften” opererer, lad os tænke på CAN data frame formatet. Vi vil starte denne diskussion med et kig på standard data frame formatet.

22 Bit stuffing, error handling
Detekterede fejl er gjort opmærksom på til alle andre noder via "Error Frames". Når en fejl er opdaget, vil transmissionen af de fejlagtige beskeder blive afbrudt, en ”error frame” bliver transmitteret, og framen gentaget så snart som muligt.

23 Detekterede fejl er gjort opmærksom på til alle andre noder via "Error Frames". Når en fejl er opdaget, vil transmissionen af de fejlagtige beskeder blive afbrudt, en ”error frame” bliver transmitteret, og framen gentaget så snart som muligt.

24 En CAN node er i en af de tre fejl-tilstande, fejl-aktiv, fejl-passiv eller bus afbrudt ifølge værdien af den interne fejl tællere. Den fejl-aktive tilstand er tilstande efter reset, hvor bus-nodenkan modtage og transmittere beskeder, og transmittere fejl-frame, lavet af dominant bit, uden nogen begrænsninger. I løbet af CAN kommunikationen, er fejl-tælleren opdateret ifølge ”quite complex rules”. For hver modtagelse eller overførsels fejl, er fejl-tælleren forøget med en given værdi. For hver vellykket overførsel, er fejl-tælleren formindsket en given værdi. En node er i fejl-aktiv tilstand hvis både modtagelse fejl tæller, og i overførsels fejl tæller, indeholder en værdi mindre end 127. I fejl-passiv tilstand, er der ingen af disse tællere der har en værdi over 127. Og i bus afbrudt tilstand, har transmit fejl-tælleren en værdi over 255.

25 Hvis enten de modtagende eller den overførende fejl-tæller har nået en værdi over 128, vil noden skifte til fejl-passiv tilsatnd. I den fejl-passive tilstand, kan beskeder stadig sendes og modtages, selvom efter transmissionen af en besked, vil noden blive nød tila t gå igennem en afbrudt transmission, det er, hvis den skal vente 8 bit gange længere end fejl-aktive noder, før den må overføre en ny besked. Angående fejl signalering, er det kun fejl-frames, sat sammen af recessive bit der må blive overført af en fejl passiv node.

26 Hvis begge fejl-tælleren kommer under en værdi på 128 igen som følge at en vellykket bus kommunikation, vil noden skifte tilbage til fejl-aktive tilstand.

27 En kendetegnene ved CAN protokollen er, at defekte noder trækker sig væk fra bussen automatisk. Bus-afbrudt tilstanden bliver indført hvis den overførsels-fejl-tælleren overstiger en værdi på 255. Alle bus aktiviter bliver stoppet, hvilket gør det midlertidigt umuligt for den station at deltage i bus-kommunikationen. I denne tilstand, beskeder kan hverken sendes eller modtages.

28 En node kan returnere til den fejl-aktiv tilstand, kun ved at værts-CPU’en gen-initialisere den. Når en node gen-initialisers, bliver modtage og sende fejl-tælleren resat til nul.

29 For at give en idé af fejl detekteringens kapaciteten af CAN, er der her et eksempel: Et CAN netværk kører 2000 timer pr. år, med en CAN bus hastighed på 500 kbit/s, med en 25% bus belastning vil resultere i én udetekteret fejl for hver 1000 år.

30 Bit timing Bit  rate  Bus length (1) Unterminated cable drop length (5) (cumulative length) Length of time quantum (4) Nominal bit time (4) Sample point location (4) 1 Mbit/s 25 m 1.5 (7.5) m 125 ns 8 tq (1 µs) 6 tq (750 ns) 800 kbit/s 50 m 2.5 (12.5) m 10 tq (1.25 µs) 8 tq (1 µs) 500 kbit/s 100 m 5.5 (27.5) m 16 tq (2 µs) 14 tq (1.75 µs) 250 kbit/s 250 m (2) 11 (55) m 250 ns 16 tq (4 µs) 14 tq (3,5 µs) 125 kbit/s 500 m (2) 22 (110) m 500 ns 16 tq (8 µs) 14 tq (7 µs) 50 kbit/s 1000 m (3) 55 (275) m 1.25 µs 16 tq (20 µs) 14 tq (17.5 µs) 20 kbit/s 2500 m (3) 137.5 (687.5) m 3.125 µs 16 tq (50 µs) 14 tq (43.75 µs) 10 kbit/s 5000 m (3) 275 (1,375) m 6.25 µs 16 tq (100 µs) 14 tq (87.5 µs) For at sætte kommunikationen i en CAN-Bus i gang, må bit-timingen for hver node programmeres til at være det samme. CAN-Bus bit hastigheden er fastsat ved at programmere værdier ind i ”Bit Timing Registeret (BTR) i CAN controller chipsene. At lave udregningerne til at få bit hastigheden man vil have er ikke den store videnskab, men den er langvarig/trættende og fejl-behæftet. Hvis man bruger forskellige typer af CAN controllere, må hver især blive programmeret med forskellige værdier for at frembringe den samme bit hastighed. Hvis buslængden, forskelligt krystal eller oscillator frekvens og tolerance også skal tages ind i redegørelsen, så involverer det endnu mere arbejde.

31 Synkronisering (sample point)
Når en node modtager en data frame eller en fremmed frame, er det nødvendigt for modtageren at synkronisere med afsenderen. Da der ikke er noget absolut clock signal som et CAN system kan brugesom en tids reference, to mekanismer er brugt til vedligeholde synkroniseringen.   Den første er hard synchronisation og forekommer i Start of Frame (SOF). For at kompensere for oscillator drift, fase forskydning mellem, sender og modtager oscillatorer, er ekstra synkronisering nødvendig. Så – for efterfølgende bit i enhver modtaget frame, hvis en bit kant ikke forekommer i Sync-seg segmentet af bit-tid, resynkroniseringen vil automatisk blive påkaldt og vil forkorte længden af den nuværende bit tid, afhængig af hvor kanten er. Den maksimale tid, som bit-tiden er forlænget eller forkortet er bestemt af et bruger-programmeret antal af tids kvanta, kendt som det Synchronisation Jump Width (SJW).

32 Acceptance filter (ACF)
Kommunikation på bussen forgår som en broadcast, det vil sige at alle signaler bliver sendt ud så alle kan læse dem. For at finde ud af hvem de signaler der står på busser er til, er man nød til at have en metode til at sortere signalerne. Man skal kunne skelne om man skal bruge signalet eller ej. Til dette formål har man et acceptance filteret. Acceptance filteret består af to registre. Det ene hedder (ACR) Acceptance Code Register og det andet (AMR) Acceptance Mask Register. Begge registre er på otte bit, en byte. For at finde ud af, om det der sendes på bussen skal bruges af den enkelte enhed, lægges de to registre sammen. Hvis resultatet er "0" skal det signal der er på linjen bruges. Hvis resultatet er "1" skal signalet ignoreres.

33 De væsentlige forskelle mellem Can 2.0A og Can 2.0B
Besked Frames. I et CAN system, er data’er transmitteret og modtaget ved at bruge besked frame. Besked frame bringer data fra en transmitterings node til én eller flere modtage noder. Standard CAN protokollen (version 2.0A), også kendt som Base Frame Format, understøtter beskeder med 11 bit genkendelse. Den udvidede CAN protokol (version 2.0B), også kendt som Extended Frame Format, understøtter både 11 bit og 29 bit genkendelse. De fleste 2.0A controllere sender og modtager kun Standard format beskeder, selvom nogle (kendt som 2.0B passive) vil modtage Extended format beskeder – men derefter ignorere dem. 2.0B controllere kan sende og modtage beskeder i begge formater. 2.0A Format En standard CAN (Version 2.0A) besked frame indeholder syv forskellige bit felter: Et ”Start of Frame” (SOF) felt – som indikerer starten af besked frame’en Et Arbitrations felt, indeholdende en besked om genkendelse og ”Remote Transmission Request” (RTR) bit. RTR bittet bliver brugt til at skelne mellem et transmitteret Data frame og en anmodning om data fra en fjern node.

34 Forskelle CAN 2.0A og CAN 2.0B figur 1
· Et kontrol felt indeholder seks bit: * to reserverede bit (r0 og r1) og * et fire bit ”Data Length Code” (DLC). DLC’en indikerer antal af bit i Data feltet som følger · Et Data felt, som indeholder fra 0 til 8 byte. CRC feltet, som indeholder et femten cyklisk redundans tjek node og et recessiv afgræsnings bit. Erkendelses feltet, indeholder to bit. Det første er slot bittet som transmitterer og modtager, men er senere over-skrevet af dominante bit transmitteret fra en hvilken som helst node som vellykket modtager den transmitteret besked. Det andet bit er et recessiv afgrænsnings bit. · Enden af Frame feltet, indeholder syv recessive bit. Efter End of Frame er pause feltet bestående af tre recessive bit. Efter tre bits pause periode er bussen godkendt til at være frie. Bussens ledigheds tid må være af en vilkårlig længe inklusiv nul.

35 2.0B Format CAN 2.0B formatet stiller en niogtyve (29) bit godkender tilrådighed, i modsætning til den 11 bit godkender i CAN 2.0A. Version 2.0B er udviklet til at sørge for overensstemmelse med andre serielle kommunikations protokoller, som er brugt i auto branchens applikationer i USA. For at tilfredsstille dette behov, og stadig tilbyde kompalitet med 2.0A formatet, har Besked Framen i version 2.0B en udvidet format. Forskellene er: I version 2.0B består arbitrations (voldgifts) feltet af to identificerings felter. Den første (Base ID) er eleve (11) bit lang for kampalitet medc version 2.0A. Det andet felt (udvidelses ID) er atten (18) bit langt, som giver en total længde på niogtyve (29) bit. - Forskellen mellem de to formater er lavet ved at bruge et Identifiserings Udvidelses (Identifier Extension) (IDE)bit En Erstatnings Fjern Forespørgsel (Substitute Remote Request) (SRR) bit er også includeret i voldgifts feltet. SRR bittet er altid transmitteret som et recessiv bit for at sikre at, i tilfældet en voldgift mellem Standard Data Framen og en Udvidet Data Frame, vil Standard Data Framen altid have prioritet hvis begge beskeder har den samme base (11 bit) genkender. Alle andre filter i en 2.0B besked frame er identiske til dem i Standard format.

36 2.0A og 2.0B kompalitet 2.0B controllere er helt bagud kompatible med 2.0A controlere og kan transmittere og sende beskeder i begge formater. Vær dog opmærksom på, at der er to typer af 2.0A controllere: Den første er kun i stand til at treansmittere og modtage beskeder i 2.0A format. Med denne type af controller, vil modtagelse af enhver 2.0B besked give en fejl. Den anden (kendt som 2.0B passiv) er i stand til at sende og modtage 2.0A beskeder. De vil også anerkende modtagelsen af 2.0B beskeder – men derefter ignorere dem.. Derfor, er det muligt indenfor de ovennævnte begrænsninger at bruge både version 2.0A (med 2.0B passiv kompalitet) og 2.0B controllere i et enkelt netværk. Antallet af unikke genkendere til rådighed for brugere, i et enkelt 2.0A netværk, er (211 – 24 = 2048 – 16 = 2032)

37 SLUT Klik her for at få opgaven i word-format.


Download ppt "CAN-BUS CONTROLLER AREA NETWORK"

Lignende præsentationer


Annoncer fra Google