Sunteți pe pagina 1din 70

Septembrie 1991

Specificaţia CAN 2.0 Pagina 1

Istoric
Acceptarea şi introducerea comunicaţiilor seriale la din ce în ce mai multe aplicaţii a
condus la cerinţe în ceea ce priveşte atribuirea mesajelor de identificare pentru
standardizarea funcţiilor de comunicaţii pentru anumite aplicaţii. Aceste aplicaţii pot fi
realizate mult mai simplu cu CAN dacă domeniul de adresă definit iniţial cu 11 biţi de
identificare este lărgit.
Ca urmare, a fost introdus al doilea format de mesaj (“format extins”) pentru a
asigura un domeniu extins definit de 29 de biţi. Aceasta va elibera pe proiectantul de
sistem de la compromisuri în ceea ce priveşte definirea schemelor stabilite bine
structurate. Utilizarea CAN care nu are nevoie de domeniul de identificare oferit de
formatul extins, poate să se pe mai departe bizuie pe domeniul convenţional al
identificatorului de 11 biţi (“format standard”). În acest caz se poate face uz de
implementările CAN deja disponibile pe piaţă sau de noile controlere ce
implementează ambele formate.
Pentru a deosebi formatul standard şi cel extins, se foloseşte primul bit rezervat din
mesajul format CAN, aşa cum se defineşte în specificaţia CAN 1.2. Aceasta se face
în aşa fel încât formatul mesajului în specificaţia CAN 1.2 este echivalent cu formatul
standard şi ca urmare încă este valabil. În plus, formatul extins a fost definit astfel
încât mesajele în format standard şi în format extins pot exista în interiorul aceleiaşi
reţele.

Acestă specificaţie CAN constă din două părţi cu :

• Partea A ce descrie formatul mesajului CAN, aşa cum este definit în Specificaţia
CAN 1.2;

• Partea B ce descrie formatele mesaj standard cât şi extins.

Pentru a fi compatibilă cu această specificaţie CAN 2.0, este nesesar ca o


implementare CAN să fie compatibilă fie cu Partea A, fie cu Partea B.

NOTA

Implementările CAN care sunt proiectate conform cu specificaţiile din Partea A sau
conform cu specificaţiile anterioare şi implementările CAN proiectate în concordanţă
cu specificaţiile din Partea B pot comunica una cu cealaltă, atât timp cât nu se face
uz de formatul extins.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 2 Specificaţia CAN 2.0

PARTEA A

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 3

1 INTRODUCERE .................................................................................... 4

2 CONCEPTE DE BAZĂ......................................................................... 10

3 TRANSFERUL MESAJULUI ............................................................... 10

3.1 Tipuri de cadre .................................................................................... 10

3.1.1 CADRUL DATE ................................................................................... 10

3.1.2 CADRUL DE LA DISTANŢĂ ............................................................... 15

3.1.3 CADRUL EROARE ............................................................................. 16

3.1.4 CADRUL SUPRASARCINĂ ................................................................ 17

3.1.5 SPAŢIEREA INTERCADRE ............................................................... 18

3.2 Definiţia TRANSMIŢĂTOR / RECEPTOR ........................................... 20

4 VALIDAREA MESAJULUI ................................................................... 21

5 CODIFICAREA ................................................................................... 22

6 MANIPULAREA ERORILOR .............................................................. 23

6.1 Detectarea erorilor .............................................................................. 23

6.2 Semnalarea erorilor ............................................................................ 23

7 LIMITAREA DEFECTELOR ................................................................ 24

8 CERINŢLELE DE SINCRONIZARE PENTRU BIŢI ............................ 27

9 CREŞTEREA TOLERANŢEI OSCILATORULUI PENTRU CAN ........ 31

10 Modificări ale protocolului ................................................................... 31

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 4 Specificaţia CAN 2.0

1 INTRODUCERE
Un controler de zonă a reţelei (Controller Area Network) CAN este un protocol de
comunicaţii seriale care sprijină controlul distribuit în timp real cu un nivel de
securitate foarte înalt.
Domeniul său de aplicare se întinde de la reţelele de mare viteză până la cablarea
mutiplexată de preţ scăzut. În electronica auto se conectează unităţi de control ale
motorului, senzori, unitaţi anti-derapare etc., folosind CAN cu rate de bit de până la 1
Mbit/s. În acelaşi timp este eficient pentru a fi utilizat la partea electronică de pe
caroserie, cum ar fi ansamblul de lămpi, acţionarea electrică a geamurilor etc. pentru
a înlocui arborele de cabluri altfel necesar.
Intenţia acestei specificaţii este de a realiza compatibilitatea între oricare două puneri
în aplicare CAN. Totuşi, compatibilitatea are aspecte diferite în ceea ce priveşte
caracteristicile electrice şi interpretarea datelor care trebuie transferate. Pentru a
realiza transparenţa proiectării şi flexibilităţii punerii în aplicare, CAN a fost
subîmpărţit în diferite straturi:

• stratul – (CAN) obiect


• stratul – (CAN) transfer
• stratul fizic

Stratul obiect şi stratul transfer conţin toate serviciile şi funcţiile stratului de legătură a
datelor (data link) definite de modelul ISO/OSI. Domeniul stratului obiect include:

• găsirea acelor mesaje care trebuie transmise


• luarea deciziei asupra acelor mesaje care recepţionate trebuie să fie efectiv
folosite
• asigurarea unei interfeţe cu stratul aplicaţie legat hardware

Există o mare libertate în definirea manevrării obiectului. Domeniul stratului de


transfer este în principal protocolul de transfer, de exemplu controlul formării
cadrelor, realizarea arbitrării, controlul erorilor, semnalizarea erorilor şi limitarea
defectelor. În interiorul stratului transfer se decide când magistrala este liberă pentru
declanşarea unei noi transmisii sau când tocmai a început o recepţie. De asemenea,
câteva caracteristici generale ale sincronizării bitului sunt privite ca o parte a stratului
transfer. Aceasta este în natura stratului transfer şi nu există libertate pentru
modificări.
Domeniul stratului fizic este transferul curent al biţilor între diferite noduri, cu
respectarea tuturor proprietăţilor electrice. În interiorul unei reţele stratul fizic trebuie
să fie, desigur, acelaşi pentru toate nodurile. Totuşi, poate exista multă libertate în
selectarea stratului fizic.
Scopul acestei specificaţii este de a defini stratul transfer şi consecinţele protocolului
CAN asupra straturilor înconjurătoare.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 5

2 CONCEPTE DE BAZĂ
CAN are următoarele proprietăţi:

• prioritizarea mesajelor
• garantarea timpilor de latenţă
• flexibilitatea configuraţiei
• recepţie multicast cu sincronizare de timp
• consistenţă mărită a datelor în sistem
• multimaster
• detectarea şi semnalarea erorilor
• retransmisia automată a mesajelor perturbate de îndată ce magistrala este din
nou la modul mers în gol
• distincţie între erorile temporare şi defectele permanete ale nodurilor şi
deconectarea autonomă a nodurilor defecte

Structura stratificată a unui nod CAN

Stratul aplicaţie

Stratul obiect
- Filtrarea mesajului
- Manipulare mesaj şi stare

Stratul transfer
- Limitarea defectelor
- Detecţia şi semnalarea erorilor
- Validarea mesajelor
- Confirmarea
- Formarea cadrelor mesaj
- Rata de transfer şi sincronizarea

Stratul fizic
- Nivelele de semnal şi reprezentarea biţilor
- Mediul de transmisie

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 6 Specificaţia CAN 2.0

• Stratul Fizic defineşte modul în care sunt transmise în realitate semnalele. În


această specificaţie stratul fizic nu este definit.
• Stratul Transfer reprezintă nivelul protocolului CAN. El prezintă mesajele
recepţionate stratului obiect şi acceptă mesaje care trebuie transmise de la stratul
obiect. Stratul transfer este responsabil de sincronizarea de bit şi sincronizarea,
formarea cadrelor de mesaj, arbitrarea, detectarea şi semnalarea erorilor şi
limitarea defectelor.
• Stratul Obiect se ocupă de fitrarea mesajului, precum şi de manipularea stării şi
mesajului.

Scopul acestei specificaţii este de a defini stratul transfer şi consecinţele protocolului


CAN asupra straturilor înconjurătoare.

Mesajele
Informaţia pe magistrală este transmisă în mesaje de format fix de diferite lungimi dar
limitate (vezi secţiunea 3: Transferul Mesajului). Când magistrala este liberă, orice
unitate conectată poate începe să transmită un mesaj nou.

Rutarea Informaţiilor
În sistemele CAN, un nod CAN nu foloseşte nicio informaţie despre configuraţia
sistemului (de exemplu adresele staţiilor). Acest fapt are câteva consecinţe
importante.

Flexibilitatea Sistemului: Se pot adăuga noduri la reţeaua CAN fără a fi necesară


nicio modificare în software sau hardware sau a niciunui nod din stratul aplicaţie.

Deplasarea Mesajului: Conţinutul unui mesaj este definit de un IDENTIFICATOR.


IDENTIFICATROUL nu indică destinaţia mesajului, dar descrie semnificaţia
datelor, astfel încât toate nodurile din reţea sunt capabile să decidă prin
FILTRAREA MEASJULUI dacă datele acţionează sau nu asupra lor.

Multicast: Ca o consecinţă a conceptului FILTRARE MESAJ, orice număr de


noduri pot recepţiona şi acţiona simultan asupra aceluiaşi mesaj.

Consistenţa Datelor: Într-o reţea CAN se garantează că un mesaj este acceptat


în mod simultan fie de toate nodurile, fie de niciunul. În acest mod, consistenţa
unui sistem este obţinută prin conceptele multicast şi manipularea erorilor.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 7

Rata de bit
Viteza CAN poate fi diferită în sisteme diferite. Totuşi, într-un sistem dat, rata de bit
este uniformă şi fixă.

Priorităţi
IDENTIFICATORUL defineşte o prioritate statică a mesajului pe durata accesului la
magistrală.

Cerere date de la distanţă


Prin trimiterea unui CADRU DE LA DISTANŢĂ un nod solicitând date poate cere altui
nod sa transmită CADRUL DATE corespunzător. CADRUL DATE şi CADRUL DE LA
DISTANŢĂ corespunzător sunt denumite cu acelaşi IDENTIFICATOR.

Multimaster
Când magistrala este liberă, orice unitate poate începe să transmită un mesaj.
Unitatea cu mesajul cu cea mai înaltă prioritate care trebuie transmis câştigă accesul
la magistrală.

Arbitrarea
Când magistrala este liberă, orice unitate poate începe să transmită un mesaj. Dacă
două sau mai multe unităţi încep să transmită mesaje în acelaşi timp, conflictul
accesului pe magistrală se rezolvă printr-o arbitrare la nivel de bit, folosind
IDENTIFICATORUL. Mecanismul arbitrării garantează că nu se pierde nici
informaţie, nici timp. Dacă un CADRU DATE şi un CADRU DE LA DISTANŢĂ cu
acelaşi IDENTIFICATOR sunt iniţiate în acelaşi timp, CADRUL DATE are întâietate
faţă de CADRUL DE LA DISTANŢĂ. Pe durata arbitrării, fiecare transmiţător
compară nivelul bitului transmis cu nivelul bitului urmărit pe magistrală. Dacă aceste
nivele sunt egale, unitatea centrală continuă să transmită. Când se transmite un nivel
‘recesiv’ şi pe magistrală este monitorizat un nivel ‘dominant’ (a se vedea Valori pe
Magistrală), unitatea a pierdut arbitrarea şi trebuie să se retragă fără a mai transmite
vreun bit.

Siguranţa
În vederea asigurării siguranţei extreme a transferului de date, sunt aplicate în
fiecare nod CAN măsuri puternice pentru detectare, semnalare şi autoverificare.

Detecţia Erorilor
Pentru detecţia erorilor au fost luate următoarele măsuri:
- Monitorizarea (transmiţătoarele compară nivelele de bit care trebuie transmise
cu nivelele de bit detectate pe magistrală)
- Verificare Redundanţă Ciclică (CRC)
- Bit Stuffing (Biţi de Umplutură)
- Verificare Cadru Mesaj.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 8 Specificaţia CAN 2.0

Executarea Detecţiei Erorilor


Mecanismele detecţiei erorilor au următoarele proprietăţi:
- sunt detectate toate erorile globale
- sunt detectate toate erorile locale la transmiţător
- sunt detectate până la 5 erori cu distribuţie aleatorie într-un mesaj
- sunt detectate erorile salvă de o lungime mai mică de 15 dintr-un mesaj
- sunt detectate erorile de orice număr impar dintr-un mesaj

Probabilitatea erorii reziduale pentru mesaje perturbate nedectate este mai mică de:

rata erorilor mesajului * 4,7 * 10-11

Semnalarea Erorilor şi Timpul de Restabilire


Mesajele perturbate sunt semnalate în orice nod care detectează o eroare. Aceste
mesaje sunt abandonate şi retransmise în mod automat. Timpul de restabilire de la
detectarea unei erori până la începutul următorului mesaj este de cel mult 29
perioade de bit, dacă nu mai apare nicio eroare.

Blocarea Defectelor
Nodurile CAN au capacitatea de a face distincţie între perturbaţiile de scurtă durată şi
defectele permanente. Nodurile defecte sunt deconectate.

Conexiunile
Legătura de comunicaţie serială CAN este o magistrală la care se pot conecta un
anumit număr de unităţi. Acest număr este teoretic nelimitat. În mod practic, numărul
total de unităţi va fi limitat de timpii de întârziere şi/sau de sarcinile electrice de pe
linia magistralei.

Canal Unic
Magistrala constă dintr-un canal unic care transportă biţii. De la aceasta se poate
obţine informaţia resincronizată de date. Modul în care este aplicat în practică acest
canal nu este fixat prin această specificaţie. De exemplu: un singur fir (plus masa),
două fire diferenţiale, fibre optice etc.

Valorile de pe magistrală
Magistrala poate avea două valori logice complementare: ’dominant’ sau ’recesiv’. Pe
timpul transmisiei simultane a biţilor ’dominant’ şi ’recesiv’, valoarea rezultată pe
magistrală este ’dominant’. Se exemplu, în cazul implemetării ŞI cablat a magistralei
nivelul ’dominant’ va fi reprezentat de un nivel logic ’0’ şi nivelul ’recesiv’ de un logic
’1’. Stările fizice (de exemplu tensiune, lumină), care reprezintă nivelele logice, nu
sunt date în această specificaţie.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 9

Confirmarea
Toate receptoarele verifică consistenţa mesajului recepţionat şi vor confirma un
mesaj consistent şi vor semnala un mesaj inconsistent.

Modul Somn / Deşteptare


Pentru a reduce consumul de putere în sistem, un dispozitiv CAN poate fi setat în
modul „somn” fără nicio activitate internă şi cu driverele de magistrală deconectate.
Modul somn este încheiat cu o „deşteptare” de orice activitate pe magistrală sau de
condiţii interne ale sistemului. La deşteptare, activitatea internă este reluată, deşi
stratul transfer va trebui să aştepte stabilizarea oscilatorului de sistem şi apoi va
aştepta până când el însuşi se va sincroniza la activitatea magistralei (prin verificarea
a 11 biţi ’recesivi’ consecutivi), înainte ca driverele să fie setate din nou la regimul „pe
magistrală”.
Pentru a deştepta şi alte noduri ale sistemului care sunt în modul somn se poate
utiliza un mesaj special de deşteptare cu IDENTIFICATORUL dedicat, cel mai scurt
posibil (rrrr rrrd rrrr; r = recesiv, d = dominant).

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 10 Specificaţia CAN 2.0

3 TRANSFERUL MESAJULUI
3.1 Tipuri de cadre

Transferul mesajului se manifestă şi este controlat în patru tipuri diferite de cadre:

Un CADRU DATE care transportă informaţia de la transmiţător la receptor.


Un CADRU DE LA DISTANŢĂ este transmis de o unitate de magistrală pentru a
solicita transmisia unui CADRU DATE cu acelaşi IDENTIFICATOR.
Un CADRU SUPRASARCINĂ este folosit pentru a asigura o întârziere suplimentară
între CADRELE DATE sau CADRELE DE LA DISTANŢĂ.

CADRELE DATE şi CADRELE DE LA DISTANŢĂ sunt separate de cadrele


precedente printr-un SPAŢIU INTERCADRE.

3.1.1 CADRUL DATE


Un CADRU DATE este compus din şapte câmpuri de bit diferite:
START CADRU, CÂMP ARBITRARE, CÂMP CONTROL, CÂMP DATE, CÂMP CRC,
CÂMP CONFIRMARE (ACK), SFÂRŞIT CADRU. CÂMPUL DATE poate fi de
lungime zero.

Spaţiu Spaţiu
intercadre CADRU DATE intercadre

sau
Cadru
supra-
sarcină
Start cadru

Câmp arbitrare

Câmp control

Câmp date

Câmp CRC

Câmp ACK (confirmare)

Sfârşit cadru

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 11

START CADRU
marchează începutul CADRULUI DATE şi CADRELOR DE LA DISTANŢĂ. El constă
dintr-un singur bit ’dominant’.
O staţie are permisiunea să înceapă transmisia când magistrala este la mers în gol
(a se vedea MAGISTRALA LA MERS ÎN GOL). Toate staţiile trebuie să se
sincronizeze cu frontul conducător determinat de START CADRU (a se vedea
SINCRONIZARE HARD) de la staţia care începe prima transmisia.

CÂMPUL ARBITRARE
CÂMPUL ARBITRARE constă din biţii IDENTIFICATOR şi BITUL RTR.

Spaţiu Start Câmp


CÂMP ARBITRARE
intercadre cadru control

Bit RTR
Identificator

IDENTIFICATORUL
Lungimea IDENTIFICATORULUI este de 11 biţi. Aceşti biţi sunt transmişi în ordinea
ID-10 la ID-0. Cel mai puţin semnificativ bit este ID-0. Primii 7 cei mai semnificativi
biţi (ID-10 ÷ ID-4) nu trebuie să fie toţi ’recesivi’.

BITUL RTR
Bitul Cerere Transmisie de la Distanţă
În CÂMPURIULE DATE, BITUL RTR trebuie să fie ’dominant’. În interiorul unui
CADRU DE LA DISTANŢĂ, BITUL RTR trebuie să fie ’recesiv’.

CÂMPUL CONTROL
CÂMPUL CONTROL constă din şase biţi. El include CODUL LUNGIME DATE şi doi
biţi rezervaţi pentru extinderi ulterioare. Biţii rezervaţi trebuie transmişi ’dominanţi’.
Receptoarele acceptă biţii ’dominanţi’ şi ’recesivi’ în toate combinaţiile.

CODUL LUNGIME DATE


Numărul de octeţi din CÂMPUL DATE este indicat de CODUL LUNGIME DATE.
Acesta are o dimensiune de 4 biţi şi este transmis în interiorul CÂMPULUI
CONTROL.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 12 Specificaţia CAN 2.0

Câmp CÂMP CONTROL Câmp


arbitrare
date
sau
Câmp
CRC

Biţi Cod lungime date


rezervaţi

Codificarea numărului octeţilor de date de către CODUL LUNGIME DATE

prescurtări d – ’dominant’
r – ’recesiv’

Număr de Cod lungime date


octeţi de
date DLC3 DLC2 DLC1 DLC0

0 d d d d

1 d d d r

2 d d r d

3 d d r r

4 d r d d

5 d r d r

6 d r r d

7 d r r r

8 r d d d

CADRUL DATE: numere admisibile de octeţi de date: {0,1,...,7,8}.


Alte valori nu pot fi folosite.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 13

CÂMPUL DATE
CÂMPUL DATE constă din datele care trebuie transferate în interiorul unui CADRU
DATE. El poate conţine de la 0 la 8 octeţi, fiecare conţinând 8 biţi care sunt
transferaţi începând cu bitul de semnificaţie maximă MSB.

CÂMPUL CRC
conţine SECVENŢA CRC, urmată de un DELIMITATOR CRC.

Câmp CÂMP CRC Câmp


Date ACK

sau
Control

Delimitator CRC
Secvenţă CRC

SECVENŢA CRC
Secvenţa de verificare a cadrului derivă dintr-un cod cu redundanţă ciclică cel mai
convenabil pentru cadre ce numără mai puţin de 127 biţi (cod BCH).
Pentru realizarea calculului CRC, este definit polinomul care trebuie împărţit,
coeficienţii săi fiind daţi de curentul de biţi destuffed („dezumpluţi”) constând din
START CADRU, CÂMP ARBITRARE, CÂMP CONTROL, CÂMP DATE (dacă acesta
este prevăzut) şi de valori 0 pentru cei 15 cei mai inferiori coeficienţi. Polinomul este
împărţit (coeficienţii sunt calculaţi modulo 2) la polinomul generator:

x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1

Restul împărţirii polinoamelor este secvenţa CRC transmisă pe magistrală. Pentru


implementarea acestei funcţii se poate folosi un registru de deplasare de 15 biţi
CRC_RG(14:0). Dacă NXTBIT indică următorul bit din curentul de biţi, dat de
secvenţa de biţi „dezumplută” de la START CADRU până la CÂMP DATE,
SECVENŢA CRC se calculează după cum urmează:

CRC_RG = 0; //iniţializare registru de deplasare


REPEAT
CRCNXT = NXTBIT EXOR CRC_RG(14);
CRC_RG(14:1) = CRC_RG(13:0); //deplasare stânga
CRC_RG(0) = 0; // 1 poziţie

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 14 Specificaţia CAN 2.0

IF CRCNXT THEN
CRC_RG(14:0) = CRC_RG(14:0) EXOR (4599hex);
ENDIF
UNTIL (începe SECVENŢA CRC sau există o condiţie de EROARE)

După transmisia / recepţia ultimului bit din CÂMPUL DATE, CRC_RG conţine
secvenţa CRC.

DELIMITATOR CRC
SECVENŢA CRC este urmată de DELIMITATOR CRC care constă dintr-un singur bit
’recesiv’.

CÂMPUL ACK (CONFIRMARE)


CÂMPUL ACK are o lungime de doi biţi şi conţine FANTA ACK şi DELIMITATORUL
ACK. În CÂMPUL ACK staţia transmiţătoare trimite doi biţi ’recesivi’.
Un RECEPTOR ce a recepţionat un mesaj valabil în mod corect, raportează aceasta
la TRANSMIŢĂTOR prin trimiterea unui bit ’dominant’ pe durata FANTEI ACK (trimite
ACK).

Câmp CÂMP ACK Sfârşit


CRC cadru

Delimitator ACK
Fantă ACK

FANTA ACK
Toate staţiile care au recepţionat SECVENŢA CRC potrivită, raportează aceasta în
interiorul FANTEI ACK prin suprascrierea peste bitul ’recesiv’ de la TRANSMIŢĂTOR
a unui bit ’dominant’.

DELIMITATORUL ACK
DELIMITATORUL ACK este cel de-al doilea bit din CÂMPUL ACK şi trebuie să fie un
bit ’recesiv’. Drept consecinţă, FANTA ACK este înconjurată de doi biţi ’recesivi’
(DELIMITATOR CRC, DELIMITATOR ACK).

SFÂRŞIT CADRU
Fiecare CADRU DATE şi CADRU DE LA DISTANŢĂ este delimitat de o secvenţă
flag (de semnalizare) care constă din şapte biţi ’recesivi’.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 15

3.1.2 CADRUL DE LA DISTANŢĂ

O staţie funcţionând ca RECEPTOR pentru anumite date poate iniţia transmisia


respectivelor date de către propriul nod sursă prin transmiterea unui CADRU DE LA
DISTANŢĂ.
Un CADRU DE LA DISTANŢĂ este compus din şase câmpuri de biţi diferite:
START CADRU, CÂMP ARBITRARE, CÂMP CONTROL, CÂMP CRC, CÂMP ACK,
SFÂRŞIT CADRU.
Spre deosebire de CADRELE DATE, bitul RTR de la CADRUL DE LA DISTANŢĂ
este ’recesiv’. Nu există CÂMP DATE, independent de valorile CODULUI LUNGIME
DATE care poate semnala orice valoare din domeniul admisibil 0,...,8. Valoarea este
CODUL LUNGIME DATE pentru CADRUL DATE corespunzător.

Spaţiu CADRU DE LA DISTANŢĂ Spaţiu


intercadre intercadre

sau
Cadru
supra-
sarcină
Start cadru

Câmp arbitrare

Câmp control

Câmp CRC

Câmp ACK (confirmare)

Sfârşit cadru

Polaritatea bitului RTR indică dacă un cadru transmis este CADRU DATE (bitul RTR
’dominant’) sau CADRU DE LA DISTANŢĂ (bitul RTR ’recesiv’).

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 16 Specificaţia CAN 2.0

3.1.3 CADRUL EROARE

CADRUL EROARE constă din două câmpuri diferite. Primul câmp este dat din
suprapunerea FLAGURILOR EROARE cu care contribuie diferite staţii. Cel de-al
doilea câmp care urmează este DELIMITATORUL EROARE.

Spaţiu
Cadru CADRU EROARE intercadre
date sau

Flag Eroare Cadru


supra-
sarcină

Suprapunere
flaguri eroare Delimitator Eroare

Pentru a termina în mod corect CADRUL EROARE, un nod ’eroare pasivă’ are
nevoie ca magistrala să fie ’magistrala la mers în gol’ pentru cel puţin 3 perioade de
bit (dacă există o eroare locală la un receptor ’eroare pasivă’). Ca urmare, magistrala
nu trebuie încărcată 100%.

FLAGUL EROARE
Există două forme ale FLAGULUI EROARE: un FLAG EROARE ACTIVĂ şi un FLAG
EROARE PASIVĂ.

1. FLAGUL EROARE ACTIVĂ constă din şase biţi ’dominanţi’ consecutivi.

2. FLAGUL EROARE PASIVĂ constă din şase biţi ’recesivi’ consecutivi, afară de
cazul când este suprascris cu biţi ’dominanţi’ de la alte noduri.

O staţie ’eroare activă’ care detectează o condiţie de eroare semnalizează acest fapt
prin transmiterea unui FLAG EROARE ACTIVĂ. FLAGURILE EROARE încalcă legea
biţilor de umplutură (a se vedea CODIFICAREA) aplicată tuturor câmpurilor de la
START CADRU până la DELIMITATORUL CRC sau distruge forma fixată a
câmpurilor ACK sau SFÂRŞIT CADRU. Ca urmare, toate celelalte staţii detectează o
condiţie de eroare şi la rândul lor încep transmisia unui FLAG EROARE. Astfel,
secvenţa de biţi ’dominanţi’ care de fapt pot fi urmăriţi pe magistrală rezultată prin
suprapunerea diferitelor FLAGURI EROARE transmise de staţiile individuale.
Lungimea totală a acestei secvenţe variază între minim şase şi maxim doisprezece
biţi.

O staţie ’eroare pasivă’ care detectează o condiţie de eroare, încearcă să semnaleze


aceasta prin transmisia unui FLAG EROARE PASIVĂ. Staţia ’eroare pasivă’ aşteaptă

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 17

şase biţi de polaritate identică începând la startul FLAGULUI EROARE PASIVĂ.


FLAGUL EROARE PASIVĂ este completat când s-au detectat aceşti 6 biţi identici.

DELIMITATORUL EROARE
DELIMITATORUL EROARE constă din opt biţi ’recesivi’.
După transmiterea unui FLAG EROARE, fiecare staţie trimite biţi ’recesivi’ şi
supraveghează magistrala până când detectează un bit ’recesiv’. După aceea începe
transmisia a încă şapte biţi ’recesivi’.

3.1.4 CADRUL SUPRASARCINĂ

CADRUL SUPRASARCINĂ conţine două câmpuri de bit FLAG SUPRASARCINĂ şi


DELIMITATOR SUPRASARCINĂ.
Există două feluri de condiţii de SUPRASARCINĂ, ambele conducând la transmisia
unui FLAG SUPRASARCINĂ:

1. Condiţiile interne ale unui receptor, care solicită o întârziere a următorului


CADRU DATE sau CADRU DE LA DISTANŢĂ.

2. Detectarea unui bit ’dominant’ în timpul PAUZĂ.

Startul unui CADRU SUPRASARCINĂ datorat condiţiei 1 de SUPRASARCINĂ este


permis numai la primul timp de bit al unei PAUZE aşteptate, pe când CADRELE
SUPRASARCINĂ datorate condiţiei 2 de SUPRASARCINĂ încep un bit după
detectarea unui bit ’dominant’.

Sfârşit Cadru sau CADRU


Delimitator Eroare Spaţiu
sau Delimitator SUPRASARCINĂ intercadre
Suprasarcină sau

Flag Cadru
Suprasarcină supra-
sarcină

Suprapunere
flaguri suprasarcină Delimitator
Suprasarcină

Pot fi generate cel mult două CADRE SUPRASARCINĂ pentru a întârzia următorul
CADRU DATE sau CADRU DE LA DISTANŢĂ.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 18 Specificaţia CAN 2.0

FLAGUL SUPRASARCINĂ
constă din şase biţi ’dominanţi’. Forma generală corespunde celei a FLAGULUI
EROARE ACTIVĂ.

FLAGURILE SUPRASARCINĂ distrug forma fixată a câmpului PAUZĂ. Ca urmare,


toate celelalte staţii vor detecta de asemenea o condiţie SUPRASARCINĂ şi la
rândul lor încep transmisia unui FLAG SUPRASARCINĂ. (În cazul în care există un
bit ’dominant’ detectat pe durata celui de-al treilea bit al PAUZEI localizat la acelaşi
nod, celelalte noduri nu vor interpreta în mod corect FLAGUL SUPRASARCINĂ, dar
interpretează primul din aceşti şase biţi ’dominanţi’ ca un START CADRU. Cel de-al
şaselea bit ’dominant’ încalcă regula bit stuffing – biţi de umplutură – determinând o
condiţie de eroare).

DELIMITATORUL SUPRASARCINĂ
constă din opt biţi ’recesivi’.

DELIMITATORUL SUPRASARCINĂ este de aceeaşi formă ca şi DELIMITATORUL


EROARE. După transmiterea unui FLAG SUPRASARCINĂ, staţia supraveghează
magistrala până când detectează o tranziţie de la un bit ’dominant’ la un bit ’recesiv’.
În acest moment fiecare staţie de magistrală a terminat transmiterea FLAGURILOR
SUPRASARCINĂ proprii şi toate staţiile încep transmisia a încă şapte biţi ’recesivi’ în
coincidenţă.

3.1.5 SPAŢIERE INTERCADRE


CADRELE DATE şi CADRELE DE LA DISTANŢĂ sunt separate de cadrele
precedente, indiferent de tipul lor (CADRU DATE, CADRU DE LA DISTANŢĂ,
CADRU EROARE, CADRU SUPRASARCINĂ) de un câmp de bit, denumit SPAŢIU
INTERCADRE. În contrast, CADRELE SUPRASARCINĂ şi CADRELE EROARE nu
sunt precedate de un SPAŢIU INTERCADRE şi CADRELE SUPRASARCINĂ
multiple nu sunt separate printr-un SPAŢIU INTERCADRE.

SPAŢIUL INTERCADRE
conţine câmpurile de bit PAUZĂ şi MERS ÎN GOL MAGISTRALĂ şi, pentru staţiile
’eroare pasivă’ care au fost TRANSMIŢĂTORUL mesajului anterior, SUSPENDARE
TRANSMISIE.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 19
Pentru staţii care nu sunt ’eroare pasivă’ sau care au fost RECEPTOR al mesajului
anterior:

Cadru SPAŢIU INTERCADRE Cadru

Mers în gol
Pauză magistrală

Pentru staţii ’eroare pasivă’ care au fost TRANSMIŢĂTORUL mesajului anterior:

Cadru SPAŢIU INTERCADRE Cadru

Mers în gol magistrală


Suspendare transmisie
Pauză

PAUZA
constă din trei biţi ’recesivi’.

Pe durata PAUZEI niciunei staţii nu i se permite să înceapă transmisia unui CADRU


DATE sau CADRU DE LA DISTANŢĂ. Singura acţiune care poate fi întreprinsă este
semnalarea unei condiţii SUPRASARCINĂ.

MERS ÎN GOL MAGISTRALĂ


Perioada MERS ÎN GOL MAGISTRALĂ poate fi de lungime arbitrară. Magistrala este
recunoscută ca fiind liberă şi orice staţie care are ceva de transmis poate accesa
magistrala. Un mesaj care este nerezolvat pentru transmisie pe durata transmisiei
unui alt mesaj, este început pe primul bit ce urmează PAUZEI.
Detectarea unui bit ’dominant’ pe magistrală este interpretată ca un START CADRU.

SUSPENDARE TRANSMISIE
După ce o staţie ’eroare pasivă’ a transmis un mesaj, ea trimite opt biţi ’recesivi’
urmând după PAUZĂ, înainte de a începe să transmită un nou mesaj sau să
recunoască magistrala ca fiind la mers în gol. Dacă între timp începe o altă
transmisie (provocată de o altă staţie), staţia va deveni receptor al acestui mesaj.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 20 Specificaţia CAN 2.0

3.2 Definţia pentru TRANSMIŢĂTOR / RECEPTOR

TRANSMIŢĂTOR
O unitate care iniţiază un mesaj este numită „TRANSMIŢĂTOR” a acestui mesaj.
Unitatea rămâne TRANSMIŢĂTOR până când magistrala merge în gol sau unitatea
pierde arbitrarea.

RECEPTOR
O unitate este numită „RECEPTOR” a unui mesaj, dacă nu este TRANSMIŢĂTOR a
acestui mesaj şi magistrala nu merge în gol.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 21

4 VALIDAREA MESAJULUI
Momentul în care un mesaj este preluat ca fiind valabil diferă pentru transmiţătorul şi
receptoarele mesajului.

Transmiţător:
Mesajul este valabil pentru transmiţător dacă nu există erori până la SFÂRŞIT
CADRU. Dacă un mesaj a fost afectat, retransmisia va urma în mod automat şi în
concordanţă cu priorităţile. Pentru a fi capabil de a concura la accesul pe magistrală
cu alte mesaje, retransmisia trebuie declanşată de îndată ce magistrala merge în gol.

Receptoare:
Mesajul este valabil pentru receptoare dacă nu există eroare până la penultimul bit
din SFÂRŞIT CADRU.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 22 Specificaţia CAN 2.0

5 CODIFICAREA
CODIFICAREA CURENTULUI DE BIŢI

Segmentele de cadru START CADRU, CÂMP ARBITRARE, CÂMP CONTROL,


CÂMP DATE şi SECVENŢĂ CRC sunt codificate prin metoda bit stuffing – biţi de
umputură. Oricând un transmiţător detectează cinci biţi consecutivi de valoare
identică în curentul de biţi ce trebuie transmis, el introduce în mod automat un bit
complementar în curentul real de biţi transmişi.
Câmpurile de bit rămase din CADRUL DATE sau CADRUL DE LA DISTANŢĂ
(DELIMITATOR CRC, CÂMP ACK şi SFÂRŞIT CADRU) sunt de formă fixă şi nu
umplută. CADRUL EROARE şi CADRUL SUPRASARCINĂ sunt de asemenea de
formă fixă şi nu sunt codificate prin metoda cu biţi de umplutură.
Curentul de biţi dintr-un mesaj este codificat conform cu metoda Non-Return-to-Zero
(NRZ). Aceasta înseamnă că pe durata timpului de bit total nivelul de bit generat este
fie ’dominant’, fie ’recesiv’.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 23

6 MANIPULAREA ERORILOR
6.1 Detectarea erorilor

Există cinci tipuri diferite de erori (care nu se exclud reciproc):

• EROARE DE BIT
O unitate care trimite un bit pe magistrală, supraveghează de asemenea
magistrala. O EROARE DE BIT trebuie să fie detectată la acel timp de bit la care
valoarea de bit observată diferă de cea transmisă. O excepţie este trimiterea unui
bit ’recesiv’ pe durata curentului cu biţi de umplutură ai CÂMPULUI ARBITRARE
sau pe durata FANTEI ACK. Atunci nu are loc nicio EROARE DE BIT când se
observă un bit ’dominant’. Un TRANSMIŢĂTOR transmiţând un FLAG EROARE
PASIVĂ şi detectând un bit ’dominant’ nu va interpreta aceasta ca o EROARE DE
BIT.
• EROARE DE UMPLERE
O EROARE DE UMPLERE trebuie să fie detectată la timpul de bit al celui de-al
6-lea nivel de bit identic consecutiv într-un câmp mesaj care trebuie codificat prin
metoda biţior de umplutură.
• EROARE CRC
Secvenţa CRC constă din rezultatul calculului CRC de către transmiţător.
Receptoarele calculează CRC în acelaşi mod ca şi transmiţătorul. O EROARE
CRC trebuie să fie detectată dacă rezultatul calculat nu este acelaşi cu cel
recepţionat în secvenţa CRC.
• EROARE DE FORMĂ
O EROARE DE FORMĂ trebuie să fie detectată atunci când un câmp de biţi de o
formă fixată conţine unul sau mai mulţi biţi ilegali.
• EROARE DE CONFIRMARE
O EROARE DE CONFIRMARE trebuie să fie detectată de un transmiţător atunci
când nu observă un bit ’dominant’ pe durata FANTEI ACK.

6.2 Semnalarea erorilor


O staţie care detectează o condiţie de eroare semnalează aceasta prin transmiterea
unui FLAG EROARE. Pentru un nod ’eroare activă’ este un FLAG EROARE ACTIVĂ,
pentru un nod ’eroare pasivă’ este un FLAG EROARE PASIVĂ. Ori de câte ori o
EROARE DE BIT, o EROARE DE UMPLERE, o EROARE DE FORMĂ sau o
EROARE DE CONFIRMARE este detectată de orice staţie, este declanşată
transmiterea unui FLAG EROARE la respectiva staţie la următorul bit.
Ori de câte ori se detectează o EROARE CRC, transmisia unui FLAG EROARE
începe la bitul ce urmează după DELIMITATORUL ACK, mai puţin dacă un FLAG
EROARE pentru o altă condiţie a fost deja început.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 24 Specificaţia CAN 2.0

7 LIMITAREA DEFECTELOR
În ceea ce priveşte limitarea defectelor, o unitate trebuie să fie în una din cele trei
stări:

• ’eroare activă’

• ’eroare pasivă’

• ’magistrală deconectată’

O unitate ’eroare activă’ poate lua parte în mod normal la comunicaţia pe magistrală
şi trimite un FLAG EROARE ACTIVĂ când a fost detectată o eroare.
O unitate ’eroare pasivă’ nu trebuie sa transmită un FLAG EROARE ACTIVĂ. Ea
participă la comunicaţia pe magistrală, dar când s-a detectat o eroare, se transmite
un FLAG EROARE PASIVĂ. Astfel, după o transmisie, o unitate ’eroare pasivă’ va
aştepta înainte de a iniţia o nouă transmisie (a se vedea SUSPENDAREA
TRANSMISIEI).
O unitate ’magistrală deconectată’ nu are permisiunea de a avea vreo influenţă
asupra magistralei (De exemplu: driverele de ieşire deconectate).
Pentru limitarea defectelor în fiecare unitate de magistrală sunt implementate două
totaluri:

1) TOTALUL ERORILOR DE TRANSMISIE


2) TOTALUL ERORILOR DE RECEPŢIE

Aceste totaluri sunt modificate în conformitate cu următoarele reguli:


(de notat că pe durata transferului unui mesaj se poate aplica mai mult de o regulă)

1. Când un RECEPTOR detectează o eroare, TOTALUL ERORILOR DE


RECEPŢIE va fi incrementat cu 1, excepţie situaţia în care eroarea detectată a
fost o EROARE DE BIT pe durata trimiterii unui FLAG EROARE ACTIVĂ sau
FLAG SUPRASARCINĂ.

2. Când un RECEPTOR detectează un bit ’dominant’ ca prim bit după trimiterea


unui FLAG EROARE, TOTALUL ERORILOR DE RECEPŢIE va fi crescut cu
8.

3. Când un TRANSMIŢĂTOR trimite un FLAG EROARE, TOTALUL ERORILOR


DE TRANSMISIE este crescut cu 8.

Excepţia 1:
Dacă TRANSMIŢĂTORUL este ’eroare pasivă’ şi detectează o EROARE DE
CONFIRMARE din cauza nedetectării unui ACK ’dominant’ şi nu detectează
un bit ’dominant’ în timp ce transmite propriul FLAG EROARE PASIVĂ.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 25

Excepţia 2:
Dacă TRANSMIŢĂTORUL trimite un FLAG EROARE datorat unei ERORI DE
UMPLERE produsă pe durata ARBITRĂRII prin care BITUL DE UMPLUTURĂ
este plasat înaintea bitului RTR şi ar trebui să fie ’recesiv’, a fost trimis ca
’recesiv’, dar observat ca ’dominant’.

În excepţiile 1 şi 2 TOTALUL ERORILOR DE TRANSMISIE nu este modificat.

4. Dacă un TRANSMIŢĂTOR detectează o EROARE DE BIT în timp ce trimite


un FLAG EROARE sau un FLAG SUPRASARCINĂ, TOTALUL ERORILOR
DE TRANSMISIE este crescut cu 8.

5. Dacă un RECEPTOR detectează o EROARE DE BIT în timp ce trimite un


FLAG EROARE ACTIVĂ sau un FLAG SUPRASARCINĂ, TOTALUL
ERORILOR DE RECEPŢIE este crescut cu 8.

6. Orice nod tolerează până la 7 biţi ’dominanţi’ consecutivi după transmiterea


unui FLAG EROARE PASIVĂ sau FLAG SUPRASARCINĂ. După detectarea
celui de-al 14 bit ’dominant’ consecutiv (în cazul unui FLAG EROARE ACTIVĂ
sau un FLAG SUPRASARCINĂ) sau după detectarea celui de-al 8-lea bit
’dominant’ consecutiv urmând după un FLAG EROARE PASIVĂ şi după
fiecare secvenţă de opt biţi ’dominanţi’ consecutivi suplimentari, fiecare
TRANSMIŢĂTOR creşte TOTALUL ERORILOR DE TRANSMISIE cu 8 şi
fiecare RECEPTOR creşte propriul TOTAL ERORI DE RECEPŢIE cu 8.

7. După transmisia cu succes a unui mesaj (dând ACK şi nicio eroare până se
termină SFÂRŞIT CADRU), TOTALUL ERORILOR DE TRANSMISIE este
scăzut cu 1, mai puţin în situaţia în care era deja 0.

8. După recepţia cu succes a unui mesaj (recepţie fără eroare până la FANTA
ACK şi trimiterea cu succes a bitului ACK), TOTALUL ERORILOR DE
RECEPŢIE este scăzut cu 1, dacă acesta era între 1 şi 127. Dacă TOTALUL
ERORILOR DE RECEPŢIE a fost 0, acesta rămâne 0, iar dacă a fost mai
mare de 127, atunci el va fi setat la o valoare între 119 şi 127.

9. Un nod este ’eroare pasivă’ atunci când TOTALUL ERORILOR DE


TRANSMISIE egalează sau depăşeşte 128 sau când TOTALUL ERORILOR
DE RECEPŢIE egalează sau depăşeşte 128. O condiţie de eroare care lasă
un nod să devină ’eroare pasivă’ determină nodul să trimită un FLAG
EROARE ACTIVĂ.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 26 Specificaţia CAN 2.0

10. Un nod este ’magistrală deconectă’ atunci când TOTALUL ERORILOR DE


TRANSMISIE este mai mare sau egal cu 256.

11. Un nod ’eroare pasivă’ devine ’eroare activă’ din nou când atât TOTALUL
ERORILOR DE TRANSMISIE cât şi TOTALUL ERORILOR DE RECEPŢIE
sunt mai mici sau egale cu 127.

12. Unui nod care este ’magistrală deconectată’ i se permite să devină ’eroare
activă’ (nu mai este ’magistrală deconectată’) cu ambele totaluri de erori
setate la 0 după ce 128 de evenimente de 11 biţi ’recesivi’ consecutivi au fost
observate pe magistrală.

Nota:
Un total de eroare cu o valoare mai mare de 96 indică o magistrală puternic
perturbată. Poate fi avantajos să se prevadă mijloace de testare a acestei condiţii.

Nota:
Pornire / Deşteptare
Dacă pe durata pornirii este online un singur nod şi dacă acest nod transmite câteva
mesaje, el nu va primi confirmare, va detecta o eroare şi repetă mesajul. El poate
deveni ’eroare pasivă’ dar nu ’magistrală deconectată’ datorită acestui motiv.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 27

8 CERINŢLELE DE SINCRONIZARE PENTRU BIŢI


RATA DE BIT NOMINALĂ
Rata de bit nominală este numărul de biţi pe secundă transmişi în absenţa
resincronizării de către un transmiţător ideal.

TIMPUL DE BIT NOMINAL

TIMPUL DE BIT NOMINAL = 1 / RATA DE BIT NOMINALĂ

Timpul de bit nominal poate fi imaginat ca fiind divizat în segmente de timp separate,
nesuprapuse. Aceste segmente

- SEGMENTUL SINCRONIZARE (SYNC_SEG)


- SEGMENTUL TIMP DE PROPAGARE (PROP_SEG)
- SEGMENTUL 1 BUFFER FAZĂ (PHASE_SEG1)
- SEGMENTUL 2 BUFFER FAZĂ (PHASE_SEG2)

formează timpul de bit, aşa cum se arată în fig. 1:

TIMP DE BIT NOMINAL

Punct de
eşantionare

Fig. 1 Împărţirea Timpului de Bit

SYNC_SEG
Această parte a timpului de bit este folosită pentru a sincroniza diferitele noduri ale
reţelei. Un front este aşteptat pentru a se afla în interiorul acestui segment.

PROP_SEG
Această parte a timpului de bit este utilizată pentru a compensa timpii fizici de
întârziere din interiorul reţelei.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 28 Specificaţia CAN 2.0

El este dublul sumei timpilor de propagare a semnalelor pe linia magistralei,


întârzierea comparatorului de intrare şi întârzierea driverului de ieşire.

PHASE_SEG1, PHASE_SEG2
Aceaste segmente buffer fază sunt folosite pentru a compensa erorile de fază ale
fronturilor. Aceste segmente pot fi lungite sau scurtate prin resincronizare.

PUNCT DE EŞANTIONARE
PUNCTUL DE EŞANTIONARE este momentul de timp la care este citit nivelul
magistralei şi este interpretat ca valoare a respectivului bit. Poziţia sa este la sfârşitul
PHASE_SEG1.

TIMP DE PROCESARE INFORMAŢIE


TIMPUL DE PROCESARE INFORMAŢIE este segmentul de timp care începe cu
PUNCTUL DE EŞANTIONARE rezervat pentru calculul nivelului de bit ulterior.

CUANTĂ DE TIMP
CUANTA DE TIMP este o unitate de timp fixă derivată din perioada oscilatorului.
Există un circuit programabil de prescalare, cu valori întregi, într-un domeniu de cel
puţin de 1 la 32. Începând cu CUANTA DE TIMP MINIMĂ, CUANTA DE TIMP poate
avea o lungime de:

CUANTA DE TIMP = m * CUANTA DE TIMP MINIMĂ

cu m – valoarea de prescalare

Lungimea Segmentelor de Timp

• SYNC_SEG are o lungime de 1 CUANTĂ DE TIMP.

• PROP_SEG este programabilă pentru a avea o lungime de 1, 2, ..., 8 CUANTE


DE TIMP.

• PHASE_SEG1 este programabilă pentru a avea o lungime de 1, 2, ..., 8 CUANTE


DE TIMP.

• PHASE_SEG2 are valoarea maximă dintre PHASE_SEG1 şi TIMPUL DE


PROCESARE INFORMAŢIE.

• TIMPUL DE PROCESARE INFORMAŢIE este mai mic sau egal decât un interval
de 2 CUANTE DE TIMP.

Numărul total de CUANTE DE TIMP într-un timp de bit poate fi programat cel puţin
de la 8 la 25.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 29

SINCRONIZAREA

SINCRONIZAREA HARD
După o SINCRONIZARE HARD, timpul de bit intern este restartat cu SYNC_SEG.
Astfel, SINCRONIZAREA HARD forţează frontul care a provocat SINCRONIZAREA
HARD să fie plasat în intervalul SEGMENTULUI SINCRONIZARE a timpului bitului
restartat.

LUNGIMEA SALTULUI RESINCRONIZARE


Ca un rezultat al RESINCRONIZĂRII, PHASE_SEG1 poate fi lungit sau
PHASE_SEG2 poate fi scurtat. Mărimea lungirii sau scurtării SEGMENTELOR
BUFFER FAZĂ are limita superioară dată de LUNGIMEA SALTULUI
RESINCRONIZARE. LUNGIMEA SALTULUI RESINCRONIZARE poate fi
programabilă între 1 şi min(4, PHASE_SEG1).
Informaţiile pentru clock pot fi derivate din tranziţiile de la o valoare de bit la alta.
Proprietatea că numai un număr fix maxim de biţi succesivi au aceeaşi valoare
asigură posibilitatea resincronizării unei unităţi de magistrală cu curentul de biţi pe
durata unui cadru. Lungimea maximă între două tranziţii care pot fi folosite pentru
resincronizare este de 29 timpi de bit.

EROAREA DE FAZĂ a unui front


EROAREA DE FAZĂ a unui front este dată de poziţia frontului raportată la
SYNC_SEG, măsurată în CUANTE DE TIMP. Semnul ERORII DE FAZĂ este definit
după cum urmează:

• e = 0 dacă frontul este plasat în intervalul SYNC_SEG.

• e > 0 dacă frontul este plasat înaintea PUNCTULUI DE EŞANTIONARE.

• e < 0 dacă frontul este plasat după PUNCTUL DE EŞANTIONARE al bitului


precedent.

RESINCRONIZAREA
Efectul unei RESINCRONIZĂRI este acelaşi cu cel al SINCRONIZĂRII HARD când
mărimea ERORII DE FAZĂ a frontului care provoacă RESINCRONIZAREA este mai
mică sau egală cu valoarea programată a LUNGIMII SALTULUI DE
RESINCRONIZARE. Când mărimea ERORII DE FAZĂ este mai mare decât
LUNGIMEA SALTULUI RESINCRONIZARE

• şi dacă EROAREA DE FAZĂ este pozitivă, atunci PHASE_SEG1 este lungit cu o


cantitate egală cu LUNGIMEA SALTULUI DE RESINCRONIZARE.

• şi dacă EROAREA DE FAZĂ este negativă, atunci PHASE_SEG2 este scurtată


cu o cantitate egală cu LUNGIMEA SALTULUI DE RESINCRONIZARE.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 30 Specificaţia CAN 2.0

REGULI DE SINCRONIZARE
SINCRONIZAREA HARD şi RESINCRONIZAREA sunt cele două forme ale
SINCRONIZĂRII. Ele se supun următoarelor reguli:

1. Este permisă o singură SINCRONIZARE în interiorul unui timp de bit.

2. Un front va fi folosit pentru SINCRONIZARE numai dacă valoarea detectată la


PUNCTUL DE EŞANTIONARE anterior (valoarea anterioară citită de pe
magistrală) diferă de valoarea magistralei imediat după front.

3. SINCRONIZAREA HARD este realizată ori de câte ori există un front de la


’recesiv’ la ’dominant’ pe durata MERS ÎN GOL MAGISTRALĂ.

4. Toate celelalte fronturi de la ’recesiv’ la ’dominant’ (şi opţional de la ’dominant’


la ’recesiv’ în cazul ratelor de bit scăzute) îndeplinind regulile 1 şi 2 vor fi
folosite pentru RESINCRONIZARE, cu excepţia situaţiei în care un nod
transmiţând un bit ’dominant’ nu va realiza o RESINCRONIZARE ca rezultat al
unui front de la ’recesiv’ la ’dominant’ cu o EROARE DE FAZĂ pozitivă, dacă
numai fronturile de la ’recesiv’ la ’dominant’ sunt folosite pentru resincronizare.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 31

9 CREŞTEREA TOLERANŢEI OSCILATORULUI


PENTRU CAN
Această secţiune descrie o modificare compatibilă în sus a protocolului CAN, aşa
cum se specifică în secţiunile 1 la 8.

9.1 Modificări ale protocolului

În scopul creşterii toleranţei maxime a oscilatorului de la 0,5%, posibilă în mod


curent, la 1,5% sunt necesare următoarele modificări, care sunt compatibile în sus cu
specificaţie CAN existentă:

[1] Dacă un nod CAN eşantionează un bit dominant la cel de-al treilea bit al PAUZEI,
atunci acesta va fi interpretat ca un bit START CADRU.

[2] Dacă un nod CAN are un mesaj în aşteptare pentru transmisie şi eşantionează
un bit ’dominant’ de la al treilea bit al PAUZEI, el va interpreta aceasta ca un bit
START CADRU şi, cu bitul următor, declanşează transmisia mesajului său cu
primul bit al IDENTIFICATORULUI fără a transmite mai întâi un bit START
CADRU şi fără a deveni un receptor.

[3] Dacă un nod CAN eşantionează un bit dominant la cel de-al optulea bit (ultimul
bit) al DELIMITATORULUI EROARE sau DELIMITATORULUI SUPRASARCINĂ,
el va începe, la următorul bit, transmisia unui CADRU SUPRASARCINĂ (nu un
CADRU EROARE). Totalurile eroare nu vor fi incrementate.

[4] Numai fronturile recesiv la dominant vor fi folosite pentru sincronizare.

În concordanţă cu specificaţia existentă următoarele reguli mai sunt încă valabile:

[5] Toate controlerele CAN sincronizează la bitul START CADRU printr-o


sincronizare hard.

[6] Nici un controler CAN nu va trimite un bit START CADRU până când nu a
numărat trei biţi recesivi ai PAUZEI.

Aceste modificări permit o toleranţă maximă a oscilatorului de 1,58% şi folosirea unui


rezonator ceramic la o viteză a magistralei de până la 125 kbiţi/secundă. Pentru
întreg domeniul vitezei magistralei ai protocolului CAN, încă mai este necesar un
oscilator cu cuarţ. Compatibilitatea protocolului extins se menţine atât timp cât:

[7] Controlerele CAN cu protocoalele extins şi existent folosite în una şi aceeaşi


reţea, trebuie să fie prevăzute toate cu oscilator cu cuarţ.

Chipul cu necesităţile cele mai ridicate pentru precizia propriului oscilator, determină
precizia cerută pentru oscilatoarele de la toate celelalte noduri. Se pot folosi
rezonatoare ceramice numai când toate nodurile reţelei folosesc protocolul extins.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 32 Specificaţia CAN 2.0

PARTEA B

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 33

1 INTRODUCERE .................................................................................. 34

2 CONCEPTE DE BAZĂ......................................................................... 36

3 TRANSFERUL MESAJULUI ............................................................... 42

3.1 Formate de cadre ................................................................................ 42


3.2 Tipuri de cadre .................................................................................... 42
3.2.1 CADRUL DATE ................................................................................... 42
3.2.2 CADRUL DE LA DISTANŢĂ ............................................................... 49
3.2.3 CADRUL EROARE ............................................................................. 50
3.2.4 CADRUL SUPRASARCINĂ ................................................................ 51
3.2.5 SPAŢIEREA INTERCADRE ............................................................... 53
3.3 Conformitatea în ceea ce priveşte Formatul Cadrelor ........................ 55
3.4 Definiţia TRANSMIŢĂTOR / RECEPTOR ........................................... 55

4 FILTRAREA MESAJULUI ................................................................... 56

5 VALIDAREA MESAJULUI ................................................................... 57

6 CODIFICAREA ................................................................................... 58

7 MANIPULAREA ERORILOR .............................................................. 59

7.1 Detectarea erorilor .............................................................................. 59


7.2 Semnalarea erorilor ............................................................................ 60

8 LIMITAREA DEFECTELOR ................................................................ 61

9 TOLERANŢA OSCILATORULUI ........................................................ 64

10 CERINŢLELE DE SINCRONIZARE PENTRU BIŢI ............................ 67

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 34 Specificaţia CAN 2.0

1 INTRODUCERE
Un controler de zonă a reţelei (Controller Area Network) CAN este un protocol de
comunicaţii seriale care sprijină cu eficienţă controlul distribuit în timp real cu un nivel
de securitate foarte înalt.
Domeniul său de aplicaţii se întinde de la reţelele de înaltă viteză până la sistemele
de cablare multiplexată de preţ scăzut. În electronica auto, unităţile de control pentru
motor, senzori, sisteme antiderapare etc. sunt conectate folosind CAN cu rate de bit
de până la 1 Mbit/s. În acelaşi timp este avantajos ca preţ să se utilizeze la
electronica de pe caroserie, de exemplu grupurile de becuri, geamurile electrice etc.
pentru a înlocui arborii de cabluri necesare în caz contrar.
Intenţia acestei specificaţii este să realizeze compatibilitatea între oricare două
implementări CAN. Totuşi compatibilitatea are aspecte diferite privind de exemplu
caracteristicile electrice şi interpretarea datelor care trebuie transferate. Pentru a
obţine transparenţa proiectării şi flexibiltatea implementării, CAN a fost subîmpărţit în
două straturi diferite, în concordanţă cu modelele de referinţă ISO / OSI:

• stratul legături date

- substratul control logic al legăturilor (LLC Logical Link Control)


- substratul control acces la mediu (MAC Medium Access Control)

• stratul fizic

De notat că în versiunile precedente ale specificaţiei CAN, serviciile şi funcţiile


substraturilor LLC şi MAC din stratul legături date au fost descrise în straturi notate
ca ’strat obiect’ şi ’strat transfer’. Sfera de acţiune a substratului LLC este:

• să asigure servicii pentru transferul de date şi pentru solicitarea datelor de la


distanţă,

• să decidă care mesaje recepţionate de substratul LLC trebuie într-adevăr să fie


acceptate,

• să asigure mijloace pentru administrarea recuperării şi notificarea suprasarcinii.

Există o mare libertate în realizarea manipulării obiectului. Sfera de acţiune a


substratului MAC este în principal protocolul de transfer, de exemplu controlul
codificării, realizarea arbitrării, detectarea erorilor, semnalarea erorilor şi limitarea
defectelor. În interiorul substratului MAC se decide dacă magistrala este liberă pentru
a începe o nouă transmisie sau dacă tocmai începe o recepţie. De asemenea,
câteva caracteristici generale ale sincronizării biţilor sunt privite ca o parte a
substratului MAC. Aceasta este natura substratului MAC astfel că nu există nicio
libertate pentru modificări.
Sfera de acţiune a stratului fizic este transferul real al biţilor între diferitele noduri în
legătură cu toate proprietăţile electrice.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 35

În interiorul unei reţele, stratul fizic trebuie desigur să fie acelaşi pentru toate
nodurile. Poate exista totuşi o mare libertate în selectarea stratului fizic.

Sfera de acţiune a acestei specificaţii este de a defini substratul MAC şi o mică parte
a substratului LLC a stratului legături date şi să descrie consecinţele protocolului
CAN asupra straturilor înconjurătoare.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 36 Specificaţia CAN 2.0

2 CONCEPTE DE BAZĂ
CAN are următoarele proprietăţi

• prioritizarea mesajelor
• garantarea timpilor de latenţă
• flexibilitatea configuraţiei
• recepţie multicast cu sincronizare de timp
• consistenţă largă a datelor din sistem
• multimaster
• detectarea şi semnalarea erorilor
• retransmisia automată a mesajelor deteriorate de îndată ce magistrala este din
nou la mers în gol
• distincţie între erorile temporare şi defectele permanente ale nodurilor şi
deconectarea autonomă a nodurilor defecte

Arhitectura stratificată a CAN conform cu modelul de referinţă OSI

• Stratul fizic defineşte modul în care semnalele sunt transmise în realitate şi prin
urmare se ocupă cu sincronizarea biţilor, codificarea biţilor şi sincronizarea. În
această specificaţie caracteristicile driver / receptor din stratul fizic nu sunt
definite, permiţând astfel ca implementările mediului de transmisie şi a nivelelor
de semnal să fie optimizate pentru aplicaţiile lor.

• Substratul MAC reprezintă nucleul protocolului CAN. Acesta prezintă mesaje


primite de la substratul LLC şi acceptă mesaje pentru a fi transmise substratului
LLC. Substratul MAC este responsabil pentru Cadrarea Mesajului, Arbitrare,
Confirmare, Detectarea şi Semnalarea Erorilor. Substratul MAC este supervizat
de o entitate de administrare numită Limitarea Erorilor care este mecanismul de
auto-testare pentru a face distincţia între perturbaţiile scurte şi defectele
permanente.

• Substratul LLC se ocupă cu Filtrarea Mesajului, Notificarea Suprasarcinii şi


Administrarea Regenerării.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 37

Stratul legături date

LLC
Supervizor
Filtrarea de acceptare
Notificare suprasarcină
Administrarea recuperării

MAC
Încapsulare / decapsulare
date
Codificare cadru
(umplere / dezumplere) Limitare
(stuffing / destuffing)
Administrarea accesului la
defecte
mediu
Detectarea erorilor
Semnalarea erorilor
Confirmarea
Serializare / deserializare

Stratul fizic
Codificare / decodificare bit Administrare
Timing de bit eşecuri
Sincronizare magistrală
Caracteristici driver./ receptor

LLC = Control logic legături


MAC = Control acces la mediu

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 38 Specificaţia CAN 2.0

Domeniul acestei specificaţii este de a defini stratul legături date şi consecinţele


protocolului CAN asupra straturilor înconjurătoare.

Mesajele
Informaţiile de pe magistrală sunt trimise în mesaje de formă fixă de lungime diferită,
dar limitată (a se vedea secţiunea 3: Transferul mesajului). Când magistrala este
liberă, orice unitate conectată poate începe să transmită un mesaj nou.

Rutarea informaţiei
Într-un sistem CAN, un nod CAN nu face uz de nicio informaţie asupra configuraţiei
sistemului (de exemplu adresele staţiilor). Acest fapt are câteva consecinţe
importante.

Flexibilitatea sistemului: Nodurile pot fi aduăugate la reţeaua CAN fără a


necesita nicio modificare în software sau hardware a niciunui nod şi a stratului
aplicaţie.

Rutarea mesajelor: Conţinutul unui mesaj este precizat de un


IDENTIFICATOR. IDENTIFICATORUL nu indică destinaţia mesajului, dar
descrie semnificaţia datelor, astfel încât toate nodurile din reţea sunt capabile
sa decidă prin filtrarea mesajelor dacă datele acţionează sau nu asupra lor.

Multicast: Ca o consecinţă a conceptului de filtrare a mesajelor, orice număr


de noduri pot recepţiona şi acţiona simultan pe acelaşi mesaj.

Consistenţa datelor: În interiorul unei reţele CAN este garantat că un mesaj


este acceptat în mod simultan, fie de toate nodurile, fie de nicunul. Astfel
consistenţa datelor unui sistem este realizată prin conceptele de multicast şi
manipulare erori.

Rata de bit
Viteza CAN-ului poate fi diferită în sisteme diferite. Totuşi, într-un sistem dat, rata de
bit este uniformă şi fixă.

Priorităţi
IDENTIFICATORUL defineşte o prioritate statică a mesajului pe durata accesului pe
magistrală.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 39

Cerere date de la distanţă


Prin trimiterea unui CADRU DE LA DISTANŢĂ, un nod solicitând date poate cere
unui alt nod să timită CADRUL DATE corespunzător. CADRUL DATE şi CADRUL DE
LA DISTANŢĂ corespunzător sunt precizate prin acelaşi IDENTIFICATOR.

Multimaster
Când magistrala este liberă, orice unitate poate începe să transmită un mesaj.
Unitatea cu mesajul de prioritate mai înaltă ce trebuie transmis câştigă accesul pe
magistrală.

Arbitrare
Ori de câte ori magistrala este liberă, orice unitate poate începe să transmită un
mesaj. Dacă două sau mai multe staţii încep să transmită mesaje în acelaşi moment,
conflictul de acces pe magistrală este rezolvat prin arbitrarea la nivel de bit folosind
IDENTIFICATORUL. Mecanismul arbitrării garantează că nu se pierd nici informaţii,
nici timp. Dacă un CADRU DATE şi un CADRU DE LA DISTANŢĂ au acelaşi
IDENTIFICATOR sunt iniţiate în acelaşi timp, CADRUL DATE este predominant
asupra CADRULUI DE LA DISTANŢĂ. Pe durata arbitrării fiecare transmiţător
compară nivelul bitului transmis cu nivelul observat pe magistrală. Când un bit
’recesiv’ este transmis şi un nivel ’dominant’ este observat (a se vedea Valori pe
Magistrală), unitatea a pierdut arbitrarea şi trebuie să se retragă fără a mai transmită
niciun bit.

Siguranţa
În vederea asigurării siguranţei extreme a transferului de date, se implementează în
fiecare CAN măsuri puternice pentru detectarea erorilor, semnalarea lor şi auto-
verificare.

Detectarea erorilor
Pentru detectarea erorilor au fost luate următoarele măsuri:
- Monitorizare (transmiţătoarele compară nivelele de bit ce trebuie transmise
cu nivelele de bit detectate pe magistrală)
- Verificare redundanţă ciclică
- Biţi de umplutură (Bit stuffing)
- Verificare cadru mesaj

Executarea detectării erorilor


Mecanismele detectării erorilor au următoarele proprietăţi:
- sunt detectate toate erorile globale.
- sunt detectate toate erorile locale la transmiţător.
- sunt detectate până la 5 erori distribuite aleator dintr-un mesaj.
- sunt detectate erorile salvă cu o lungime mai mică de 15 dintr-un mesaj.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 40 Specificaţia CAN 2.0

Probabilitatea erorii totale reziduale pentru mesaje afectate nedectate: mai mică de

rata de erori mesaj * 4.7 * 10-11

Semnalarea erorilor şi timpul de recuperare


Mesajele alterate sunt semnalate de orice nod care detectează o eroare. Astfel de
mesaje sunt abandonate şi vor fi retransmise în mod automat. Timpul de recuperare
de la detectarea unei erori până la startul următorului mesaj este de cel mult 31
durate (timpi) de bit, dacă nu există o eroare ulterioară.

Limitarea defectelor
Nodurile CAN sunt capabile să distingă perturbaţiile de scurtă durată de defectele
permanente.

Conexiuni
Legătura serială de comunicaţie CAN este o magistrală la care se pot conecta un
număr de unităţi. Acest număr nu are o limită teoretică. Practic, numărul total al
unităţilor va fi limitat de timpii de întârziere şi/sau sarcinile electrice de pe linia
magistralei.

Canal unic
Magistrala constă dintr-un singur canal care transportă biţii. De aici pot fi derivate
informaţiile de date resincronizate. Modul în care acest canal este realizat practic nu
este fixat în această specificaţie. De exemplu, un singur fir (plus masa), două fire
diferenţiale, fibră optică etc.

Valorile de pe magistrală
Magistrala poate avea una din două valori logice complementare: ’dominant’ sau
’recesiv’. Pe timpul transmisiei simultane a biţilor ’dominant’ şi ’recesiv’, valoarea
rezultată pe magistrală este ’dominant’. De exemplu, în cazul implemetării ŞI cablat a
magistralei nivelul ’dominant’ va fi reprezentat de un nivel logic ’0’ şi nivelul ’recesiv’
de un logic ’1’. Stările fizice (de exemplu tensiune, lumină) care reprerzintă nivelele
logice nu sunt date în această specificaţie.

Confirmarea
Toate receptoarele verifică consistenţa mesajului recepţionat şi vor confirma un
mesaj consistent şi vor semnala un mesaj inconsistent.

Modul somn / deşteptare


Pentru a reduce consumul de putere în sistem, un dispozitiv CAN poate fi setat în
modul „somn” fără nicio activitate internă şi cu driverele de magistrală deconectate.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 41

Modul somn este încheiat cu o „deşteptare” de orice activitate pe magistrală sau de


condiţii interne ale sistemului. La deşteptare, activitatea internă este reluată, deşi
substratul MAC va aştepta ca oscilatorul sistemului să se stabilizeze şi apoi va
aştepta până când s-a sincronizat el însuşi la activitatea magistralei (prin verificarea
a 11 biţi ’recesivi’ consecutivi), înainte ca driverele să fie setate din nou la regimul „pe
magistrală”.

Toleranţa oscilatorului
Cerinţele pentru timing-ul de bit permit rezonatoarelor ceramice să fie utilizate în
aplicaţii cu rate de transmisie de până la 125 kbit/s ca o regulă; pentru o evaluare
mai precisă, consultaţi:

Dias, S; Chapman, M;
„Impact of Bit Representation on Transport Capacity
and Clock Accuracy in Serial Data Stream”,
SAE Technical Paper Series 890532, Multiplexing in Automobiles
SP-773 March 1989

Pentru întreg domeniul de viteze ale magistralei a protocolului CAN, este necesar un
oscilator cu cuarţ.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 42 Specificaţia CAN 2.0

3 TRANSFERUL MESAJULUI

3.1 Formate de cadre

Există două formate diferite care diferă prin lungimea câmpului IDENTIFICATOR:
cadre cu un număr de 11 biţi IDENTIFICATOR, desemnează Cadre standard. În
contrast, cadrele conţinând 29 de biţi IDENTIFICATOR, desemnează Cadrele
extinse.

3.2 Tipuri de cadre


Transferul mesajului se manifestă şi este controlat prin patru tipuri diferite de cadre.

Un CADRU DATE care transportă informaţia de la transmiţător la receptor.


Un CADRU DE LA DISTANŢĂ este transmis de o unitate de magistrală pentru a
solicita transmisia unui CADRU DATE cu acelaşi IDENTIFICATOR.
Un CADRU SUPRASARCINĂ este folosit pentru a asigura o întârziere suplimentară
între CADRELE DATE sau CADRELE DE LA DISTANŢĂ.

CADRELE DATE şi CADRELE DE LA DISTANŢĂ pot fi utilizate atât în formatul


standard cât şi în formatul extins; ele sunt separate de cadrele precedente printr-
un SPAŢIU INTERCADRE.

3.2.1 CADRUL DATE

Un CADRU DATE este compus din şapte câmpuri de bit diferite:


START CADRU, CÂMP ARBITRARE, CÂMP CONTROL, CÂMP DATE, CÂMP CRC,
CÂMP CONFIRMARE (ACK), SFÂRŞIT CADRU. CÂMPUL DATE poate fi de
lungime zero.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 43

Spaţiu Spaţiu
intercadre CADRU DATE intercadre

sau
Cadru
supra-
sarcină
Start cadru

Câmp arbitrare

Câmp control

Câmp date

Câmp CRC

Câmp ACK (confirmare)

Sfârşit cadru

START CADRU (atât în Formatul Standard cât şi în Formatul Extins)


START CADRU (SOF) marchează începutul CADRELOR DATE şi CADRELOR DE
LA DISTANŢĂ. El constă dintr-un singur bit ’dominant’.
O staţie are permisiunea să înceapă transmisia când magistrala este la mers în gol
(a se vedea MAGISTRALA LA MERS ÎN GOL). Toate staţiile trebuie să se
sincronizeze cu frontul conducător determinat de START CADRU (a se vedea
SINCRONIZARE HARD) de la staţia care începe prima transmisia.

CÂMPUL ARBITRARE
CÂMPUL ARBITRARE este diferit pentru cadre în Format Standard şi Format
Extins.

În format standard CÂMPUL ARBITRARE constă din IDENTIFICATORUL de 11 biţi


şi BITUL RTR. Biţii IDENTIFICATOR sunt notaţi cu ID-28 ... ID-18.

În format extins CÂMPUL ARBITRARE constă din IDENTIFICATORUL de 29 biţi,


bitul SRR, bitul IDE şi BITUL RTR. Biţii IDENTIFICATOR sunt notaţi cu ID-28 ... ID-0.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 44 Specificaţia CAN 2.0

Pentru a face distincţia între formatul standard şi formatul extins, bitul rezervat r1 din
specificaţiile CAN anterioare 1.0 – 1.2 este denumit acum Bit IDE.

Format Standard
Câmp
Câmp Arbitrare Control Câmp Date

IDENTIFICATOR 11 biţi

Format Extins
Câmp Câmp
Câmp Arbitrare Control Date

IDENTIFICATOR 11 biţi IDENTIFICATOR 18 biţi

IDENTIFICATORUL
IDENTIFICTORUL - Format standard
Lungimea identificatorului este de 11 biţi şi corespunde la ID Bază în format
extins. Aceşti biţi sunt transmişi în ordinea ID-28 la ID-18. Cel mai puţin
semnificativ bit este ID-18. Primii 7 cei mai semnificativi biţi (ID-28 ÷ ID-22) nu
trebuie să fie toţi ’recesivi’.

IDENTIFICTORUL - Format extins


Spre deosebire de formatul standard, formatul extins constă din 29 de biţi.
Formatul cuprinde două secţiuni:

ID Bază cu 11 biţi
ID Extins cu 18 biţi

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 45

ID Bază
ID Bază constă din 11 biţi. El este transmis în ordine de la ID-28 la ID-18. Este
echivalent cu formatul identificatorului standard. ID Bază defineşte prioritatea de
bază a cadrelor extinse.

ID Extins
ID Extins constă din 18 biţi. Ei sunt transmişi în ordinea ID-17 la ID-0.

Într-un cadru standard, IDENTIFICATORUL este urmat de bitul RTR.

BITUL RTR (atât în Format Standard cât şi în Format Exins)


Bitul Cerere (R) Transmisie (T) la Distanţă (R)

În CADRELE DATE, BITUL RTR trebuie să fie ’dominant’. În interiorul unui CADRU
DE LA DISTANŢĂ, BITUL RTR trebuie să fie ’recesiv’.

Într-un cadru extins, ID bază este transmis primul, urmat de bitul IDE şi bitul SRR. ID
Extins se transmite după bitul SRR.

Bitul SRR (Formatul extins)


Bit Substituire (S) Cerere (R) de la Distanţă (R)
Bitul SRR este un bit recesiv. El este transmis în cadre extinse pe poziţia bitului RTR
din cadrele standard şi astfel substituie bitul RTR din cadrele standard.

Prin urmare, ciocnirile unui cadru standard şi a unui cadru extins, ID bază (a se
vedea ’IDENTIFICATOR extins’ de mai sus) care este acelaşi ca şi Identificatorul
Cadrelor Standard, sunt rezolvate în aşa fel încât Cadrul Standard este predominant
faţă de Cadrul Extins.

BITUL IDE (Format extins)


Bit Extensie (E) Identificator (ID)
Bitul IDE aparţine:
- CÂMPULUI ARBITRARE pentru Formatul Extins
- CÂMPULUI CONTROL pentru Formatul Standard
Bitul IDE în Format Standard este transmis ’dominant’, în timp ce în Formatul Extins
bitul IDE este ’recesiv’.

CÂMPUL CONTROL (atât în Format Standard cât şi în Format Exins)


CÂMPUL CONTROL constă din şase biţi. Formatul CÂMPULUI DE CONTROL diferă
pentru Formatul Standard şi Formatul Extins. Cadrele în Format Standard includ
CODUL LUNGIME DATE, bitul IDE, care este transmis ’dominant’ (a se vedea mai
sus) şi bitul rezervat r0.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 46 Specificaţia CAN 2.0

Cadrele în Format Extins conţin CODUL LUNGIME DATE şi doi biţi rezervaţi r1 şi r0.
Biţii rezervaţi trebuie transmişi ’domininaţi’, dar receptoarele acceptă biţii ’dominanaţi’
şi ’recesivi’ în toate combinaţiile.

Câmp CÂMP CONTROL Câmp


arbitrare
date
sau
IDE/r1 Câmp
CRC

Biţi Cod lungime date


rezervaţi

CODUL LUNGIME DATE (Format Standard şi Format Extins)


Numărul de octeţi din CÂMPUL DATE este indicat de CODUL LUNGIME DATE.
Acest COD LUNGIME DATE are o lungime de 4 biţi şi este transmis în interiorul
CÂMPULUI CONTROL.

Codificarea numărului octeţilor de date de către CODUL LUNGIME DATE

prescurtări d – ’dominant’
r – ’recesiv’

Număr de Cod lungime date


octeţi de
date DLC3 DLC2 DLC1 DLC0

0 d d d d

1 d d d r

2 d d r d

3 d d r r

4 d r d d

5 d r d r

6 d r r d

7 d r r r

8 r d d d

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 47

CADRUL DATE: numere admisibile de octeţi de date: {0,1,...,7,8}.


Alte valori nu pot fi folosite.

CÂMPUL DATE (Format Standard şi Format Extins)


CÂMPUL DATE constă din datele care trebuie transferate în interiorul unui CADRU
DATE. El poate conţine de la 0 la 8 octeţi, fiecare conţinând 8 biţi care sunt
transferaţi începând cu bitul de semnificaţie maximă MSB.

CÂMPUL CRC (Format Standard şi Format Extins)


conţine SECVENŢA CRC, urmată de un DELIMITATOR CRC.

Câmp CÂMP CRC Câmp


Date ACK

sau
Control

Delimitator CRC
Secvenţă CRC

SECVENŢA CRC (Format Standard şi Format Extins)


Secvenţa de verificare a cadrului derivă dintr-un cod cu redundanţă ciclică cel mai
convenabil pentru cadre ce numără mai puţin de 127 biţi (cod BCH).
Pentru realizarea calculului CRC, este definit polinomul care trebuie împărţit,
coeficienţii săi fiind daţi de curentul de biţi destuffed („dezumpluţi”) constând din
START CADRU, CÂMP ARBITRARE, CÂMP CONTROL, CÂMP DATE (dacă acesta
este prevăzut) şi de valori 0 pentru cei 15 cei mai inferiori coeficienţi. Polinomul este
împărţit (coeficienţii sunt calculaţi modulo 2) la polinomul generator:

x15 + x14 + x10 + x8 + x7 + x4 + x3 + 1

Restul împărţirii polinoamelor este secvenţa CRC transmisă pe magistrală. Pentru


implementarea acestei funcţii se poate folosi un registru de deplasare de 15 biţi
CRC_RG(14:0). Dacă NXTBIT indică următorul bit din curentul de biţi, dat de
secvenţa de biţi „dezumplută” de la START CADRU până la CÂMP DATE,
SECVENŢA CRC se calculează după cum urmează:

CRC_RG = 0; //iniţializare registru de deplasare

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 48 Specificaţia CAN 2.0

REPEAT
CRCNXT = NXTBIT EXOR CRC_RG(14);
CRC_RG(14:1) = CRC_RG(13:0); //deplasare stânga
CRC_RG(0) = 0; //o poziţie
IF CRCNXT THEN
CRC_RG(14:0) = CRC_RG(14:0) EXOR (4599hex);
ENDIF
UNTIL (începe SECVENŢA CRC sau există o condiţie de EROARE)

După transmisia / recepţia ultimului bit din CÂMPUL DATE, CRC_RG conţine
secvenţa CRC.

DELIMITATOR CRC (Format Standard şi Format Extins)


SECVENŢA CRC este urmată de DELIMITATOR CRC care constă dintr-un singur bit
’recesiv’.

CÂMPUL ACK (CONFIRMARE) (Format Standard şi Format Extins)


CÂMPUL ACK are o lungime de doi biţi şi conţine FANTA ACK şi DELIMITATORUL
ACK. În CÂMPUL ACK staţia transmiţătoare trimite doi biţi ’recesivi’.
Un RECEPTOR ce a recepţionat un mesaj valabil în mod corect, raportează aceasta
la TRANSMIŢĂTOR prin trimiterea unui bit ’dominant’ pe durata FANTEI ACK (trimite
ACK).

Câmp CÂMP ACK Sfârşit


CRC cadru

Delimitator ACK
Fantă ACK

FANTA ACK
Toate staţiile care au recepţionat SECVENŢA CRC potrivită, raportează aceasta în
interiorul FANTEI ACK prin suprascrierea peste bitul ’recesiv’ de la TRANSMIŢĂTOR
a unui bit ’dominant’.

DELIMITATORUL ACK
DELIMITATORUL ACK este cel de-al doilea bit din CÂMPUL ACK şi trebuie să fie un
bit ’recesiv’. Drept consecinţă, FANTA ACK este înconjurată de doi biţi ’recesivi’
(DELIMITATOR CRC, DELIMITATOR ACK).

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 49

SFÂRŞIT CADRU (Format Standard şi Format Extins)


Fiecare CADRU DATE şi CADRU DE LA DISTANŢĂ este delimitat de o secvenţă
flag (de semnalizare) care constă din şapte biţi ’recesivi’.

3.2.2 CADRUL DE LA DISTANŢĂ

O staţie funcţionând ca RECEPTOR pentru anumite date poate iniţia transmisia


respectivelor date de către propriul nod sursă prin transmiterea unui CADRU DE LA
DISTANŢĂ.
Un CADRU DE LA DISTANŢĂ există atât în Formatul Standard, cât şi în Formatul
Extins. În ambele cazuri este compus din şase câmpuri de biţi diferite:
START CADRU, CÂMP ARBITRARE, CÂMP CONTROL, CÂMP CRC, CÂMP ACK,
SFÂRŞIT CADRU.
Spre deosebire de CADRELE DATE, bitul RTR de la CADRUL DE LA DISTANŢĂ
este ’recesiv’. Nu există CÂMP DATE, independent de valorile CODULUI LUNGIME
DATE care poate semnala orice valoare din domeniul admisibil 0,...,8. Valoarea este
CODUL LUNGIME DATE pentru CADRUL DATE corespunzător.

Spaţiu CADRU DE LA DISTANŢĂ Spaţiu


intercadre intercadre

sau
Cadru
supra-
sarcină
Start cadru

Câmp arbitrare

Câmp control

Câmp CRC

Câmp ACK (confirmare)

Sfârşit cadru

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 50 Specificaţia CAN 2.0

Polaritatea bitului RTR indică dacă un cadru transmis este CADRU DATE (bitul RTR
’dominant’) sau CADRU DE LA DISTANŢĂ (bitul RTR ’recesiv’).

3.2.3 CADRUL EROARE


CADRUL EROARE constă din două câmpuri diferite. Primul câmp este dat din
suprapunerea FLAGURILOR EROARE cu care contribuie diferite staţii. Cel de-al
doilea câmp care urmează este DELIMITATORUL EROARE.

Spaţiu
Cadru CADRU EROARE intercadre
date sau

Flag Eroare Cadru


supra-
sarcină

Suprapunere
flaguri eroare Delimitator Eroare

Pentru a termina în mod corect CADRUL EROARE, un nod ’eroare pasivă’ are
nevoie ca magistrala să fie ’magistrala la mers în gol’ pentru cel puţin 3 perioade de
bit (dacă există o eroare locală la un receptor ’eroare pasivă’). Ca urmare, magistrala
nu trebuie încărcată 100%.

FLAGUL EROARE
Există două forme ale FLAGULUI EROARE: un FLAG EROARE ACTIVĂ şi un FLAG
EROARE PASIVĂ.

1. FLAGUL EROARE ACTIVĂ constă din şase biţi ’dominanţi’ consecutivi.

2. FLAGUL EROARE PASIVĂ constă din şase biţi ’recesivi’ consecutivi, afară de
cazul când este suprascris cu biţi ’dominanţi’ de la alte noduri.

O staţie ’eroare activă’ care detectează o condiţie de eroare semnalizează acest fapt
prin transmiterea unui FLAG EROARE ACTIVĂ. FLAGURILE EROARE încalcă legea
biţilor de umplutură (a se vedea CODIFICAREA) aplicată tuturor câmpurilor de la
START CADRU până la DELIMITATORUL CRC sau distruge forma fixată a
câmpurilor ACK sau SFÂRŞIT CADRU. Ca urmare, toate celelalte staţii detectează o
condiţie de eroare şi la rândul lor încep transmisia unui FLAG EROARE.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 51

Astfel, secvenţa de biţi ’dominanţi’ care de fapt pot fi urmăriţi pe magistrală rezultată
prin suprapunerea diferitelor FLAGURI EROARE transmise de staţiile individuale.
Lungimea totală a acestei secvenţe variază între minim şase şi maxim doisprezece
biţi.
O staţie ’eroare pasivă’ care detectează o condiţie de eroare, încearcă să semnaleze
aceasta prin transmisia unui FLAG EROARE PASIVĂ. Staţia ’eroare pasivă’ aşteaptă
şase biţi de polaritate identică începând la startul FLAGULUI EROARE PASIVĂ.
FLAGUL EROARE PASIVĂ este completat când s-au detectat aceşti 6 biţi identici.

DELIMITATORUL EROARE
DELIMITATORUL EROARE constă din opt biţi ’recesivi’.
După transmiterea unui FLAG EROARE, fiecare staţie trimite biţi ’recesivi’ şi
supraveghează magistrala până când detectează un bit ’recesiv’. După aceea începe
transmisia a încă şapte biţi ’recesivi’.

3.2.4 CADRUL SUPRASARCINĂ


CADRUL SUPRASARCINĂ conţine două câmpuri de bit FLAG SUPRASARCINĂ şi
DELIMITATOR SUPRASARCINĂ.
Există două feluri de condiţii de SUPRASARCINĂ, ambele conducând la transmisia
unui FLAG SUPRASARCINĂ:

1. Condiţiile interne ale unui receptor, care solicită o întârziere a următorului


CADRU DATE sau CADRU DE LA DISTANŢĂ.

2. Detectarea unui bit ’dominant’ la primul şi al doilea bit al PAUZEI.

3. Dacă un nod CAN eşantionează un bit dominant la cel de-al optulea bit
(ultimul bit) al unui DELIMITATOR EROARE sau DELIMITATOR
SUPRASARCINĂ, el va începe transmiterea unui CADRU SUPRASARCINĂ
(nu un CADRU EROARE). Totalurile de Erori nu vor fi incrementate.

Startul unui CADRU SUPRASARCINĂ datorat unei condiţii 1 de SUPRASARCINĂ


este permis numai la primul timp de bit al unei PAUZE aşteptate, pe când CADRELE
SUPRASARCINĂ datorate condiţiilor 2 şi 3 de SUPRASARCINĂ încep un bit după
detectarea unui bit ’dominant’.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 52 Specificaţia CAN 2.0

Pot fi generate cel mult două CADRE SUPRASARCINĂ pentru a întârzia următorul
CADRU DATE sau CADRU DE LA DISTANŢĂ.

Sfârşit Cadru sau CADRU


Delimitator Eroare Spaţiu
sau Delimitator SUPRASARCINĂ intercadre
Suprasarcină sau

Flag Cadru
Suprasarcină supra-
sarcină

Suprapunere
flaguri suprasarcină Delimitator
Suprasarcină

FLAGUL SUPRASARCINĂ
constă din şase biţi ’dominanţi’. Forma generală corespunde celei a FLAGULUI
EROARE ACTIVĂ.

FLAGURILE SUPRASARCINĂ distrug forma fixată a câmpului PAUZĂ. Ca urmare,


toate celelalte staţii vor detecta de asemenea o condiţie SUPRASARCINĂ şi la
rândul lor încep transmisia unui FLAG SUPRASARCINĂ. În cazul în care există un
bit ’dominant’ detectat pe durata celui de-al treilea bit al PAUZEI, atunci acest bit va fi
interpretat ca START CADRU.

Nota:
Controlerele bazate pe Specificaţia CAN versiunile 1.0 şi 1.1 au o altă
interpretare a celui de-al treilea bit al PAUZEI: dacă un bit ’dominant’ a fost
detectat local în unele noduri, celelalte nu vor interpreta FLAGUL
SUPRASARCINĂ în mod corect, ci vor interpreta primul din aceşti şase biţi
’dominanţi’ ca un START CADRU. Cel de-al şaselea bit ’dominant’ încalcă
regula bit stuffing – biţi de umplutură – determinând o condiţie de eroare.

DELIMITATORUL SUPRASARCINĂ
constă din opt biţi ’recesivi’.

DELIMITATORUL SUPRASARCINĂ este de aceeaşi formă ca şi DELIMITATORUL


EROARE. După transmiterea unui FLAG SUPRASARCINĂ, staţia supraveghează
magistrala până când detectează o tranziţie de la un bit ’dominant’ la un bit ’recesiv’.
În acest moment fiecare staţie de magistrală a terminat transmiterea FLAGURILOR
SUPRASARCINĂ proprii şi toate staţiile încep transmisia a încă şapte biţi ’recesivi’ în
coincidenţă.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 53

3.2.5 SPAŢIERE INTERCADRE

CADRELE DATE şi CADRELE DE LA DISTANŢĂ sunt separate de cadrele


precedente, indiferent de tipul lor (CADRU DATE, CADRU DE LA DISTANŢĂ,
CADRU EROARE, CADRU SUPRASARCINĂ) de un câmp de bit, denumit SPAŢIU
INTERCADRE. În contrast, CADRELE SUPRASARCINĂ şi CADRELE EROARE nu
sunt precedate de un SPAŢIU INTERCADRE şi CADRELE SUPRASARCINĂ
multiple nu sunt separate printr-un SPAŢIU INTERCADRE.

SPAŢIUL INTERCADRE
conţine câmpurile de bit PAUZĂ şi MERS ÎN GOL MAGISTRALĂ şi, pentru staţiile
’eroare pasivă’ care au fost TRANSMIŢĂTORUL mesajului anterior, SUSPENDARE
TRANSMISIE.

Pentru staţii care nu sunt ’eroare pasivă’ sau care au fost RECEPTOR al mesajului
anterior:

Cadru SPAŢIU INTERCADRE Cadru

Mers în gol
Pauză magistrală

Pentru staţii ’eroare pasivă’ care au fost TRANSMIŢĂTORUL mesajului anterior:

Cadru SPAŢIU INTERCADRE Cadru

Mers în gol magistrală


Suspendare transmisie
Pauză

PAUZA
constă din trei biţi ’recesivi’.

Pe durata PAUZEI acţiunea ce urmează a fi luată este numai semnalarea unei


condiţii SUPRASARCINĂ şi nici unei staţii nu îi este permis să înceapă transmisia
activă a unui CADRU DATE sau CADRU DE LA DISTANŢĂ

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 54 Specificaţia CAN 2.0

Nota:

Dacă un nod CAN are un mesaj care aşteaptă pentru a fi transmis şi el


eşantionează un bit dominant la cel de-al treilea bit al PAUZEI, el va interpreta
acesta ca un bit START CADRU şi, cu următorul bit, începe transmiterea
mesajului său cu primul bit al IDENTIFICATORULUI său fără a mai transmite
mai întâi un bit START CADRU şi fără a deveni receptor.

MERS ÎN GOL MAGISTRALĂ


Perioada MERS ÎN GOL MAGISTRALĂ poate fi de lungime arbitrară. Magistrala este
recunoscută ca fiind liberă şi orice staţie care are ceva de transmis poate accesa
magistrala. Un mesaj care este nerezolvat pentru transmisie pe durata transmisiei
unui alt mesaj, este început pe primul bit ce urmează PAUZEI.
Detectarea unui bit ’dominant’ pe magistrală este interpretată ca un START CADRU.

SUSPENDARE TRANSMISIE
După ce o staţie ’eroare pasivă’ a transmis un mesaj, ea trimite opt biţi ’recesivi’
urmând după PAUZĂ, înainte de a începe să transmită un nou mesaj sau să
recunoască magistrala ca fiind la mers în gol. Dacă între timp începe o altă
transmisie (provocată de o altă staţie), staţia va deveni receptor al acestui mesaj.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 55

3.3 Conformitatea în ceea ce priveşte Formatul Cadrelor

Formatul standard este echivalent cu Formatul Cadru Date / de la Distanţă, aşa cum
este descris acesta în Specificaţia CAN 1.2. În contrast, Formatul Extins este o nouă
caracteristică a protocolului CAN. Cu scopul de a permite proiectarea unor controlere
relativ simple, implementarea Formatului Extins nu este necesară în întreaga sa
extindere (de exemplu să trimită mesaje sau să accepte date din mesaje în Format
Extins), în timp ce Formatul Standard trebuie să fie tolerat fără restricţie.
Noile controlere sunt considerate a fi în conformitate cu această Specificaţie CAN,
dacă ele au cel puţin următoarele proprietăţi cu privire la Formate Cadre definite în
3.1 şi 3.2:

- Fiecare nou controler suportă Formatul Standard;


- Fiecare nou controler poate recepţiona mesaje în Format Extins. Aceasta
necesită ca să nu se distrugă Cadre Extinse numai din cauza formatului lor.
Totuşi, nu este necesar ca Formatul Extins să trebuiască să fie suportat de
noile controlere.

3.4 Definţia pentru TRANSMIŢĂTOR / RECEPTOR

TRANSMIŢĂTOR
O unitate care iniţiază un mesaj este numită „TRANSMIŢĂTOR” a acestui mesaj.
Unitatea rămâne TRANSMIŢĂTOR până când magistrala merge în gol sau unitatea
pierde arbitrarea.

RECEPTOR
O unitate este numită „RECEPTOR” a unui mesaj, dacă nu este TRANSMIŢĂTOR a
acestui mesaj şi magistrala nu merge în gol.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 56 Specificaţia CAN 2.0

4 FILTRAREA MESAJULUI
Filtrarea mesajelor se bazează pe întregul Identificator. Registre mască opţionale,
care permit oricărui bit Identificator să fie setat ’indiferent’ pentru filtrarea mesajului,
pot fi folosite pentru a selecta grupuri de Identificatoare pentru a fi mapate în
bufferele de recepţie ataşate.

Dacă sunt implementate registre mască, fiecare bit al registrelor mască trebuie să fie
programabil, de exemplu ei pot fi activaţi sau dezactivaţi pentru filtrarea mesajului.
Lungimea registrului mască poate cuprinde întregul IDENTIFICATOR sau numai o
parte din el.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 57

5 VALIDAREA MESAJULUI
Momentul în care un mesaj este preluat ca fiind valabil diferă pentru transmiţătorul şi
receptoarele mesajului.

Transmiţător:
Mesajul este valabil pentru transmiţător dacă nu există erori până la SFÂRŞIT
CADRU. Dacă un mesaj a fost afectat, retransmisia va urma în mod automat şi în
concordanţă cu priorităţile. Pentru a fi capabil de a concura la accesul pe magistrală
cu alte mesaje, retransmisia trebuie declanşată de îndată ce magistrala merge în gol.

Receptoare:
Mesajul este valabil pentru receptoare dacă nu există eroare până la penultimul bit
din SFÂRŞIT CADRU. Valoarea ultimului bit din SFÂRŞIT CADRU este tratat ca
’indiferent’, o valoare dominantă nu va conduce la o EROARE DE FORMĂ (conform
secţiunii 7.1).

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 58 Specificaţia CAN 2.0

6 CODIFICAREA
CODIFICAREA CURENTULUI DE BIŢI

Segmentele de cadru START CADRU, CÂMP ARBITRARE, CÂMP CONTROL,


CÂMP DATE şi SECVENŢĂ CRC sunt codificate prin metoda bit stuffing – biţi de
umputură. Oricând un transmiţător detectează cinci biţi consecutivi de valoare
identică în curentul de biţi ce trebuie transmis, el introduce în mod automat un bit
complementar în curentul real de biţi transmişi.
Câmpurile de bit rămase din CADRUL DATE sau CADRUL DE LA DISTANŢĂ
(DELIMITATOR CRC, CÂMP ACK şi SFÂRŞIT CADRU) sunt de formă fixă şi nu
umplută. CADRUL EROARE şi CADRUL SUPRASARCINĂ sunt de asemenea de
formă fixă şi nu sunt codificate prin metoda cu biţi de umplutură.
Curentul de biţi dintr-un mesaj este codificat conform cu metoda Non-Return-to-Zero
(NRZ). Aceasta înseamnă că pe durata timpului de bit total nivelul de bit generat este
fie ’dominant’, fie ’recesiv’.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 59

7 MANIPULAREA ERORILOR
7.1 Detectarea erorilor

Există cinci tipuri diferite de erori (care nu se exclud reciproc):

• EROARE DE BIT
O unitate care trimite un bit pe magistrală, supraveghează de asemenea
magistrala. O EROARE DE BIT trebuie să fie detectată la acel timp de bit la care
valoarea de bit observată diferă de cea transmisă. O excepţie este trimiterea unui
bit ’recesiv’ pe durata curentului cu biţi de umplutură ai CÂMPULUI ARBITRARE
sau pe durata FANTEI ACK. Atunci nu are loc nicio EROARE DE BIT când se
observă un bit ’dominant’. Un TRANSMIŢĂTOR transmiţând un FLAG EROARE
PASIVĂ şi detectând un bit ’dominant’ nu va interpreta aceasta ca o EROARE DE
BIT.
• EROARE DE UMPLERE
O EROARE DE UMPLERE trebuie să fie detectată la timpul de bit al celui de-al
6-lea nivel de bit identic consecutiv într-un câmp mesaj care trebuie codificat prin
metoda biţior de umplutură.
• EROARE CRC
Secvenţa CRC constă din rezultatul calculului CRC de către transmiţător.
Receptoarele calculează CRC în acelaşi mod ca şi transmiţătorul. O EROARE
CRC trebuie să fie detectată dacă rezultatul calculat nu este acelaşi cu cel
recepţionat în secvenţa CRC.
• EROARE DE FORMĂ
O EROARE DE FORMĂ trebuie să fie detectată atunci când un câmp de biţi de o
formă fixată conţine unul sau mai mulţi biţi ilegali. (De notat că pentru un receptor
un bit dominant pe durata ultimului bit din SFÂRŞIT CADRU nu este tratat ca o
EROARE DE FORMĂ).
• EROARE DE CONFIRMARE
O EROARE DE CONFIRMARE trebuie să fie detectată de un transmiţător atunci
când nu observă un bit ’dominant’ pe durata FANTEI ACK.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 60 Specificaţia CAN 2.0

7.2 Semnalarea erorilor


O staţie care detectează o condiţie de eroare semnalează aceasta prin transmiterea
unui FLAG EROARE. Pentru un nod ’eroare activă’ este un FLAG EROARE ACTIVĂ,
pentru un nod ’eroare pasivă’ este un FLAG EROARE PASIVĂ. Ori de câte ori o
EROARE DE BIT, o EROARE DE UMPLERE, o EROARE DE FORMĂ sau o
EROARE DE CONFIRMARE este detectată de orice staţie, este declanşată
transmiterea unui FLAG EROARE la respectiva staţie la următorul bit.
Ori de câte ori se detectează o EROARE CRC, transmisia unui FLAG EROARE
începe la bitul ce urmează după DELIMITATORUL ACK, mai puţin dacă un FLAG
EROARE pentru o altă condiţie a fost deja început.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 61

8 LIMITAREA DEFECTELOR
În ceea ce priveşte limitarea defectelor, o unitate trebuie să fie în una din cele trei
stări:

• ’eroare activă’

• ’eroare pasivă’

• ’magistrală deconectată’

O unitate ’eroare activă’ poate lua parte în mod normal la comunicaţia pe magistrală
şi trimite un FLAG EROARE ACTIVĂ când a fost detectată o eroare.
O unitate ’eroare pasivă’ nu trebuie sa transmită un FLAG EROARE ACTIVĂ. Ea
participă la comunicaţia pe magistrală, dar când s-a detectat o eroare, se transmite
un FLAG EROARE PASIVĂ. Astfel, după o transmisie, o unitate ’eroare pasivă’ va
aştepta înainte de a inţia o nouă transmisie (a se vedea SUSPENDAREA
TRANSMISIEI).
O unitate ’magistrală deconectată’ nu are permisiunea de a avea vreo influenţă
asupra magistralei (De exemplu: driverele de ieşire deconectate).
Pentru limitarea defectelor sunt implementate două totaluri în fiecare unitate de
magistrală:

1) TOTALUL ERORILOR DE TRANSMISIE


2) TOTALUL ERORILOR DE RECEPŢIE

Aceste totaluri sunt modificate în conformitate cu următoarele reguli:


(de notat că pe durata transferului unui mesaj se poate aplica mai mult de o regulă)

1. Când un RECEPTOR detectează o eroare, TOTALUL ERORILOR DE


RECEPŢIE va fi incrementat cu 1, excepţie situaţia în care eroarea detectată a
fost o EROARE DE BIT pe durata trimiterii unui FLAG EROARE ACTIVĂ sau
FLAG SUPRASARCINĂ.

2. Când un RECEPTOR detectează un bit ’dominant’ ca prim bit după trimiterea


unui FLAG EROARE, TOTALUL ERORILOR DE RECEPŢIE va fi crescut cu
8.

3. Când un TRANSMIŢĂTOR trimite un FLAG EROARE, TOTALUL ERORILOR


DE TRANSMISIE este crescut cu 8.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 62 Specificaţia CAN 2.0

Excepţia 1:
Dacă TRANSMIŢĂTORUL este ’eroare pasivă’ şi detectează o EROARE DE
CONFIRMARE din cauza nedetectării unui ACK ’dominant’ şi nu detectează
un bit ’dominant’ în timp ce transmite propriul FLAG EROARE PASIVĂ.

Excepţia 2:
Dacă TRANSMIŢĂTORUL trimite un FLAG EROARE datorat unei ERORI DE
UMPLERE produsă pe durata ARBITRĂRII şi ar trebui să fie ’recesiv’, a fost
trimis ca ’recesiv’, dar observat ca ’dominant’.

În excepţiile 1 şi 2 TOTALUL ERORILOR DE TRANSMISIE nu este modificat.

4. Dacă un TRANSMIŢĂTOR detectează o EROARE DE BIT în timp ce trimite


un FLAG EROARE sau un FLAG SUPRASARCINĂ, TOTALUL ERORILOR
DE TRANSMISIE este crescut cu 8.

5. Dacă un RECEPTOR detectează o EROARE DE BIT în timp ce trimite un


FLAG EROARE ACTIVĂ sau un FLAG SUPRASARCINĂ, TOTALUL
ERORILOR DE RECEPŢIE este crescut cu 8.

6. Orice nod tolerează până la 7 biţi ’dominanţi’ consecutivi după transmiterea


unui FLAG EROARE PASIVĂ sau FLAG SUPRASARCINĂ. După detectarea
celui de-al 14 bit ’dominant’ consecutiv (în cazul unui FLAG EROARE ACTIVĂ
sau un FLAG SUPRASARCINĂ) sau după detectarea celui de-al 8-lea bit
’dominant’ consecutiv urmând după un FLAG EROARE PASIVĂ şi după
fiecare secvenţă de opt biţi ’dominanţi’ consecutivi suplimentari, fiecare
TRANSMIŢĂTOR creşte TOTALUL ERORILOR DE TRANSMISIE cu 8 şi
fiecare RECEPTOR creşte propriul TOTAL ERORI DE RECEPŢIE cu 8.

7. După transmisia cu succes a unui mesaj (dând ACK şi nicio eroare până se
termină SFÂRŞIT CADRU), TOTALUL ERORILOR DE TRANSMISIE este
scăzut cu 1, mai puţin în situaţia în care era deja 0.

8. După recepţia cu succes a unui mesaj (recepţie fără eroare până la FANTA
ACK şi trimiterea cu succes a bitului ACK), TOTALUL ERORILOR DE
RECEPŢIE este scăzut cu 1, dacă acesta era între 1 şi 127. Dacă TOTALUL
ERORILOR DE RECEPŢIE a fost 0, acesta rămâne 0, iar dacă a fost mai
mare de 127, atunci el va fi setat la o valoare între 119 şi 127.

9. Un nod este ’eroare pasivă’ atunci când TOTALUL ERORILOR DE


TRANSMISIE egalează sau depăşeşte 128 sau când TOTALUL ERORILOR
DE RECEPŢIE egalează sau depăşeşte 128. O condiţie de eroare care lasă
un nod să devină ’eroare pasivă’ determină nodul să trimită un FLAG
EROARE ACTIVĂ.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 63

10. Un nod este ’magistrală deconectă’ atunci când TOTALUL ERORILOR DE


TRANSMISIE este mai mare sau egal cu 256.

11. Un nod ’eroare pasivă’ devine ’eroare activă’ din nou când atât TOTALUL
ERORILOR DE TRANSMISIE cât şi TOTALUL ERORILOR DE RECEPŢIE
sunt mai mici sau egale cu 127.

12. Unui nod care este ’magistrală deconectată’ i se permite să devină ’eroare
activă’ (nu mai este ’magistrală deconectată’) cu ambele totaluri de erori
setate la 0 după ce 128 de evenimente de 11 biţi ’recesivi’ consecutivi au fost
observate pe magistrală.

Nota:
Un total de eroare cu o valoare mai mare de 96 indică o magistrală puternic
perturbată. Poate fi avantajos să se prevadă mijloace de testare a acestei condiţii.

Nota:
Pornire / Deşteptare
Dacă pe durata pornirii este online un singur nod şi dacă acest nod transmite câteva
mesaje, el nu va primi nicio confirmare, detectează o eroare şi repetă mesajul. El
poate deveni ’eroare pasivă’ dar nu ’magistrală deconectată’ datorită acestui motiv.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 64 Specificaţia CAN 2.0

9 TOLERANŢA OSCILATORULUI
Este dată o toleranţă maximă de 1,58% a oscilatorului şi ca urmare folosirea unui
rezonator ceramic la o viteză a magistralei de până la 125 kbit/s ca regulă; pentru o
evaluare mai precisă, consultaţi:

Dias, S; Chapman, M;
„Impact of Bit Representation on Transport Capacity
and Clock Accuracy in Serial Data Stream”,
SAE Technical Paper Series 890532, Multiplexing in Automobiles
SP-773 March 1989

Pentru întreg domeniul de viteze ale magistralei a protocolului CAN, este necesar un
oscilator cu cuarţ.

Chipul din reţeaua CAN cu cele mai înalte necesităţi pentru precizia oscilatorului
propriu determină precizia oscilatorului necesară pentru toate celelalte noduri.

Nota:
Toate controlerele CAN care respectă această Specificaţie CAN şi controlerele care
respectă versiunile precedente 1.0 şi 1.1 utilizate în aceeaşi reţea trebuie să fie
echipate cu oscilatoare cu cuarţ. Aceasta înseamnă că rezonatoarele ceramice pot fi
folosite numai într-o reţea cu toate nodurile respectând Specificaţia Protocolului CAN
versiunile 1.2 sau ulterioare.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 65

10 CERINŢLELE DE SINCRONIZARE PENTRU BIŢI


RATA DE BIT NOMINALĂ
Rata de bit nominală este numărul de biţi pe secundă transmişi în absenţa
resincronizării de către un transmiţător ideal.

TIMPUL DE BIT NOMINAL

TIMPUL DE BIT NOMINAL = 1 / RATA DE BIT NOMINALĂ

Timpul de bit nominal poate fi imaginat ca fiind divizat în segmente de timp separate,
nesuprapuse. Aceste segmente

- SEGMENTUL SINCRONIZARE (SYNC_SEG)


- SEGMENTUL TIMP DE PROPAGARE (PROP_SEG)
- SEGMENTUL 1 BUFFER FAZĂ (PHASE_SEG1)
- SEGMENTUL 2 BUFFER FAZĂ (PHASE_SEG2)

formează timpul de bit, aşa cum se arată în fig. 1:

TIMP DE BIT NOMINAL

Punct de
eşantionare

Fig. 1 Împărţirea timpului de bit

SYNC_SEG
Această parte a timpului de bit este folosită pentru a sincroniza diferitele noduri ale
reţelei. Un front este aşteptat pentru a se afla în interiorul acestui segment.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 66 Specificaţia CAN 2.0

PROP_SEG
Această parte a timpului de bit este utilizată pentru a compensa timpii fizici de
întârziere din interiorul reţelei. El este dublul sumei timpilor de propagare a
semnalelor pe linia magistralei, întârzierea comparatorului de intrare şi întârzierea
driverului de ieşire.

PHASE_SEG1, PHASE_SEG2
Aceaste segmente buffer fază sunt folosite pentru a compensa erorile de fază ale
fronturilor. Aceste segmente pot fi lungite sau scurtate prin resincronizare.

PUNCT DE EŞANTIONARE
PUNCTUL DE EŞANTIONARE este momentul de timp la care este citit nivelul
magistralei şi este interpretat ca valoare a respectivului bit. Poziţia sa este la sfârşitul
PHASE_SEG1.

TIMP DE PROCESARE INFORMAŢIE


TIMPUL DE PROCESARE INFORMAŢIE este segmentul de timp care începe cu
PUNCTUL DE EŞANTIONARE rezervat pentru calculul nivelului de bit ulterior.

CUANTĂ DE TIMP
CUANTA DE TIMP este o unitate de timp fixă derivată din perioada oscilatorului.
Există un circuit programabil de prescalare, cu valori întregi, într-un domeniu de cel
puţin de 1 la 32. Începând cu CUANTA DE TIMP MINIMĂ, CUANTA DE TIMP poate
avea o lungime de:

CUANTA DE TIMP = m * CUANTA DE TIMP MINIMĂ

cu m – valoarea de prescalare

Lungimea segmentelor de timp

• SYNC_SEG are o lungime de 1 CUANTĂ DE TIMP.

• PROP_SEG este programabilă pentru a avea o lungime de 1, 2, ..., 8 CUANTE


DE TIMP.

• PHASE_SEG1 este programabilă pentru a avea o lungime de 1, 2, ..., 8 CUANTE


DE TIMP.

• PHASE_SEG2 are valoarea maximă dintre PHASE_SEG1 şi TIMPUL DE


PROCESARE INFORMAŢIE.

• TIMPUL DE PROCESARE INFORMAŢIE este mai mic sau egal decât un interval
de 2 CUANTE DE TIMP.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 67

Numărul total de CUANTE DE TIMP într-un timp de bit poate fi programat cel puţin
de la 8 la 25.

Nota:
Adesea se intenţionează ca unităţile de control să nu facă uz de oscilatoare diferite
pentru CPU local şi dispozitivul său de comunicaţii. Ca urmare, frecvenţa oscilatorului
unui dispozitiv CAN tinde să fie cea a CPU local şi este determinată de cerinţele
unitatăţii de control. Pentru a primi rata de bit dorită, este necesară posibilitatea de
programare a sincronizării bitului.
În cazul implementărilor CAN care sunt proiectate pentru a fi utilizate fără un CPU
local, sincronizarea bitului nu poate fi programabilă. Pe de altă parte aceste
dispozitive permit să se aleagă un oscilator extern, în aşa fel ca dispozitivul să fie
adaptat la rata de bit potrivită, astfel încât posibilitatea de programare nu este
indispensabilă pentru aceste componente.
Totuşi, poziţia punctului de eşantionare trebuie să fie selectată în comun pentru toate
nodurile. Ca urmare, timingul de bit să fie compatibil cu următoarea definiţie a
timpului de bit:

1 cuantă 1 cuantă 4 cuante de timp 4 cuante de timp


de timp de timp
1 timp de bit
10 cuante de timp

SINCRONIZAREA HARD
După o SINCRONIZARE HARD, timpul de bit intern este restartat cu SYNC_SEG.
Astfel, SINCRONIZAREA HARD forţează frontul care a provocat SINCRONIZAREA
HARD să fie plasat în intervalul SEGMENTULUI SINCRONIZARE a timpului bitului
restartat.

LUNGIMEA SALTULUI RESINCRONIZARE


Ca rezultat al unei RESINCRONIZĂRI, PHASE_SEG1 poate fi lungit sau
PHASE_SEG2 poate fi scurtat. Mărimea lungirii sau scurtării SEGMENTELOR
BUFFER FAZĂ are limita superioară dată de LUNGIMEA SALTULUI
RESINCRONIZARE. LUNGIMEA SALTULUI RESINCRONIZARE poate fi
programabilă între 1 şi min(4, PHASE_SEG1).
Informaţiile pentru clock pot fi preluate din tranziţiile de la o valoare de bit la alta.
Proprietatea că numai un număr fix maxim de biţi succesivi au aceeaşi valoare
asigură posibilitatea resincronizării unei unităţi de magistrală cu curentul de biţi pe
durata unui cadru. Lungimea maximă între două tranziţii care pot fi folosite pentru
resincronizare este de 29 timpi de bit.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 68 Specificaţia CAN 2.0

EROAREA DE FAZĂ a unui front


EROAREA DE FAZĂ a unui front este dată de poziţia frontului raportată la
SYNC_SEG, măsurată în CUANTE DE TIMP. Semnul ERORII DE FAZĂ este definit
după cum urmează:

• e = 0 dacă frontul este plasat în intervalul SYNC_SEG.

• e > 0 dacă frontul este plasat înaintea PUNCTULUI DE EŞANTIONARE.

• e < 0 dacă frontul este plasat după PUNCTUL DE EŞANTIONARE al bitului


precedent.

RESINCRONIZAREA
Efectul unei RESINCRONIZĂRI este acelaşi cu cel al SINCRONIZĂRII HARD când
mărimea ERORII DE FAZĂ a frontului care provoacă RESINCRONIZAREA este mai
mică sau egală cu valoarea programată a LUNGIMII SALTULUI DE
RESINCRONIZARE. Când mărimea ERORII DE FAZĂ este mai mare decât
LUNGIMEA SALTULUI RESINCRONIZARE

• şi dacă EROAREA DE FAZĂ este pozitivă, atunci PHASE_SEG1 este lungit cu o


cantitate egală cu LUNGIMEA SALTULUI DE RESINCRONIZARE.

• şi dacă EROAREA DE FAZĂ este negativă, atunci PHASE_SEG2 este scurtată


cu o cantitate egală cu LUNGIMEA SALTULUI DE RESINCRONIZARE.

REGULI DE SINCRONIZARE
SINCRONIZAREA HARD şi RESINCRONIZAREA sunt cele două forme ale
SINCRONIZĂRII. Ele se supun următoarelor reguli:

1. În interiorul unui timp de bit este permisă o singură SINCRONIZARE.

2. Un front va fi folosit pentru SINCRONIZARE numai dacă valoarea detectată la


PUNCTUL DE EŞANTIONARE anterior (valoarea anterioară citită de pe
magistrală) diferă de valoarea magistralei imediat după front.

3. SINCRONIZAREA HARD este realizată ori de câte ori există un front de la


’recesiv’ la ’dominant’ pe durata MERS ÎN GOL MAGISTRALĂ.

4. Toate celelalte fronturi de la ’recesiv’ la ’dominant’ îndeplinind regulile 1 şi 2


vor fi folosite pentru RESINCRONIZARE, cu excepţia situaţiei în care un nod
transmiţând un bit ’dominant’ nu va realiza o RESINCRONIZARE ca rezultat al
unui front de la ’recesiv’ la ’dominant’ cu o EROARE DE FAZĂ pozitivă, dacă
numai fronturile de la ’recesiv’ la ’dominant’ sunt folosite pentru resincronizare.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Specificaţia CAN 2.0 Pagina 69

Diferenţe

Amendamentele la specificaţia CAN 1.2 au fost incluse în partea B a acestei


specificaţii. Respectivele modificări sunt marcate cu un asterisc.

pagina B-25 şi pagina B-62


Modificarea regulii 6 de la Limitarea Defectelor.

pagina B-34 la B-37


Arhitectura stratificată a CAN a fost descrisă prin straturi diferite conform cu Modelul
de Referinţă ISO/OSI.

pagina B-41*
Este inclusă nota la toleranţa oscilatorului.

pagina B-43
A fost schimbată numerotarea biţilor idetificatorului.

pagina B-51*
În conformitate cu toleranţa oscilatorului s-a introdus o a treia condiţie pentru
generarea unui cadru suprasarcină.

pagina B-52*
S-a adăugat o nota întrucât Interpretarea ultimului bit de Pauză a fost modificată.

pagina B-54*
S-a introdus o nota datorită unei alte interpretări pentru Start Cadru.

pagina B-55
Secţiunea 3.3 „Conformitatea în ceea ce priveşte Formatul Cadrelor”.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30


Septembrie 1991
Pagina 70 Specificaţia CAN 2.0

pagina B-56
Capitolul 4 „Filtrarea Mesajului” a fost introdusă recent.

pagina B-64*
Nota privind compatibilitatea protocolului modificat conform cu toleranţele
oscilatorului.

pagina B-67
Nota privind timingul de bit pentru implementarea ECU fără CPU local.

ROBERT BOSCH GmbH, Postfach 300240, D-7000 Stuttgart 30

S-ar putea să vă placă și