Sunteți pe pagina 1din 44
CURS 8 – CAN INFORMATICA INDUSTRIALA As. drd. ing. Valentin STEFANESCU
CURS 8 – CAN
INFORMATICA INDUSTRIALA
As. drd. ing. Valentin STEFANESCU
 

Introducere

 

2

 
 

CAN (Controller Area Network) a fost dezvoltat in anul 1985 de catre Bosch pentru a fi folosit in special in industria auto Inainte de aparitia CAN, toate componentele unui autoturism erau conectate prin topologii point-to-point

Odata cu cresterea numarului de dispozitive electronice utilizate intr-un autoturism, aceste interconexiuni au devenit dificil de realizat si costurile au crescut

CAN reprezinta un bus

serial cu posibilitatea de a

interconecta o multitudine de dispozitive

El

a

fost

rapid

adoptat

si in anul 1993 a fost

standardizat (ISO 11898)

 

Introducere

 

3

 
 

Incepand cu 1994, au fost dezvoltate protocoale superioare bazate pe CAN (cum ar fi CANopen sau DeviceNet) care au facilitat utilizarea CAN si in alte domenii industriale

Avantajele

CAN,

in

special

in

industria

auto,

sunt

semnificative Cel mai evident avantaj este costul redus. CAN este un bus serial rapid format din 2 fire

Numarul mare de dispozitive si productia lor in numar mare datorita industriei auto a contribuit la costurile reduse pentru implementarea unei retele CAN

4

Introducere

4 Introducere    De asemenea, in industria auto s-a pus mare accent pe fiabilitate si

De asemenea, in industria auto s-a pus mare accent pe fiabilitate si raspuns rapid CAN ofera metode sofisticate de detectie a erorilor Un exemplu statistic: la o viteza de 500kbps si o incarcare a bus-ului de 25%, functionand 2000 de ore/ an, o eroare va fi nedetectata o data la 1000 de ani Mesajele eronate sunt retransmise si fiecare nod este informat de existenta unei erori Nodurile defecte sunt automat eliminate din comunicatia pe bus CAN prezinta imunitate ridicata la interferentele EM

5

Introducere

5 Introducere    CAN ofera performante real time prin asigurarea unei rate de transmisie de

CAN ofera performante real time prin asigurarea unei rate de transmisie de 1 Mbit/s (pentru o lungime a bus- ului de 40m) Mesajele sunt scurte, intre 0 – 8 bytes de date, datele mai mari pot fi impartite in mai multe mesaje Latenta scazuta intre cererea de transmisie si transmisia efectiva Accesul la bus se realizeaza prin metoda CSMA/CD cu AMP (Arbitration on Message Priority) – mesajul cu cea mai mare prioritate castiga accesul la magistrala fara a pierde timp

 

Introducere

 

6

 
 

CAN este un protocol flexibil, nodurile pot fi conectate si deconectate oricand (plug & play)

CAN

permite

existenta

mai

multor

noduri

master,

fiecare nod putand accesa magistrala individual Numarul de noduri nu este limitat de protocol

CAN este orientat pe mesaj, nu pe noduri

 

Identificatorul

mesajului

specifica continutul si

prioritatea mesajului Mesajele pot fi transmise mai multor/tuturor nodurilor simultan (Multicast/Broadcast) Toate nodurile proceseaza simultan datele comune

Introducere 7    Fara CAN
Introducere
7
   Fara CAN
Introducere 8    Cu CAN
Introducere
8
   Cu CAN

9

Protocolul CAN

9 Protocolul CAN    Protocolul CAN se bazeaza pe modelul OSI    Deoarece este

Protocolul CAN se bazeaza pe modelul OSI Deoarece este un protocol de nivel inferior, numai cateva niveluri OSI sunt pastrate Acest lucru scade costul de implementare si reduce timpul de la cererea de transmisie pana la transmisia efectiva Astfel, pentru CAN sunt definite specificatii doar pentru nivelurile 1 si 2 (fizic si de date) din modelul OSI Nivelul de date este impartit in doua subniveluri: MAC (Medium Access Control) si LLC (Logical Link Control)

Protocolul CAN 10
Protocolul CAN
10

11

Protocolul CAN

11 Protocolul CAN    Functia principala a MAC este de a arbitra accesul la magistrala

Functia principala a MAC este de a arbitra accesul la magistrala de transmisie comuna astfel incat sa nu se produca coliziuni De asemenea, la nivelul MAC se produce codarea si decodarea frame-urilor de transmisie, verificarea si semnalarea erorilor, precum si detectia de echipamente nefunctionale Nivelul LLC ofera utilizatorului (aplicatiilor ce ruleaza in nivelurile superioare) o interfata definita printr-un set de servicii de comunicatii bine definit, precum si abilitatea de a depista daca un mesaj receptionat este util pentru nodul curent

12

Protocolul CAN

12 Protocolul CAN    Implementarea CAN permite modificarea serviciilor definite in LLC, precum si a

Implementarea CAN permite modificarea serviciilor definite in LLC, precum si a mediului fizic de transmisie, insa nu permite modificari la nivelul MAC

Spre deosebire de majoritate fieldbus-urilor, CAN nu are definite niveluri de aplicatie native

Totusi, un numar de astfel de protocoale bazate pe CAN exista si usureaza implementarea sistemelor complexe

13

Nivelul fizic

13 Nivelul fizic    Retelele CAN utilizeaza o magistrala comuna    Magistralele CAN contin

Retelele CAN utilizeaza o magistrala comuna Magistralele CAN contin la fiecare capat care o rezistenta (specificatiile standardului recomanda o valoare de 120Ω) pentru a anula reflexiile semnalului Din acelasi motiv, se recomanda ca topologia sa fie cat mai apropiata de o singura linie Sunt permise device-uri conectate prin intermediul stub-urilor (portiuni de retea in care datele se transmit pe o singura cale), insa lungimea lor trebuie sa fie mica (la 1Mbps, nu mai mult de 30cm)

14

Nivelul fizic

14 Nivelul fizic    Pot fi folosite diverse medii de transmisie:    Magistrala formata

Pot fi folosite diverse medii de transmisie:

Magistrala formata din 2 fire care permite transmise diferentiala si asigura fiabilitate crescuta. In acest caz, pentru a imbunatati imunitatea la interferentele EM se pot folosi cabluri torsadate ecranate Magistrala formata dintr-un singur fir, mai simpla si mai ieftina, folosita mai ales in industria auto Fibra optica, folosita in medii dificile. Ofera imunitate completa la interferentele EM. Este de obicei folosita pentru interconectarea diferitelor subretele CAN

Ratele de transfer folosite in retelele CAN variaza intre 50Kbps si 1 Mbps (maxim suportat)

 

Nivelul fizic

 

15

 
 

Ratele de trasfer depind de lungimea magistralei cat si de intarzierile introduse de echipamente

In

general,

trebuie

ca

produsul

dintre

lungimea

magistralei si rata de transfer sa fie aproximativ constant

 

de

semnal

pot

fi folosite

in

cazul in care

 

Repetoare reteaua

trebuie

extinsa

si

sunt

suficiente

rate de

transfer mici sau medii De asemenea, se pot obtine topologii diferite prin introducerea repetoarelor (arbore, pieptene, etc.) insa acestea introduc intarzieri si distanta dintre noduri trebuie redusa

 

Nivelul fizic

 

16

 
 

In cazul CAN, spre deosebire de PROFIBUS-PA, nu exista o modalitate de a transmite si datele si de a alimenta dispozitivul pe acelasi fir

De asemenea, in cazul CAN nu sunt definiti conectori, insa aplicatiile de nivel superior bazate pe CAN definesc conectorii necesari si atribuie pinii corspunzator

In

CAN,

interfata

electrica

se

bazeaza pe o

configuratie de tip open collector Aceasta configuratie presupune ca semnalul de iesire sa fie aplicat in baza unui tranzistor, iar colectorul sau sa fie legat la pinul corespunzator de iesire, in timp ce emitorul este legat la pinul de masa

17

Nivelul fizic

17 Nivelul fizic    Astfel, complementare, denumite nivel dominant si nivel recesiv    In
17 Nivelul fizic    Astfel, complementare, denumite nivel dominant si nivel recesiv    In

Astfel,

complementare, denumite nivel dominant si nivel recesiv In mod uzual, nivelul dominant corespunde nivelului de 0 logic iar nivelul recesiv corespunde nivelului de 1 logic

niveluri

bus

pot

transmite

doua

pe

se

18

Nivelul fizic

18 Nivelul fizic    Deoarece magistrala este comuna, ea poate fi in starea recesiva doar

Deoarece magistrala este comuna, ea poate fi in starea recesiva doar cand toate nodurile sunt recesive (SI logic)

  Deoarece magistrala este comuna, ea poate fi in starea recesiva doar cand toate nodurile sunt
  Deoarece magistrala este comuna, ea poate fi in starea recesiva doar cand toate nodurile sunt
  Deoarece magistrala este comuna, ea poate fi in starea recesiva doar cand toate nodurile sunt
  Deoarece magistrala este comuna, ea poate fi in starea recesiva doar cand toate nodurile sunt

19

Nivelul fizic

19 Nivelul fizic    Codarea bitilor se face folosind tehnica NRZ (Non Return to Zero)

Codarea bitilor se face folosind tehnica NRZ (Non Return to Zero) care ofera eficienta mare deoarece informatia de sincronizare nu este codata separat fata de date Sincronizarea intre noduri se faci prin tehnica numita Direct Phase-Locked Loop (DPLL) care extrage informatia referitoare la timp din stream-ul de biti De asemenea, fronturile semnalului sunt folosite pentru sincronizarea ceasurilor locale pentru a compensa tolerantele si devierile oscilatoarelor Pentru un nivel bun de sincronizare trebuie sa se asigure un numar suficient de fronturi

20

Nivelul fizic

20 Nivelul fizic    Pentru stuffing    Aceasta presupune ca oricand apar 5 sau

Pentru

stuffing Aceasta presupune ca oricand apar 5 sau mai multi biti consecutivi de acelasi fel, nodul emitator insereaza un bit complementar Acesti biti sunt eliminati la receptie pentru a obtine semnalul original

bit-

aceasta,

CAN

foloseste

tehnica

numita

  Acesti biti sunt eliminati la receptie pentru a obtine semnalul original bit- aceasta, CAN foloseste
 

Frame-uri CAN

 

21

 
 

Standardul CAN defineste doua tipuri de frame-uri:

frame-ul standard si frame-ul extins Acestea difera in special prin lungimea identificatorului si prin cativa biti din campul de arbitrare

Astfel,

frame-ul

standard

(cunoscut

drept

CAN

2.0A) defineste un identificator cu lungimea de 11 biti Acest lucru inseamna ca pot exista pana la 2048 de identificatori disponibili pentru aplicatii ce ruleaza in aceeasi retea

22

Frame-uri CAN

22 Frame-uri CAN    Frame-ul extins (CAN 2.0B) defineste 29 de biti pentru identificator 

Frame-ul extins (CAN 2.0B) defineste 29 de biti pentru identificator In acest caz numarul de identificatori atinge jumatate de miliard, suficient pentru orice aplicatie

Folosind identificatori extinsi intr-o retea in care sunt conectate si noduri CAN 2.0A poate duce la instabilitate, astfel, au fost definiti controlleri CAN 2.0B pasivi care ignora frame-urile extinse si nodurile proceseaza doar frame-urile standard

 

Frame-uri CAN

 

23

 
 

Frame-urile aproape superioare

standard

sunt

suficiente

pentru

orice

aplicatie

si

standardele

(CANopen

sau

DeviceNet)

se

bazeaza pe ele Ele asigura o comunicatie mai eficienta datorita cantitatii mai mici de overhead care se adauga datelor transmise In CAN se regasesc 4 tipuri de frame-uri: data, remote, error si overload

 

Frame-uri data

24

 
 

Data frame-urile sunt folosite pentru a transmite date in retea Deoarece transmisia se face intr-un mediu serial, frame-

urile incep cu dominant

in

bit

SOF (Start of

Frame) cu nivel

are receptoare Imediat dupa bitul SOF urmeazacampul de arbitrare ce include atat identificatorul cat si bitul de RTR (Remote Transmission Request) Identificatorul are roulul de a specifica continutul frame- ului care este transmis in intreaga retea

de asemenea rolul de a sincroniza nodurile

El

25

Frame-uri data

25 Frame-uri data    De asemenea, identificatorul e folosit de nivelul MAC pentru a determina
25 Frame-uri data    De asemenea, identificatorul e folosit de nivelul MAC pentru a determina

De asemenea, identificatorul e folosit de nivelul MAC pentru a determina prioritatea frame-ului (valoare mai mica = prioritate mai mare) In cazul frame-urilor extinse, identificatorul e separat in identificatorul de baza (11 biti) si cel extins (18 biti) pentru a asigura compatibilitatea

26

Frame-uri data

26 Frame-uri data    Urmatorul camp este cel de control. El contine, in cazul frame-urilor
26 Frame-uri data    Urmatorul camp este cel de control. El contine, in cazul frame-urilor

Urmatorul camp este cel de control. El contine, in cazul frame-urilor standard, bitul IDE (Identifier Extension) care deosebeste frame-urile standard de cele extinse In cazul frame-urilor extinse, bitul IDE e inclus in campul de arbitrare ca si bitul SRR (Substitute Remote Request) Acesta va avea merau o valoare recesiva pentru a pastra integritatea frame-ului

27

Frame-uri data

27 Frame-uri data    Urmeaza apoi bitii rezervati r0 (frame-uri simple) sau r0 si r1
27 Frame-uri data    Urmeaza apoi bitii rezervati r0 (frame-uri simple) sau r0 si r1

Urmeaza apoi bitii rezervati r0 (frame-uri simple) sau r0 si r1 (frame-uri extinse) si campul DLC (Data Length Code) Acesta specifica, pe o lungime de 4 biti lungimea (in bytes) a campului de date Bitii r0 si r1 sunt transmisi la valoarea dominanta si sunt ignorati la receptie

28

Frame-uri data

28 Frame-uri data    Campul de date stocheaza datele utile ce se transmit, cu lungimea
28 Frame-uri data    Campul de date stocheaza datele utile ce se transmit, cu lungimea

Campul de date stocheaza datele utile ce se transmit, cu lungimea maxima de 8 bytes Dupa aceea, urmeaza campul de CRC care verifica integritatea datelor la receptie (15 biti)

contine un ultim bit delimitator cu

Campul

de CRC

valoare recesiva

29

Frame-uri data

29 Frame-uri data    Ultimul camp este campul EOF (End Of Frame) care contine 7
29 Frame-uri data    Ultimul camp este campul EOF (End Of Frame) care contine 7

Ultimul camp este campul EOF (End Of Frame) care contine 7 biti de nivel recesiv Transmitatorul considera ca frame-ul s-a transmis corect daca nu s-a produs nici o eroare pana la cel de-al 7-lea bit EOF Receptorul considera ca transmisia s-a facut cu succes daca nu exista nici o eroare pana la al 6-lea bit EOF Campul IMS (Intermision) separa frame-urile consecutive prin 3 biti recesivi

30

Frame-uri remote

30 Frame-uri remote    Frame-urile remote se asemana cu cele de date, insa nu contin

Frame-urile remote se asemana cu cele de date, insa nu contin campul de date Ele sunt folosite pentru a cere un anumit mesaj transmis in retea de un alt nod Nodul care cere retransmisia nu stie cui ii cere acest lucru Este rolul receptorilor sa determine acest lucru Campul DLC nu este folosit, insa el ar trebui setat la valoarea celui din frame-ul solicitat pentru a evita situatiile in care mai multe noduri transmit frame-uri cu acelasi identificator simultan

 

Frame-uri de eroare

 

31

 
 

Frame-urile de eroare au rolul de a anunta nodurile din retea de prezenta unei erori Ele sunt formate din doua campuri: error flag si error delimiter Error flag poate fi activ (format din 6 biti dominanti) sau pasiv (format din 6 biti recesivi) Un flag activ incalca regula de bit stuffing si produce detectia unei erori in toate nodurile din retea Fiecare nod transmite un flag propriu

Delimiter-ul transmiterea

e

format

din

8

biti

recesivi.

Dupa

unui

flag,

fiecare

nod

transmite

biti

recesivi si verifica starea bus-ului

 
 

Frame-uri de overload

 

32

 
 

In momentul in care bus-ul e in stare recesiva, se mai transmit inca 7 biti recesivi pentru a completa campul

In

cazul

frame-urilor

de

overload,

acestea

sunt

folosite de nodurile mai lente pentru a incetini traficul in retea Acest lucru se face prin adaugarea de intarzieri suplimentare intre frame-urile de date si remote Ca si frame-urile de eroare, ele contin un flag si un delimiter Receptoarele CAN din prezent sunt foarte rapide, astfel, frame-urile de overload sunt aproape inutile

Tehnici de acces la magistrala

33

Tehnici de acces la magistrala 33    CAN se bazeaza pe tehnologia CSMA (Carrier Sense

CAN se bazeaza pe tehnologia CSMA (Carrier Sense Multiple Access) Cand nu se transmite nimic, bus-ul e in stare recesiva si orice nod poate transmite Bitul de SOF este intodeauna dominant pentru a semnaliza ca bus-ul este ocupat celorlalte noduri Daca bus-ul e in stare dminanta (se transmite informatie in retea), nodurile trebuie sa astepte pana cand transmisia se termina si bus-ul ajunge in stare recesiva

Tehnici de acces la magistrala

34

Tehnici de acces la magistrala 34    Exista situatii cand 2 noduri pot transmite simultan

Exista situatii cand 2 noduri pot transmite simultan (desi destul de improbabil) In acest caz se produce o coliziune Intr-o retea CAN, un nod va transmite imediat dupa terminarea bitilor IMS Intre timp, alte noduri pot incerca sa transmita si in acest caz, nodurile se sincronizeaza folosint identificatorul, castigand accesul mesajul cu prioritatea mai mare CAN adauga algoritmului CSMA prioritatea mesajului

Tehnici de acces la magistrala

35

Tehnici de acces la magistrala 35    Astfel, in cazul unei coliziuni intr-o retea CAN,

Astfel, in cazul unei coliziuni intr-o retea CAN, nodul care va castiga magistrala este cel cu mesajul cel mai urgent Spre deosebire de Ethernet, arbitrarea nu se face aleator si astfel, CAN trateaza coliziunile intr-un mod mult mai eficient In cazul unei coliziuni, toate nodurile opresc transmisa, mai putin cel cu prioritate maxima, astfel nu se pierde mult timp pana cand traficul este reluat

 

Tehnici de acces la magistrala

 

36

 
 

Cand transmite, fiecare nod verifica nivelul de pe bus Bitul SOF este transmis dominant pentru a seta bus-ul in starea dominanta

Apoi

urmeaza

identificatorul,

care

determina

prioritatea mesajului Daca un nod transmite o valoare recesiva in timp ce bus-ul este in stare dominanta, el intelege ca a pierdut arbitrarea si se retrage din transmisie

De asemenea, trece in starea de receptie pentru a primi frame-ul castigator

Tehnici de acces la magistrala

37

Tehnici de acces la magistrala 37    Astfel, in cazul unei coliziuni, acest algoritm asigura

Astfel, in cazul unei coliziuni, acest algoritm asigura ca toate nodurile se vor retrage din transmisie pana la sfarsitul campului de arbitrare, mai putin nodul cu prioritate maxima In acest mod, transmisia nu este oprita in cazul unei coliziuni si traficul se mentine constant

castigator nu realizeaza ca s-a produs o

Nodul

coliziune Practic, nodurile pot transmite simultan atata timp cat bitii sunt comuni De aceea, pana la sfarsitul campului de arbitrare se determina castigatorul cu prioritatea maxima

Tehnici de acces la magistrala

38

Tehnici de acces la magistrala 38
Tehnici de acces la magistrala 38

Managementul erorilor

39

Managementul erorilor 39    Deoarece CAN este folosit in aplicatii ce necesita o fiabilitate ridicata,

Deoarece CAN este folosit in aplicatii ce necesita o fiabilitate ridicata, un aspect important a fost detectia si managementul erorilor CAN are un mecanism foarte bine pus la punct pentru acest lucru CAN implementeaza 5 tehnici pentru detectia erorilor

– sfarsitul frame-ului Frame check – exista cativa biti cu niveluri predefinite in interiorul unui frame (delimiter-ul ACK si CRC, bitii EOF). Daca unul din ei are alta valoare decat cea standard, se genereaza un frame de eroare

al integritatii adaugati la

CRC

15

biti de control

 

Managementul erorilor

 

40

 
 

Acknowledgement check – Nodul destinatar verifica daca bitul ACK a fost setat la valoarea dominanta. In caz contrar se constata o eroare Bit monitoring – Fiecare nod ce transmite compara valoarea de pe bus cu valoarea ce este scrisa. Daca apar diferente, se semnaleaza eroare Bit stuffing – Fiecare nod verifica daca regula de bit stuffing a fost incalcata. Daca se gasesc 6 biti de acelasi nivel (in afara de CRC), se semnaleaza o eroare

Cu

toate

aceste

tehnici

de

detectie

a

erorilor,

probabilitatea ca o eroare sa treaca nedetectata este de 4.7 × 10 -11

Managementul erorilor

41

Managementul erorilor 41 CRC success CRC error ACK check Frame check
Managementul erorilor 41 CRC success CRC error ACK check Frame check

CRC success

Managementul erorilor 41 CRC success CRC error ACK check Frame check
Managementul erorilor 41 CRC success CRC error ACK check Frame check

CRC error

Managementul erorilor 41 CRC success CRC error ACK check Frame check

ACK check

Frame check

Managementul erorilor

42

Managementul erorilor 42 nodurilor in retea monitorizeaza si functionarea nod se defecteaza, acesta este la retea

nodurilor in retea

monitorizeaza

si

functionarea

nod se defecteaza, acesta este la retea pentru a nu perturba

comunicatia Acest mecanism este capabil sa determine daca o eroare este permanenta sau este un eveniment ocazional (burst)

Un nod poate avea una din urmatoarele 3 stari:

In

cazul

in

care un

de

deconectat

Error active Error passive Buss off

De

asemenea,

CAN

Managementul erorilor

43

Managementul erorilor 43    Nodurile error comunicatie in acelasi mod, insa primul genereaza frame-uri de

Nodurile error

comunicatie in acelasi mod, insa primul genereaza frame-uri de eroare active, cel de-al doilea pasive Deosebirea este ca nodurile error passive au mai generat mesaje de eroare si au fost mutate in categoria de error passive Mesajele error passive sunt formate din biti recesivi si nu afecteaza comunicatia Pentru a indica daca un nod se afla intr-una din cele 3 stari, se folosesc doua counter-e: TEC (Transmission Error Count) si REC (Receive Error Count)

active si error passive participa la

Managementul erorilor

44

Managementul erorilor 44    Principiul de baza este urmatorul    Cand se detecteaza o

Principiul de baza este urmatorul

Cand se detecteaza o eroare, counter-ele sunt incrementate cu o anumita valoare Cand se realizeaza o transmisie reusita, ele sunt decrementate Valoarea cu care se incremeneteaza counter-ul pentru nodul care detecteaza primul eroarea este mai mare decat cea cu care se incrementeaza pentru cele care doar raspund la error flag In acest mod, counter-ul pentru nodul defect va avea o valoare mai mare decat celelalte Cand counter-ul depaseste primul prag (127), este trecut in starea error passive pentru a nu afecta comunicatia La al doilea prag (255) este deconectat de la retea (bus off) In acest caz poate fi setat din now la starea error active numai dupa ce este resetat si reconfigurat