Sunteți pe pagina 1din 203

LILIANA VORNICU

SISTEME CU CONECTARE
MULTIPLEXATĂ ŞI CONTROL
DISTRIBUIT

Iaşi

- 2010 -
CUPRINS

CAPITOLUL 1
SISTEME DE TIMP REAL

1.1 Introducere în dezvoltarea sistemelor de timp real ………………….……...........…..… 6


1.2 Comunicarea în sistemele de timp real ............................................................................ 7
1.3 Algoritm de deservire a comunicaţiilor în timp real ....................................................... 8
1.3.1 Consideraţii generale .............................................................................................. 8
1.3.2 Controlul încărcării traficului ................................................................................. 9
1.3.3 Performanţele algoritmului de comunicaţii în timp real ....................................... 13
1.3.4 Concluzii .............................................................................................................. 15

CAPITOLUL 2
SINTEZA SISTEMELOR DE TIMP REAL FOLOSIND GRAFURI DE
PROCESARE

2.1 Constrângeride timp în sistemele de timp real ………….…..............….............…..… 17


2.1.1 Selecţia unei singure perechi perioadă-termen limită .......................................... 18
2.1.2 Constrângeri de timp dinamice ............................................................................. 19
2.2 Programarea constrângerilor de timp în sistemele de timp real .................................... 20
2.3 Teoria programării cu grafuri ........................................................................................ 21
2.4 Metoda grafului de programare PGM ........................................................................... 22
2.4 1 Graful PGM .................................................................................................... 23
2.4.2 Parametrii care influenţează latenţa şi limitele de stocare .............................. 25
2.5 Sinteza grafurilor de procesare ...................................................................................... 26
2.5.1 Vitezele de execuţie ale nodurilor .................................................................. 26
2.5.2 Maparea nodurilor dintr-un graf utilizând modelul RBE ............................... 29
2.5.3 Cereri de stocare şi administrarea memoriei …………..…………………… 30
2.6 Proprietăţile de timp real în execuţia unui flux de date ………………………………. 31

CAPITOLUL 3
CONCEPTUL DE MAGISTRALĂ I2C

3.1 Necesitatea apariţiei şi dezvoltării magistralei I 2C ………………….……...............… 33


3.2 Structura magistralei I2C …………………………………….........……………......… 35
3.3 Caracteristicile standard ale magistralei I2C …………………….…..........………...….35
3.4 Avantajele folosirii magistralei I2C ………………………………………..........…..... 37
3.4.1 Avantajele magistralei I2C pentru proiectanţi ……………......…..……........…. 37
3.4.2 Avantajele magistralei I2C pentru producători ………..………..…...............… 38

CAPITOLUL 4
TRANSFERUL DATELOR PE MAGISTRALA I2C

4.1 Valabilitatea datelor ………………………………………………………..……….… 40


4.2 Definirea condiţiilor START (S) şi STOP (P) ……………………………..………… 40

2
4.3 Formatul byte-ului ………………………………………………………………...….. 41
4.4 Confirmarea datelor. Bit de confirmare. Bit de neconfirmare ………………............... 42
4.5 Arbitrarea şi generarea clock-ului …………………………………………........…..... 43
4.5.1 Sincronizarea semnalelor de clock ……………………………….....…………. 43
4.5.2 Arbitrarea pe magistrală ……………………………………………........….…. 44
4.5.3 Stabilirea legăturilor între dispozitive prin sincronizarea clock- ului ………..... 45

CAPITOLUL 5
MODURI DE ADRESARE PE MAGISTRALA I2C

5.1 Adresarea pe 7 biţi ……………………………………………….........……………… 46


5.1.1 Formate cu adrese de 7 biţi …………………………………………….……… 46
5.1.2 Definirea biţilor din primul byte ………………………………………….…… 48
5.1.3 Adrese APEL GENERAL (0000 0000) …………………………..........….…... 49
5.1.4 Byte-ul START (0000 0001) la adresarea pe 7 biţi ………………….….…….. 51
5.1.5 Compatibilitatea CBUS …………………………………………………….…. 52
5.2 Extensii ale magistralei I2C standard …………………………………………........… 53
5.2.1 Modul rapid (F) ………………………………………………………….…..… 53
5.2.2 Modul viteză înaltă (Hs) …………………………………………………....…. 54
5.2.3 Transferul serial de date în mod Hs ………………………………………...…. 56
5.2.4 Comutarea din modul F/S în modul Hs şi înapoi …………………….…….….. 58
5.2.5 Dispozitive de mod Hs în moduri cu viteză mai mică ……………………...…. 58
5.2.6 Moduri cu viteze mixate pe un sistem cu magistrală serială unică ……….…… 59
5.2.6.1 Adaptarea şi interconectarea dispozitivelor cu viteze diferite ………. 50
5.2.6.2 Transfer F/S în sistem cu magistrală serială unică şi viteze mixate .... 62
5.2.6.3 Transfer Hs în sistem cu magistrală serială unică şi viteze mixate ...... 62
5.2.6.4 Sincronizarea punţii în sistem cu magistrală unică şi viteze mixate … 63
5.2.7 Adresarea pe 10 biţi ……………………………………….………………..…. 63
5.2.7.1 Formate de adrese pe 10 biţi …………………………….………..…. 64
5.2.7.2 Adresa de tip apel general şi byte-ul START la adresarea pe 10 biţi .. 66
5.3 Caracteristicile dispozitivelor pe magistrala I 2C .......................................................... 67
5.3.1 Dispozitive de mod F/S conectate la magistrala I 2C …………........………..… 67
5.3.2 Dispozitive de mod Hs conectate la magistrala I 2C ……………….....…….….. 69

CAPITOLL 6
CONEXIUNI ELECTRICE PE MAGISTRALA I2C

6.1 Conectarea la magistrală a dispozitivelor cu tensiuni de alimentare diferite …............ 73


6.2 Valorile rezistorilor Rp şi Rs pentru dispozitive I2C de mod S ………….........…….… 73
6.3 Etaje de ieşire cu pantă controlată pentru dispozitive I 2C de mod F …........……...….. 76
6.4 Circuit pull-up de comutaţie pentru dispozitive I2C de mod F ……….…………...….. 77
6.5 Modul de alegere a conexiunilor pentru liniile magistralei I 2C ……….……...…….... 78
6.6 Valorile rezistorilor Rp şi Rs pentru dispozitive I2C de mod F ……………………..… 79
6.7 Valorile rezistorilor Rp şi Rs pentru dispozitive I2C de mod Hs ……………..……….. 79
6.8 Comutator bidirecţional de nivel pentru sisteme I 2C de mod F/S ………….…….…... 80
6.8.1 Realizarea comutatorului bidirecţional de nivel …………………...…….....… 80
6.8.2 Dispozitive cu nivele logice diferite conectate la magistrala I2C ….……........ 80
6.8.3 Funcţionarea comutatorului de nivel ………...……………….…...........…….. 81

3
CAPITOLUL 7
TEHNICI DE CODIFICARE A DATELOR

7.1 Comparaţie între diferite tehnici de codificare a datelor …… ……........………...…. 83


7.2 Tehnica de codificare PWM …………………………………………........……..….. 88
7.3 Tehnica de codificare VPWM …………………………………………........….….... 89
7.4 Tehnica de codificare 10-Bit NRZ Standard …………………………........……..…. 91
7.5 Tehnica de codificare Bit-Stuf NRZ. ………………………………….......…...….… 93
7.6 Tehnica de codificare L – Manchester (L – MAN) ……………………........…...….. 95
7.7 Tehnica de codificare E – Manchester (E – MAN) ……………………...........…….. 97
7.8 Tehnica de codificare MFM ……………………………………………...........…….. 98

CAPITOLUL 8
PROTOCOALE PENTRU COMUNICAŢII SERIALE CU MAGISTRALĂ
MULTIPLEXATĂ

8.1 Introducere ……………………………………………………........…..…..………... 102


8.2 Protocolul A – BUS ………………………………………..…………........………... 104
8.3 Protocolul CAN …………………………………………………........………..……. 107
8.4 Protocolul D2B ………………………………………………………..........…..….... 111
8.5 Protocolul C2D (SAE J1567) ……………………………...…………......………..... 114
8.6 Interfaţă pentru comunicaţii de date clasă B, SAE J1850 PWM ..……........………... 117
8.7 Interfaţă pentru comunicaţii de date clasă B, SAE J1850 VPWM ………............….. 120
8.8 Senzori şi control Chrysler (CSC), SAE J2058 ………………………........………... 124
8.9 Protocolul fantă simbol, SAE J2106 …………………………………...........…....… 130
8.10 Protocolul timp declanşat (TTP) …………………………………….…........…….. 135
8.11 Arie de reţea pe vehicul (VAN) ………………………………………........……… 139

CAPITOLUL 9
ARHITECTURA SISTEMELOR CU CONECTARE MULTIPLEXATĂ

9.1 Selectarea header-ului şi a arhitecturii de reţea ...…………………………...........…. 143


9.2 Clasificarea reţelelor în sistemele cu conectare multiplexată pe vehicule ....….......... 144
9.3 Arhitecturile reţelelor în sistemele cu conectare multiplexată pe vehicule ……......... 145
9.3.1 Structură uni-reţea multiplexată în clasă A …….…………………….........…. 146
9.3.2 Structură uni-reţea multiplexată în clasă B ………………..…….…………… 149
9.3.3 Structură multi-reţea multiplexată în clasă B …..…………………….………. 152
9.3.4 Reţeaua multiplexată în clasă C ……..……………………………….………. 154

CAPITOLUL 10
CONTROLER ÎN ARIE DE REŢEA

10.1 Introducere …………………..........………………………………………..………. 156


10.2 Funcţiile de bază ale protocolului CAN..................................................................... 156
10.3 Structura protocolului CAN ……………………………………...……………..…. 157
10.4 Concepte de bază ale protocolului CAN ................................................................... 158
10.5 Transferul mesajului .................................................................................................. 160
10.5.1 Tipuri de cadre ................................................................................................ 160
10.5.1.1 Cadrul de date .................................................................................... 161
4
10.5.1.2 Cadrul distanţă ……………….……………………………………. 164
10.5.1.3 Cadrul eroare ……………..………….......................................…… 164
10.5.1.4 Cadrul suprasarcină ………..…....................................................…. 165
10.5.1.5 Spaţiere intercadre ............................................................................. 166
10.5.2 Dispozitive transmiţătoare / receptoare ...................................................... 167
10.6 Validarea mesajelor ................................................................................................... 167
10.7 Codificarea curentului de biţi .................................................................................... 167
10.8 Detecţia şi semnalizarea erorilor în protocolul CAN................................................. 168
10.9 Limitarea defectelor ................................................................................................... 168
10.10 Timingul de bit ........................................................................................................ 170
10.11 Creşterea toleranţei oscilatorului CAN ................................................................... 172

CAPITOLUL 11
PROTOCOLUL CANopen

11.1 Caracteristicile principale şi avantajele protocolului CANopen ................................ 173


11.2 Necesitatea dezvoltării protocolului şi domeniile de utilizare ……………….….. 173
11.3 Profile de comunicaţii ................................................................................................ 174
11.4 Necesitatea dezvoltării protocolului şi domeniile de utilizare ……………..…...…. 175
11.4.1 Managerul CANopen ...................................................................................175
11.4.2 Procedura boot-up ...................................................................................... 176
11.5 Controlul erorilor şi mesajelor de urgenţă ................................................................. 178
11.5.1 Clock-ul central şi supravegherea funţionării nodurilor ............................. 178
11.5.2 Erori interne ale dispozitivelor ................................................................... 179
11.5.3 Erori severe ale dispozitivelor .................................................................... 179
11.6 Programarea PDO ...................................................................................................... 180
11.7 Optimizarea comunicaţilor cu PDO în reţelele CANopen ……….........................… 182
11.8 Legăturile PDO …………………..…………………………………...……………. 182
11.9 Prioritizarea PDO …………………………………..…………………………….... 183
11.10 Maparea PDO …………………..……………………………………………..….. 183
11.11 Multipexarea PDO …………………………..……………………………………. 183
11.12 Modalităţi de configurare. Dicţionarul de obiecte ................................................... 183
11.12.1 Accesul la dicţionarul de obiecte .............................................................. 184
11.12.2 Accesul la scriere şi citire ......................................................................... 185

CAPITOLUL 12
SISTEME CU CONECTARE MULTIPLEXATĂ CENTRALIZATE
ŞI SISTEME CU CONECTARE MULTIPLEXATĂ DISTRIBUITE

12.1 Sistem de control centralizat ……………………….…............................................ 187


12.2 Sistem de control distribuit ………………………………………………………… 188
12.2.1 Caracteristici gnerale .................................................................................. 188
12.2.2 Sistem de control distribuit cu magistrală CAN ......................................... 189
12.2.3 Sistem de control distribuit cu magistrală CAN internă ............................. 190

5
CAPITOLUL 1

SISTEME DE TIMP REAL

1.1 Introducere în dezvoltarea sistemelor de timp real

Prin definiţie, un sistem de timp real este un sistem a cărui corectitudine depinde nu
doar de soluţiile logice obţinute prin calcul, ci şi de timpul real la care aceste soluţii au fost
determinate. Operaţiunile într-un sistem de timp real se execută în timp real. Aceasta este o
definiţie generală, care cuprinde o mare varietate de sisteme, incluzând filtrele digitale,
sistemele de comunicaţii multimedia, sistemele de procesare a tranzacţiilor “on-line”,
sistemele pentru schimburi de mesaje, sistemele de control de fabricaţie, sistemele de
control al proceselor, etc.
Sistemele distribuite de timp real lucrează pe arhitecturi de reţele specializate, care
includ clase de servicii şi protocoale în scopul susţinerii comunicaţiilor de timp real
influenţate de constrângerile prevăzute prin alocarea mesajelor simple sau în pachete.
Arhitecturile de reţele pot fi clasificate într-o varietate de moduri, în funcţie de
domeniul de aplicaţie, de tipul comunicaţiei sau de scopul în care acestea sunt folosite.
Algoritmii care stau la baza construirii modelelor de sisteme de timp real au
suportul în calculul ponderat şi în programarea liniară. Aceste calcule sunt utilizate în
scopul simplificării sistemelor şi efectuării unei analize corecte la toate nivelele de
prioritate. Algoritmii utilizaţi oferă garanţii arbitrare, în intervale mici de timp în
satisfacerea constrângerilor de timp ale reţelelor. Echipamentele realizate pe job-uri cu un
singur obiect sau cu mai multe obiecte au condus la obţinerea modemurilor de timp real.
Astfel, sistemul poate garanta răspunsul în timp real al procesului care a fost implementat.
Dintre toate sistemele de timp real, cele mai utilizate sunt sistemele de control al proceselor.
Un sistem de timp real distribuit este un sistem complex, care cuprinde mai multe
funcţii accesate de procesoare diferite. În multe sisteme de timp real (de exemplu, în
sistemele de control industrial al energiei nucleare, controlul traficului aerian, controlul
misiunilor spaţiale sau controlul proceselor industriale) calculele realizate de controler sunt
mult mai complicate.
Controlerul din sistemul realizat în inel include şi componente umane (unul sau mai
mulţi controleri umani) care iau decizii bazate pe datele primite de la senzori. Aceste
sisteme poartă denumirea de sisteme în buclă deschisă
Următorul pas logic în evoluţia sistemelor de timp real îl reprezintă introducerea
autonomului. În figura 1.1 se prezintă un model abstract al unui sistem autonom de control,
în care cooperarea experţilor umani este înlocuită de software-ul pentru probleme de
comunicaţie.
Sistemele de timp real încă evoluează, urmând ca ele să fie înlocuite de următoarea
generaţie a sistemelor de timp real autonome în buclă închisă, în care experţii umani vor fi
înlocuiţi prin software. Autonomia sistemelor depinde de obiectivele tehnico-economice:
calitatea, productivitatea şi profitabilitatea, precum şi de protecţia împotriva pericolelor sau
dificultăţi de ordin tehnic. Sistemele de control din generaţia următoare vor fi distribuite,
complexe, dinamice, de nivel înalt, adaptabile şi cu o comportare inteligentă. Ele vor
conţine mai multe tipuri de timere şi vor opera într-un domeniu larg de nedeterminări.
6
NOD NOD NOD NOD

ARIE DE RETELE LOCALE

NOD NOD NOD NOD

CONTROLER ACTIONARE PROCES


stare CONTROLAT
dorită

SENSORI
stare curentă

Fig. 1.1 Modelul abstract al unui sistem autonom de control în timp real

Modelul general al unui sistem de timp real se bazează pe următoarele caracteristici:


 sistemul distribuit este bazat pe o reţea locală;
 constrângerile de timp (perioada, termenii limită) influenţează major activitatea
sistemului;
 sistemul necesită activităţi de tip dinamic;
 credibilitatea este o cerere importantă în sistemele de timp real. Pentru activităţile
sigure, critice sau esenţiale, este important să se poată determina dacă constrângerile de
timp vor fi satisfăcute;
 comunicarea intertematică - cererile funcţionale ale sistemului sunt realizate printr-o serie
de job-uri aflate în competiţie pentru atingerea scopului propus.

1.2 Comunicarea în sistemele de timp real

Termenul de comunicare în timp real poate fi utilizat în descrierea oricărui tip de


activitate de comunicaţie în care mesajele implicate au asociate constrângeri de timp. De
exemplu, comunicarea vocală cu schimb de pachete, în care pachetele vocale au un număr
maxim de constrângeri de întârziere asociate, este adesea definită ca fiind o comunicare în
timp real.
În cele ce urmează, acest termen se va restrânge la cel de comunicare în sisteme
distribuite de timp real. Cererile de comunicare în sistemele distribuite de timp real sunt
induse de necesitatea interacţiunii dintre diferitele entităţi din sistemele distribuite.

7
Mesajele în timp real pot fi clasificate în două categorii principale:
- Mesaje de căutare garantate, care includ o garanţie din partea sistemului (dacă
activitatea care produce apariţia lor este acceptată pentru execuţie, atunci constrângerile de
timp vor fi respectate cu siguranţă). În generaţia actuală a sistemelor distribuite de timp real
în buclă închisă, mesajele de căutare garantate sunt de două tipuri: mesaje periodice şi
mesaje de alarmă (alertă).
Mesajele periodice transportă informaţia de senzor despre starea curentă a
procesului controlat şi sunt transmise periodic în timp. De exemplu, într-un sistem de
control al unui proces industrial, calculatoarele din diferite locuri ale întreprinderii
colectează periodic informaţii despre starea procesului: factorul de umplere, presiunea şi
temperatura, cu ajutorul senzorilor şi transmit aceste informaţii la dispeceratul central, unde
operatorii umani iau deciziile necesare pentru execuţia procesului. Mesajele periodice
necesită garanţii în cazul în care termenii limită sunt întâlniţi în ordinea în care starea reală
a procesului controlat şi imaginea stării controlerului obţinută prin aceste mesaje sunt
închise pentru oricare altă stare.
Mesajele de alarmă sunt folosite pentru diseminarea informaţiei într-o situaţie de
urgenţă. De exemplu, controlerul poate fi nevoit să închidă utilitarele pentru o perioadă
determinată de timp. Cu toate că mesajele de alertă sosesc destul de rar, sistemul trebuie să
garanteze că acestea vor fi livrate cu respectarea termenilor finali.
- Mesajele cu efort minim au constrângeri de timp dar nu pot cere o garanţie din
partea sistemului. Sistemul va încerca să satisfacă aceste constrângeri. Exemplele mesajelor
cu cel mai mic efort în sistemele actuale includ unele tipuri de comenzi pentru operatorii
umani şi de asemenea unele tipuri de avertizări şi răspunsuri. De exemplu, stările sigure şi
mesajele de control, şi vizualizările de traiectorii şi mesajele de răspuns în cadrul sistemelor
de control pentru misiunile în spaţiu închis pot fi clasificate ca fiind mesaje cu efort minim.
Aceste mesaje apar asincrone şi sunt de regulă tratate ca mesaje uşoare de timp real.
Sistemul este proiectat să minimizeze răspunsul în timp pentru aceste mesaje. Multe dintre
sarcinile curente în comunicarea în timp real sunt bazate pe modelul sistemului de
comunicaţie în timp real, de tip distribuit, iar mesajele de căutare garantate sunt ori
periodice, ori foarte rare. De asemenea, pentru aceste mesaje, caracteristicile sunt
specificate static.

1.3 Algoritm de deservire a comunicaţiilor în timp real

1.3.1 Consideraţii generale

Comunicarea în sistemele distribuite de timp real rezultă din necesitatea interacţiunii


dintre diferitele entităţi din sistemele distribuite. Există mai multe tipuri de arhitecturi de
reţele şi servicii care sunt folosite pentru vehicularea mesajelor pe magistralele de
comunicaţii.
Serviciile cu conexiuni orientate COS (engl. Connection Oriented Services) se
bazează pe construirea unui canal logic cu sau fără constrângeri de timp. În cadrul acestor
servicii se întâlnesc trei faze distincte: construcţia de conexiuni, transferul de date şi
abandonul conexiunii. Serviciile COS sunt recomandate comunicaţiilor caracterizate printr-
o fază lungă a transferului de date sau o secvenţă logică de mesaje: aplicaţii cu transfer de
fişier. Din momentul în care contextul este disponibil (este numită conexiunea logică),
fiecare unitate individuală a fazei de date din entităţile comunicaţiei poate fi definită din
punct de vedere logic, reţelele COS au termeni limită mici şi pot controla secvenţial
8
informaţia şi determina erorile apărute în procesul comunicaţiei.
O reţea poate utiliza fie un mod fără conexiuni, fie un mod de conexiuni orientate
pentru operaţia internă în scopul satisfacerii serviciilor de comunicaţie. O conexiune internă
într-o reţea, care foloseşte modul de operare cu conexiuni de tip orientat este denumită
circuit virtual. Din acest motiv, serviciul de conexiuni orientate se referă uneori la un
serviciu de circuite virtuale.
Serviciile fără conexiuni CLS (engl. Connection Less Services) sunt caracterizate
prin absenţa unei conexiuni logice între transmiţător şi receptor. Nu există faze distincte
deoarece nu există conexiuni în construcţie în structura reţelei. Fiecare unitate de date este
în întregime conţinută în interior şi deoarece nu există o conectare logică, informaţia de
control necesară pentru trimiterea datelor către receptor este duplicată în fiecare unitate de
date. CLS sunt reţele mai simple şi sunt adecvate pentru comunicaţiile scurte .
Spre deosebire de serviciile cu conexiuni orientate COS, serviciile fără conexiuni
CLS nu transmit secvenţial, nu controlează fluxul de date şi nu determină erorile apărute în
procesul de transmisie. În reţelele care utilizează modul fără conexiuni pentru operare
internă, pachetele independente implicate în această operaţie se referă la diagrame de date.
Uneori, ele se referă la serviciile utilizate pentru construirea diagramelor de date.
Serviciile de comunicaţii în timp real trebuie să satisfacă constrângerile de timp
impuse sistemului de timp real. Principalele constrângeri impuse în cele mai multe cazuri
sunt următoarele:
- termenii limită,
- perioadele,
- întârzierile capăt-la-capăt şi
- întârzierile datorate instabilităţilor.
Primele două constrângeri de timp (termenii limită şi perioadele) sunt constrângeri
de tip standard şi pot fi îndeplinite prin alegerea unui algoritm adecvat de către proiectantul
reţelei de comunicaţii.
Când reţeaua de comunicaţie este supraaglomerată (congestionată), întârzierile
capăt-la-capăt pot depăşi valorile maxime admise, iar întârzierile datorate instabilităţilor pot
fi intolerabile. Multe servicii de timp real pot negocia calitatea serviciilor în favoarea
transmiterii în timp util prin utilizarea tehnicilor de calcul imprecis.

1.3.2 Controlul încărcării traficului

Pentru a realiza o analiză cât mai amănunţită a traficului care se desfăşoară pe


reţelele de comunicaţie, propunem un algoritm capabil să susţină serviciile de comunicaţii
cu constrângeri de timp variate.
Se ştie că toate serviciile de comunicaţii în timp real trebuie să satisfacă
constrângeri de timp de tipul: întârzieri capăt-la-capăt şi întârzieri datorate instabilităţilor.
Beneficiarul (utilizatorul) de servicii de comunicaţii în timp real lansează aceste cereri
reţelei, în timpul stabilirii legăturii. O nouă conexiune va fi acceptată numai dacă există
suficiente resurse pentru a satisface cererile cu o probabilitate specificată, în timp ce sunt
îndeplinite şi cererile conexiunilor deja existente.
Datorită naturii de tip nedeterminist a fluxului de trafic, o strategie de acceptare a
conexiunii nu poate garanta singură că toate pachetele de mesaje transmise vor respecta
întârzierile capăt-la-capăt. De exemplu, un trafic intens poate satura temporar un nod al
reţelei de comunicaţii, cauzând astfel supraaglomerarea (congestionarea) reţelei. În
consecinţă, unele pachete de mesaje pot eşua în satisfacerea constrângerilor de timp cerute,
9
iar altele se pot pierde datorită supraîncărcării traficului. Algoritmul propus asigură o
îmbunătăţire a traficului, prin adăugarea unui sistem de timp real care are rolul de a controla
procesele.
În reţeaua de comunicaţii sunt transmise pachete de mesaje în timp real şi pachete
de mesaje în non-timp real. Mesajele în non-timp-real sunt mesaje care nu se supun
constrângerilor de tip standard (perioadă, termen limită), ele putând avea lungimi şi
perioade diferite. Deoarece nu au precizate aceste constrângeri, ele trebuie trimise pe un
canal separat de comunicaţie (canalul în non-timp-real) şi, în consecinţă, li se atribuie o
prioritate mai mare decât mesajelor în timp real, pentru a nu supraaglomera traficul pe
magistrala de comunicaţii.
Mesajele în timp real şi cele în non-timp real din trafic sunt mesaje de căutare
garantate şi de asemenea, periodice. Serviciile utilizate în reţeaua de comunicaţii sunt de
tipul serviciilor fără conexiuni (CLS) deoarece nu există nici o conexiune între transmiţător
şi receptor şi nu există faze distincte, ca la serviciile cu conexiuni orientate (COS).
Serviciile CLS sunt mult mai simple decât cele cu conexiuni orientate şi sunt recomandate
transmisiilor în reţele cu magistrale de comunicaţii.
Multe servicii de timp real pot negocia calitatea serviciului în favoarea transmiterii
în timp util a mesajelor. Pentru a asigura că nici un pachet de mesaje non-timp-real nu se
pierde pe reţeaua de comunicaţii şi, de asemenea, pentru a asigura că timpul mediu de
răspuns al pachetelor non-timp-real este relativ scăzut şi are o variaţie redusă se utilizează
un server a cărui perioadă de deservire controlează banda de transmisie alocată reţelei.
Cu serviciile de comunicaţii în timp real, beneficiarul (utilizatorul) preferă să
sacrifice calitatea serviciului în favoarea transmiterii în timp util (de exemplu, se preferă
recepţionarea unui număr mai mare de mesaje bune în ceea ce priveşte calitatea, decât
recepţionarea unui număr mai mic de mesaje de foarte bună calitate). Un cadru netransmis
sau întârziat poate duce la pierderea sincronizării între transmiţător şi receptor.
Pentru a asigura un trafic mai bun şi mai rapid, înainte de a fi transmise, pachetele
se împart în două categorii:
- pachete principale (de bază) - transportă informaţia de calitate de bază. Când toate
pachetele principale sunt transmise în timp util, nivelul de calitate al serviciului de
timp real scade, însă este acceptabil pentru utilizator.
- pachete opţionale - transportă informaţia de extra-calitate, adiţională, menită să
ridice calitatea întregului serviciu.
Pentru a face diferenţa între pachetele principale de mesaje şi cele opţionale, se
foloseşte bitul de pierdere a priorităţii celulei CLP (Cell Loss Priority Bit) în primul pachet
(header packet). Implementarea bitului CLP este făcută de proiectantul reţelei şi depinde de
condiţiile de modelare ale traficului în timpul proiectării reţelei.
Considerăm un nod de trafic şi presupunem că acesta nu este blocat pe magistrala de
ieşire; în acest fel, fluxurile de trafic limitate la diferite ieşiri ale reţelei nu vor interfera
între ele. Astfel, putem considera reţeaua de trafic limitată la o singură legătură de ieşire.
Fie aceasta nodul de ieşire (partea de trafic care conţine bufferul de ieşire şi circuitele de
transmisie corespunzătoare legăturii de ieşire).
Pachetele în non-timp-real din canalele corespunzătoare sunt transmise conform
algoritmului primul-venit-primul-servit (engl. first-come-first-serve), deoarece, în reţelele
de trafic aglomerat acesta este algoritmul cel mai indicat; pachetele de mesaje sunt ulterior
filtrate, repartizate canalului corespunzător din bufferul de ieşire, programate si apoi trimise
către circuitele de transmisie spre utilizator.
Pentru controlul transmisiei, se foloseşte un server care asigură că, cel mult un
număr minim de pachete în non-timp real sunt transmise în timpul fiecărei perioade a
10
serverului, atunci când pe canalul non-timp real se află pachete care aşteaptă să fie
transmise. Perioada de funcţionare a serverului şi procentajul din lăţimea benzii pe care le
rezervă pentru pachetele în non-timp real se aleg de către proiectant.
Pachetelor în non-timp real le este atribuită o prioritate mai înaltă decât pachetelor
în timp real în timpul fiecărei perioade de funcţionare a serverului, până când numărul
minim de pachete a fost transmis sau până când canalul corespunzător pachetelor în non-
timp real este gol. După aceasta, prioritatea mai înaltă revine pachetelor în timp real.
Atribuirea celei mai înalte priorităţi pachetelor în non timp real se face deoarece acestea au
termenii limită relativi teoretic infiniţi şi ar bloca traficul. Prin atribuirea celei mai înalte
priorităţi acestor pachete, ele vor fi transmise imediat.
În figura 1.2 este prezentată structura nodului de ieşire. Diferenţa între acest nod de
ieşire şi cele utilizate în protocoalele clasice este adăugarea unui filtru de pachete, care are
rolul de a rejecta pachetele de mesaje ce nu se supun constrângerilor impuse de sistem (nu
au lungimea corespunzătoare, au o perioadă prea mare faţă de celelalte pachete sau termenii
lor limită nu corespund cerinţelor sistemului). Acest filtru este foarte util în cazul unui trafic
supraaglomerat deoarece, prin filtrarea pachetelor îmbunătăţeşte fluenţa pe canalele de
comunicaţii.

Buffer de ieşire

Canal de
Programator
timp real

Nod de
trafic Canal de
timp real
Circuite de
Filtru
transmisie

Canal de
Pachete non-timp
ignorate real Legătură
de ieşire

Fig. 1.2 Structura nodului de ieşire

Bufferul de ieşire este alcătuit din mai multe canale independente, care împart
aceeaşi legătură de ieşire. Fiecare dintre aceste canale stochează pachete corespunzătoare
unei diferite clase de trafic (de exemplu, trafic video, trafic vocal, trafic de date, etc.). Unele
din aceste canale sunt în timp real (de exemplu, cele pentru traficul video sau vocal) în timp
ce altele nu sunt în timp real (ele fiind rezervate pachetelor în non-timp-real, cu termenii
limită foarte mari, aproape infiniţi, de exemplu, unele transmisii de date). Distribuitorul,
care poate fi un microprocesor, arbitrează utilizarea circuitelor de transmisie şi a legăturii
de ieşire.
Întârzierile de timp între circuitul liniei de intrare şi nodul de ieşire sunt constante.
Întârzierea pachetului înregistrată în nodul de ieşire reprezintă intervalul de timp între
momentul când primul byte al pachetului intră în nodul de ieşire şi momentul când ultimul
său byte este transmis către legătura de ieşire.
Valoarea maximă permisă pentru întârzierea pachetului în nodul de ieşire reprezintă
termenul limită relativ al pachetului. Pachetele de timp real au termeni limită relativ finiţi.
Politica de distribuţie aplicată nodului de ieşire este ne-prioritară.
11
Pachetele în timp real sunt distribuite în acord cu algoritmul primului termen limită
care este atins mai întâi (engl. Earliest-Deadline-First Algorithm). Ori de câte ori o legătură
de ieşire este liberă, pachetul cu cel mai apropiat termen limită absolut este transmis
următorul, evitând supraaglomerarea magistralei de comunicaţie sau blocarea ei şi
întreruperea traficului. Când numărul total de pachete aflate pe canalele de timp real
depăşeşte cantitatea de prag a congestionării- aglomerării traficului Th, filtrul ignoră
pachetele opţionale înainte ca acestea să intre în bufferul de ieşire. Fiecare pachet din
bufferul de ieşire este transmis, în funcţie de termenul său limită. Astfel, imprecizia
transmiterii reprezintă singurul motiv de pierdere a pachetelor, fapt care permite depăşirea
acestui efect cu preţul pierderii calităţii serviciilor de comunicaţii în timp real.
Organigrama de funcţionare a sistemului este prezentată în figura 1.3.

mesaje de la
nodul de trafic

nu mesaje da
adecvate?

pachete
nu mesaje da
ignorate principale?
“mesaje opţionale” “mesaje principale”
prioritate scăzută prioritate mai înaltă

nu mesaje de da
timp real?
atribuie prioritate mai
nu explozie non- da înaltă şi trimite la
timp real canalele de timp real
nr. mesaje >q)?
atribuie prioritate mai înaltă
mesajelor non-timp real

trimite la canalul non-


timp real

trimite mesajele la circuitele


de transmisie în funcţie de
prioritate

legătură de ieşire -
mesaje transmise

Fig. 1.3 Organigrama de funcţionare a sistemului

12
1.3.3 Performanţele algoritmului de comunicaţii în timp real

Performanţele algoritmului de comunicaţii în timp real depinde de următorii


parametri: depăşirea de prag în trafic, încărcarea traficului, termenul limită relativ, termenul
limită absolut, raportul de imprecizie, banda rezervată şi perioada severului.
Pragul de supraaglomerare Th reprezintă numărul de pachete de pe canalele de
timp real de la care încolo se consideră că sistemul este congestionat. Dacă Th = infinit,
adică magistrala de comunicaţii poate face faţă unui număr foarte mare de pachete trimise
în trafic fără a bloca traficul, atunci nici un pachet nu va fi ignorat şi deci nu va exista nici o
imprecizie.
Numărul de conexiuni de timp real şi de non-timp real pe care le suportă nodul de
ieşire determină încărcarea traficului. O încărcare de trafic are de fapt două componente: o
încărcare de fond (engl. background load) şi o încărcare de prim-plan (engl. foreground
load). Fiecare transmisie începe cu o încărcare de fond şi apoi adaugă treptat conexiuni ca
părţi ale încărcării primare, până când legătura este utilizată în totalitate. Termenii limită
relativi ai pachetelor în timp real sunt de aproximativ 1 sau 2 ms cel mult. Raportul de
imprecizie reprezintă numărul de pachete principale raportat la numărul de pachete
opţionale şi depinde de natura conţinutului pachetelor de timp real. Serverul primeşte din
lăţimea disponibilă a benzii de transmisie aproximativ 10 % iar perioada sa este de 10 ms.
Performanţele nodului de ieşire depind de următorii factori:
 raportul de omitere (engl. miss ratio), care reprezintă fracţiunea de pachete care au
pierdut termenii limită (excluzând pachetele ce au fost ignorate),
 raportul de pierdere (engl. loss ratio), adică fracţiunea de pachete care au fost ignorate
de filtrul de imprecizie, şi
 raportul de nevalabilitate (engl. invalid ratio), reprezentat prin fracţiunea de pachete ce
nu sunt utilizabile de către receptor (de exemplu, pachetele întârziate sau cele ignorate).
Fie o rată de omitere a termenului limită Dr, definită după cum urmează:

N dm
Dr  (1.1)
N

unde: Nd este numărul de pachete care au pierdut termenii lor limită şi N este numărul total
de pachete transmise. Adăugând numărul Ndm1 de un pachet care a pierdut termenul său
limită, cu Ndm2 de două pachete care au pierdut termenii limită corespunzători şi aşa mai
departe, rezultă Ndm. Pentru pachete cu lungimea de n-biţi, se poate scrie relaţia

n
N dm  N
i 1
dmi (1.2)

Definim acum o rată de pierdere a pachetelor pe magistrala de comunicaţii egală cu


raportul dintre numărul de pachete pierdute Nlk şi numărul total de pachete transmise, N. Fie
aceasta Lr, unde:

N lk
Lr  (1.3)
N
unde:

13
k
Nlk=  N lki (1.4)
i 1

Notăm rata de utilizare a reţelei de comunicaţii Ur ca fiind raportul dintre numărul


total de pachete transmise N şi capacitatea totală a reţelei Cr. Astfel, putem scrie că:

N
Ur  (1.5)
Cr

unde capacitatea reţelei, Cr reprezintă numărul maxim de pachete care pot fi transmise fără
a produce blocarea traficului pe magistrala de comunicaţii.
Considerăm următorul exemplu. Presupunem că în traficul reţelei de comunicaţii se
trimit P1 pachete de mesaje video, P2 pachete de mesaje vocale şi P3 pachete de mesaje de
date. Pentru a studia rata de omitere a termenului limită, rata de pierdere a pachetelor în
trafic dau procentul de încărcare a reţelei de comunicaţii, vom presupune că: P1 = 100
pachete, P2 = 2000 pachete şi P3 = 40 pachete, unde rata medie a datelor este de 1.28 Mbps,
25.175 kbps şi respectiv 1 Mbps. O reţea de comunicaţii suportă în medie 5000 de astfel de
pachete. Cu aceste valori, rezultă:

- numărul total de pachete transmise este: N = P1 + P2 + P3 = 2140 pachete,


- pragul de supraaglomerare are valoarea: Th = 5000 şi
N 2140
- încărcarea maximă a reţelei este: U r    42% .
Cr 5000

În figura 1.4 sunt prezentate graficele corespunzătoare performanţelor nodului de


ieşire pentru valorile considerate mai sus: a) rata de omitere a termenului limită, b) rata de
pierdere şi c) utilizarea reţelei.
Se observă că, rata de omitere (care poate fi cel mult egală cu 1), creşte odată cu
creşterea numărului de pachete ce ajung în reţeaua de comunicaţii. Pentru o valoare scăzută
a pragului de supraaglomerare (de exemplu, Th = 100 pachete) teoretic nu vor exista
pachete care vor omite termenii lor limită. Dacă Th = 500, atunci câteva pachete
(aproximativ 10% din numărul total, adică 21 pachete) vor pierde termenii lor limită. Pentru
Th = 1000, numărul pachetelor care vor pierde termenii lor limită va creşte către 20%. Dacă
încărcarea reţelei creşte foarte mult, adică Th = ∞, depăşind astfel încărcarea maximă pe
care o poate suporta fără a se bloca, atunci aproape toate pachetele transmise în reţeaua de
comunicaţii vor pierde termenii limită datorită supraaglomerării traficului.
În figura 1.4 b), rata de pierdere a pachetelor este cel mult 0.5, deoarece nu vor
exista mai mult de 50% pachete din numărul total pierdute în trafic. Rata de pierdere creşte
şi ea odată cu sporirea numărului de pachete pe canalele de comunicaţie şi creşte de
asemenea cu creşterea pragului de supraaglomerare în trafic. Dacă Th este mai mic decât
500, teoretic, nu vor exista pachete pierdute în reţea deoarece traficul este redus şi pentru
vitezele considerate, ele vor fi transmise fără probleme. Dacă Th creşte, atunci va creşte şi
numărul pachetelor pierdute iar pentru Th = ∞, aproximativ jumătate din numărul total al
pachetelor transmise se vor pierde.
Utilizarea reţelei este prezentată în figura 1.4 c). Reţeaua este utilizată în proporţie
de 50 % dacă se transmite un număr mic de pachete de mesaje pe magistrala de comunicaţii
(de exemplu, se transmit 500 pachete dacă încărcarea maximă a fost considerată egală cu

14
5000 pachete) şi creşte odată ce ajung mai multe pachete pe canalele de comunicaţii. Dacă
numărul pachetelor transmise este prea mare, deci pragul de supraaglomerare tinde către
infinit, atunci utilizarea reţelei creşte către 100 %.

Dr Lr
1.0 0.5
0.9
0.8 0.4
0.7
0.6 0.3
0.5
0.4 0.2
0.3
0.2 0.1
0.1 N Nlk
0 d 0
500 1000 1500 2000 2500 500 1000 1500 2000

a b
Ur
100
%
80%

60%

40%

20%
N
0
500 1000 1500 2000

c
Fig. 1.4 a) rata de omitere a termenului limită, b) rata de pierdere,
c) utilizarea reţelei

1.3.4 Concluzii

Algoritmul propus pentru comunicaţii în timp real reduce încărcarea traficului


(figura 1.4c) şi asigură că un număr cât mai mare de pachete conţinând mesaje de timp real
sau în non-timp real vor întâlni termenii lor limită capăt-la-capăt şi un număr cât mai mic de
pachete vor fi pierdute. Acest protocol este mult mai eficient în cazul aplicării lui la un
trafic uniform distribuit între pachetele principale şi cele opţionale, evitând congestionarea
reţelelor de comunicaţii. Dacă supraaglomerarea traficului survine în timpul unei explozii
de pachete principale, atunci vor fi transmise pachetele principale sosite în explozie înaintea
pachetelor opţionale, pentru a evita supraaglomerarea traficului. Prin algoritmul ales, pragul
de congestionare a traficului permite ajustarea controlului supraaglomerării în funcţie de
natura încărcării traficului. În general, scăderea pragului de congestionare conduce la o
ocuparea mai scăzută a canalelor, întârzieri mai mici ale pachetelor, instabilităţi scăzute
datorate întârzierilor pachetelor şi rapoarte de omitere a termenilor limită mai mici. Costul
15
acestor beneficii este o rată mai mare de pierdere a pachetelor şi o reducere a calităţii
pachetului in timp real livrat către beneficiar. Raportul de pierdere a termenilor limită de
reduce cu preţul creşterii ratei de pierdere a pachetelor (această creştere a numărului de
pachete pierdute este destul de mică şi preţul plătit astfel merită dacă se obţine o fluenţă
mare a traficului).

16
CAPITOLUL 2

SINTEZA SISTEMELOR DE TIMP REAL FOLOSIND GRAFURI DE


PROCESARE

2.1 Constrângeri de timp în sistemele de timp real

Într-un sistem de timp real pot apare, din diverse motive, constrângeri de timp
(datorită algoritmului de proiectare ales, a condiţiilor de mediu de funcţionare, etc.).
Constrângerile uzuale sunt numite constrângeri standard şi acestea sunt perioadele şi
termenii limită. Ele sunt impuse de către proiectant. În afara constrângerilor standard, în
sistemele de timp real apar şi alte constrângeri, datorită condiţiilor de funcţionare. Acestea
din urmă sunt însă mai puţin restrictive.
Aplicarea constrângerilor standard de timp (termenii limită şi perioadele) duc la
următoarele două limitări:
- supraconstrâng specificaţiile din sistem şi
- lipsesc de expresivitate sistemul.
Nu toate job-urile unei aplicaţii în timp real au perioade şi termeni limită “naturali”,
ci doar unele dintre ele. Restul sunt obţinute în timpul proiectării sistemului şi sunt numite
artefacturi. Termenul limită şi perioada nu pot fi selectate amândouă odată ci pe rând.
În general, aplicaţiile în timp real (cum ar fi, de exemplu, aplicaţiile de control) au
constrângeri de timp care nu pot fi exprimate prin termeni limită şi perioade sau care
supraconstrâng puternic sistemul dacă sunt exprimate prin intermediul constrângerilor de
timp standard.
În cele ce urmează, vor fi descrise limitările constrângerilor de timp standard şi
impactul lor asupra sistemelor în timp real folosind ca exemplu manipularea unui
eveniment sporadic.

a) Job-uri pseudoperiodice

Se consideră un eveniment sporadic pe care îl vom nota cu e. Când are loc un astfel
de eveniment, sistemul trebuie să reacţioneze într-un anumit interval de timp dat, notat
react. Timpii exacţi la care se produce evenimentul e nu pot fi determinaţi dinainte, dar se
poate stabili un interval minim de timp, notat mint.
Pentru evenimentul e, se consideră un job notat cu Je, care are un timp maxim de
execuţie c(Je). Evenimentul e trebuie să facă parte dintr-un job periodic, cu perioadă şi
termen limită fixaţi pentru Je. Cazurile în care Je manevrează evenimentul sporadic e,
fezabile în timp, sunt următoarele: fiecare eveniment e este manevrat de un caz al job-lui Je
in interiorul intervalului de timp react şi nu se pierde nici o realizare a evenimentului e.
În cel mai defavorabil caz, un eveniment el se produce la momentul t(el) – imediat
după momentul când job-ul Jei a început să fie executat de către sistemul de timp real –
verificat pentru evenimentul e şi găsit că nu a avut loc. În acest caz, evenimentul el va fi
manevrat de următorul job, notat Jei+1.
Conform afirmaţiilor făcute mai sus, putem scrie că :
17
d(Jei+1 ) – t (el ) < react. (2.1)

unde prin d s-a notat termenul limită.


Într-un sistem de timp real, două evenimente de tip e sunt separate prin cel puţin un
interval de timp egal cu mint. Cu scopul de a nu pierde nici un eveniment, la un interval mai
mic decât separarea prin mint trebuie declanşate două situaţii consecutive ale job-ului Je..
Astfel:

st(Jei+1 – Jei )< mint. (2.2)

unde st indică momentul (timpul) de start. Aceste condiţii de realizabilitate permit alegerea
unor constrângeri de timp diferite pentru unele situaţii individuale ale job-ului Je.

b) Constrângeri de timp impuse de modelul job-ului

Deoarece modelul job-ului impune perioada p şi termenul limită d, ca şi


constrângeri de timp, proiectantul trebuie să transforme în mod corespunzător condiţiile de
realizabilitate (2.3). Astfel:

1. p(Je) + d(Je) < react (2.3)


2. p < mint

Aceste cerinţe ar putea fi îndeplinite de diferite perechi termen limită - perioadă.

2.1.1 Selecţia unei singure perechi perioadă - termen limită

În ultimul pas al proiectării sistemului (deci, după stabilirea condiţiilor de


funcţionare, mediului de lucru, constrângerilor de timp nestandardizate, funcţiilor de calcul,
etc.) este necesară selectarea constrângerilor de timp standard, adică alegerea unei singure
perechi perioadă - termen limită, abandonând astfel alte perechi egal realizabile.
Pentru a ilustra această selecţie, se consideră următoarele date iniţiale pentru
evenimentul e şi job-ul spoardic Je :
- intervalul de timp de reacţie a sistemului de timp real: react = 61,
- intervalul de timp minim de producere a evenimentului e: mint = 70,
- timpul maxim de execuţie al job-ului Je este: c(Je) = 9.
Presupunem că, din setul de perechi realizabile perioadă- termen limită se selectează
cinci perechi. Fie acestea următoarele perechi: (50,10), (40,20), (30,30) şi (10,50).
Sistemul de timp real conţine job-ul sporadic Je şi două job-uri periodice, Jp0 care au
timpul maxim de execuţie c(Jp0) = 10, perioada p(Jp0) = 30 şi termenul limită d(Jp0) = 30,
respective job-ul Jp1 cu timpul maxim de execuţie c(Jp1) = 30, perioada p(Jp1) = 70 şi
termenul limită d(Jp1) = 70.
Fie utilizarea sistemului definită ca raportul între timpul maxim în care sistemul
execută şi timpul total de funcţionare (execuţie şi mers în gol).
În tabelul 2.1 sunt date valorile calculate pentru utilizăarea sistemului pentru job-
urile considerate mai sus: Jp0, Jp1 şi Je.

18
Tabelul 2.1
Jp0 Jp1 Je
c 10 30 9 9 9 9 9
d 15 70 10 20 30 40 50
p 30 70 50 40 30 20 10
utotal 0.94 0.99 1.06 1.21 1.66

Conform tabelului de mai sus, se constată că perechea (50,10) are cel mai scăzut
necesar de utilizare, dar de asemenea cel mai strâns termen limită, făcând-o mai dificilă
pentru găsirea de programe realizabile. De fapt, dacă se consideră începutul tuturor job-
urilor la momentul de timp 0, va exista o ciocnire între job-urile J0 şi Je la momentul 150
care nu poate fi evitată deoarece d(Je) este foarte strâns, nepermiţând nici o schimbare a
job-ului Je. Acest lucru poate fi evitat prin selectarea unei valori mult mai relaxată pentru
d(Je). Aşa cum se poate observa din tabel, totuşi, noul set de job-uri poate deveni
nerealizabil datorită cererilor crescute de procesare pentru Je.
Concluzii: Specificaţia devine crescător supraconstrânsă. Folosind constrângerile de
timp, informaţiile despre opţiunile posibile sau altă selecţie sunt pierdute în fiecare pas. În
locul reprezentării informaţiilor despre realizabiltatea în timp a job-ului, se reţine numai
rezultatul sub formă de numere.

Alte limitări ale constrângerilor de timp standard:


- cerinţe dependente de date, în care proprietăţile de timp (perioadele) depind de
datele de intrare (de exemplu, citirea datelor de la sensori);
- cerinţe dependente de timp, când timpul real (termenul limită) devine cunoscut
doar în momentul funcţionării (de exemplu, poziţionarea elementelor de acţionare);
- cerinţe de calitate, cu constrângeri care implică mai multe elemente;
- descompunerea termenilor limită capăt la capăt (end-to-end) şi
- distribuţia.

2.1.2 Constrângeri de timp dinamice

Constrângerile de timp dinamice rezolvă problemele menţionate mai sus.


Informaţiile despre realizabilitatea în timp şi valorile alternative întâlnite în timpul
procesului de proiectare sunt păstrate numai ca o compensare la numerele rezultante în aşa-
numitele entităţi de timp pentru accesul rapid pe durata proiectării şi programării.
Entitatea de timp (TE) este o unitate funcţională, adică o activitate a sistemului cu
constrângeri de timp, cum ar fi un job dintr-o aplicaţie în timp real sau un mesaj, combinată
cu o funcţie de realizabilitate care verifică timpul curent pentru TE.
Opţional, poate fi prevăzută o funcţie de urgentare (instaurare) pentru generarea
setărilor de timp realizabile. Majoritatea activităţilor într-un sistem de timp real sunt de tip
periodic şi au un anumit număr de momente de apariţie în timpul funcţionării. Ca urmare,
avem în vedere următoarele tipuri de constrângeri:
a. Constrângeri de timp ale apariţiei - ITC (engl. Instance Timing Constraints)
reprezintă setul de constrângeri de timp pentru o singură apariţie a unei entităţi de timp TE.
Ele sunt aceleaşi pentru toate apariţiile acestei entităţi de timp TE.
b. Constrângeri de timp statice - sTC (engl. Statical Timing Constraints)
reprezintă constrângerile de timp ale unei entităţi de timp TE care rămân fixe pe întreaga

19
durată de funcţionare. Constrângerile de timp standard (perioadă, termen limită, etc.)
reprezintă constrângeri de timp statice.
c. Constrângeri de timp dinamice - dTC (dinamic Timing Constraints) sunt acele
constrângeri de timp ale unei entităţi TE, care pot varia pentru fiecare apariţie ale entităţii în
timp. Constrângerile de timp pot fi diferite pentru fiecare apariţie.
Funcţia de fezabilitate - FF (engl. Feasability Function). Fiind dat un set static sau
situaţii cu constrângeri de timp de tip TC, pentru o entitate de timp TE, funcţia de
fezabilitate determină dacă cererile de timp ale entităţii de timp TE sunt îndeplinite de
aceste constrângeri de timp TC [60].
Funcţia de urgentare (instaurare) - IF (engl. Instantiation Function) instaurează
un set de constrângeri statice de timp realizabile ITC [60]. O funcţie de instaurare poate
varia timpii de start, perioada p sau timpii limită dl. Pentru exemplificare se consideră un
job pseudoperiodic şi se construiesc entităţile de timp (TE).
Unitatea funcţională este job-ul Je , care manevrează evenimentul e.
Constrângerile de timp dinamice ale apariţiei i sunt determinate de informaţia
despre realizabilitatea în timp a evenimentului sporadic:

i = 0 : starttime(Jei) < mint


i > 0 : starttime(Jei ) – starttime(Jei – 1 ) < mint
endtime(Jei ) – starttime(Jei – 1 ) < react (2.4)

Constrângeri de timp statice ale situaţiei:

p(Je) + d(Je) < react, p < mint (2.5)

În cazul constrângerilor dinamice de timp trebuie avute în vedere următoarele:


- selectarea constrângerilor de timp standard corespunzătoare,
- schimbarea constrângerilor de timp în timpul construcţiei programului şi
- programarea directă a entităţilor, evitând în totalitate artifact-urile termenului limită şi
perioadelor.
Cererile de calitate pentru un algoritm de control sunt transformate în cerinţe de
timp ale job-urilor de control, de exemplu perioada de eşantionare şi întârzierile buclei de
reacţie, cu toleranţele corespunzătoare. Trebuie selectate valorile concrete pentru perioadă
şi termenul limită.

2.2 Programarea constrângerilor de timp în sistemele de timp real

Selectarea constrângerilor de timp statice


Dacă se utilizează un algoritm de programare standard cu constrângeri de timp
standard, atunci se va alege o specificaţie cu constrângeri de timp dinamice. Dacă în
procesul de proiectare se introduce un artefact de supraconstrângere, atunci vor fi luate în
calcul diferitele opţiuni şi fezabilitatea (realizabilitatea) lor. După încheierea specificaţiei
este necesară efectuarea unui test de programabilitate. Dacă acesta nu reuşeşte, se vor lua în
considerare constrângerile standard ce candidează pentru instaurare.
Selectarea constrângerilor de timp dinamice
Un programator static poate folosi constrângeri de timp dinamice pe durata
construcţiei programului. Deşi acestea rămân fixate odată ce programul a fost construit,
programatorul are mai multă flexibilitate şi pot fi găsite mai multe soluţii.
20
O altă îmbunătăţire faţă de constrângerile de timp standard este aceea că
programatorul poate considera şi selecta constrângerile individuale exprimate prin
constrângeri de timp dinamice (dTC) pe durata construcţiei programului.
Programarea entităţilor de timp
Metodele anterioare au propus folosirea programării standard şi a constrângerilor de
timp standard, ca o linie de bază pentru aplicarea constrângerilor de timp dinamice:
informaţiile de cel mai înalt nivel despre entităţile de timp sunt utilizate pentru a instaura
cel mai scăzut nivel al constrângerilor folosite de către algoritmi. Aceste constrângeri pot fi
abandonate şi înlocuite de unele noi furnizate de informaţiile din entităţile de timp.
Se va dezvolta un algoritm capabil să programeze în mod direct entităţile de timp.
Metodele de programare pentru îndepliniea constrângerilor şi aplicabilitatea lor sunt
necesare datorită sprijinului acestora la specificarea soluţiilor algoritmilor.

2.3 Teoria programării cu grafuri

O mare varietate de sisteme de timp real, incluzând filtrele digitale, sistemele de


comunicaţii multimedia, sistemele de procesare a tranzacţiilor “on-line”, sistemele pentru
schimburi de mesaje, sistemele de control de fabricaţie şi sistemele de control al proceselor
ţin cont de aceste soluţii.
Algoritmii care stau la baza modelelor de sisteme distribuite de timp real au suportul
în calculul ponderat şi în programarea liniară. Aceste calcule sunt utilizate în scopul
simplificării sistemelor, pentru realizarea unei analize corecte la toate nivelele de prioritate.
Algoritmii oferă garanţii arbitrare referitor la îndeplinirea constrângerilor de timp ale
reţelelor, pentru intervale mici de timp. Astfel, sistemul poate garanta răspunsul în timp real
al procesului care a fost implementat. În multe metodologii ale grafurilor de procesare în
timp, nu pot fi analizate proprietăţile programării, latenţei, cererile de memorie şi cererile
de stocare deoarece ele depind de timpul de execuţie.
Prin aplicarea teoriei de programare la un graf PGM, se poate sintetiza o aplicaţie de
timp real de la un graf general de procesare. Când graful satisface condiţia de programare
pentru un anumit program prescris EDF, pot fi limitate cererile de stocare pentru fiecare
coadă de date (mesaje, evenimente aflate în aşteptare). În majoritatea aplicaţiilor de
procesare a semnalelor, limitarea cererilor de memorie pentru fiecare coadă conduce la
obţinerea unor limite de stocare optime pentru întregul graf. Prin metoda sintezei se obţine
un cadru de evaluare a programabilităţii şi cererilor de memorie, însă rămâne deschisă
problema partiţionării grafului de procesare într-un sistem distribuit, când graful nu este
programabil pe un sistem uniprocesor.
Prin selectarea riguroasă a termenilor limită corespunzători nodurilor din graf, o
execuţie programată dinamic a grafului foloseşte mai puţin spaţiu de stocare decât
implementările planificate cu programe de tip off-line state-of-the-art. Până nu demult,
programarea off-line era favorabilă deoarece aceasta cerea termeni limită mici şi o
capacitate mare de procesare a semnalelor. Astăzi, deoarece viteza de procesare continuă să
crească mai repede decât densităţile de memorie, administrarea memoriei devine critică
pentru multe aplicaţii de procesare a semnalelor. Prin utilizarea unora din capacităţile
procesorului în deciziile de procesare on-line, se poate obţine o latenţă mai bună şi se
utilizează mai puţină memorie decât în cazul programării off-line.
În ceea ce priveşte restricţiile de mediu asupra mărimii, greutăţii şi consumului de
putere, acestea au fost de multe ori limitate atât de capacitatea de procesare cât şi de
capacitatea de stocare a sistemelor de procesare a semnalelor. Datorită creşterii vitezei de
21
procesare, densităţii de memorie şi performanţă, capacitatea procesorului nu mai constituie
o problemă majoră pentru multe aplicaţii de procesare a semnalelor. Folosirea memoriei
este în momentul de faţă o problemă prioritară.
Analizele în timp real implică adesea analize de timp pentru a afla dacă unitatea
centrală de procesare are capacitate de procesare suficientă pentru a realiza execuţia în timp
real. Se folosesc analize de timp pentru administrarea cererilor de memorie. Analiza
cererilor de memorie comportă două aspecte: cereri de cod şi cereri pentru stocarea de date.

Programarea statică
Prin utilizarea programării statice se realizează o minimizare a cererilor de memorie
pentru marginile de intrare sau de ieşire ale unui graf. Programele statice de execuţie ale
nodurilor sunt create “off-line” şi apoi executate pe o bază periodică folosindu-se algoritmi
de programare statici.

Programarea dinamică
În cazul programării de tip dinamic, pentru execuţia grafului se foloseşte un
programator simplu, dinamic, on-line pentru obţinerea unei memorii optimale. Cererile de
memorie sunt mai mici în acest caz decât în cazul utilizării programelor statice create prin
programarea off-line.

Programarea în timp real


Pentru realizarea programării în timp real, trebuie construit un sistem cu timp de
rulare prescris, astfel încât spaţiul de stocare cerut pentru marginile de intrare şi de ieşire ale
grafului să poată fi limitat şi controlat. Pentru aceasta, se apelează la un graf de procesare
realizat pentru un set de job-uri care respectă un model de execuţie în timp real. Condiţiile
de programare pentru model stabilesc dacă graful se adaptează la procesor, adică dacă este
disponibilă suficientă capacitate de procesare pentru garantarea execuţiei în timp real a
tuturor job-urilor. Prin execuţie în timp real se înţelege o execuţie în care sunt respectate
cererile de latenţă şi memorie. Pentru grafurile de procesare a semnalelor, latenţa este
timpul între momentul când un senzor produce o dată simbol şi momentul când graful dă la
ieşire semnalul procesat.

2.4 Metoda grafului de procesare PGM

Prin metoda grafului de procesare PGM (engl. Processing Grapf Method) pot fi
evaluate cererile de administrare a procesorului, latenţa şi utilizarea memoriei în sinteza
sistemelor distribuite de procesare a semnalelor. Administrarea cererilor de memorie se face
prin grafuri de procesare aciclice. Programarea dinamică on-line poate asigura cereri de
memorie aproape minime.
Grafurile dirijate formate din noduri care reprezintă funcţii de procesare, şi
marginile grafului care descriu fluxul de date de la un nod către următorul, sunt utile în
proiectarea standard pentru dezvoltarea sistemelor de procesare a semnalelor digitale
complexe. Când ajung suficiente date la un nod, acesta execută funcţia sa de la început
până la sfârşit, în mod izolat (adică, fără a se sincroniza cu celelalte noduri).
Astfel de grafuri dirijate sunt numite grafuri de procesare (engl. Processing
Graphs) şi descriu modul de procesare a semnalelor. Fiecare nod reprezintă o funcţie
matematică, dependentă de un curent de date care curge pe marginile grafului, de la
nodurile sursă (de obicei, senzori) către nodurile formate (dispozitive de ieşire).
22
Metodologia grafului de procesare permite înţelegerea mai uşoară a procesării
semnalelor prin alegerea unei structuri de algoritm de tip grafic. Un avantaj important al
reprezentării grafice este acela că, porţiuni ale operaţiei de procesare a semnalelor
(subgrafuri) pot fi înţelese chiar în absenţa întregului algoritm. Optimizarea compilatoarelor
şi eficienţa conduitei de scriere poate ajuta la minimizarea spaţiului cerut pentru formarea
cozii, însă grafurile de procesare cer, de asemenea, şi spaţiu de stocare pentru rezultatele de
procesare imediate stocate temporar pe marginile grafului. Odată ce nodul îşi încheie
execuţia, el adaugă datele la margine conectându-le la un nod cu consum redus de flux de
date. În momentul în care s-au acumulat suficiente date pe marginea de intrare a nodului
consumator, acesta execută şi rearanjează datele de intrare. Spaţiul cerut pentru păstrarea
rezultatelor intermediare pe toate marginile grafului simultan poate fi destul de mare. Odată
ce a fost creat graful de procesare, singura variabilă liberă ce controlează cantitatea de date
stocată pe o margine în relaţia de execuţie dintre nodurile producătoare şi consumatoare
este termenul limită.
Un graf de procesare este descris formal ca un graf dirijat (sau digraf) notat G =
(N,M,). Tripleta (N,M,) constă dintr-un set finit N de noduri, un set finit M de margini şi
o funcţie de incidenţă  care asociază fiecărei margini din M, o pereche (nu neapărat
distinctă) de noduri din N.
Fie o margine m M şi nodurile u,v N, astfel încât (m)=(u,v). Spunem că
marginea m alătură nodul u la nodul v sau că u şi v sunt adiacente. Nodul u este numit coada
nodului sursă al marginii m şi v este capul nodului marginii m.
Marginea m este definită ca margine de ieşire pentru nodul u şi margine de intrare
pentru nodul v. Numărul marginilor de intrare pentru un nod v este notat -(v) iar numărul
marginilor de ieşire este +(v). Folosind aceste notaţii, se pot deduce următoarele:
Un nod cu -(v) = 0 este un nod de intrare. Fie I = {v  vV  -(v) = 0} setul tuturor
nodurilor de intrare.
Un nod cu +(v) = 0 reprezintă un nod de ieşire. Fie O = {v  vV  +(v) = 0}
setul tuturor nodurilor de ieşire.
Putem afirma că între nodurile u, v  V, există o cale notată cu u ⇝ v, dacă şi
numai dacă există o secvenţă de noduri (w1, w2, ... , wk), astfel încât w1=u, wk= v şi  i, 1 i
 k:  e  E :: (e) = (wi, wi+1). Altfel spus, există calea între u = w1 şi v = wk dacă există o
secvenţă de noduri (w1, w2, ... , wk) astfel încât wi este adiacent la wi+1, cu i = 1, 2, ..., (k-1).

2.4.1 Graful PGM

Există multe modele ale grafurilor de procesare, însă metoda de sinteză pentru
construirea sistemelor în timp real, în scopul facilitării proiectării şi implementării
aplicaţiilor de procesare a semnalelor, se bazează pe graful PGM.
În PGM, un sistem este exprimat printr-un graf dirijat în care nodurile reprezintă
funcţii de procesare, iar marginile reprezintă canale de comunicaţii bufferate, numite cozi.
Funcţia  este implicit definită de topologia grafului printr-o arhitectură software
independentă de aplicaţia hardware gazdă. Marginile grafului sunt denumite şi cozi FIFO
(engl. First-In-First-Out) cu trei atribute asociate fiecărei cozi:
- o cantitate de produs, notată pdr(q),
- o cantitate de prag, notată thr(q) şi
- o cantitate de consum, notată cns(q).

23
Cantitatea creată specifică numărul de simboluri (elemente de date de structură
adăugate cozii (sau marginii), atunci când nodul producător (respectiv, nodul sursă pentru
coadă) completează execuţia.
Cantitatea de prag reprezintă numărul minim de simboluri cerut a fi prezent în coadă
(margine) înainte ca nodului să-i fie permis să proceseze datele de la coada de intrare.
Cantitatea de consum este numărul de simboluri luate din coadă (din capul cozii)
după ce funcţia de procesare îşi încheie execuţia.
Spunem că o margine este cu prag depăşit, dacă numărul de simboluri neatribuite
marginii este egal sau mai mare decât cantitatea de prag thr(q).
PGM permite mărimi produs, prag şi consum neunitare, precum şi o cantitate de
consum, mai mică decât cea de prag. Singurele restricţii asupra atributelor cozilor sunt
acelea că ele trebuie să fie valori nenegative iar cantitatea de consum trebuie să fie mai
mică sau egală cu cantitatea de prag. Pentru exemplificare, considerăm porţiunea lanţului
reprezentat în figura 2.1.

u q w
prd(q)= 4 thr(q)=7
cns(q)=3

Fig. 2.1 Un lanţ cu două noduri

Marginea etichetată q conectează nodurile u şi w şi are: prd(q) = 4, thr(q) = 7 şi


cns(q) = 3. Nodul u trebuie să execute de două ori înainte ca nodul v să fie primul ales
pentru execuţie. După ce nodul v îşi încheie execuţia, el consumă doar 3 din cele 8
simboluri din marginea sa de intrare. Adesea, filtrele de procesare a semnalelor utilizează o
cantitate de prag care este mai mare decât cantitatea de consum. Filtrul citeşte simbolurile
thr(q) de la margine, dar consumă numai cns(q) simboluri, lăsând în final (thr(q) - cns(q))
pe margine pentru a fi folosite în calculul următor.
În cazul în care un nod are mai multe margini, atunci acel nod este ales pentru
execuţie în momentul când toate marginile (sau cozile de intrare) au pragul depăşit (adică,
atunci când fiecare margine de intrare q conţine cel puţin thr(q) simboluri). După ce funcţia
de procesare îşi termină execuţia, fiecărei margini de ieşire q îi sunt adăugate prd(q)
simboluri. Înainte ca nodul să îşi încheie execuţia, dar după ce datele sunt produse, din
fiecare margine de intrare q sunt scoase cns(q) simboluri.
Spunem că execuţia unui nod este validă, dacă şi numai dacă nodul execută numai
când este ales pentru execuţie şi nu se suprapun două execuţii ale aceluiaşi nod, fiecare
margine de intrare a consumat datele după ce fiecare margine de ieşire şi-a produs datele.
Datele sunt produse la cel mult o margine de ieşire pe durata fiecărei execuţii a nodului.
O execuţie de graf constă într-o secvenţă (posibil infinită) de execuţii de noduri. O
execuţie de graf este validă dacă şi numai dacă toate nodurile din secvenţa de execuţie au
execuţii valide şi nu se înregistrează pierderi de date. S-a ales ca model graful de procesare
PGM, deoarece el este generat cu paradigma cu legături multiple. Sinteza anterioară a
sistemelor de procesare în timp real de la PGM se baza pe grafuri simple PGM, numite
lanţuri.
În continuare, se va extinde analiza pentru lanţuri care păstrează grafuri ciclice
dirijate. În consecinţă, vor fi prezentate noi metode pentru minimizarea spaţiilor de
24
memorie în cazul grafurilor comune, ciclice, de tip PGM executate cu acelaşi programator
simplu, prioritar, cu termen limită.
Graful este descris cu ajutorul modelului procesului cu execuţie bazată pe viteze
RBE (Rate-Based Execution process model), o generalizare a modelului de proces sporadic.
Modelul de procesor RBE permite execuţia nodului cu o viteză medie, determinabilă. pentru
grafurile de tip PGM. Forţând toate nodurile din graf să aibă o execuţie periodică, latenţa
semnalului procesat creşte dar se simplifică analiza cererilor de memorie.

2.4.2 Parametrii care influenţează latenţa şi limitele de stocare

Pentru un graf dat, latenţa reprezintă intervalul de timp între momentul în care
primul nod începe să execute şi momentul în care ultimul nod din graf încheie execuţia şi
trimite la ieşire datele corespunzătoare funcţiei de execuţie. Într-un graf, singurii parametri
liberi care influenţează latenţa şi limitele de stocare sunt termenii limită.
Dacă cererea de latenţă din aplicaţie este mai mică decât valoarea latenţei dedusă
sub ipoteza de sincronizare puternică (ex. (F(N0, Nn).y0), atunci graful dat nu va satisface
cererea de latenţă niciodată.
Dacă cererea de latenţă este mai mare decât limita stabilită prin ipoteza de
sincronizare puternică dar mai mică decât limita inferioară, schimbarea termenilor limită nu
va ajuta graful să satisfacă cererea sa de latenţă; în acest caz este necesară folosirea unei
unităţi centrale de procesare mai rapide.
Dacă cererea de latenţă este mai mare decât această limită inferioară dar mai mică
decât limita superioară (F(N0, Nn) - 1).y0 + dn (unde di < di+1 , 1  i < n) atunci se vor
urma procedurile de reducere a latenţei până la limita dorită. Dacă acest lucru nu este
posibil, atunci vor fi necesare costuri suplimentare pentru schimburi externe. De exemplu,
dacă tehnica de atribuire a termenului final nu este posibilă datorită cedării limitelor de
latenţă satisfăcătoare înainte ca testul de programabilitate să întoarcă un rezultat negativ, se
poate decide dacă este necesară folosirea unui procesor mai rapid sau adăugarea de
memorie pentru mărirea spaţiului de stocare. Prima alegere rezolvă problema latenţei,
folosind o unitate centrală suficient de rapidă. Adăugarea de memorie nu conduce
întotdeauna la reducerea latenţei.
Pentru susţinerea afirmaţiilor anterioare, presupunem că există un graf pentru care
termenii limită nu au fost reduşi, astfel încât primele k noduri din lanţ au toate temeni limită
egali cu intervalul lor de viteză (di = yi ,  i : 1  i  k ) iar ultimele (n - k) noduri au valori
ai termenilor limită egali cu dk . Limita de latenţă este încă prea mare şi micşorând termenii
limită pentru ultimele (n - k) noduri se obţine un rezultat negativ. Putem reduce limita de
latenţă mai departe, prin setarea tuturor termenilor limită astfel încât cererea de latenţă va
avea valoarea maximă:

Lmax = Latency Requirementiniţial - (F(N0, Nn) - 1). y0 (2.6)

Aceasta duce la creşterea cererilor de stocare pentru primele k noduri, dar poate
produce o stivă suficientă în program, astfel încât graful este acum programabil chiar dacă
termenii limită pentru ultimele (n - k) noduri au fost reduşi în scopul obţinerii limitei de
latenţă dorită. Graful va deveni programabil cu aceşti noi termeni limită însă va avea nevoie
de mult mai multă memorie datorită costurilor de schimb extern: mai multă memorie, o
unitate centrală mai rapidă sau cereri mai mici.

25
Deoarece aplicaţia propusă are topologia unui lanţ, s-a restrâns analiza la lanţuri iar
rezultatele au fost apoi extinse la grafuri PGM generale.

2.5 Sinteza grafurilor de procesare

Metoda de sinteză implică trei paşi:


1) identificarea vitezelor de execuţie ale nodurilor,
2) maparea fiecărui nod într-un job, în modelul bazat pe viteză, RBE (engl. Rate-
Based Execution) şi
3) verificarea cerinţelor de latenţă şi a cerinţelor de memorie.
Administrarea cererilor de memorie pentru o aplicaţie cere adesea o iteraţie cu paşii
2) şi 3) întrucât schimburile externe sunt făcute între cererea procesorului şi necesităţile de
memorie. Un rezultat afirmativ după testarea condiţiei de programabilitate semnifică faptul
că procesorul are suficientă capacitate pentru a executa graful astfel încât latenţa şi cerinţele
spaţiului de stocare pot fi garantate.

2.5.1 Vitezele de execuţie ale nodurilor

Pentru a introduce noţiunea de viteză de execuţie a unui nod, presupunem ipoteza


de sincronism puternic. În această ipoteză, execuţia grafului se face pe o maşină infinit
rapidă şi fiecare nod execută fără a consuma timp (sistemul reacţionează instantaneu la
stimulii externi). Astfel, procesele nu sunt afectate de programare iar modelele de execuţie
sunt aceleaşi, indiferent de politica de programare folosită. Viteza de execuţie a fiecărui nod
din graf depinde de: topologia grafului, de modul în care au fost definite nodurile, de
atributele fluxului de date şi de viteza cu care nodul sursă produce datele. Astfel, cunoscând
viteza cu care un nod sursă livrează datele, se pot deduce vitezele de execuţie ale tuturor
celorlalte noduri. Această proprietate fundamentală a fluxului de date în timp real stă la
baza rezultatelor prezentate în acest paragraf. Multe metode de execuţie în timp real
definesc execuţia unui job ca fiind periodică sau sporadică.
De fiecare dată când un job este ales să execute, se spune că acel job este eliberat.
Un job periodic este eliberat exact o dată la fiecare p unităţi de timp (p poartă denumirea de
perioadă a job-ului). Dacă job-ul este sporadic, atunci cel puţin p unităţi de timp separă
fiecare eliberare a acelui job şi nu poate fi precizată nici o limită superioară pentru
eliberările subsecvenţei unui job sporadic. Chiar atunci când nodul sursă al unui lanţ PGM
este periodic, execuţiile celorlalte noduri din graf nu pot fi descrise ca fiind periodice sau
sporadice. Execuţia job-ului poate fi periodică sau sporadică. Pentru exemplificare,
considerăm lanţul din figura 2.2.

Qi-1 Qi Qi+1
Ni Ni+1
p=4 r=7,
c=3

Fig. 2.2 Lanţ între două noduri

26
Dacă nodul u execută la momentele 0, y, 2y, 3y, ..., nodul v este ales pentru o
execuţie la momentele y şi 2y şi pentru două execuţii la momentul 3y. Modelul de execuţie
al nodului v este repetitiv, dar niciodată periodic sau sporadic. Chiar dacă execuţia grafului
este forţată astfel încât să se potrivească unui model de job periodic sau sporadic, cu un job
reprezentând fiecare nod, se va introduce latenţă adiţională.
Job-urile periodice sau sporadice multiple pot fi folosite în modelarea nodului. O
paradigmă care foloseşte viteze de forma x pentru execuţiile unui nod în y unităţi de timp
reprezintă un model mult mai simplu pentru analiza programării latenţei şi a cererilor de
stocare într-o aplicaţie a grafului de procesare.
Vitezele de execuţie ale nodului sunt definite după cum urmează: timpul de execuţie
de ordin j al nodului v este reprezentat ca Tj(v). Viteza de execuţie este definită de o
pereche întreagă (x,y). Viteza de execuţie pentru nodul v, notată Rv = (x,y),este validă dacă
nodul v execută exact x timpi în toate intervalele de timp [t, t+ y], unde t > T1(v).
Pentru analiză, se vor considera lanţuri şi grafuri aciclice.
Fie i ⇝ w un lanţ PGM astfel încât, dacă i  I (setul nodurilor de intrare), u,v  { i
⇝w} cu (q) = (u,v) şi Ri = (xi ,yi ). Presupunând ipoteza de sincronism puternică şi nici
un simbol pe marginea q prioritară la începutul execuţiei grafului, viteza de execuţie a
nodului v este Rv = (xv,yv) unde:

prd(q) cns(q)
xv   xu şi yv   yu (2.7)
gcd( prd(q) xu , cns(q)) gcd( prd(q) xu , cns(q))

Prin gcd s-a definit cel mai mare divizor comun (engl. greatest common divider);
cns reprezintă cantitatea de consum iar prd reprezintă cantitatea de produs.
Ecuaţiile (2.7) pot fi folosite pentru deducerea vitezei de execuţie a oricărui
consumator în limitele producătorilor lui, într-un lanţ de noduri. De exemplu, luând (q) =
(u,w) pentru marginea q şi o viteză de execuţie Ru = (3,16) pentru nodul u din figura 2.3
(nodul execută 3 timpi în orice interval de lungime 16), viteza de execuţie a nodului
consumator w este dedusă astfel:

 prd(q) xu cns(q) y u 
Rw  ( x w , y w )   , 
 gcd( prd(q) xu , cns(q)) gcd( prd(q) xu , cns(q)) 

 43 3  16   
  4,16
12 48
  ,    , (2.8)
 gcd( 4  3, 3) gcd( 4  3, 3)   gcd(12, 3) gcd(12, 3) 

Considerăm în continuare cazul în care nodul w are şi altă margine de intrare, cum
se arată în figura 2.3.
Nodul w este un nod consumator de date produse de ambele noduri u şi v.
Mărimea Rwu = ( xwu , ywu ) reprezintă viteza de execuţie a nodului cu
respectarea datelor produse de nodul u, ca pereche producător / consumator într-un lanţ.
Astfel, Ru = (3,16), Rwu = (4,16), deduse din relaţiile (2.3.). Cu Rv = (2,12), Rwv este
calculat astfel:

 prd () xv cns() 


Rw  v  ( xw  v , yw  v )   , 

 gcd( prd () xv , cns()) gcd( prd () xv , cns()) 
27
 3 2 2  12   6 24 
 ,    ,   3,12  (2.9)
 gcd(3  2, 2) gcd(3  2, 2)   2 2 

prd()= 4
thr()= 7,
u cns()= 3

w

thr()= cns()= 2
v prd()= 3

Fig. 2.3 Un nod cu două margini de intrare

Deoarece nodul w poate să execute doar când ambele margini  şi  au pragul


depăşit, nici Rwv, nici Rwu nu satisfac definiţia unei viteze de execuţie valabile pentru
nodul w, deoarece nodul w nu va executa exact 4 timpi în orice interval de lungime 16 sau
exact 3 timpi in orice interval de lungime 12. În general, Rwv  Rwu trebuie să fie cazul în
care xwu / ywu. = xwv / ywv. dacă este posibilă execuţia unui graf valid. Intuitiv,
expresia xwu / ywu. = xwv / ywv înseamnă că viteza de execuţie a stărilor regulate a
nodului w în raport cu nodul u este egală cu viteza de execuţie a stărilor regulate a nodului
w în raport cu nodul v. Fără egalitatea vitezelor de execuţie ale stărilor regulate ar fi
imposibil să se programeze o execuţie valabilă a grafului folosind memorie finită.
Fie G = (N, M, ) un digraf şi u, v, w  N pentru care există marginile  şi  astfel
încât () = (u, w) şi () = (v,w). Dacă este posibilă execuţia unui graf valabil folosind
memorie finită pentru stocarea (buffering) simbolurilor, atunci:

xwu / ywu. = xwv / ywv. (2.10)

Când un nod consumator are o viteză de execuţie a stărilor regulate constantă, în


raport cu cea a producătorilor, relaţia poate fi generalizată pentru a deduce viteza de
execuţie a unui nod cu margini de intrare multiple.
Fie G = (N, M, ) un digraf PGM pentru care este posibilă o execuţie valabilă
folosind memorie finită şi nodul v N cu -(v)  1. Presupunând ipoteza de sincronism
puternic şi nici un simbol pe marginile de intrare pentru nodul v prioritar la începutul
execuţiei grafului, viteza de execuţie a nodului v este Rv = (xv, yv) unde: lcm = cel mai mic
multiplu comun c.m.m.m.c (engl. lowest common multiple) şi gcd = cel mai mare divizor
comun c.m.m.d.c. (engl. greatest common divider).

 cns(q) y v 
y v  lcm  |  (q)  (u, v),
 gcd( prd(q) xu , cns(q) 
(2.11)
 prd (q) xu 
x v  yv   , q, u :  (q)  (u, v)
 cns(q) yu 
28
De exemplu, fiind date nodurile u şi v din fig. 3.2, cu Ru = (3,16) şi Rv = (2,12) când
xwu / ywu. = xwv / ywv., viteza de execuţie pentru nodul w este:

 cns( ) yu cns(  ) y v 
y w  lcm , 
 gcd( prd( ) xu , cns( )) gcd( prd(  ) xv , cns(  )) 

 3  16 2  12   3  16 2  12 
 lcm ,  lcm  ,   lcm16 ,12  48
 gcd(4  3, 3) gcd(3  2, 2)   3 2 

 prd ()  xu  43 


 x w  y w     48     12 (2.12)
 cns()  yu   3  16 

Astfel, Rw = (xw , yw) = (12,48) şi, după prima sa execuţie, nodul w din figura 2.3 va
executa 12 timpi în fiecare interval de lungime 48.

2.5.2 Maparea nodurilor dintr-un graf utilizând modelul RBE

Modelul RBE (engl. Rate Based Execution) este un model de job general alcătuit din
procese independente, specificate cu ajutorul a 4 parametri: (x, y, d, e). Perechea (x, y)
reprezintă viteza de execuţie a job-ului RBE, unde x este numărul de execuţii cerut într-un
interval de lungime y. Parametrul d (deadline) caracterizează timpul de răspuns, adică
timpul maxim dorit între momentul eliberării unui job şi încheierea execuţiei sale (d este
termenul limită relativ). Parametrul e reprezintă timpul maxim cerut de procesor pentru
executarea job-ului [84]. Un set de job-uri RBE este realizabil dacă există un program
prioritar, astfel încât eliberarea de ordin j a job-ului Ji la momentul ti,j să fie garantată să
încheie execuţia în timpul Di (j) unde:

Di(j) = ti,j + di , dacă 1  j  xi şi Di(j) = max (ti,j + di , Di(j - xi) + yi , dacă j > xi

Modelul de job RBE nu precizează momentul când un job va fi eliberat, însă relaţiile
anterioare asigură că, nu mai mult de xi termeni limită vor fi într-un interval de lungime yi,
chiar atunci când într-un interval de lungime yi au loc mai mult decât xi eliberări ale lui Ji.
Funcţia de atribuire a termenilor limită previne acest lucru prin crearea mai multor cereri de
proces într-un interval de un job, decât atunci când acesta este specificat prin mai mulţi
parametri.
Fiecărui nod i se va asocia un job. Astfel, fiecare nod u din graf este asociat cu 4
parametri (xu ,yu ,du ,eu ). Parametrii xu şi yu sunt deduşi din relaţiile (2.12). Parametrul eu
reprezintă timpul de execuţie pentru cel mai defavorabil caz al nodului u. Singurul
parametru liber este parametrul du - termen limită relativ, care influenţează cererile de
capacitate ale procesorului, latenţa şi cererile de stocare. Ỉn general, dacă se alege o valoare
mică pentru du, latenţa va fi mai mică şi cererile de memorie vor fi reduse. Dacă se alege o
valoare mai mare pentru du, latenţa va fi mai mare, cererile de memorie vor fi mai mari şi
va creşte costul cererilor de capacitate a procesorului. Valorile pentru timpul de execuţie,
produs, prag, consum şi termenul limită vor afecta toate programarea, latenţa şi cererile de
stocare, iar una dintre aceste valori poate face schimb cu oricare alta. Termenul limită
29
relativ trebuie selectat astfel încât rezultatul în stocarea modestă pe marginile grafului să se
facă fără a supraîncărca procesorul cu cereri. Cum du afectează cererile de capacitate ale
procesorului, latenţa şi cererile de stocare, un punct de plecare pentru selecţia lui du este ca
du să fie mai mare sau egal cu termenul limită al nodului prcedent şi mai mic sau egal cu yu.
Când termenul limită al fiecărui nod este mai mare sau egal cu precedentul termen
limită al aceluiaşi nod, se poate utiliza o tehnică de programare numită moştenire de timp de
eliberare, în scopul minimizării latenţei. Nodului u i se atribuie un timp de eliberare logic
(la momentul eliberării lui actuale) care este egal cu timpul de eliberare logic al nodului
care a iniţiat u în timpul execuţiei grafului. Funcţia de atribuire a termenilor limită foloseşte
timpi de eliberare logici în locul timpilor de eliberare reali.
După ce s-a asociat fiecărui nod u din graf parametrii (xu ,yu ,du ,eu), obţinem un
sistem de job-uri RBE de forma J = {J1 ,J2 ,..., Jn}. Un job este eliberat atunci când toate
marginile de intrare ale nodului au pragul depăşit; asigurarea constrângerilor precedente se
face pentru o execuţie corectă a grafului. Job-urile eliberate sunt programate cu algoritmul
de programare RBE-EDF, un program EDF simplu, prioritar, care utilizează funcţia de
atribuire a termenilor limită cu moştenirea timpului de eliberare. Realizarea unui set de job-
uri RBE poate fi obţinută cu relaţiile (3.10), care reduc condiţia de realizare EDF stabilită
pentru U  1 când xi = 1 şi di = yi .
Fie J = {(x1 ,y1 ,d1 ,e) ,... ,(xn ,yn ,dn ,en )} un set de job-uri. J va fi realizabil dacă şi
numai dacă:

n
 L  d i  yi  a 
 daca a  0
L  0, L   f    xi  yi unde f (a)   (2.13)
i 1  yi  
0 daca a  0

Fie J = {(x1 ,y1 ,d1 ,e1) ,... ,(xn ,yn ,dn ,en )} un set de job-uri pentru care, pentru
maparea u  N i : (xi ,yi ,di ,ei) = (xn ,yn ,dn ,en). Conform celor precizate anterior, putem
afirma că, graful de procesare definit prin funcţia G = (N, M, ) este programabil cu
programul RBE-EDF dacă relaţia (2.13) se păstrează pentru J. Un rezultat afirmativ după
testarea relaţiei (2.13) înseamnă că programul RBE-EDF poate fi folosit la executarea
grafului fără a omite nici un termen limită şi cererile de stocare ale fiecărui nod şi de
asemenea ale întregului graf pot fi limitate.

2.5.3 Cereri de stocare şi administrarea memoriei

Cele trei utilizări primare ale memoriei într-un sistem de procesare a semnalelor
sunt următoarele: spaţiu de stocare a datelor finale planificat, spaţiu pentru vehicularea
datelor pe marginile fiecărui nod în parte şi spaţiu de stocare pentru rezultatele intermediare
de pe marginile grafului.
Cererile de memorie pentru primele două sunt aceleaşi pentru oricare dintre
implementări: statică sau dinamică. Pentru administrarea cererilor de memorie ale
marginilor grafului se foloseşte programarea statică. Programele de execuţie ale nodului
static sunt create off-line şi apoi executate pe o bază periodică. O folosire eficientă a
spaţiului de stocare implică spaţiu de stare mai mare pentru program. Spaţiul de stocare
cerut pentru programele statice depinde de algoritmul de programare folosit. Pentru a obţine
spaţiul cerut pentru marginea de intrare trebuie luată în considerare viteza datelor de intrare
şi durata programului. Programele statice sunt de obicei executate pe o bază periodică, cu

30
un timer ce indică momentul de start al execuţiei programului. Dacă programul execută fără
a insera timp nefolosit (timp în care nu se execută nimic) odată ce începe, atunci execuţia
nu poate începe până când nu au fost acumulate suficiente date pe marginile de intrare ale
grafului, pentru a asigura o execuţie validă a grafului. Perioada unui program static este
egală cu valoarea maximă y a vitezelor de execuţie pentru setul de noduri conectate la
dispozitivele externe. In funcţie de program, timpii de execuţie ai nodului precum şi
caracteristicile execuţiei nodului sursă, se pot acumula mai multe sau mai puţine date în
timpul executării programului. Este importantă cunoaşterea dependenţei de lungime a
perioadei programate şi când anume începe programul static, precum şi cantitatea de date
care se acumulează pe cozile de intrare.
Folosirea algoritmilor de programare off-line pentru administrarea cererilor de
memorie implică un spaţiu mare de stocare în memorie, de aceea se apelează la un program
on-line simplu, dinamic, pentru execuţia grafului. Unul din avantajele modelului RBE faţă
de alţi algoritmi de programare dinamici este acela că are o mare flexibilitate în descrierea
momentelor în care nodurile vor executa. Flexibilitatea în programare are însă şi
dezavantajul că face dificilă deducerea limitelor strânse pentru cererile de stocare ale unei
margini.
Regulile de execuţie pentru nodurile PGM cu multiple margini de intrare sunt astfel
încât o margine de intrare poate fi cu prag depăşit cu mult înaintea alteia şi ecuaţiile deduse
din funcţiile pentru limitarea cererilor de stocare nu pot fi aplicate la grafurile PGM
generale. Multe aplicaţii de procesare a semnalelor au caracteristicile fluxului de date astfel
încât să putem obţine limite de stocare cât mai strânse.

2.6 Proprietăţile de timp real în execuţia unui flux de date

Analiza proprietăţilor în timp real ale grafului se face ţinând cont de relaţiile de
execuţie fundamentale care există între nodurile producătoare/consumatoare şi nu depind de
modelul de execuţie. Se definesc mai întâi restricţiile asupra execuţiei nodului. În
concordanţă cu PGM, modelul de execuţie cere ca toate marginile de intrare la un nod să fie
cu prag depăşit înainte ca nodul să fie ales pentru execuţie.
Practica standard în implementarea sistemelor de flux de date, dificilă pentru
specificaţia PGM, constă în a nu permite două execuţii cu depăşire ale aceluiaşi nod iar
datele trebuie citite de la marginea de intrare a nodului care urmează să intre în execuţie la
începutul fiecărei execuţii. Datele sunt consumate după ce nodul a trimis rezultatele finale
ale execuţiei sale către marginile de ieşire, ceea ce arată că, un nod cere simultan spaţii de
stocare atât pentru intrare cât şi pentru ieşire.
Pentru ca nodul să aibă execuţii valide, se presupune că nu se pierde nici o dată în
timpul execuţiilor sale. Definiţiile care urmează conduc la o bază formală pentru analiza
execuţiei nodurilor, precum şi a proprietăţilor ce stau la baza circulaţiei datelor între
nodurile producătoare şi cele consumatoare, prin canalele de transmisie.
a. Nodul N1 este eligibil (este pregătit pentru execuţie, poate fi ales) pentru execuţie
atunci când toate marginile sale de intrare sunt cu prag depăşit.
b. Execuţia unui nod este validă dacă şi numai dacă :
- nodul execută doar atunci când este ales pentru execuţie şi nu se suprapun două execuţii
ale aceluiaşi nod,
- fiecare margine de intrare are datele sale consumate atomic şi
- datele sunt produse cel mult o dată pe marginea de ieşire în timpul fiecărei execuţii a
nodului.
31
c. Execuţia unui graf este validă dacă şi numai dacă toate nodurile din secvenţa de
execuţie au execuţii valide şi nu se pierde nici o dată.
Relaţia de execuţie dintre nodurile producătoare/consumatoare se determină
folosind porţiunea de două noduri din lanţul prezentat în figura 2.4.

Qi-1 Qi Qi+1
Ni Ni+1
p=4 r=7,
c=3

Fig. 2.4 Lanţ între un nod producător şi un nod consumator

Lanţul are o margine ale cărei valori de produs, prag şi consum sunt relativ începute
- acest lucru se face pentru a ilustra relaţiile generale între atributele fluxului de date şi
execuţia nodului. Conform valorilor numerice prezentate în figura 2.4, nodul Ni produce 4
simboluri de fiecare dată când execută. Nodul Ni+1 are un prag egal cu 7 şi consumă 3
simboluri după ce execută. În consecinţă, nodul Ni trebuie să execute de două ori înainte de
a avea marginea Qi cu prag depăşit iar nodul Ni+1 să execute pentru prima dată. După ce
nodul Ni+1 execută, el consumă doar 3 simboluri, lăsând 5 simboluri pe marginea Qi. A treia
execuţie a nodului Ni produce încă 4 simboluri (pentru un total de 9 simboluri pe marginea
Qi) şi nodul Ni+1 execută din nou, consumând încă 3 simboluri. Următoarea execuţie a
nodului Ni produce încă 10 simboluri pe Qi şi nodul Ni+1 este capabil să execute de două ori
- lăsând 4 simboluri pe Qi, care reprezintă acelaşi număr de simboluri care erau pe Qi după
prima execuţie a lui Ni. În acest mod, execuţiile ulterioare ale nodurilor Ni şi Ni+1 vor urmări
acelaşi model.

Latenţa
Latenţa, ca o definiţie generală, reprezintă întârzierea în timp măsurată între
momentul eşantionării unui semnal şi momentul prezentării semnalului procesat la
dispozitivele de ieşire (care pot fi un ecran, un difuzor sau alt computer). Latenţa este o
funcţie a algoritmului de programare. În cazul modelelor de graf, latenţa are de asemenea o
componentă structurală. Latenţa unui eşantion al semnalului depinde de atributele fluxului
de date ale grafului şi numărul de simboluri aflate pe fiecare margine sa grafului în
momentul sosirii eşantionului. Se poate calcula mărimea latenţei eşantionului calculând
numărul de eşantioane cerute înainte ca un nod Nn din graf să înceapă să execute.

32
CAPITOLUL 3

CONCEPTUL DE MAGISTRALĂ I2C

3.1 Necesitatea apariţiei şi dezvoltării magistralei I2C

În domeniul electronicii bunurilor de consum, în telecomunicaţii şi în electronica


industrială, există multe aplicaţii care conţin sisteme ce au caracteristici asemănătoare:
- control inteligent, de obicei realizat cu ajutorul unui microcontroler tip single-chip;
- circuite de uz general: drivere pentru afişaje LCD, porturi I/O, RAM, EEPROM sau
circuite pentru conversia datelor;
- circuite speifice aplicaţiei: circuite de acord digital şi de procesare a semnalului pentru
sisteme radio sau video sau generatoare DMTF pentru telefoane cu ton de disc.
Pentru a folosi aceste asemănări între sisteme, atât în beneficiul proiectanţilor cât şi
al producătorilor de echipamente, precum şi pentru a mări eficienţa hardware-ului şi a
simplifica circuitele, Philips a dezvoltat o magistrală simplă, bidirecţională, cu două linii,
care este capabilă să realizeze un control eficient între circuitele integrate. Această
magistrală este numită Inter IC sau I2C.
În prezent, producţia de circuite integrate Philips cuprinde o gamă foarte largă, de
peste 150 de tipuri de circuite, realizate în tehnologie CMOS şi în tehnologie bipolară, care
sunt compatibile cu magistrala serială bidirecţională I 2C şi sunt capabile să realizeze funcţii
în toate cele trei categorii menţionate anterior (control inteligent, circuite de uz general şi
circuite specifice aplicaţiei).
Toate dispozitivele care sunt compatibile I2C încorporează o interfaţă on-chip care
le permite să comunice direct, fiecare cu celelalte, prin intermediul magistralei I2C. Prin
urmare, acest concept de proiectare rezolvă foarte multe dintre problemele de interfaţare
întâlnite în proiectarea circuitelor de control digital.
Pentru aplicaţiile care sunt orientate pe domeniul controlului digital pe 8 biţi, cum ar
fi acelea care necesită microcontrolere, se pot stabili anumite criterii de proiectare, după
cum urmează:
- costurile legate de conectarea diferitelor dispozitive în interiorul sistemului trebuie să
fie minimizate;
- un sistem complet constă în mod obişnuit din cel puţin un microcontroler şi alte circuite
periferice, cum ar fi memorii şi extinderi ale porturilor de intrare/ieşire (I/O);
- un sistem care realizează o funcţie de control nu necesită o viteză înaltă pentru
transferul datelor;
- eficienţa globală a sistemului depinde de dispozitivele alese şi de natura structurii
magistralei de interconectare.
Pentru a realiza un sistem care să satisfacă aceste criterii, se impune o structură cu
magistrală serială. Deşi magistralele seriale nu au capacitatea de transport a magistralelor
paralele, ele au însă marele avantaj că necesită mai puţin cablaj şi un număr redus de pini de
conectare pentru circuitele integrate. Totuşi, o magistrală nu este pur şi simplu un fir de
conectare, ci întruchipează toate formatele şi procedurile necesare comunicaţiilor din
interiorul sistemului.
În figura 3.1 sunt două exemple de aplicaţii care folosesc magistrala serială I 2C.
33
SINTETIZATOR MEMORIE ANALIZA TEXT DISPALY
PLL NEVOLATILĂ SEMNAL IMAGINE SINGLE-CHIP

SCL

SDA

MICRO- DECODOR DECODOR SUNET PROCESOR PROCESOR


CONTROLER CULOARE STEREO-DUAL AUDIO HI-FI VIDEO

a)
INTERFATA CONTROLER
LINIE MOD SALVA

SCL

SDA

GENERATOR ADPCM MICROCONTROLER


DTMF

b)

Fig.3.1 Aplicaţii ale magistralei I2C: a) televizor de calitate cu grad înalt de


integrare; b) staţie de bază pentru telefon fără fir DECT

Criterii de bază:

- Dispozitivele care comunică între ele pe o magistrală serială trebuie să aibă aceeaşi
formă de protocol, pentru a evita astfel toate posibilităţile de confuzie, pierderile sau
distorsiunile de date din timpul transferului, blocaje ale informaţiei, etc.;
- Dispozitivele care sunt proiectate să lucreze în moduri rapide sau de viteze înalte
trebuie să poată comunica cu dispozitivele care lucrează în moduri lente (standard);
- Sistemul să nu fie dependent de dispozitivele conectate la el, de numărul acestora
sau de funcţiile pe care acestea trebuie să le îndeplinească. În caz contrar modificările şi
îmbunătăţirile sistemelor cu magistrală serială I2C ar fi imposibile.
- Orice protocol folosit pentru controlul sistemelor cu magistrală serială multiplexată
I2C trebuie să fie structurat pentru a decide care dispozitiv va controla magistrala şi când
anume.
- Dacă magistrala trebuie să deservească dispozitive cu viteze de clock diferite, atunci
ea trebuie să aibă o sursă de clock proprie definită.

34
3.2. Structura magistralei I2C

Magistrala I2C se poate realiza în oricare dintre următoarele tehnologii: NMOS,


CMOS sau bipolară. Este o magistrală serială, cu două fire (linii) care transportă informaţia
între dispozitivele conectate la ea. Cele două linii sunt SDA (Serial Data) şi SCL (Serial
Clock).
Fiecare dispozitiv conectat la magistrală este identificat printr-o adresă unică (fie că
este microcontroler, driver LCD, memorie sau interfaţă pentru tastatură) şi poate funcţiona
ca transmiţător sau ca receptor. Trebuie făcută precizarea că un driver LCD poate îndeplini
doar funcţia de receptor, în timp de o memorie poate fi transmiţător (transmite date pe
magistrală) sau receptor (primeşte date de pe magistrală).
Un transmiţător este definit ca un dispozitiv care trimite date spre magistrală iar un
receptor este orice dispozitiv care primeşte date de pe magistrală.
În completarea funcţiei de transmiţător şi receptor, dispozitivele pot fi de asemenea
considerate ca master sau slave atunci când se realizează transfer de date. Prin definiţie, un
master este un dispozitiv care iniţiază un transfer de date pe magistrală, generează
semnalele de clock pentru a face posibil acest transfer şi tot el încheie transferul. În acel
moment, orice dispozitiv adresat va fi considerat slave.
Magistrala I2C are o structură de tip multi-master, orice dispozitiv care este capabil
să controleze magistrala poate fi conectat la aceasta, fără a produce alterarea datelor
vehiculate. Cum, în mod obişnuit, masterele sunt microcontrolere, vom considera pentru
exemplificare cazul unui transfer de date între două microcontrolere conectate la magistrala
serială I2C, aşa cum este prezentat în figura 3.2. Această structură clarifică relaţiile de tip
master-slave care se formează între dispozitivele conectate la magistrală, precum şi
definirea funcţiilor de receptor sau transmiţător, care se pot întâlni pe magistrala serială I2C
în timpul transferului de date.

MICROCONTROLER DRIVER RAM STATIC


A LCD SAU EEPROM
SCL
SDA

ARIE DE PORŢI CONVERTOR MICROCONTROLER


A/D B

Fig.3.2 Sistem cu magistrală I2C cu două microcontrolere

Aceste relaţii nu sunt permanente şi depind numai de direcţia transferului de date la


respectivul moment de timp. Conform figurii 3.2, transferul de date ar putea decurge după
una din următoarele două proceduri:
Procedura 1. Dacă microcontrolerul A doreşte să transmită informaţii (date) spre
microcontrolerul B, sunt necesari următorii paşi:
- microcontrolerul A (master transmiţător) adresează microcontrolerul B (slave receptor);
- microcontrolerul A transmite date la microcontrolerul B;
- microcontrolerul A încheie transferul.
35
Procedura 2. Dacă microcontrolerul A doreşte să recepţioneze informaţii (date) de
la microcontrolerul B, vor fi respectaţi următorii paşi:
- microcontrolerul A (master) adresează microcontrolerul B (slave);
- microcontrolerul A (master-receptor) primeşte date la microcontrolerul B (slave-
transmiţător);
- microcontrolerul A încheie transferul.
Se observă că, atât în primul caz cât şi în cel de-al doilea caz, masterul
(microcontrolerul A) generează impulsurile de control şi încheie transferul.
Deoarece, la magistrala serială I2C pot fi conectate unul sau mai multe
microcontrolere, înseamnă că s-ar putea ca mai mult de un master să încerce să iniţieze un
transfer de date (să transfere date sau să primească date) la acelaşi moment de timp. Pentru
a evita haosul care ar putea rezulta dintr-un astfel de eveniment, s-a dezvoltat o procedură
de arbitrare. Aceasta asigură că, dacă mai mult de un master încearcă să controleze
magistrala, numai unuia i se va permite să facă acest lucru şi datele vehiculate nu vor fi
alterate. În acest scop, se foloseşte o conexiune de tip ŞI - cablat pentru toate interfeţele I2C
conectate la magistrala serială. Astfel, dacă două sau mai multe mastere încearcă să plaseze
informaţii pe magistrală, primul care va produce un ”1” logic în timp ce altul produce un
“0” logic va pierde arbitrarea.
Semnalele de clock pe durata arbitrării sunt o combinaţie sincronizată a semnalelor
de clock generate de circuitele master folosind conexiunea ŞI - cablat la linia serială SCL.
Generarea semnalelor de clock pe magistrala I 2C este întotdeauna responsabilitatea
dispozitivelor master. Fiecare master generează propriile semnale de clock atunci când se
transferă date pe magistrală. Semnalele de clock provenite de la un master de pe magistrală
pot fi doar uşor alterate atunci când peste ele se forţează semnalele de clock de la un
dispozitiv slave lent, cu un nivel scăzut pe linia de clock sau de la un alt master, pe durata
unei proceduri de arbitrare.

3.3. Caracteristicile standard ale magistralei I2 C

Pentru o înţelege mai bine modul de lucru al magistralei seriale I 2C, vom enumera
unele dintre caracteristicile standard:
 are numai două fire (linii) de magistrală: - o linie serială de date (SDA – Serial Data) şi
- o linie serială de clock (SCL – Serial Clock);
 fiecare dispozitiv conectat la magistrală este adresabil software în orice moment, printr-
o adresă unică şi relaţii simple de tip master/slave;
 oricare dintre circuitele master poate funcţiona atât ca transmiţător master cât şi ca
receptor master;
 este o magistrală multi-master, care include detecţia ciocnirii şi procedura de arbitrare,
în scopul prevenirii falsificării sau pierderii datelor în cazul în care două sau mai multe
circuite de tip master iniţiază simultan un transfer de date;
 transferul de date serial, pe 8 biţi, bidirecţional se poate face cu una din următoarele
viteze, aleasă în funcţie de modul de lucru stabilit de proiectant:
- până 100 kbit/s în modul standard S (Standard Mode),
- până la 400 kbit/s în modul rapid F (Fast Mode),
- până la 3.4 Mbit/s în modul viteză înaltă HS (High Speed Mode);
 filtrarea on-chip rejectează efectele tranzitorii de pe magistrală, în scopul menţinerii
integrităţii datelor;

36
 numărul de circuite integrate care pot fi conectate la aceeaşi magistrală este limitat
numai de o capacitate maximă a magistralei, Cb = 400 pF.
Atât SDA cât şi SCL sunt linii bidirecţionale, conectate la o tensiune de alimentare
pozitivă prin intermediul unei surse de curent sau printr-un rezistor Rp de tip pull-up, ca în
figura 3.3. Atunci când magistrala este liberă, ambele linii sunt în starea HIGH. Etajele de
ieşire ale dispozitivelor conectate la magistrală trebuie să fie de tip cu drenă în gol sau
colector în gol pentru a putea realiza funcţia ŞI – cablat, cerută în specificaţiile I2C.

+VDD
Rp Rp rezistoare
pull-up
SDA (linie serială de date)

SCL (linie serială de clock)

SCLK SCLK

SCLKN1 DATAN1 SCLKN2 DATAN2


OUT OUT OUT OUT

SCLK DATA SCLK DATA


IN IN IN IN

DISPOZITIV 1 DISPOZITIV 2

Fig. 3.3 Conectarea dispozitivelor standard şi mod rapid la magistrala I2C

Datele de pe magistrala I2C pot fi transferate în unul din cele trei moduri de
funcţionare:
- modul standard (S) – cu viteză de până la 100 Kbit/s,
- modul rapid (F) – cu viteză de până la 400 Kbit/s sau
- modul viteză înaltă (Hs) – cu viteză de până la 3.4 Mbit/s.
Datorită diferitelor tehnologii de realizare a dispozitivelor (CMOS, NMOS, bipolar)
care pot fi conectate la magistrala serială I 2C, nivelele lui “0” logic (LOW) şi “1” logic
(HIGH) nu sunt fixe şi depind de nivelul asociat potenţialului VDD pentru fiecare dispozitiv.
Pot fi conectate la magistrala I2C dispozitive care au tensiuni de alimentare diferite (de
exemplu VDD1 , VDD2 , VDD3 , … etc.).
Pentru fiecare bit transferat va fi generat un impuls de clock.

3.4 Avantajele folosirii magistralei I2C

3.4.1 Avantajele magistralei I2C pentru proiectanţi

Circuitele integrate compatibile cu magistrala I 2C permit o proiectare de sistem care


asigură dezvoltarea directă a prototipului plecând de la schema bloc funcţională. Circuitele
pot fi conectate direct la magistrala I2C fară a fi nevoie de nici o interfaţă externă
suplimentară (aceasta existând integrată on-chip), ceea ce permite ca sistemul prototip să fie
37
modificat sau perfecţionat într-un mod foarte simplu, prin cuplarea sau decuplarea unor
circuite integrate la magistrală sau de la magistrală, nefiind influenţat transferul de date
(datele vehiculate nu vor fi alterate sau pierdute).
Principalele caracteristici ale circuitelor compatibile cu magistrala I2C sunt:
- blocurile funcţionale din schemă au în corespondenţă circuite integrate reale, astfel încât
proiectarea se dezvoltă rapid, de la schema bloc concepută în faza iniţială la schema finală;
- nu este necesară proiectarea unei interfeţe de magistrală, deoarece aceasta există deja
integrată on-chip;
- protocolul integrat pentru adresarea şi transferul datelor permite sistemelor cuplate la
magistrală să fie complet definite software;
- aceleaşi tipuri de circuite integrate pot fi utilizate în multe aplicaţii diferite;
- timpul de proiectare se reduce considerabil deoarece proiectanţii devin repede
familiarizaţi cu blocurile funcţionale folosite în mod frecvent, reprezentate de circuitele
integrate compatibile cu magistrala serială I 2C;
- într-un sistem care funcţionează cu magistrală I2C pot fi adăugate sau îndepărtate cicuite
compatibile I2C fără ca acest lucru să afecteze nici un alt circuit de pe magistrală;
- diagnosticarea defectelor şi depanarea sunt operaţiuni simple, iar funcţionarea
defectuoasă poate fi identificată imediat, cu ajutorul unor coduri de defecte.
În completarea acestor avantaje, circuitele integrate CMOS compatibile cu domeniul
magistralei I2C oferă proiectanţilor de sisteme caracteristici speciale care sunt atractive
pentru echipamentele portabile şi sistemele alimentate de la baterii. Echipamentele
portabile au un consum de curent extrem de scăzut, imunitate înaltă la zgomot, domeniu
extins al tensiunilor de alimentare şi un domeniu extins de temperaturi.

3.4.2 Avantajele magistralei I2C pentru producători

Circuitele integrate compatibile cu magistrala I 2C nu avantajează numai pe


proiectanţi, ci şi pe producătorii de echipamente:
- magistrala I2C simplă, cu două linii seriale, minimizează interconectările astfel încât
circuitele integrate au mai puţini pini şi nu sunt necesare multe trasee pe cablajul imprimat;
greutatea sistemului care include magistrala scade foarte mult (scade numărul de fire
necesare conexiunilor şi, de asemenea, numărul lipiturilor efectuate);
- plăcile de circuit imprimat au dimensiuni mai mici şi un cost redus;
- protocolul complet integrat al magistralei I 2C elimină necesitatea decodoarelor de
adresă şi a altor “adezivi logici”;
- capacitatea de lucru multi-master a magistralei I2C permite testarea rapidă şi reglajul
final al echipamentelor prin intermediul unor conexiuni externe la linia de asamblare;
- circuitele integrate compatibile I2C sunt disponibile în capsule SO (small outline), VSO
(very small outline) şi DIL, ceea ce determină reducerea şi mai mult a cerinţelor de spaţiu
pentru echipamente.
În plus, folosirea circuitelor integrate compatibile cu magistrala I 2C creşte
flexibiltatea de proiectare a sistemului deoarece permite construirea simplă a variantelor de
echipament şi perfecţionarea lor ulterioară. În acest mod, în jurul unui model de bază se
poate dezvolta o întreagă familie de echipamente.
Perfecţionările pentru echipamentele mai noi sau modelele cu caracteristici
îmbunătăţite (cum ar fi memoria extinsă, telecomandă, etc.) pot fi mai uşor produse prin
cuplarea la magistrală a circuitelor integrate corespunzătoare. De exemplu, dacă sistemul
necesită o memorie ROM mai mare, este doar o simplă problemă de a alege un
38
microcontroler cu o memorie ROM mai mare din domeniul cuprinzător de produse al firmei
Philips. Cum noile circuite integrate au caracteristici care le depăşesc pe cele mai vechi,
este uşor să se adauge echipamentului noi funcţii sau să se crească performanţele acestora
prin simpla deconectare de la magistrală a circuitului integrat mai vechi şi conectarea
succesorului.

39
CAPITOLUL 4

TRANSFERUL DATELOR PE MAGISTRALA I 2C

4.1 Valabilitatea datelor

Pentru ca transferul pe magistrală să se desfăşoare în bune condiţii, se impune ca


datele de pe linia serială SDA să fie stabile pe toată durata HIGH a semnalului de clock
serial de pe linia SCL. Starea HIGH sau LOW de pe linia de date se poate schimba numai
atunci când semnalul de clock de pe linia SCL este la nivel LOW. Pentru exemplificare, în
figura 4.1 este prezentat procesul de transfer al unui bit pe magistrala I2C .

SDA

SCL

linia date schimbare


stabilă; date
date valabile permisă

Fig. 4.1 Transferul unui bit pe magistrala I2C

4.2 Definirea condiţiilor START (S) şi STOP (P)

În interiorul procedurii magistralei I2C, situaţiile unice care pot apărea sunt cele
definite ca fiind condiţiile START (S) şi STOP (P), ilustrate în figura 4.2.

SDA SDA

SCL S SCL
P

condiţia START condiţia STOP

Fig. 4.2 Condiţiile START şi STOP

40
Condiţia START (S) este definită printr-o tranziţie de tip HIGH - LOW pe linia
serială de date (SDA), în timp ce linia serială de clock (SCL) este în starea HIGH. După
condiţia START magistrala se consideră ocupată. Magistrala va fi din nou liberă după un
anumit timp, când se realizează o condiţie STOP.
Condiţia STOP (P) este definită printr-o tranziţie de tip LOW - HIGH pe linia
serială de date (SDA), în timp ce linia serială de clock (SCL) este în starea HIGH.
Condiţiile START şi STOP sunt întotdeauna generate de un dispozitiv master.
În cazul în care se generează o condiţie START repetat (Sr) în locul unei condiţii
STOP, magistrala va rămâne în continuare ocupată până la apariţia unei condiţii STOP sau
START repetat. Din acestă perspectivă, condiţiile START (S) şi START repetat (Sr) sunt
din punct de vedere funcţional identice. Totuşi, simbolul S va fi folosit ca un termen
generic atât pentru condiţia START cât şi pentru condiţia START repetat, mai puţin în
situaţia în care Sr este relevant în mod special.
Detecţia condiţiilor START şi STOP de către dispozitivele conectate la magistrală
este uşoară dacă ele conţin necesarul de hardware pentru interfaţare. Dispozitivele master
(microcontrolerele) care nu au o astfel de interfaţă trebuie să eşantioneze linia SDA de cel
puţin două ori în timpul unei perioade de clock, pentru a sesiza tranziţia.

4.3 Formatul byte-ului

Fiecare byte de date plasat pe linia SDA trebuie să aibă o lungime de 8 biţi.
Numărul de bytes care poate fi transmis în timpul unui transfer este nerestricţionat, însă o
condiţie necesară care se impune este ca fiecare byte să fie urmat de un bit de confirmare
(notat prin A). Datele se transferă începând cu cel mai semnificativ bit (MSB), aşa cum se
arată în figura 4.3.

P
SDA
MSB semnal de confirmare semnal de confirmare Sr
de la slave de la receptor

byte complet
întrerupere în slave linia clock menţinută la nivel
LOW în tipul servirii întreruperilor

S Sr
sau 1 2 7 8 9 1 2 3-8 9 sau
SCL Sr P
ACK ACK
condiţie
condiţie STOP (P)sau
START (S) sau START repetat
START repetat (Sr)
(Sr)

Fig. 4.3 Transferul de date pe magistrala I2C

Dacă un dispozitiv slave nu poate primi sau transmite un alt byte de date deoarece
trebuie să realizeze o altă funcţie (de exemplu să deservească o întrerupere internă), atunci
el poate menţine linia serială de clock SCL la nivel LOW, forţând astfel dispozitivul master
41
să intre în stare de aşteptare (wait). După aceasta, transferul de date continuă atunci când
dispozitivul slave a încheiat funcţia pe care trebuia să o execute şi este gata să transmită sau
să primească un alt byte de date. În acest scop, el eliberează linia serială de clock SCL.
În anumite situaţii, se permite folosirea unui format diferit de formatul unui byte de
date standard pe magistrala I2C (de exemplu pentru dispozitive compatibile CBUS). Un
mesaj (secvenţă de date) care începe cu o astfel de adresă poate fi încheiat prin generarea
unei condiţii STOP, chiar în timpul transmisiei unui byte. În acest caz nu se generează nici
o confirmare.

4.4 Confirmarea datelor

Magistrala I2C impune efectuarea transferului de date cu confirmare. Impulsul de


clock asociat confirmării este generat de către dispozitivul master. Pe durata acestui impuls
de clock, transmiţătorul eliberează linia SDA (aflată în starea HIGH), iar receptorul trebuie
să coboare nivelul de pe linia SDA, astfel încât aceasta să rămână stabilă în LOW.
Procedeul este prezentat în figura 4.4. Trebuie luaţi în considerare, de asemenea, timpii de
stabilire şi timpii de menţinere, care vor fi specificaţi în paragrafele următoare.

DATE IEŞIRE
TRANSMIŢĂTOR

neconfirmare
DATE IEŞIRE
RECEPTOR

confirmare
SCL DE LA
MASTER 1 2 8 9
S

condiţie impuls clock


START pentru confirmare

Fig. 4.4 Confirmarea pe magistrala I2C

Orice dispozitiv receptor care a fost adresat este obligat să trimită o confirmare după
fiecare byte recepţionat, cu excepţia situaţiei în care mesajul începe cu o adresă CBUS.
Când un receptor slave nu confirmă adresarea (de exemplu, nu poate recepţiona sau
transmite, deoarece realizează o anumită funcţie în timp real), linia de date SDA trebuie
lăsată în starea HIGH de către slave. Masterul generează fie o condiţie STOP pentru a
abandona transferul, fie o condiţie de START repetat pentru a începe un nou transfer.
Dacă un receptor slave confirmă adresarea slave dar, la un moment dat, în timpul
transferului nu mai poate recepţiona alţi bytes de date, masterul abandonează din nou
transferul. Acest fapt este indicat de generarea de către slave a neconfirmării pe primul byte
care urmează. Dispozitivul slave părăseşte linia de date în starea HIGH şi masterul
generează o condiţie STOP (P) sau o condiţie START repetat (Sr).
Dacă un receptor master e implicat într-un transfer, el semnalează sfârşitul datelor la
transmiţătorul slave prin negenerarea unei confirmări al ultimului byte extras din slave.
42
Transmiţătorul slave trebuie să elibereze linia de date SDA pentru a permite
masterului să genereze o condiţie STOP (P) sau START repetat (Sr).
Toate aceste reguli enumerate anterior trebuie respectate pentru ca magistrala, şi
deci întregul sistem, să funcţioneze corect.

4.5 Arbitrarea şi generarea clock-ului

4.5.1 Sincronizarea semnalelor de clock

Toate dispozitivele master generează propriul semnal de clock, pe linia SCL, pentru
a transfera date pe magistrala I2C. Datele sunt valabile numai pe durata perioadei HIGH a
clock-ului de aceea, semnalul de clock trebuie să fie bine definit pentru ca procedura de
arbitrare bit cu bit să aibă loc.
Sincronizarea clock-ului se realizează prin conexiunea ŞI - cablat pentru interfeţele
magistralei seriale I2C la linia SCL. O tranziţie HIGH - LOW pe linia SCL face ca
dispozitivele implicate să înceapă să numere perioadele lor LOW şi, odată ce clock-ul unui
dispozitiv a evoluat în starea LOW, el va menţine linia SCL în această stare până când se
atinge starea HIGH pentru clock (figura 4.5).

start numărare
Stare de perioada HIGH
aşteptare

CLK
1

reset
numărător
CLK
2

SCL

Fig. 4.5 Sincronizarea clockului pe timpul procedurii de arbitrare

Tranziţia LOW - HIGH a acestui clock nu poate schimba starea liniei SCL dacă un
alt clock este încă în LOW. Linia SCL va fi menţinută în LOW de către dispozitivul cu cea
mai lungă perioadă LOW. Dispozitivele cu perioade LOW mai scurte intră într-o stare de
aşteptare HIGH pe acest interval de timp.
Când toate dispozitivele interesate şi-au numărat propriile perioade LOW, linia
serială de clock (SCL) va fi eliberată şi trece la nivel HIGH. În acest moment nu va mai fi
nici o diferenţă între clock-urile dispozitivelor şi starea liniei SCL, realizându-se
sincronizarea dispozitivelor cu clock-ul serial (SCL) al magistralei I2C. Dispozitivele vor
începe să numere perioadele lor HIGH şi primul care îşi va completa perioada sa HIGH, va
trage din nou linia SCL la nivel LOW.

43
Astfel, se generează un clock serial (SCL) sincronizat, care va avea perioada LOW
determinată de dispozitivul cu cea mai lungă perioadă LOW a clock-ului, iar perioada
HIGH determinată de dispozitivul cu cea mai scurtă perioadă HIGH a clock-ului.

4.5.2 Arbitrarea pe magistrală

Un dispozitiv master poate declanşa un transfer de date numai dacă magistrala este
liberă. Două sau mai multe dispozitive master pot genera condiţii START în interiorul
timpului minim de menţinere (tHD;STA) a condiţiei START de pe magistrală.
Arbitrarea are loc pe linia SDA, în timp ce linia SCL este la nivel HIGH. Masterul
care transmite un nivel HIGH, în timp ce un alt master transmite un nivel LOW va pierde
arbitrarea şi va fi nevoit să deconecteze datele sale de la etajul de ieşire.
Arbitrarea poate continua pentru mai mulţi biţi. Mai întâi, se compară biţii de
adresă. Dacă mai multe dispozitive master încearcă fiecare să adreseze acelaşi dispozitiv,
arbitrarea continuă cu compararea biţilor de date dacă dispozitivele sunt transmiţătoare
master sau a biţilor de confirmare dacă dispozitivele sunt receptoare master. Informaţiile de
adresă şi date pe magistrala I2C sunt determinate de dispozitivul master câştigător, pe
timpul procesului de arbitrare nu se pierde nici o informaţie, datele rămânând valabile.
Un master care pierde arbitrarea va genera impulsuri de clock până la sfârşitul
bytului de date în timpul căruia a pierdut arbitrarea. Cum un master care funcţionează în
modul viteză înaltă (Hs) are un cod master unic de 8 biţi, înseamnă că el va încheia
arbitrarea pe durata primului byte de date.
Dacă un master încorporează o funcţie slave şi pierde arbitrarea pe durata etapei de
adresare, este posibil ca masterul câştigător să încerce tocmai adresarea sa. Dispozitivul
master care a pierdut arbitrarea trebuie să comute imediat în modul slave.
În figura 4.6 este descrisă procedura de arbitrare pentru două dispozitive master.

master 1 pierde arbitrarea


DATA1  SDA
DATA
1

DATA
2

SDA

SCL

Fig. 4.6 Procedura de arbitrare pentru două circuite master

44
Pot fi implicate mai multe dispozitive master, în funcţie de câte sunt conectate la
magistrală. În momentul în care există o diferenţă între nivelul intern al datelor de la
dispozitivul master care generează DATA 1 şi nivelul real de pe linia SDA, master 1 pierde
arbitrarea şi este nevoit să deconecteze datele sale de la magistrală. Aceasta nu va afecta
însă transferul de date care a fost iniţiat de dispozitivul master câştigător.
Deoarece controlul magistralei I2C se decide exclusiv pe adresa sau codul master şi
datele transmise de dispozitivele master competitoare, putem afirma că nu există un
dispozitiv master central şi nici o ordine de prioritate pe magistrală.
O atenţie specială trebuie acordată dacă, pe durata unui transfer serial, procedura de
arbitrare este încă în desfăşurare la momentul când pe magistrală se transmite o condiţie de
START repetat sau de STOP. În acest caz, dispozitivele master implicate trebuie să
transmită aceste condiţii de START repetat sau STOP pe aceeaşi poziţie în cadrul format.
Arbitrarea nu este permisă în oricare din situaţiile următoare:
- între o condiţie de START repetat (Sr) şi un bit de date;
- între o condiţie de STOP (P) şi un bit de date;
- între o condiţie de START repetat (Sr) şi o condiţie de STOP (P).

4.5.3 Stabilirea legăturilor între dispozitive prin sincronizarea clock-ului

Mecanismul de sincronizare a clock-ului poate fi utilizat atât în procedura de


arbitrare pe magistrală, cât şi pentru a permite dispozitivelor receptoare să lucreze cu
transferuri de date rapide, fie la nivel de byte, fie la nivel de bit.
La nivel de byte, un dispozitiv trebuie să fie capabil să recepţioneze bytesii de date
la o viteză mai mare, dar necesită mai mult timp pentru a memora un byte recepţionat sau a
pregăti un alt byte pentru a fi transmis. Dispozitivele slave pot menţine linia SCL la nivel
LOW după recepţia şi confirmarea unui byte pentru a forţa astfel dispozitivul master într-o
stare de aşteptare până când dispozitivul slave este gata pentru transferul următorului byte
într-o procedură de tip handshake.
La nivel de bit, un dispozitiv master (de exemplu, un microcontroler cu sau fără
hardware limitat pentru magistrala I2C) poate încetini clock-ul magistralei prin extinderea
fiecărei perioade LOW a clock-ului său. Viteza oricărui dispozitiv master este prin urmare
adaptată la viteza de funcţionare internă a fiecărui dispozitiv slave.
Observaţie: În modul viteză înaltă (Hs), această caracteristică de tip handshake
poate fi folosită numai la nivel de byte.

45
SISTEME DE TIMP REAL

1.1 Introducere în dezvoltarea sistemelor de timp real

Prin definiţie, un sistem de timp real este un sistem a cărui corectitudine depinde nu
doar de soluţiile logice obţinute prin calcul, ci şi de timpul real la care aceste soluţii au fost
determinate. Operaţiunile într-un sistem de timp real se execută în timp real. Aceasta este o
definiţie generală, care cuprinde o mare varietate de sisteme, incluzând filtrele digitale,
sistemele de comunicaţii multimedia, sistemele de procesare a tranzacţiilor “on-line”,
sistemele pentru schimburi de mesaje, sistemele de control de fabricaţie, sistemele de
control al proceselor, etc.
Sistemele distribuite de timp real lucrează pe arhitecturi de reţele specializate, care
includ clase de servicii şi protocoale în scopul susţinerii comunicaţiilor de timp real
influenţate de constrângerile prevăzute prin alocarea mesajelor simple sau în pachete.
Arhitecturile de reţele pot fi clasificate într-o varietate de moduri, în funcţie de
domeniul de aplicaţie, de tipul comunicaţiei sau de scopul în care acestea sunt folosite.
Algoritmii care stau la baza construirii modelelor de sisteme de timp real au
suportul în calculul ponderat şi în programarea liniară. Aceste calcule sunt utilizate în
scopul simplificării sistemelor şi efectuării unei analize corecte la toate nivelele de
prioritate. Algoritmii utilizaţi oferă garanţii arbitrare, în intervale mici de timp în
satisfacerea constrângerilor de timp ale reţelelor. Echipamentele realizate pe job-uri cu un
singur obiect sau cu mai multe obiecte au condus la obţinerea modemurilor de timp real.
Astfel, sistemul poate garanta răspunsul în timp real al procesului care a fost implementat.
Dintre toate sistemele de timp real, cele mai utilizate sunt sistemele de control al proceselor.
Un sistem de timp real distribuit este un sistem complex, care cuprinde mai multe
funcţii accesate de procesoare diferite. În multe sisteme de timp real (de exemplu, în
sistemele de control industrial al energiei nucleare, controlul traficului aerian, controlul
misiunilor spaţiale sau controlul proceselor industriale) calculele realizate de controler sunt
mult mai complicate.
Controlerul din sistemul realizat în inel include şi componente umane (unul sau mai
mulţi controleri umani) care iau decizii bazate pe datele primite de la senzori. Aceste
sisteme poartă denumirea de sisteme în buclă deschisă
Următorul pas logic în evoluţia sistemelor de timp real îl reprezintă introducerea
autonomului. În figura 1.1 se prezintă un model abstract al unui sistem autonom de control,
în care cooperarea experţilor umani este înlocuită de software-ul pentru probleme de
comunicaţie.
Sistemele de timp real încă evoluează, urmând ca ele să fie înlocuite de următoarea
generaţie a sistemelor de timp real autonome în buclă închisă, în care experţii umani vor fi
înlocuiţi prin software. Autonomia sistemelor depinde de obiectivele tehnico-economice:
calitatea, productivitatea şi profitabilitatea, precum şi de protecţia împotriva pericolelor sau
dificultăţi de ordin tehnic. Sistemele de control din generaţia următoare vor fi distribuite,
complexe, dinamice, de nivel înalt, adaptabile şi cu o comportare inteligentă. Ele vor
conţine mai multe tipuri de timere şi vor opera într-un domeniu larg de nedeterminări.
NOD NOD NOD NOD

ARIE DE RETELE LOCALE

NOD NOD NOD NOD

CONTROLER ACTIONARE PROCES


stare CONTROLAT
dorită

SENSORI
stare curentă

Fig. 1.1 Modelul abstract al unui sistem autonom de control în timp real

Modelul general al unui sistem de timp real se bazează pe următoarele caracteristici:


 sistemul distribuit este bazat pe o reţea locală;
 constrângerile de timp (perioada, termenii limită) influenţează major activitatea
sistemului;
 sistemul necesită activităţi de tip dinamic;
 credibilitatea este o cerere importantă în sistemele de timp real. Pentru activităţile
sigure, critice sau esenţiale, este important să se poată determina dacă constrângerile de
timp vor fi satisfăcute;
 comunicarea intertematică - cererile funcţionale ale sistemului sunt realizate printr-o serie
de job-uri aflate în competiţie pentru atingerea scopului propus.

1.2 Comunicarea în sistemele de timp real

Termenul de comunicare în timp real poate fi utilizat în descrierea oricărui tip de


activitate de comunicaţie în care mesajele implicate au asociate constrângeri de timp. De
exemplu, comunicarea vocală cu schimb de pachete, în care pachetele vocale au un număr
maxim de constrângeri de întârziere asociate, este adesea definită ca fiind o comunicare în
timp real.
În cele ce urmează, acest termen se va restrânge la cel de comunicare în sisteme
distribuite de timp real. Cererile de comunicare în sistemele distribuite de timp real sunt
induse de necesitatea interacţiunii dintre diferitele entităţi din sistemele distribuite.

2
Mesajele în timp real pot fi clasificate în două categorii principale:
- Mesaje de căutare garantate, care includ o garanţie din partea sistemului (dacă
activitatea care produce apariţia lor este acceptată pentru execuţie, atunci constrângerile de
timp vor fi respectate cu siguranţă). În generaţia actuală a sistemelor distribuite de timp real
în buclă închisă, mesajele de căutare garantate sunt de două tipuri: mesaje periodice şi
mesaje de alarmă (alertă).
Mesajele periodice transportă informaţia de senzor despre starea curentă a
procesului controlat şi sunt transmise periodic în timp. De exemplu, într-un sistem de
control al unui proces industrial, calculatoarele din diferite locuri ale întreprinderii
colectează periodic informaţii despre starea procesului: factorul de umplere, presiunea şi
temperatura, cu ajutorul senzorilor şi transmit aceste informaţii la dispeceratul central, unde
operatorii umani iau deciziile necesare pentru execuţia procesului. Mesajele periodice
necesită garanţii în cazul în care termenii limită sunt întâlniţi în ordinea în care starea reală
a procesului controlat şi imaginea stării controlerului obţinută prin aceste mesaje sunt
închise pentru oricare altă stare.
Mesajele de alarmă sunt folosite pentru diseminarea informaţiei într-o situaţie de
urgenţă. De exemplu, controlerul poate fi nevoit să închidă utilitarele pentru o perioadă
determinată de timp. Cu toate că mesajele de alertă sosesc destul de rar, sistemul trebuie să
garanteze că acestea vor fi livrate cu respectarea termenilor finali.
- Mesajele cu efort minim au constrângeri de timp dar nu pot cere o garanţie din
partea sistemului. Sistemul va încerca să satisfacă aceste constrângeri. Exemplele mesajelor
cu cel mai mic efort în sistemele actuale includ unele tipuri de comenzi pentru operatorii
umani şi de asemenea unele tipuri de avertizări şi răspunsuri. De exemplu, stările sigure şi
mesajele de control, şi vizualizările de traiectorii şi mesajele de răspuns în cadrul sistemelor
de control pentru misiunile în spaţiu închis pot fi clasificate ca fiind mesaje cu efort minim.
Aceste mesaje apar asincrone şi sunt de regulă tratate ca mesaje uşoare de timp real.
Sistemul este proiectat să minimizeze răspunsul în timp pentru aceste mesaje. Multe dintre
sarcinile curente în comunicarea în timp real sunt bazate pe modelul sistemului de
comunicaţie în timp real, de tip distribuit, iar mesajele de căutare garantate sunt ori
periodice, ori foarte rare. De asemenea, pentru aceste mesaje, caracteristicile sunt
specificate static.

1.3 Algoritm de deservire a comunicaţiilor în timp real

1.3.1 Consideraţii generale

Comunicarea în sistemele distribuite de timp real rezultă din necesitatea interacţiunii


dintre diferitele entităţi din sistemele distribuite. Există mai multe tipuri de arhitecturi de
reţele şi servicii care sunt folosite pentru vehicularea mesajelor pe magistralele de
comunicaţii.
Serviciile cu conexiuni orientate COS (engl. Connection Oriented Services) se
bazează pe construirea unui canal logic cu sau fără constrângeri de timp. În cadrul acestor
servicii se întâlnesc trei faze distincte: construcţia de conexiuni, transferul de date şi
abandonul conexiunii. Serviciile COS sunt recomandate comunicaţiilor caracterizate printr-
o fază lungă a transferului de date sau o secvenţă logică de mesaje: aplicaţii cu transfer de
fişier. Din momentul în care contextul este disponibil (este numită conexiunea logică),
fiecare unitate individuală a fazei de date din entităţile comunicaţiei poate fi definită din
punct de vedere logic, reţelele COS au termeni limită mici şi pot controla secvenţial
3
informaţia şi determina erorile apărute în procesul comunicaţiei.
O reţea poate utiliza fie un mod fără conexiuni, fie un mod de conexiuni orientate
pentru operaţia internă în scopul satisfacerii serviciilor de comunicaţie. O conexiune internă
într-o reţea, care foloseşte modul de operare cu conexiuni de tip orientat este denumită
circuit virtual. Din acest motiv, serviciul de conexiuni orientate se referă uneori la un
serviciu de circuite virtuale.
Serviciile fără conexiuni CLS (engl. Connection Less Services) sunt caracterizate
prin absenţa unei conexiuni logice între transmiţător şi receptor. Nu există faze distincte
deoarece nu există conexiuni în construcţie în structura reţelei. Fiecare unitate de date este
în întregime conţinută în interior şi deoarece nu există o conectare logică, informaţia de
control necesară pentru trimiterea datelor către receptor este duplicată în fiecare unitate de
date. CLS sunt reţele mai simple şi sunt adecvate pentru comunicaţiile scurte .
Spre deosebire de serviciile cu conexiuni orientate COS, serviciile fără conexiuni
CLS nu transmit secvenţial, nu controlează fluxul de date şi nu determină erorile apărute în
procesul de transmisie. În reţelele care utilizează modul fără conexiuni pentru operare
internă, pachetele independente implicate în această operaţie se referă la diagrame de date.
Uneori, ele se referă la serviciile utilizate pentru construirea diagramelor de date.
Serviciile de comunicaţii în timp real trebuie să satisfacă constrângerile de timp
impuse sistemului de timp real. Principalele constrângeri impuse în cele mai multe cazuri
sunt următoarele:
- termenii limită,
- perioadele,
- întârzierile capăt-la-capăt şi
- întârzierile datorate instabilităţilor.
Primele două constrângeri de timp (termenii limită şi perioadele) sunt constrângeri
de tip standard şi pot fi îndeplinite prin alegerea unui algoritm adecvat de către proiectantul
reţelei de comunicaţii.
Când reţeaua de comunicaţie este supraaglomerată (congestionată), întârzierile
capăt-la-capăt pot depăşi valorile maxime admise, iar întârzierile datorate instabilităţilor pot
fi intolerabile. Multe servicii de timp real pot negocia calitatea serviciilor în favoarea
transmiterii în timp util prin utilizarea tehnicilor de calcul imprecis.

1.3.2 Controlul încărcării traficului

Pentru a realiza o analiză cât mai amănunţită a traficului care se desfăşoară pe


reţelele de comunicaţie, propunem un algoritm capabil să susţină serviciile de comunicaţii
cu constrângeri de timp variate.
Se ştie că toate serviciile de comunicaţii în timp real trebuie să satisfacă
constrângeri de timp de tipul: întârzieri capăt-la-capăt şi întârzieri datorate instabilităţilor.
Beneficiarul (utilizatorul) de servicii de comunicaţii în timp real lansează aceste cereri
reţelei, în timpul stabilirii legăturii. O nouă conexiune va fi acceptată numai dacă există
suficiente resurse pentru a satisface cererile cu o probabilitate specificată, în timp ce sunt
îndeplinite şi cererile conexiunilor deja existente.
Datorită naturii de tip nedeterminist a fluxului de trafic, o strategie de acceptare a
conexiunii nu poate garanta singură că toate pachetele de mesaje transmise vor respecta
întârzierile capăt-la-capăt. De exemplu, un trafic intens poate satura temporar un nod al
reţelei de comunicaţii, cauzând astfel supraaglomerarea (congestionarea) reţelei. În
consecinţă, unele pachete de mesaje pot eşua în satisfacerea constrângerilor de timp cerute,
4
iar altele se pot pierde datorită supraîncărcării traficului. Algoritmul propus asigură o
îmbunătăţire a traficului, prin adăugarea unui sistem de timp real care are rolul de a controla
procesele.
În reţeaua de comunicaţii sunt transmise pachete de mesaje în timp real şi pachete
de mesaje în non-timp real. Mesajele în non-timp-real sunt mesaje care nu se supun
constrângerilor de tip standard (perioadă, termen limită), ele putând avea lungimi şi
perioade diferite. Deoarece nu au precizate aceste constrângeri, ele trebuie trimise pe un
canal separat de comunicaţie (canalul în non-timp-real) şi, în consecinţă, li se atribuie o
prioritate mai mare decât mesajelor în timp real, pentru a nu supraaglomera traficul pe
magistrala de comunicaţii.
Mesajele în timp real şi cele în non-timp real din trafic sunt mesaje de căutare
garantate şi de asemenea, periodice. Serviciile utilizate în reţeaua de comunicaţii sunt de
tipul serviciilor fără conexiuni (CLS) deoarece nu există nici o conexiune între transmiţător
şi receptor şi nu există faze distincte, ca la serviciile cu conexiuni orientate (COS).
Serviciile CLS sunt mult mai simple decât cele cu conexiuni orientate şi sunt recomandate
transmisiilor în reţele cu magistrale de comunicaţii.
Multe servicii de timp real pot negocia calitatea serviciului în favoarea transmiterii
în timp util a mesajelor. Pentru a asigura că nici un pachet de mesaje non-timp-real nu se
pierde pe reţeaua de comunicaţii şi, de asemenea, pentru a asigura că timpul mediu de
răspuns al pachetelor non-timp-real este relativ scăzut şi are o variaţie redusă se utilizează
un server a cărui perioadă de deservire controlează banda de transmisie alocată reţelei.
Cu serviciile de comunicaţii în timp real, beneficiarul (utilizatorul) preferă să
sacrifice calitatea serviciului în favoarea transmiterii în timp util (de exemplu, se preferă
recepţionarea unui număr mai mare de mesaje bune în ceea ce priveşte calitatea, decât
recepţionarea unui număr mai mic de mesaje de foarte bună calitate). Un cadru netransmis
sau întârziat poate duce la pierderea sincronizării între transmiţător şi receptor.
Pentru a asigura un trafic mai bun şi mai rapid, înainte de a fi transmise, pachetele
se împart în două categorii:
- pachete principale (de bază) - transportă informaţia de calitate de bază. Când toate
pachetele principale sunt transmise în timp util, nivelul de calitate al serviciului de
timp real scade, însă este acceptabil pentru utilizator.
- pachete opţionale - transportă informaţia de extra-calitate, adiţională, menită să
ridice calitatea întregului serviciu.
Pentru a face diferenţa între pachetele principale de mesaje şi cele opţionale, se
foloseşte bitul de pierdere a priorităţii celulei CLP (Cell Loss Priority Bit) în primul pachet
(header packet). Implementarea bitului CLP este făcută de proiectantul reţelei şi depinde de
condiţiile de modelare ale traficului în timpul proiectării reţelei.
Considerăm un nod de trafic şi presupunem că acesta nu este blocat pe magistrala de
ieşire; în acest fel, fluxurile de trafic limitate la diferite ieşiri ale reţelei nu vor interfera
între ele. Astfel, putem considera reţeaua de trafic limitată la o singură legătură de ieşire.
Fie aceasta nodul de ieşire (partea de trafic care conţine bufferul de ieşire şi circuitele de
transmisie corespunzătoare legăturii de ieşire).
Pachetele în non-timp-real din canalele corespunzătoare sunt transmise conform
algoritmului primul-venit-primul-servit (engl. first-come-first-serve), deoarece, în reţelele
de trafic aglomerat acesta este algoritmul cel mai indicat; pachetele de mesaje sunt ulterior
filtrate, repartizate canalului corespunzător din bufferul de ieşire, programate si apoi trimise
către circuitele de transmisie spre utilizator.
Pentru controlul transmisiei, se foloseşte un server care asigură că, cel mult un
număr minim de pachete în non-timp real sunt transmise în timpul fiecărei perioade a
5
serverului, atunci când pe canalul non-timp real se află pachete care aşteaptă să fie
transmise. Perioada de funcţionare a serverului şi procentajul din lăţimea benzii pe care le
rezervă pentru pachetele în non-timp real se aleg de către proiectant.
Pachetelor în non-timp real le este atribuită o prioritate mai înaltă decât pachetelor
în timp real în timpul fiecărei perioade de funcţionare a serverului, până când numărul
minim de pachete a fost transmis sau până când canalul corespunzător pachetelor în non-
timp real este gol. După aceasta, prioritatea mai înaltă revine pachetelor în timp real.
Atribuirea celei mai înalte priorităţi pachetelor în non timp real se face deoarece acestea au
termenii limită relativi teoretic infiniţi şi ar bloca traficul. Prin atribuirea celei mai înalte
priorităţi acestor pachete, ele vor fi transmise imediat.
În figura 1.2 este prezentată structura nodului de ieşire. Diferenţa între acest nod de
ieşire şi cele utilizate în protocoalele clasice este adăugarea unui filtru de pachete, care are
rolul de a rejecta pachetele de mesaje ce nu se supun constrângerilor impuse de sistem (nu
au lungimea corespunzătoare, au o perioadă prea mare faţă de celelalte pachete sau termenii
lor limită nu corespund cerinţelor sistemului). Acest filtru este foarte util în cazul unui trafic
supraaglomerat deoarece, prin filtrarea pachetelor îmbunătăţeşte fluenţa pe canalele de
comunicaţii.

Buffer de ieşire

Canal de
Programator
timp real

Nod de
trafic Canal de
timp real
Circuite de
Filtru
transmisie

Canal de
Pachete non-timp
ignorate real Legătură
de ieşire

Fig. 1.2 Structura nodului de ieşire

Bufferul de ieşire este alcătuit din mai multe canale independente, care împart
aceeaşi legătură de ieşire. Fiecare dintre aceste canale stochează pachete corespunzătoare
unei diferite clase de trafic (de exemplu, trafic video, trafic vocal, trafic de date, etc.). Unele
din aceste canale sunt în timp real (de exemplu, cele pentru traficul video sau vocal) în timp
ce altele nu sunt în timp real (ele fiind rezervate pachetelor în non-timp-real, cu termenii
limită foarte mari, aproape infiniţi, de exemplu, unele transmisii de date). Distribuitorul,
care poate fi un microprocesor, arbitrează utilizarea circuitelor de transmisie şi a legăturii
de ieşire.
Întârzierile de timp între circuitul liniei de intrare şi nodul de ieşire sunt constante.
Întârzierea pachetului înregistrată în nodul de ieşire reprezintă intervalul de timp între
momentul când primul byte al pachetului intră în nodul de ieşire şi momentul când ultimul
său byte este transmis către legătura de ieşire.
Valoarea maximă permisă pentru întârzierea pachetului în nodul de ieşire reprezintă
termenul limită relativ al pachetului. Pachetele de timp real au termeni limită relativ finiţi.
Politica de distribuţie aplicată nodului de ieşire este ne-prioritară.
6
Pachetele în timp real sunt distribuite în acord cu algoritmul primului termen limită
care este atins mai întâi (engl. Earliest-Deadline-First Algorithm). Ori de câte ori o legătură
de ieşire este liberă, pachetul cu cel mai apropiat termen limită absolut este transmis
următorul, evitând supraaglomerarea magistralei de comunicaţie sau blocarea ei şi
întreruperea traficului. Când numărul total de pachete aflate pe canalele de timp real
depăşeşte cantitatea de prag a congestionării- aglomerării traficului Th, filtrul ignoră
pachetele opţionale înainte ca acestea să intre în bufferul de ieşire. Fiecare pachet din
bufferul de ieşire este transmis, în funcţie de termenul său limită. Astfel, imprecizia
transmiterii reprezintă singurul motiv de pierdere a pachetelor, fapt care permite depăşirea
acestui efect cu preţul pierderii calităţii serviciilor de comunicaţii în timp real.
Organigrama de funcţionare a sistemului este prezentată în figura 1.3.

mesaje de la
nodul de trafic

nu mesaje da
adecvate?

pachete
nu mesaje da
ignorate principale?
“mesaje opţionale” “mesaje principale”
prioritate scăzută prioritate mai înaltă

nu mesaje de da
timp real?
atribuie prioritate mai
nu explozie non- da înaltă şi trimite la
timp real canalele de timp real
nr. mesaje >q)?
atribuie prioritate mai înaltă
mesajelor non-timp real

trimite la canalul non-


timp real

trimite mesajele la circuitele


de transmisie în funcţie de
prioritate

legătură de ieşire -
mesaje transmise

Fig. 1.3 Organigrama de funcţionare a sistemului

7
1.3.3 Performanţele algoritmului de comunicaţii în timp real

Performanţele algoritmului de comunicaţii în timp real depinde de următorii


parametri: depăşirea de prag în trafic, încărcarea traficului, termenul limită relativ, termenul
limită absolut, raportul de imprecizie, banda rezervată şi perioada severului.
Pragul de supraaglomerare Th reprezintă numărul de pachete de pe canalele de
timp real de la care încolo se consideră că sistemul este congestionat. Dacă Th = infinit,
adică magistrala de comunicaţii poate face faţă unui număr foarte mare de pachete trimise
în trafic fără a bloca traficul, atunci nici un pachet nu va fi ignorat şi deci nu va exista nici o
imprecizie.
Numărul de conexiuni de timp real şi de non-timp real pe care le suportă nodul de
ieşire determină încărcarea traficului. O încărcare de trafic are de fapt două componente: o
încărcare de fond (engl. background load) şi o încărcare de prim-plan (engl. foreground
load). Fiecare transmisie începe cu o încărcare de fond şi apoi adaugă treptat conexiuni ca
părţi ale încărcării primare, până când legătura este utilizată în totalitate. Termenii limită
relativi ai pachetelor în timp real sunt de aproximativ 1 sau 2 ms cel mult. Raportul de
imprecizie reprezintă numărul de pachete principale raportat la numărul de pachete
opţionale şi depinde de natura conţinutului pachetelor de timp real. Serverul primeşte din
lăţimea disponibilă a benzii de transmisie aproximativ 10 % iar perioada sa este de 10 ms.
Performanţele nodului de ieşire depind de următorii factori:
 raportul de omitere (engl. miss ratio), care reprezintă fracţiunea de pachete care au
pierdut termenii limită (excluzând pachetele ce au fost ignorate),
 raportul de pierdere (engl. loss ratio), adică fracţiunea de pachete care au fost ignorate
de filtrul de imprecizie, şi
 raportul de nevalabilitate (engl. invalid ratio), reprezentat prin fracţiunea de pachete ce
nu sunt utilizabile de către receptor (de exemplu, pachetele întârziate sau cele ignorate).
Fie o rată de omitere a termenului limită Dr, definită după cum urmează:

N dm
Dr  (1.1)
N

unde: Nd este numărul de pachete care au pierdut termenii lor limită şi N este numărul total
de pachete transmise. Adăugând numărul Ndm1 de un pachet care a pierdut termenul său
limită, cu Ndm2 de două pachete care au pierdut termenii limită corespunzători şi aşa mai
departe, rezultă Ndm. Pentru pachete cu lungimea de n-biţi, se poate scrie relaţia

n
N dm  N
i 1
dmi (1.2)

Definim acum o rată de pierdere a pachetelor pe magistrala de comunicaţii egală cu


raportul dintre numărul de pachete pierdute Nlk şi numărul total de pachete transmise, N. Fie
aceasta Lr, unde:

N lk
Lr  (1.3)
N
unde:

8
k
Nlk=  N lki (1.4)
i 1

Notăm rata de utilizare a reţelei de comunicaţii Ur ca fiind raportul dintre numărul


total de pachete transmise N şi capacitatea totală a reţelei Cr. Astfel, putem scrie că:

N
Ur  (1.5)
Cr

unde capacitatea reţelei, Cr reprezintă numărul maxim de pachete care pot fi transmise fără
a produce blocarea traficului pe magistrala de comunicaţii.
Considerăm următorul exemplu. Presupunem că în traficul reţelei de comunicaţii se
trimit P1 pachete de mesaje video, P2 pachete de mesaje vocale şi P3 pachete de mesaje de
date. Pentru a studia rata de omitere a termenului limită, rata de pierdere a pachetelor în
trafic dau procentul de încărcare a reţelei de comunicaţii, vom presupune că: P1 = 100
pachete, P2 = 2000 pachete şi P3 = 40 pachete, unde rata medie a datelor este de 1.28 Mbps,
25.175 kbps şi respectiv 1 Mbps. O reţea de comunicaţii suportă în medie 5000 de astfel de
pachete. Cu aceste valori, rezultă:

- numărul total de pachete transmise este: N = P1 + P2 + P3 = 2140 pachete,


- pragul de supraaglomerare are valoarea: Th = 5000 şi
N 2140
- încărcarea maximă a reţelei este: U r    42% .
Cr 5000

În figura 1.4 sunt prezentate graficele corespunzătoare performanţelor nodului de


ieşire pentru valorile considerate mai sus: a) rata de omitere a termenului limită, b) rata de
pierdere şi c) utilizarea reţelei.
Se observă că, rata de omitere (care poate fi cel mult egală cu 1), creşte odată cu
creşterea numărului de pachete ce ajung în reţeaua de comunicaţii. Pentru o valoare scăzută
a pragului de supraaglomerare (de exemplu, Th = 100 pachete) teoretic nu vor exista
pachete care vor omite termenii lor limită. Dacă Th = 500, atunci câteva pachete
(aproximativ 10% din numărul total, adică 21 pachete) vor pierde termenii lor limită. Pentru
Th = 1000, numărul pachetelor care vor pierde termenii lor limită va creşte către 20%. Dacă
încărcarea reţelei creşte foarte mult, adică Th = ∞, depăşind astfel încărcarea maximă pe
care o poate suporta fără a se bloca, atunci aproape toate pachetele transmise în reţeaua de
comunicaţii vor pierde termenii limită datorită supraaglomerării traficului.
În figura 1.4 b), rata de pierdere a pachetelor este cel mult 0.5, deoarece nu vor
exista mai mult de 50% pachete din numărul total pierdute în trafic. Rata de pierdere creşte
şi ea odată cu sporirea numărului de pachete pe canalele de comunicaţie şi creşte de
asemenea cu creşterea pragului de supraaglomerare în trafic. Dacă Th este mai mic decât
500, teoretic, nu vor exista pachete pierdute în reţea deoarece traficul este redus şi pentru
vitezele considerate, ele vor fi transmise fără probleme. Dacă Th creşte, atunci va creşte şi
numărul pachetelor pierdute iar pentru Th = ∞, aproximativ jumătate din numărul total al
pachetelor transmise se vor pierde.
Utilizarea reţelei este prezentată în figura 1.4 c). Reţeaua este utilizată în proporţie
de 50 % dacă se transmite un număr mic de pachete de mesaje pe magistrala de comunicaţii
(de exemplu, se transmit 500 pachete dacă încărcarea maximă a fost considerată egală cu

9
5000 pachete) şi creşte odată ce ajung mai multe pachete pe canalele de comunicaţii. Dacă
numărul pachetelor transmise este prea mare, deci pragul de supraaglomerare tinde către
infinit, atunci utilizarea reţelei creşte către 100 %.

Dr Lr
1.0 0.5
0.9
0.8 0.4
0.7
0.6 0.3
0.5
0.4 0.2
0.3
0.2 0.1
0.1 N Nlk
0 d 0
500 1000 1500 2000 2500 500 1000 1500 2000

a b
Ur
100
%
80%

60%

40%

20%
N
0
500 1000 1500 2000

c
Fig. 1.4 a) rata de omitere a termenului limită, b) rata de pierdere,
c) utilizarea reţelei

1.3.4 Concluzii

Algoritmul propus pentru comunicaţii în timp real reduce încărcarea traficului


(figura 1.4c) şi asigură că un număr cât mai mare de pachete conţinând mesaje de timp real
sau în non-timp real vor întâlni termenii lor limită capăt-la-capăt şi un număr cât mai mic de
pachete vor fi pierdute. Acest protocol este mult mai eficient în cazul aplicării lui la un
trafic uniform distribuit între pachetele principale şi cele opţionale, evitând congestionarea
reţelelor de comunicaţii. Dacă supraaglomerarea traficului survine în timpul unei explozii
de pachete principale, atunci vor fi transmise pachetele principale sosite în explozie înaintea
pachetelor opţionale, pentru a evita supraaglomerarea traficului. Prin algoritmul ales, pragul
de congestionare a traficului permite ajustarea controlului supraaglomerării în funcţie de
natura încărcării traficului. În general, scăderea pragului de congestionare conduce la o
ocuparea mai scăzută a canalelor, întârzieri mai mici ale pachetelor, instabilităţi scăzute
datorate întârzierilor pachetelor şi rapoarte de omitere a termenilor limită mai mici. Costul
10
acestor beneficii este o rată mai mare de pierdere a pachetelor şi o reducere a calităţii
pachetului in timp real livrat către beneficiar. Raportul de pierdere a termenilor limită de
reduce cu preţul creşterii ratei de pierdere a pachetelor (această creştere a numărului de
pachete pierdute este destul de mică şi preţul plătit astfel merită dacă se obţine o fluenţă
mare a traficului).

11
CAPITOLUL 5

MODURI DE ADRESARE PE MAGISTRALA I 2C

5.1 Adresarea pe 7 biţi

5.1.1 Formate cu adrese de 7 biţi

Transferurile de date pe magistrala serială I 2C care folosesc modul de adresare pe 7


biţi au formatul prezentat în figura 5.1.

SDA

SCL
1-7 8 9 1-7 8 9 1-7 8 9

S P

condiţie ADRESE R/ W ACK DATA ACK DATA ACK condiţie


START STOP

Fig. 5.1 Un transfer de date complet

Înainte de a începe trasferul propriu-zis, trebuie generată o condiţie START (S), după
care se transmite o adresă de slave. Această adresă are lungimea de 7 biţi şi este urmată un
al optulea bit (notat pe figură R / W ) care reprezintă bitul de direcţie:
- dacă R / W = “0”, va urma o transmisie de date (WRITE),
- dacă R / W = “1”, va urma o cerere de date de pe magistrală (READ).
Un transfer de date este întotdeauna încheiat de o condiţie STOP (P) generată
obligatoriu de dispozitivul master care a iniţiat transferul.
Totuşi, dacă un dispozitiv master doreşte încă să mai comunice pe magistrală (să
transmită sau să recepţioneze date), el poate genera o condiţie START repetat (Sr) şi adresa
unui alt slave, fără a genera o condiţie STOP.
Sunt posibile diferite combinaţii de formate citire/scriere pentru un transfer de date pe
magistrală, şi anume:

46
a) Transmiţătorul master transmite date către receptorul slave, situaţie prezentată în
figura 5.2. În acest caz, direcţia transferului de date nu se modifică.

S ADRESĂ SLAVE R/ W A DATA A DATA A/A P

data transferată
'0'(scriere) n bytes + confirmare

de la master spre slave A = confirmare (SDA LOW)


A = neconfirmare (SDA HIGH)
de la slave spre master S = condiţie START
P = condiţie STOP

Fig. 5.2 Transmiţător master adresând un receptor slave cu o adresă de 7 biţi

b) Receptorul master citeşte date de la dispozitivul slave imediat după primul byte de date
(figura 5.3).

S ADRESĂ SLAVE R/ W A DATA A DATA A P

data transferată
n bytes + confirmare
“1” citire

Fig. 5.3 Un master citeşte un slave imediat după primul byte

La momentul primei confirmări, transmiţătorul master devine un receptor master iar


receptorul slave devine transmiţător slave. Această primă confirmare este încă generată de
dispozitivul slave. Condiţia STOP (P) va fi generată de masterul care a transmis anterior o
neconfirmare (Ā).

c) Formatul combinat este prezentat în figura 5.4.


Pe timpul unei schimbări a direcţiei datelor într-un unui transfer, condiţia START şi
adresa slave sunt ambele repetate, dar cu bitul inversat. Dacă un receptor master transmite o
condiţie de START repetat (Sr), înseamnă că a transmis anterior o neconfirmare (Ā).
Observaţii:
1. Se pot folosi formate combinate, de exemplu pentru a controla o memorie serială. În
această situaţie, locaţia de memorie internă trebuie să fie scrisă pe durata primului byte de
date. Datele pot fi transferate doar după o condiţie START şi repetarea adresei
dispozitivului slave.
2. Toate deciziile privind auto-incrementarea sau decrementarea locaţiilor de memorie
accesate anterior sunt luate de proiectantul dispozitivului.
3. Fiecare byte de date este urmat obligatoriu de un bit de confirmare sau un bit de
neconfirmare, cum indică blocurile A respectiv Ā din secvenţa prezentată anterior.
4. Dispozitivele compatibile cu magistrala I2C trebuie să reseteze logica lor de
magistrală la recepţionarea unei condiţii START (S) sau START repetat (Sr) astfel încât
47
toate dispozitivele să anticipeze transmiterea unei adrese slave, chiar dacă aceste condiţii
START nu sunt poziţionate în concordanţă cu formatul corect.
5. O condiţie START (S) urmată imediat de o condiţie STOP (P) (mesaj nul) reprezintă
un format considerat ilegal.

S ADRESĂ SLAVE R/ W A DATA A / A Sr ADRESĂ SLAVE R/ W A DATA A / A P

n bytes + n bytes +
citire sau scriere
confirmare* confirmare*
citire sau scriere
direcţia
transferului
* Sr = condiţie de START repetat
nu se împarte întrucât spoate modifica
direcţia de transfer a biţior în acest punct
de date şi confirmare
depinde de biţii R/W

Fig. 5.4 Formatul combinat

4.1.2 Definirea biţilor din primul byte

În procedura de adresare pe 7 biţi pentru magistrala I 2C, primul byte de date care
urmează după condiţia START (S) determină dispozitivul slave care va fi selectat de
master. Excepţie face adresarea de tip "apel general" care poate chema toate dispozitivele.
Când se foloseşte această adresare, teoretic, toate dispozitivele ar trebui să răspundă
cu o confirmare. Totuşi, dispozitivele pot fi făcute să ignore această adresare. În acest caz,
al doilea byte din adresa de tip “apel general” defineşte acţiunea care trebuie efectuată
(citire de date sau scriere de date).
Primii şapte biţi ai primului byte de date formează adresa dispozitivului slave, aşa
cum se arată în figura 5.5. Al optulea bit reprezintă cel mai puţin semnificativ bit (LSB) şi
determină direcţia mesajului.
LSB = “0”, dispozitivul master va scrie date într-un dispozitiv slave selectat.
LSB = “1”, dispozitivul master va citi informaţii de la slave-ul adresat.

MSB LSB
R/ W

adresă slave

Fig. 5.5 Primul byte de date după condiţia START

Ori de câte ori se transmite o adresă pe magistrala serială, fiecare dispozitiv din
sistem compară primii şapte biţi de după START cu propria sa adresă. Dacă aceştia sunt
identici, dispozitivul este adresat de master, ca un receptor-slave sau transmiţător-slave, în
funcţie de valoarea “1” respectiv “0” a bitului de direcţie R / W .
48
Adresa unui dispozitiv slave are o parte fixă şi o parte programabilă. Deoarece este
posibil să existe câteva dispozitive identice într-un sistem, partea programabilă a adresei
slave-ului fixează numărul maxim posibil de astfel de dispozitive, care pot fi conectate la
magistrala serială. Numărul biţilor din adresa programabilă depinde de numărul de pini
disponibili. De exemplu, dacă un dispozitiv are 4 biţi de adresă ficşi şi 3 biţi programabili,
înseamnă că la aceeaşi magistrală se pot conecta 8 dispozitive identice.
Alocarea adreselor I2C este coordonată de comitetul pentru magistrala I 2C. Sunt
precizate opt adrese (0000XXX şi 1111XXX), rezervate pentru scopurile din Tabelul 5.1.
Combinaţia 11110XX a adreselor slave a fost rezervată pentru modul de adresare pe 10 biţi,
care va fi explicat mai târziu.

Tabel 5.1 Definirea biţilor din primul byte


ADRESĂ SLAVE BIT R / W DESCRIERE

0000 000 0 Adresă apel general


0000 000 1 Byte START (1)
0000 001 X Adresă CBUS (2)
0000 010 X Rezervat pentru diferite formate de magistrală (3)
0000 011 X Rezervat pentru aplicaţii viitoare
0000 1XX X Cod master mod Hs (viteză înaltă)
1111 1XX X Rezervat pentru aplicaţii viitoare
1111 0XX X Adresare slave pe 10 biţi

Observaţii:
1. Nici un dispozitiv conectat la magistrală nu are permisiunea să confirme recepţia unui
byte START.
2. Adresa CBUS a fost rezervată pentru a permite interconectarea mixtă a dispozitivelor
compatibile CBUS şi cu magistrala I2C în acelaşi sistem. Dispozitivele compatibile cu
magistrala I2C nu au permisiunea să răspundă la recepţionarea acestei adrese.
3. Adresa rezervată pentru un format de magistrală diferit este inclusă pentru a permite
protocolului I2C să fie mixat cu alte protocoale. Numai dispozitivele compatibile cu
magistrala I2C care pot lucra cu astfel de formate şi protocoale au permisiunea de a
răspunde la această adresă.

5.1.3 Adresa APEL GENERAL (0000 0000)

Adresa “apel general” este folosită pentru adresarea tuturor dispozitivelor conectate
la magistrala serială I2C.
Dacă un dispozitiv nu are nevoie să primească date în structura de apel general,
poate ignora această adresă prin netransmiterea unei confirmări (1 bit de confirmare A).
Dacă un dispozitiv are nevoie să primească date la o adresă de apel general, atunci va
confirma această adresă devenind receptor-slave. Al doilea şi următorii bytes de date vor fi
confirmaţi de fiecare receptor-slave capabil să manipuleze datele. Un dispozitiv slave care
nu poate procesa unul ditre aceşti bytes trebuie să îl ignore prin neconfirmare (un bit Ā).
Semnificaţia adresei de apel general este precizată în al doilea byte (figura 5.6).

49
LSB

0 0 0 0 0 0 0 0 A X X X X X X X B A

primul byte al doilea byte


(adresă apel general)

Fig. 5.6 Formatul adresei “apel general”

Există două situaţii referitor la valoarea celui mai puţin semnificativ bit (LSB),
reprezentat de obicei printr-o singură literă B:

Cazul 1- LSB (bit B) = “0”. În această situaţie, al doilea byte are următoarea definiţie:
0000 0110 ('06' Hex). Resetul şi scrierea părţii programabile a adresei slave prin
hardware. La recepţionarea acestei secvenţe de 2 bytes, toate dispozitivele proiectate să
răspundă la adresa de apel general se resetează şi preiau partea programabilă a adresei lor.
Trebuie luate măsuri pentru a asigura că nici un dispozitiv nu trage jos liniile SDA sau SCL
după aplicarea tensiunii de alimentare, altfel aceste nivele LOW vor bloca magistrala.
0000 0100 ('04' Hex). Scrie partea programabilă a adresei slave prin hardware. Toate
dispozitivele care îşi definesc partea programabilă a adresei lor prin hardware (şi care
răspund la adresa apel general) vor 'bloca' această parte programabilă la recepţionarea
secvenţe de doi bytes. În acest caz, dispozitivul nu va fi resetat.
0000 0000 ('00' Hex). Acest cod nu are permisiunea de a fi folosit ca al doilea byte.
Secvenţe ale procedurii de programare sunt publicate în foile de catalog ale
dispozitivelor respective.
Codurile rămase nu sunt precizate şi dispozitivele trebuie să le ignore.

Cazul 2 – LSB (bit B) = “1”. În această situaţie, secvenţa de doi bytes este un “apel general
hardware”, adică secvenţa este transmisă de un dispozitiv master hardware, de exemplu un
scanner de tastatură, care nu poate fi programat să transmită o adresă slave dorită.
Deoarece un master hardware nu poate şti în avans la care dispozitiv slave trebuie
transferat mesajul, el poate doar trimite acest apel general hardware împreună cu propria sa
adresă - identificându-se astfel în sistem . Această situaţie este prezentată în figura 5.7.

S 00000000 A ADRESĂ MASTER 1 A DATA A DATA A P

(B) S

adresă apel al doilea n bytes + confirmare


general byte

Fig. 5.7 Transfer de date de la un transmiţător master hardware

50
Cei şapte biţi rămaşi în al doilea byte conţin adresa dispozitivului master hardware.
Această adresă este recunoscută de un dispozitiv inteligent (de exemplu un microcontroler)
conectat la magistrală, care va direcţiona apoi informaţia de la dispozitivul hardware
master. Dacă dispozitivul master hardware poate acţiona de asemenea ca un slave atunci,
adresa slave este identică cu adresa master. În figura 5.8 se prezintă o situaţie altenativă.

S ADRESĂ SLAVE, MASTER H/W A ADRESĂ ÎNCĂRC. PT. MASTER H/W X A P

scriere

S ADRESĂ ÎNCĂRC DE LA MASTER H/W A DATA A DATA P

scriere (n bytes + confirmare)

Fig. 5.8 Transfer de date cu un transmiţător hardware capabil să încarce date direct
în dispozitive slave
(a) masterul de configurare trimite adresa de încărcare la masterul harware
(b) masterul hardware încarcă datele la circuitul slave selectat

5.1.4 Bytul START (0000 0001) la adresarea pe 7 biţi

Microcontrolerele pot fi conectate la magistrala serială I 2C în două moduri:


1. Dacă microcontrolerul are hardware de interfaţă pentru magistrala I 2C integrată on-chip,
atunci el poate fi programat să fie întrerupt numai de cereri de pe magistrală;
2. Dacă microcontroler-ul nu are o astfel de interfaţă, atunci el va trebui să monitorizeze în
mod constant magistrala prin mijloace software. Din acest motiv, va avea mai puţin timp
pentru a realiza funcţia pentru care este destinat.
Există totuşi o diferenţă de viteză între dispozitivele hardware rapide şi
microcontrolerul lent care se cuplează prin testare (polling) software. Transferul de date
poate fi precedat de o procedură START mult mai lungă decât una normală (figura 5.9).
Procedura START conţine următoarele etape:
- o condiţie START (S);
- un byte START (0000 0001);
- un impuls clock de confirmare (ACK);
- o condiţie START repetat (Sr).
După ce s-a transmis o condiţie de START (S) de un master care solicită accesul la
magistrală, se transmite bytul START (0000 0001). Un alt microcontroler eşantionează
linia SDA cu viteză scăzută, până când detectează unul din cele şapte zerouri din bytul
START. După detectarea acestui nivel LOW pe linia SDA, microcontrolerul comută la o
viteză de eşantionare mai ridicată, pentru a găsi condiţia START repetat (Sr), de care se
foloseşte pentru sincronizarea propriului clock cu acela de pe magistrală (SCL).
51
SDA
confirmare
fictivă
(HIGH)

SCL
1 2 7 8 9
ACK

byte start 00000001

Fig. 5.9 Procedura byte START

Un receptor hardware se va reseta la recepţionarea condiţiei START repetat şi ca


urmare va ignora bytul START. După bytul START este generat un impuls de clock asociat
confirmării (ACK). Acesta este prezent numai pentru a se încadra în formatul de
manipulare a bytului folosit pe magistrală.
Observaţie: Nici un dispozitiv nu are permisiunea de a confirma bytul START.

5.1.5 Compatibilitatea CBUS

Receptoarele CBUS pot fi conectate la magistrala I2C în modul standard însă, este
nevoie de o a treia linie, denumită DLEN iar bitul de confirmare (A) trebuie omis.
În mod normal, transmisiile pe magistrala I 2C sunt secvenţe de bytes (8 biţi);
dispozitivele compatibile CBUS au formate diferite. Într-o structură de magistrală mixtă,
dispozitivele de pe magistrala I2C nu trebuie să răspundă la mesajele CBUS.; de aceea, a
fost rezervată o adresă CBUS specială (0000 001X) la care nici un dispozitiv compatibil cu
magistrala I2C nu va răspunde. După transmiterea adresei CBUS, linia DLEN poate fi
activată şi se poate transmite un format de tip CBUS (figura 5.10). Urmează o condiţie
STOP, după care toate dispozitivele sunt din nou gata să accepte date.

SDA

SCL

S P

bit impuls STOP


START adresa R/W n biţi date
confirmare încărcare
CBUS raportată la CBUS
impulsuri
de clock

Fig. 5.10 Formatul datelor în transmisii cu transmiţător/receptor CBUS

52
Transmiţătoarele-master pot trimite formate CBUS după trimiterea adresei CBUS.
De fiecare dată, transmisia se încheie cu o condiţie STOP, recunoscută de toate
dispozitivele.
Observaţie: În cazul în care configuraţia CBUS este cunoscută, iar expandarea cu
dispozitive compatibile CBUS nu este prevăzută, proiectantul poate adapta timpul de
menţinere la cerinţele specifice dispozitivelor folosite.

5.2 Extensii ale magistralei I2C standard

Specificaţia modului standard pentru magistrala I2C, cu o viteză a transferului de


date de până la 100 kbit/s şi adresare pe 7 biţi, există încă de la începutul anilor 1980. Acest
concept a crescut rapid ca popularitate şi este acceptat ca standard cu câteva sute de tipuri
de circuite integrate compatibile, oferite de Philips şi alţi producători.
Pentru a obţine viteze de lucru mai mari şi pentru a avea disponibile mai multe
adrese slave în scopul creşterii numărului de noi dispozitive conectate la magistrală,
specificaţia pentru modul standard este disponibilă cu următoarele extensii:

 Modul rapid (F-fast mode), cu o viteză de până la 400 Kbit/s;


 Modul viteză înaltă (Hs – high speed mode), cu o viteză de până la 3.4 Mbit/s;
 Adresarea pe 10 biţi, care permite utilizarea de până la 1024 de adrese slave
suplimentare.

Extinderea specificaţiei de magistrală I2C standard a avut următoarele motivaţii:


- Multe aplicaţii implică transferuri mari de date seriale, la viteze ce depăşesc 100 kbit/s
(mod standard), sau 400 kbit/s (mod rapid). Dispozitivele magistrală I2C sunt acum
disponibile cu viteze de transfer de până la 3.4 kbit/s (mod viteză înaltă Hs), fără o creştere
semnificativă a costului de producţie pentru circuitele de interfaţă.
- Cum majoritatea celor 112 adrese disponibile cu scheme de adresare pe 7 biţi au fost
alocate deja, este clar că sunt necesare mai multe combinaţii de adrese pentru a avea mai
multe adrese slave pentru noile dispozitive. Problema a fost rezolvată cu noua schemă de
adresare pe 10 biţi, care permite creşterea de aproape zece ori a disponibilului de adrese.
- Noile dispozitive slave cu interfaţă de magistrală I2C pentru mod rapid sau înaltă viteză
au adrese slave de 7 sau de 10 biţi. Sunt preferate adresele pe 7 biţi deoarece au ca rezultat
mesaje mai scurte. Dispozitivele cu adrese de 7 sau 10 biţi pot fi mixate pe acelaşi sistem cu
magistrală I2C, indiferent dacă sistemul lucrează în mod rapid sau viteză înaltă. Atât
dispozitivele master existente cât şi cele viitoare pot genera adrese de 7 biţi sau de 10 biţi.
Extensiile magistralei seriale I2C vor fi prezentate pe larg în paragrafele următoare.

5.2.1 Modul rapid (F)

În specificaţia de mod rapid pentru magistrala I 2C, protocolul, formatul, nivelele


logice şi sarcina capacitivă maximă pentru liniile SDA şi SCL precizate pentru mod
standard sunt neschimbate. Noile dispozitive cu interfaţă pentru magistrala I2C trebuie să
îndeplinească cel puţin cerinţele din specificaţiile de mod rapid sau viteză înaltă.
Dispozitivele care lucrează în mod rapid (F) pot recepţiona sau transmite date cu
viteze de până la 400 Kbit/s. Minima cerinţă este ca aceste dispozitive să se sincronizeze

53
pentru aceste transferuri (pot prelungi perioadele LOW ale semnalului pentru a reduce
viteza de transfer). Dispozitivele care lucrează în modul rapid sunt compatibile inferior, cu
dispozitivele care lucrează in modul standard şi pot comunica cu acestea într-un sistem cu
magistrală I2C şi viteză de lucru între 0 şi 100 Kbit/s.
Deoarece dispozitivele de mod standard nu sunt compatibile superior, ele nu trebuie
încorporate într-un sistem cu magistrală I2C de mod rapid deoarece nu pot urmări ratele
înalte de transfer şi pot apărea stări nepredictibile.
Specificaţia mod rapid (Fast-mode) pentru magistrala I2C are următoarele
caracteristici suplimentare faţă de cele enumerate pentru modul standard:
- Viteza de bit este crescută de la 100 Kbit/s la 400 Kbit/s.
- Controlul în timp al datelor seriale (SDA) şi al clock-ului serial (SCL) a fost adaptat. Nu
este necesară nici o compatibilitate cu alte sisteme de magistrală cum ar fi CBUS, deoarece
acestea nu pot funcţiona la viteze de bit crescute.
- Intrările dispozitivelor de mod rapid includ suprimarea “şpiţurilor” de tensiune şi un
trigger Schmitt la intrările SDA şi SCL.
- Bufferele de ieşire ale dispozitivelor de mod rapid includ controlul pantei pe fronturile
căzătoare ale semnalelor SDA şi SCL.
- Dacă alimentarea unui dispozitiv de mod rapid este decuplată, pinii I/O pentru SDA şi
SCL trebuie să devină flotanţi pentru a nu obstrucţiona liniile magistralei.
- Dispozitivele externe Rp de tip pull-up, conectate la liniile magistralei, trebuie adaptate
la cel mai scurt timp de creştere maxim permis pentru modul rapid. Pentru sarcini
capacitive de până la 200 pF, dispozitivul pull-up pentru fiecare linie poate fi un rezistor
(Rp); pentru sarcini capacitive de 200 pF … 400 pF, dispozitivul pull-up poate fi o sursă de
curent (cu o valoare de maxim 3 mA) sau un circuit cu rezistor comutaţie.

5.2.2 Modul viteză înaltă (Hs)

Transferul datelor pe magistrala serială I 2C se realizează cu viteză înaltă (Hs), de


până la 3,4 Mbit/s. În figura 5.11 este configuraţia fizică a magistralei I2C dintr-un sistem
care foloseşte numai dispozitive de mod viteză înaltă (Hs).
Pentru a realiza un transfer de date în mod viteză înaltă s-au realizat următoarele
îmbunătăţiri ale magistralei I2C standard:
- Dispozitivele master Hs au un buffer de ieşire tip open-drain pentru semnalul SDAH şi
o combinaţie de circuit open-drain pull-down şi sursă de curent pull-up pe ieşirea SCLH
(1). Circuitul sursă de curent scurtează timpul de creştere al semnalului SCLH. Numai sursa
de curent a unui singur master este activată la un anumit moment de timp şi numai pe
durata modului Hs.
- Pe durata transferului Hs în sistemele multi-master nu se realizează nici o arbitrare sau
sincronizare de clock, arbitrarea se încheie după transmisia unui cod master precedent în
modul rapid sau standard (F/S).
Dispozitivele de mod Hs generează un clock serial cu HIGH / LOW = 1 / 2, care
scoate în evidenţă cerinţele de control pentru timpii de stabilire şi timpii de menţinere.
Ca opţiune, dispozitivele master de mod Hs pot avea o punte internă (1). Pe timpul
transferului de mod Hs, liniile de date de viteză înaltă (SDAH) şi clock serial de înaltă
viteză (SCLH) ale dispozitivelor de mod Hs sunt separate de această punte de la liniile SDA
şi SCL de la dispozitivele de mod rapid/standard (F/S). Aceasta reduce sarcina capacitivă
pe liniile SDAH şi SCLH ce rezultă din timpii de creştere şi de cădere mai rapizi.

54
VDD

RP RP
SDAH

SCLH

RS RS RS RS RS RS RS RS
(1) (1) (1) (1)
SDAH SCLH SDAH SCLH SDAH SCLH SDA SCL SDAH SCLH SDA SCL

(2) (2) (2) (2) (2) (2) (2) (2)


MC MC
(4) (4) S (3)
VS (3) VDD
DD

VSS VSS VSS VSS

SLAVE SLAVE MASTER / MASTER /


SLAVE SLAVE

(1) SDA şi SCL nu sunt folosite în acest caz, dar pot avea alte funcţii.
(2) La filtrul de intrare.
(3) Numai dispozitivul master activ îşi poate activa propriul circuit sursă de
curent pull-up.
(4) Tranzistoarele reprezentate cu linie întreruptă sunt ieşiri opţionale cu
drena în gol care pot extinde semnalul de clock serial SCLH.

Fig. 5.11 Configuraţia magistralei I2 C numai cu dispozitive de mod înaltă


viteză (Hs)

Singura diferenţă între dispozitivele slave de mod Hs şi dispozitivele slave de mod


F/S este viteza de funcţionare. Dispozitivele slave de mod Hs au buffere de ieşire open-
drain pe ieşirile SCLH şi SDAH. Opţional se pot utiliza tranzistoare pe pinul SCLH pentru
a mări nivelul LOW al semnalului SCLH, deşi acesta este permis numai după bitul de
confirmare în transferurile de mod Hs.
Intrările în dispozitivele de mod Hs includ suprimarea şpiţurilor de tensiune înaltă şi
un trigger Schmitt la intrările SDAH şi SCLH.
Bufferele de ieşire ale dispozitivelor de mod Hs includ control de pantă al
fronturilor pentru semnalele SDAH şi SCLH.
Pinii SDA şi SCL ai dispozitivelor master sunt folosiţi doar în sisteme cu magistrală
cu mixare de viteze şi nu sunt conectaţi într-un sistem care lucrează doar în mod Hs. În
astfel de cazuri, aceşti pini pot fi folosiţi pentru alte funcţii.
Rezistorii serie opţionali Rs protejează etajele I/O ale dispozitivelor conectate la
magistrala serială I2C împotriva şpiţurilor de înaltă tensiune şi minimizează oscilaţiile
tranzitorii amortizate şi inteferenţa.
Rezistorii pull-up Rp menţin liniile SDAH şi SCLH la nivel HIGH atunci când
magistrala este liberă şi asigură tranziţia semnalelor de la LOW la HIGH pe durata timpului
de creştere cerut. Pentru sarcini capacitive ale liniilor magistralei mai mari de 100 pF,
rezistorul Rp poate fi înlocuit cu o sursă externă de curent pull-up.
Nefiind acţionat de un bit de confirmare (A), timpul de creştere al impusurilor SCLH
din modul Hs este scurtat de circuitul sursă de curent pull-up MCS al masterului activ.
55
5.2.3 Transferul serial de date în mod Hs

Formatul transferului serial de date în modul Hs respectă specificaţiile magistralei


pentru modul standard. În figura 5.12 este formatul pentru transferul de date în acest mod.

mod Hs (sursă de curent pentru SCLH


mod F/S activată) mod F/S

S COD MASTER Ā Sr ADR. SLAVE R/W A DATE A/Ā P

(n bytes +
confirmare) modul Hs continuă

Sr ADR. SLAVE

Fig. 5.12 Formatul transferului de date în mod înaltă viteză (Hs)

Modul Hs începe doar după următoarele condiţii (în mod F/S - rapid/standard):
- condiţia START (S);
- codul master de 8 biţi (0000 1XXX);
- bitul de neconfirmare (Ā).

Codul master are două funcţii principale:


- permite arbitrarea şi sincronizarea între dispozitivele master competitoare în modurile
F/S (rapid/standard), având ca rezultat un singur master câştigător;
- indică începutul unui transfer în modul Hs.
Codurile master în mod Hs sunt coduri rezervate de 8 biţi care nu sunt folosite
pentru adresarea dispozitivelor slave sau în alte scopuri. În plus, deoarece fiecare dispozitiv
master are propriul său cod master, în sistemul cu magistrală I2C pot fi prezente până la opt
dispozitive master de mod Hs (chiar atunci când codul master 0000 1000 trebuie rezervat
pentru teste şi diagnosticare a defectelor). Codul master în mod Hs este programabil prin
software şi ales de proiectantul de sistem. Figura 5.13 descrie modul de efectuare a unui
transfer de date în modul Hs.
Arbitrarea şi sincronizarea clock-ului au loc doar pe timpul transmisiei codului
master şi a bitului de neconfirmare ( A ) după care, un master câştigător rămâne activ. Codul
master indică celorlalte dispozitive începerea unui transfer de date în mod Hs iar
dispozitivele conectate la magistrala serială se supun cerinţelor specificaţiei pentru modul
Hs. Deoarece nici un dispozitiv nu are permisiunea să confirme codul master, acesta va fi
urmat de un bit de neconfirmare ( A ). După bitul de neconfirmare şi după ce linia SCLH a
devenit HIGH, masterul activ comută în modul Hs şi activează circuitul sursă de curent
pull-up pentru semnalul SCLH.
Deoarece alte dispozitive pot întârzia transferul serial înainte de momentul tH (prin
extinderea perioadei LOW a semnalului SCLH), masterul va activa sursa de curent pull-up
doar când linia SCLH e liberă şi la nivel HIGH, accelerând timpul de creştere SCLH.
56
cod master de 8 biţi 0000 1xxx t1
Ā tH
S

SDAH

SCLH 1 6 7 8 9
2 la 5

mod rapid / standard


(F/S)

R/W A n x (8 biţi DATE + A/Ā)


Sr SLA 7 biţi Sr
P

SDAH

SCLH 1 2 la 5 6 7 8 9 1 2 la 5 6 7 8 9
dacă e P, altfel
mod înaltă viteză (Hs) mod F/S

tH tFS
dacă e Sr,
= MCS sursă de curent pull-up (linie
întreruptă)
= Rp rezistor pull-up altfel mod Hs

Fig. 5.13 Un transfer complet în mod înaltă viteză (Hs)

Masterul activ transmite apoi o condiţie START repetat (Sr) urmată de o adresă
slave de 7 biţi (sau o adresă slave de 10 biţi) cu 1 bit de adresă şi recepţionează 1 bit de
confirmare (A) de la slave-ul selectat.
După o condiţie START repetat (Sr) şi după fiecare bit de confirmare (A) sau bit de
neconfirmare ( A ), masterul activ dezactivează circuitul sursă de curent pull-up, permiţând
celorlalte dispozitive de pe magistrală să întârzie transferul serial prin extinderea perioadei
LOW a semnalului SCLH.
Masterul activ reactivează din nou circuitul sursă de curent pull-up atunci când,
toate dispozitivele au eliberat linia şi semnalul SCLH atinge nivelul HIGH, accelerând
ultima parte a timpului de creştere a semnalului SCLH.
Transferul de date continuă după următorul START repetat (Sr) şi comută înapoi în
modul F/S (rapid/standard) numai după o condiţie STOP (P).
Pentru a reduce timpul consumat de codul master, un dispozitiv master poate lega un
număr de transferuri în mod Hs separate prin condiţii de START repetat (Sr).

57
5.2.4 Comutarea din modul F/S în modul Hs şi înapoi

După reset şi iniţializare, dispozitivele care lucrează în modul Hs trebuie să treacă în


modul rapid (F) (deoarece F/S este compatibil inferior cu modul standard). Fiecare
dispozitiv de mod Hs poate comuta din modul rapid în modul viteză înaltă şi înapoi şi este
controlat de transferul serial pe magistrala I 2C.
Înaintea momentului t1 din figura 5.13, fiecare dispozitiv conectat la magistrala
serială funcţionează în modul F. Între momentele t1 şi tH (acest interval poate fi extins de
orice dispozitiv) fiecare dispozitiv de pe magistrală trebuie să recunoască secvenţa "S 0000
1XXX" şi să comute circuitul său intern de la setările modului F la setările modului Hs.
Între momentele t1 şi tH dispozitivele master şi slave conectate realizează aceste
cerinţe prin următoarele acţiuni:
Dispozitivul master activ (câştigător):
- adaptează filtrele de intrare SDAH şi SCLH conform cerinţelor de suprimare a şpiţurilor
de emsie în modul Hs;
- adaptează timpii de fixare şi timpii de menţinere după cerinţele modului Hs;
- adaptează controlul pantei etajelor sale SDAH şi SCLH după cerinţele modului Hs;
- comută viteza de bit în modul Hs, care este necesară după depăşirea momentului tH;
- activează circuitul sursei de curent din etajul său de ieşire SCLH la momentul tH.
Dispozitivele master neactive sau perdante:
- adaptează filtrele de intrare SDAH şi SCLH după cerinţele de suprimare a şpiţurilor de
tensiune în modul Hs;
- aşteaptă o condiţie STOP (P) pentru a detecta momentul când magistrala este iar liberă.
Toate dispozitivle slave:
- adaptează filtrele de intrare SDAH şi SCLH după cerinţele de suprimare a şpiţurilor de
tensiune în modul Hs;
- adaptează timpii de fixare şi timpii de menţinere în concordanţă cu cerinţele modului Hs
(această cerinţă trebuie să fie întotdeauna îndeplinită prin adaptarea filtrelor de intrare);
- dacă este necesar, adaptează controlul pantei etajelor de ieşire SDAH. Pentru
dispozitivele slave, controlul pantei este aplicabil doar pentru etajele de ieşire SDAH şi, în
funcţie de toleranţele circuitelor, pot fi îndeplinite cerinţele atât pentru modul F/S cât şi
pentru modul Hs fără comutarea circuitelor lor interne.
La momentul tFS din figura 5.13, fiecare dispozitiv conectat la magistrala serială
trebuie să recunoască condiţia STOP (P) şi să comute circuitul său intern de la setarea în
mod Hs înapoi la setările modului F/S, cum erau înaintea momentului t1. Acestea trebuie să
se realizeze într-un timp minim de magistrală liberă, ca în specificaţiile modului F/S.

5.2.5 Dispozitive de mod Hs în moduri cu viteză mai mică

Nu sunt complet compatibile inferior şi pot fi conectate într-un sistem cu magistrală


I2C în mod rapid (F) sau în mod standard (S). În figura 5.14 este prezentată această situaţie.
Deoarece în această configuraţie nu se transmite nici un cod master, toate
dispozitivele master de mod Hs rămân în modul F/S şi comunică la vitezele modului rapid
(F) sau modului standard (S), având sursele lor de curent dezactivate.
Pinii SDAH şi SCLH sunt utilizaţi pentru a conecta dispozitivele respective la orice
sistem cu magistrală serială în modul rapid (F) sau în cel standard (S), permiţând pinilor
SDA şi SCL ai dispozitivelor master de mod Hs să fie folosiţi pentru alte funcţii.

58
VDD

RP RP

SDA

SCL

RS RS RS RS RS RS RS RS RS RS
(1) (1)

SDAH SCLH SDAH SCLH SDAH SCLH SDA SCL SDA SCL SDA SCL

(2) Ā (2) (2) (2) (2) (2) (2) (2) (2)


P
DATE (3)
DATE (4) (4) (4)
(citir VDD
e)
R/W
VSS
(scri
VSS VSS VSS VSS
ere)
A2
SLAVE
A1 SLAVE MASTER / SLAVE MASTER / SLAVE SLAVE
modR/W
Hs mod Hs mod Hs mod F/S mod F/S
S
ADRE

SLAV
(1) Puntea nefolosită. SDA şi SCL pot avea funcţie alternativă.
E
PRIMI
(2) La filtrul de intrare.
I7
(3) Sursa
1 1
de curent pull-up rămâne dezactivată.
BIŢI

(4) Tranzistoarele reprezentate cu linie întreruptă sunt ieşiri opţionale cu


1 1
0 X
drena
X în gol care pot extinde semnalul de clock serial SCL.
1
ADRE

SLAV Fig. 5.14 Dispozitive de mod Hs la viteză mod F/S
E
AL 2-
LEA
BYTE
ADRE

5.2.6 Moduri cu viteze mixate pe un sistem cu magistrală serială unică
SLAV
E
PRIMI
5.2.6.1 Adaptarea şi inteconectarea dispozitivelor cu viteze diferite
I7
BIŢI
1 1
1 1
Există aplicaţii în care, sistemele conţin combinaţii de dispozitive ce funcţionează în
0 X
X
mod Hs, F şi/sau F/S. Tabelul 5.2 redă vitezele de comunicaţie într-un astfel de sistem.
0
Adaptarea
Fig. vitezelor de bit între dispozitive se face cu o punte de interconectare care,
la momentul potrivit, conectează/deconectează o secţiune de mod Hs la/de la o secţiune de
3.1
mod F/S. 8Puntea include o funcţie de translare a nivelului, care permite conectarea
Rec cu tensiuni de alimentare diferite. De exemplu, dispozitivele de mod F/S
dispozitivelor
alimentateept
la o tensiune VDD2 = 5 V pot fi conectate împreună cu dispozitive de mod Hs
or-
alimentate la o tensiune VDD1 = 3 V sau mai puţin (VDD2 ≥ VDD1), însă prevăzute cu pini
mas
SDA şi SCL ter care suportă tensiunea de 5 V. Puntea este încorporată în dispozitivele master
de mod Hs adrşi este complet controlată de semnalele seriale SDAH, SCLH, SDA şi SCL,
putând fi implementată
ese în orice circuit integrat ca un circuit autonom.
ază
un 59
tran
smiţ
ător
-
slav
Tabel 5.2
CONFIGURAŢIA SISTEMULUI MAGISTRALEI SERIALE
TRANSFER Hs + F + FAST +
Hs + F Hs + STANDARD
STANDARD STANDARD
Hs <–> Hs 0 la 3.4 Mbit/s 0 la 3.4 Mbit/s 0 la 3.4 Mbit/s –
Hs <–> F 0 la 100 Kbit/s 0 la 400 Kbit/s – –
Hs <–> S 0 la 100 Kbit/s – 0 la 100 Kbit/s –
F <–> S 0 la 100 Kbit/s – – 0 la 100 Kbit/s
F <–> F 0 la 100 Kbit/s 0 la 400 Kbit/s – 0 la 100 Kbit/s
S <–> S 0 la 100 Kbit/s – 0 la 100 Kbit/s 0 la 100 Kbit/s

În figura 5.15 este prezentat un sistem cu magistrală serială unică, în care se


realizează un transfer de date între dispozitive în mod F/S şi dispozitive în mod Hs. În
timpul funcţionării sistemului, o punte între dispozitivele master Hs conectează liniile
SDAH şi SCLH la liniile corespunzătoare SDA şi SCL, ceea ce permite dispozitivelor Hs
să comunice cu dispozitive F/S la viteze mai mici.

VDD1 VDD2

RP RP PUNTE RP RP
RS
SDAH TR1
SDAH SDA

RS
SCLH SCLH TR2 SCL

RS RS RS RS RS RS RS RS RS RS
TR3
(1) (1)

VSS
SDAH SCLH SDAH SCLH SDAH SCLH SDA SCL SDA SCL SDA SCL

(2) (2) (2) (2) (2) (2) (2) (2) (2) (2) (2)
(2)
MCS MCS
(3) (3) (4)
VDD VDD

VSS VSS VSS VSS VSS VSS

SLAVE SLAVE MASTER / SLAVE MASTER / SLAVE MASTER / SLAVE SLAVE


mod Hs mod Hs mod Hs mod Hs mod F/S mod F/S

(1) Puntea nefolosită. SDA şi SCL pot avea funcţie alternativă.


(2) La filtrul de intrare.
(3) Sursa de curent pull-up rămâne dezactivată.
(4) Tranzistoarele reprezentate cu linie întreruptă sunt ieşiri opţionale cu drena în
gol care pot extinde semnalul de clock serial SCL.

Fig. 5.15 Sistem magistrală cu transfer la viteze de mod Hs şi mod F/S

60
În figura 5.16 sunt prezentate diagramele corespunzătoare transferului de date în
sistemul cu viteze mixate din figura 5.15.
t1
cod master de 8 biţi 0000 1xxx Ā tH
S

SDAH

SCLH
1 2 la 5 6 7 8 9

SDA

SCL
1 2 la 5 6 7 8 9

mod F/S

SLA 7 biţi R/W A n x (8 biţi DATE + A/Ā) Sr


Sr
P
SDAH

SCLH 6 7 8 9 1
1 6 7 8 9
P
2 la 5 2 la 5
t2
SDA

SCL dacă este P,


mod Hs atunci mod F / S
dacă este Sr,
tH (linie întreruptă)
tFS altfel mod Hs
= MCS sursă de curent pull-up

= Rp rezistor pull-up

Fig. 5.16 Transfer complet în mod Hs într-un sistem cu magistrală unică şi


viteze mixate

Arbitrarea şi sincronizarea au loc pe durata transferului total în mod F/S între toate
dispozitivele conectate. Pentru transferul de date în mod Hs, puntea se deschide şi separă
cele două secţiuni ale magistralei, permiţând dispozitivelor de mod Hs să comunice între
ele, la viteza maximă de 3.4 Mbit/s.
Arbitrarea între dispozitivele de mod Hs şi de mod F/S se face doar pe durata
codului master (0000 1XXX) şi este câştigată de un dispozitiv master de mod Hs, deoarece
nici o adresă slave nu are patru zerouri semnificative. Alte dispozitive master pot câştiga
arbitrarea numai dacă transmit un cod rezervat de 8 biţi (0000 0XXX). În aceste situaţii,
puntea rămâne închisă şi transferul se face în mod F/S.
Tranzistoarele TR1, TR2 şi TR3 sunt cu canal N. Tranzistoarele TR1 şi TR2 au
funcţie de poartă de transfer, iar TR3 este un etaj cu drenă în gol de tip pull-down. Dacă
61
tranzistoarele TR1 şi TR2 comută în starea ON ele transferă un nivel LOW în ambele
direcţii, în caz contrar atunci când atât drena cât şi sursa urcă la nivelul HIGH va fi o stare
de înaltă impedanţă între drenă şi sursă pentru fiecare tranzistor conectat. În acest ultim caz,
tranzistoarele vor acţiona ca nişte translatoare de nivel deoaece SDAH şi SCLH vor fi la
potenţial VDD1, iar liniile SDA şi SCL vor fi la potenţial VDD2.

5.2.6.2 Transferul de mod F/S într-un sistem cu magistrală serială unică şi


viteze mixate

Puntea prezentată în figura 5.15 interconectează liniile corespunzătoare ale


magistralei seriale unice.
Deoarece nu se transmite nici un cod master (0000 1XXX), circuitele sursei de
curent pull-up rămân dezactivate şi toate etajele de ieşire sunt cu drena în gol. Toate
dispozitivele, incluzând dispozitivele de mod Hs, comunică între ele în conformitate cu
specificaţiile magistralei I2C privind protocolul, formatul şi viteza în modul F/S.

5.2.6.3 Transferul de mod Hs într-un sistem cu magistrală serială unică şi


viteze mixate

Figura 5.16 prezintă diagrama de impulsuri a unui transfer complet de mod Hs,
invocat de o condiţie START, un cod master şi un bit de neconfirmare (A - la modul F/S).
Deşi această diagramă este despărţită în două, ea trebuie văzută ca o diagramă unică, în care
momentul de timp t H este un punct comun pentru ambele părţi. Codul master este
recunoscut de punte în dispozitivul master activ sau inactiv (figura 5.15). Puntea trebuie să
efectueze următoarele acţiuni:
- între momentele de timp t1 şi tH (figura 5.15), tranzistorul TR1 se deschide şi separă
liniile SDAH şi SDA, după ce tranzistorul TR3 se închide pentru a trage linia SDA la VSS;
- când SCLH şi SCL devin HIGH (tH în figura 5.16), tranzistorul TR2 se deschide şi
separă liniile SCLH şi SCL. TR2 trebuie să se deschidă înainte ca SCLH să treacă la nivel
LOW, după condiţia START repetat (Sr).
Transferul în mod Hs începe după momentul de timp tH cu o condiţie de START
repetat (Sr). Pe toată durata transferului, linia SCL rămâne la nivel HIGH şi linia SDA la
nivel LOW. Magistrala serială unică este pregătită pentru transferul unei condiţii STOP (P).
După fiecare bit de confirmare (A) sau de neconfirmare (Ā), dispozitivul master
activ dezactivează circuitul sursei sale de curent pull-up, permiţând celorlalte dispozitive să
întârzie transferul serial prin extinderea perioadei LOW a semnalului SCLH. Dispozitivul
master activ îşi reactivează propria sursă de curent pull-up atunci când toate dispozitivele
sunt decuplate şi semnalul SCLH atinge un nivel HIGH, depăşind astfel ultima parte a
timpului de creştere a semnalului SCLH.
În situaţii neregulamentare, dispozitivele de mod F/S pot închide puntea (TR1 şi
TR2 sunt închise, iar TR3 este deschis) la orice moment prin tragerea jos a liniei SCL
pentru cel puţin 1 μs, de exemplu pentru a reveni dintr-o magistrală agăţată sus.
Modul Hs se încheie cu o condiţie STOP (P) care aduce sistemul cu magistrală
serială unică înapoi în modul F/S. Dispozitivul master activ îşi dezactivează sursa sa de
curent MCS atunci când se detectează condiţia STOP (P) pe SDAH (momentul de timp t FS
în figura 5.16).
62
Puntea recunoaşte această condiţie STOP şi iniţiază următoarele acţiuni:
- Tranzistorul TR2 se închide după momentul de timp t FS pentru a conecta liniile SCLH şi
SCL, ambele fiind la nivel HIGH în acel moment.
- Tranzistorul TR3 se deschide după momentul tFS, ceea ce decuplează linia SDA şi
permite acesteia să treacă la nivel HIGH de către rezistorul Rp. Aceasta este o condiţie
STOP pentru dispozitivele de mod F/S. Tranzistorul TR3 trebuie să se deschidă suficient de
repede pentru a asigura timpul liber al magistralei între condiţia STOP şi cea mai apropiată
condiţie START, în conformitate cu specificaţia modului rapid (F).
- Când linia SDA atinge un nivel HIGH (momentul de timp t 2 în figura 5.16) tranzistorul
TR1 se închide pentru a conecta linia SDAH cu SDA.

Observaţii:
1) În sistemul cu viteze mixate şi magistrală serială unică, interconectările sunt făcute
atunci când toate liniile sunt la nivel HIGH, ceea ce previne şpiţurile de tensiune de pe
liniile magistralei.
2) Tranzistoarele TR1 şi TR2 trebuie să se închidă în timpul minim de eliberare al
magistralei în conformitate cu specificaţiile modului rapid (F).

5.2.6.4 Sincronizarea punţii în sistem magistrală serială unică şi viteze mixate

Se poate observa din figura 5.16, că acţiunile realizate de puntea de interconectare la


momentele de timp t 1, tH şi tFS trebuie să fie atât de rapide încât să nu afecteze liniile SDAH
şi SCLH. În plus, puntea trebuie să îndeplinească cerinţele de sincronizare corespunzătoare
specificaţiei modului F pentru liniile SDA şi SCL.

5.2.7 Adresarea pe 10 biţi

Modul de adresare pe 10 biţi este o extensie a sistemului cu magistrală serială I2C


standard, deoarece permite adresarea de până la 1024 de adrese suplimentare pentru
dispozitive slave. Adresarea pe 10 biţi poate fi neglijată dacă se foloseşte numai modul de
adresare pe 7 biţi.
Adresarea pe 10 biţi este compatibilă cu adresarea pe 7 biţi şi poate fi combinată cu
aceasta. Folosirea a 10 biţi pentru adresare exploatează combinaţiile 1111 XXX pentru
primii şapte biţi din primul byte care urmează după o condiţie START (S) sau o condiţie
START repetat (Sr). Adresarea pe 10 biţi nu afectează adresarea existentă pe 7 biţi.
Dispozitivele cu adresare pe 7 biţi şi pe 10 biţi pot fi conectate la aceeaşi magistrală I 2C,
precum şi adresarea pe 7 biţi sau pe 10 biţi se poate folosi în sisteme de mod F/S sau Hs.
Deşi sunt posibile 8 combinaţii ale biţilor de adresă rezervaţi 1111 XXX, pentru
adresarea pe 10 biţi se folosesc doar 4 combinaţii de tip 1111 0XX. Combinaţiile rămase,
de tipul (1111 1XX) sunt rezervate pentru îmbunătăţiri ulterioare ale magistralei I 2C.
Adresa slave de 10 biţi este formată din primii doi bytes care urmează după o
condiţie START (S) sau o condiţie START repetat (Sr). Primii şapte biţi ai primului byte
sunt combinaţii de tip 1111 0XX ai cărei ultimi doi biţi (XX) sunt cei mai semnificativi
(MSB) ai adresei de 10 biţi; cel de-al optulea bit din primul byte este bitul R / W (cel mai
puţin semnificativ bit) şi are funcţia de a determina direcţia mesajului (scriere de date într-
un dispozitiv slave sau citire de date de la un dispozitiv slave).

63
Dacă bitul R / W este “0”, înseamnă că dispozitivul master va scrie informaţia într-
un dispozitiv slave selectat. Cel de-al doilea byte conţine cei 8 biţi rămaşi (XXXX XXXX)
ai adresei de 10 biţi.
Dacă bitul R / W este “1”, înseamnă că dispozitivul master va citi informaţia de la
dispozitivul slave pe care l-a adresat.
Următorul byte conţine data transmisă de la un slave la un master.

5.2.7.1 Formate cu adrese pe 10 biţi

Când are loc un transfer de date cu adresare pe 10 biţi, sunt posibile diferite formate
de citire/scriere:

a) Transmiţătorul-master transmite date unui receptor-slave cu o adresă slave de 10 biţi


(figura 5.17). Direcţia transferului pe magistrala serială nu se schimbă.

1 1 1 1 0 X X 0
ADRESĂ SLAVE R/W ADRESĂ SLAVE
S A1 A2 DATE A DATE A/Ā P
PRIMII 7 BIŢI AL 2-LEA BYTE

(scriere)

Fig. 5.17 Transmiţător-master adresează un receptor-slave cu o adresă de 10 biţi

Dacă o adresă de 10 biţi urmează unei condiţii START, fiecare dispozitiv slave va
compara primii şapte biţi ai primului byte din adresa slave (1111 0XX) cu propria sa adresă
şi va testa dacă cel de-al optulea bit (bitul de direcţie) este 0.
Este posibil ca mai mult de un dispozitiv să găsească coincidenţă şi să genereze o
confirmare (A1). Toate dispozitivele slave care găsesc această coincidenţă vor compara cei
opt biţi de adresă ai celui de-al doilea byte al adresei slave (XXXX XXXX) cu propriile lor
adrese, dar numai un singur slave va găsi coincidenţă şi va genera o confirmare (A2).
Dispozitivul slave a cărui adresă coincide cu aceea trimisă de master va rămâne
adresat de master până când masterul recepţionează o condiţie STOP (P) sau o condiţie de
START repetat (Sr) urmată de o adresă slave diferită.

b) Receptorul master citeşte date de la transmiţătorul slave cu adresă de 10 biţi (figura


5.18). Direcţia transferului de date se schimbă după al doilea bit de direcţie R / W .
1 1 1 1 0 X X 0 1 1 1 1 0 X X 1

S ADRESĂ SLAVE R/W A1 ADRESĂ SLAVE A2 Sr ADRESĂ SLAVE R/W A3 DATE A DATE Ā P
PRIMII 7 BIŢI AL 2-LEA BYTE PRIMII 7 BIŢI

(scriere) (citire)

Fig. 5.18 Receptor-master adresează un transmiţător-slave cu o adresă de 10-biţi

64
Până la bitul de confirmare A2 inclusiv, procedura este aceeaşi cu aceea descrisă
pentru un transmiţător-master adresând un receptor-slave. După o condiţie de START
repetat (Sr), dispozitivul slave a cărui adresă coincide cu adresa trimisă de dispozitivul
master îşi aminteşte că el a fost adresat înainte. Acest dispozitiv slave verifică apoi dacă
primii şapte biţi din primul byte al adresei slave care urmează după Sr sunt aceiaşi cu cei de
după condiţia START (S) şi verifică, de asemenea, dacă cel de-al optulea bit ( R / W ) este 1.
Dacă există o coincidenţă, dispozitivul slave consideră că el a fost adresat ca transmiţător şi
generază o confirmare A3.
Transmiţătorul-slave rămâne adresat până când primeşte o condiţie STOP (P) sau o
condiţie START repetat (Sr) urmată de o adresă slave diferită. După o condiţie START
repetat (Sr), toate celelalte dispozitive slave vor compara primii şapte biţi ai primului byte
din adresa slave (1111 0XX) cu propria lor adresă şi vor testa cel de-al optulea bit ( R / W ).
Totuşi, nici unul dintre ele nu va fi adresat deoarece R / W = 1 (pentru dispozitive pe 10
biţi) sau adresa slave 1111 0XX (pentru dispozitive pe 7 biţi) nu coincide.

c) Format combinat: un master transmite date unui slave şi apoi citeşte date de la
acelaşi slave (figura 5.19). Acelaşi master ocupă magistrala tot timpul. Direcţia transferului
se schimbă după cel de-al doilea bit R / W
1 1 1 1 0 X X 0

S ADRESĂ SLAVE R/W A ADRESĂ SLAVE A DATE A DATE A/Ā


PRIMII 7 BIŢI AL 2-LEA BYTE

(scriere)
1 1 1 1 0 X X 1

Sr ADRESĂ SLAVE R/W A DATE A DATE Ā P


PRIMII 7 BIŢI

(citire)

Fig. 5.19 Master adresează un slave cu o adresă de 10 biţi, apoi transmite date
către acest slave şi citeşte date de la el

d) Format combinat: un master transmite date unui dispozitiv slave şi apoi transmite
date unui alt dispozitiv slave (figura 5.20). Acelaşi master ocupă magistrala tot timpul.
1 1 1 1 0 X X 0

ADRESĂ SLAVE
S ADRESĂ SLAVE R/W A A DATE A/Ā
PRIMII 7 BIŢI AL 2-LEA BYTE A DATE

(scriere)

1 1 1 1 0 X X 0

Sr ADRESĂ SLAVE R/W A ADRESĂ SLAVE A DATE A DATE A/Ā P


PRIMII 7 BIŢI AL 2-LEA BYTE

(citire)

Fig. 5.20 Master transmite date la două dispozitive slave, ambele cu adrese de 10 biţi

65
e) Format combinat: adresare combinată pe 10 biţi şi pe 7 biţi într-un transfer serial
(figura 5.21).
După fiecare condiţie START (S), sau START repetat (Sr), se poate transmite pe
magistrală o adresă slave de 10 biţi sau de 7 biţi. Masterul transmite date unui slave cu
adresă de 7 biţi şi apoi transmite date unui al doilea slave cu adresă de 10 biţi. Acelaşi
master ocupă magistrala tot timpul.
0

7 BIŢI
S R/W A DATE A DATE A/Ā
ADRESĂ SLAVE

(scriere)

1 1 1 1 0 X X 0

Sr PRIMII 7 BIŢI ADR R/W A AL 2-LEA BYTE A DATE A DATE A/Ā P


SLAVE 10 BIŢI SLAVE ADR. 10 BIŢI

(scriere)

Fig. 5.21 Master care transmite date la două dispozitive slave, unul
cu adresă de 7 biţi şi unul cu adresă de 10 biţi

Observaţii:
1) Formatele combinate pot fi folosite, de exemplu, pentru a controla o memorie serială.
Pe timpul primului byte de date, trebuie scrisă locaţia internă de memorie. După condiţia
START şi repetarea adresei slave, data se poate transfera.
2) Toate deciziile privind auto-incrementarea sau decrementarea locaţiilor de memorie
accesate anterior etc. sunt luate de către proiectantul de dispozitiv.
3) Fiecare byte este urmat de un bit de confirmare (A) sau de blocurile din secvenţă.
4) Dispozitivele compatibile cu magistala I2C trebuie să-şi reseteze logica lor de
magistrală la recepţionarea unei condiţii START (S) sau START repetat (Sr), astfel încât
toate să poată anticipa trimiterea unei adrese slave.

5.2.7.2 Adresa de tip APEL GENERAL şi bytul START la adresarea pe 10 biţi

În procedura de adresare pe 10 biţi pentru magistrala serială I 2C, primii doi bytes
după condiţia START (S) determină în mod uzual care dispozitiv slave va fi selectat de
către dispozitivul master, pentru efectuarea transferului de date (citire sau scriere de date).
Excepţia este adresa de tip "apel general" care are forma 0000 0000 (Hex '00').
Dispozitivele slave cu adresare pe 10 biţi vor reacţiona la o adresă de tip "apel
general" în acelaşi mod ca şi dispozitivele slave cu adresare pe 7 biţi.
Dispozitivele master hardware pot transmite adresa lor de 10 biţi după un "apel
general". În acest caz, bytul de adresă este urmat de doi bytes succesivi care conţin adresa
de 10 biţi ai dispozitivului transmiţător-master. În formatul de date, primul byte DATA
conţine cei opt biţi cei mai puţin semnificativi ai adresei master.
Bytul START pentru adresarea pe 10 biţi are forma 0000 0001 (Hex '01') şi poate
precede adresarea de 10 biţi în acelaşi mod ca pentru adresarea pe 7 biţi.

66
5.3 Caracteristicile dispozitivelor pe magistrala I2C

5.3.1 Dispozitive de mod F/S conectate la magistrala I2C

Dispozitivele de mod standard (S) şi de mod rapid (F) au caracteristici electrice şi de


timp asemănătoare, motiv pentru care le vom analiza împreună.
Dispozitivele de mod standard (S) pot efectua transferuri de date pe magistrala
serială I2C cu viteze reduse, de până la 100 Kbit/s.
Dispozitivele de mod rapid (F) au viteze de până la 400 Kbit/s, de aceea, ele pot
lucra împreună cu dispozitivele de mod S dacă îşi adaptează viteza. Dispozitivele de mod
superior (în acest caz dispozitivele de mod F) sunt întotdeauna compatibile cu dispozitiele
de mod inferior şi pot fi conectate împreună, la aceeaşi magistrală serială.
Nivelele de tensiune pentru etajele de intrare şi ieşire sunt aproximativ aceleaşi
pentru dispozitivele de mod S şi mod F. Dispozitivele care folosesc tensiuni de alimentare
ne-standard, care nu se încadrează în specificaţiile sistemului cu magistrala I 2C, trebuie să-
şi adapteze nivelele la tensiunea VDD la care sunt conectate rezistoarele pull-up Rp.

VIH max = VDD max + 0.5 V

Timpul necesar pentru ca tensiunea de la ieşire să treacă de la nivelul minim la cel


maxim, pentru o capacitate a magistralei între 10 pF … 400 pF, este de maxim 250 ns
pentru dispozitivele de mod S şi mod F. Deci, un dispozitiv de mod F poate fi folosit într-un
sistem cu magistrală serială I2C la care sunt conectate şi dispozitive de mod S, dar pentru un
timp maxim de tranziţie de 250 ns, dacă dispozitivul nu prelungeşte perioada LOW pentru
linia SCL. De asemenea, următorul bit de date pe linia SDA trebuie transferat înainte ca
linia SCL să fie eliberată.
Curentul de intrare pentru fiecare pin I/O, la o variaţie a tensiunii de intrare între
0.1VDD …0.9VDD , are valori în intervalul (-10 A …+10 A). Capacitatea maximă a
fiecărui pin I/O este: CI = 10 pF. Pinii de intrare/ieşire ai dispozitivelor de mod F nu
trebuie să obstrucţioneze liniile SDA şi SCL la întreruperea tensiunii de alimentare VDD.
În Tabelul 5.3 sunt precizate nivelele de tensiune de la intrare şi ieşire, curenţii de
intrare/ieşire, timpii de tranziţie, capacitatea de încărcare a magistralei şi controlul pantei de
ieşire pentru dispozitivele cu magistrală I 2C care lucrează în modul F/S.
Toate valorile sunt referite la nivelele VIH min şi VIL max.
Nu numai dispozitivele de mod F/S conectate la magistrala serială I 2C trebuie să
îndeplinească anumite condiţii. Există reguli impuse în specificaţiile de catalog şi pentru
magistrala I2C. Acestea se referă în principal la timpii caracteristici, capacitatea liniilor
SDA şi SCL, şi nivelele maxime de zgomot admise pentru o funcţionare optimă.
O primă condiţie se referă la timpul de cădere maxim tf max = 300 ns pentru liniile de
magistrală SDA şi SCL. Acesta este mai mare decât tof max = 250 ns, specificat pentru
etajele de ieşire şi permite conectarea rezistoarelor de protecţie serie Rs între pinii
SDA/SCL şi liniile SDA/SCL, fără a depăşi valoarea specificată a timpului de cădere (tf).
Orice dispozitiv conectat la magistrală trebuie să asigure un timp de menţinere de
cel puţin 300 ns pentru semnalul SDA (referit la VIH min pentru semnalul SCL) pentru a
susţine regiunea nedefinită a pantei de cădere pentru linia SCL. Valoarea maximă pentru
tHD,DAT trebuie atinsă doar dacă dispozitivul nu prelungeşte perioada LOW (tLOW) a clock-
ului serial SCL. Capacitatea totală a fiecărei linii de magistrală este de maxim Cb = 400 pF.

67
Tabel 5.3
Parametri simbol Mod S mod F
min. max. min. max.
Nivel LOW tensiune de intrare:
Nivele de intrare fixate VIL -0.5V 1.5V - -
VDD–nivele de intrare relative -0.5V 0.3VDD -0.5V 0.3VDD
Nivel HIGH tensiune de intrare:
Nivele de intrare fixate VIH 3V - - -
VDD–nivele de intrare relative 0.7VDD - 0.7VDD -
Histerezis intrări trigger Schmidt
VDD > 2 V thys - 0.05VDD -
VDD < 2 V 0.1VDD -
Nivel LOW tensiune ieşire (drenă deschisă
sau colector deschis) la un curent de 3 mA
VDD > 2 V VOL1 0V 0.4V 0V 0.4V
VDD < 2 V VOL3 - - 0V 0.2VDD
Timp tranziţie la ieşire de la VIHmin la VILmax tOf - (20+0.1Cb)ns
pt cap. magistralei de la 10 pF la 400 pF 250ns … 250ns
Durată impuls şpiţuri suprimate de filtrul de
intrare tSP - - 0 50ns
Curent de intrare la fiecare pin I/O pentru o
tensiune de intrare de 0.1VDD …0.9VDD Ii -10A 10A -10A 10A
Capacitatea fiecărui pin I/O Ci - 10pF - 10pF

În figura 5.21 sunt reprezentaţi timpii caracteristici magistralei seriale I 2C, atunci
când aceasta deserveşte dispozitive de mod F/S.

SDA

tf tLOW tr tSU;DAT tf tBUF


tHD;STA tSP tr

SCL

tHD;STA tHD;DAT tHIGH tSU;STA tSU;STO


S Sr P S

Fig. 5.22 Timpii caracteristici ai dispozivelor de mod F/S pe magistrala


I2 C

În Tabelul 5.4 sunt precizate caracteristicile de timp ale magistralei seriale I 2C,
capacitatea liniilor acesteia şi nivelele maxime de zgomot admise.

68
Tabel 5.4
Parametri simbol mod S mod F
min. max. min. max.
Frecvenţă clock serial SCL fSCL 0 0 400kHz
100kHz
Timp menţinere START repetat, după care
este generat primul impuls de clock tHD,STA 4s - 0.6s -
Perioada LOW pentru SCL tLOW 4.7s - 1.3s -
Perioada HIGH pentru SCL tHIGH 4s - 0.6s -
Timp setare condiţia START repetat tOSU,ST 4.7s - 0.6s -
Timp de menţinere date:
Pentru mastere compatibile CBUS tHD,DAT 5s - - -
Pentru dispozitive cu magistrală I C
2
0 3.45s 0 0.9s
Timp de setare date tSU,DAT 250ns - 100ns -
Timp de creştere pentru SDA, SCL tr - (20+0.1Cb) …
1000ns 300ns
Timp de cădere pentru SDA, SCL tf - 300ns (20+0.1Cb) …
300ns
Timp setare pentru condiţia STOP tSU,STO 4s - 0.6s -
Timpul cât magistrala e liberă între STOP
şi START tBUF 4.7s - 1.3s -
Capacitate încărcare pentru fiecare linie a Cb - 400pF - 400pF
magistralei
Zgomot nivel LOW fiecare dispozitiv VnL 0.1VDD - 0.1VDD -
conectat (incluzând histerezis)
Zgomot nivel HIGH fiecare dispozitiv VnH 0.2VDD - 0.2VDD -
(incluzând histerezis)

Perioadele minime HIGH şi LOW pentru linia SCL determină viteze maxime pentru
transferul de bit de 100 Kbit/s pentru dispozitivele de mod standard (S) şi 400 kbit/s pentru
dispozitivele de mod rapid (F), care trebuie să urmărească transferurile la vitezele lor
maxime de bit, sau să transmită / recepţioneze la acea viteză.

5.3.2 Dispozitive de mod Hs conectate la magistrala I2C

În Tabelul 5.5 sunt nivelele de tensiune de la intrarea şi ieşirea dispozitivelor,


curenţii de intrare/ieşire, controlul pantei la ieşire şi capacitatea de încărcare maximă
admisă, pentru fiecare linie a magistralei. Zgomotul maxim admis pentru nivelele HIGH şi
LOW pe liniile magistralei este acelaşi cu zgomotul pentru nivelele specificate pentru
dispozitivele de mod F/S.
Dispozitivele de mod Hs care lucrează cu tensiuni de alimentare nestandard şi care
nu sunt în conformitate cu specificaţiile pentru nivelele de tensiune ale sistemelor cu
magistrală I2C, trebuie să-şi adapteze nivelele tensiunii lor de intrare la tensiunea VDD la
care sunt conectate rezistoarele pull-up (Rp). Dispozitivele de mod Hs care îndeplinesc şi
funcţia “level shift” trebuie să suporte o tensiune de intrare maximă de 5.5 V pentru ambele
linii seriale SDA şi SCL ale magistralei.

69
Tabel 5.5
Parametri simbol Mod Hs
min. max.
Nivel LOW al tensiunii de intrare VIL -0.5V 0.3VDD
Nivel HIGH al tensiunii de intrare VIH 0.7VDD VDD+0.5V
Histerezisul intrărilor în triggerul Schmidt Vhys 0.1VDD -
Nivel LOW tensiune ieşire (drenă deschisă) la 3 mA
pe SDAH, SDA şi SCLH pentru:
VDD > 2 V 0VOL 0.4V
VDD < 2 V 0 0.2VDD
RON a porţii de transfer, pt. ambele direcţii de curent
la nivel VOL între SDA şi SDAH sau SCL şi SCLH la RonL - 50
3 mA
RON poartă de transfer, pt. ambele direcţii de curent,
nivel VDD între SDA şi SDAH sau SCL şi SCLH la 3 RonH 50k -
mA
Curent pull-up nivele de ieşire SCLH, între 0.3VDD şi ICS 3mA 12mA
0.7VDD
Timp de creştere la ieşire (sursă de curent activă) şi
timp de cădere la SCLH pt. cap. de 10…100 pF trCL, tfCL 10ns 40ns
Timp de creştere la ieşire (sursă de curent activă) şi
timp de cădere la SCLH cu sursă externă de curent
pull-up = 3 mA pentru o sarcina capacitivă de 400 pF trCL, tfCL 20ns 80ns
Timp de cădere la ieşire la SDAH pentru o sarcină
capacitivă de 10…100 pF tfDA 10ns 80ns
Timp de cădere la ieşire la SDAH pentru o sarcină
capacitivă de 400 pF tfDA 20ns 160ns
Durata impuls de cădere la SDAH şi SCLH (trebuie
suprimată de filtrele de a intrare) tfSP 0 10ns
Curent de intrare la fiecare pin I/O pentru o tensiune
de intrare între 0.1VDD şi 0.9VDD Ii - 10A
Capacitatea admisă pentru fiecare pin I/O Ci - 10pF

Pentru sarcini capacitive ale magistralei cuprinse între 100 pF şi 400 pF, valorile
timpilor de creştere şi cădere trebuie să fie interpolate liniar.
Definirea timpilor caracteristici pentru dispozitivele de mod Hs conectate la
magistrala serială I2C rezultă şi din figura 5.23.
Condiţia de START normal (S) nu există în modul Hs. Parametrii de timp pentru
biţii de adresă, bitul R / W , bitul de confirmare A şi biţii de date sunt aceeaşi cu parametrii
de timp care au fost definiţi în paragraful anterior, pentru dispozitivele de mod F/S. Doar
panta de creştere a primului impuls de clock SCLH, care urmează după un bit de confirmare
A are o valoare mai mare. Aceasta se datorează rezistorului extern Rp, care trebuie să tragă
linia SCLH fără ajutorul sursei interne de curent.
Parametrii de timp ai liniilor de magistrală SDA şi SCL în modul Hs sunt specificaţi
în Tabelul 3.6. Perioadele minime HIGH şi LOW, precum şi timpii maximi de creştere şi de
cădere ai clock-ului serial SCLH determină cea mai mare viteză de bit.

70
Sr Sr P
tfDA trDA

SDAH

tHD;DAT tSU;STO
tSU;STA
tHD;STA tSU;DAT

SCLH

tfCL
(1) trCL1
trCL1 trCL (1)

tHIGH tLOW tLOW tHIGH

- MCS sursa curent pul-up


Rp – rezistor pull-up

(1) Primul front pt. SCLH după Sr şi după fiecare bit A

Fig. 5.23 Definirea timpilor pentru dispozitivele de mod Hs conectate la magistrala I2C

Cu un clock SCLH generat intern, care are perioadele de nivel LOW şi HIGH de
200 ns şi respectiv 100 ns, un dispozitiv master de mod Hs poate satisface cererile de timp
ale impulsurilor de clock extern SCLH (luând în considerare şi timpii de creştere şi cădere),
pentru o viteză maximă de bit de 3.4 Mbit/s. Astfel dispozitivul master de mod Hs poate
folosi o frecvenţă de bază de 10 MHz, sau un multiplu de 10 MHz, pentru a genera
semnalul de clock SCLH. Pentru perioadele maxime HIGH şi LOW ale clock-ului serial
SCLH nu există limite fixate atunci când se lucrează cu cea mai scăzută viteză de bit.
Parametrii de timp sunt independenţi pentru sarcini capacitive de până la 100 pF,
pentru fiecare linie a magistralei seriale care lucrează la viteza de bit maximă posibilă, de
3.4 Mbit/s.
Pentru sarcini capacitive mai mari pe liniile magistralei, viteza de bit va descreşte
treptat. De exemplu, parametrii de timp pentru sarcini capacitive de 400 pF, permit o viteză
de bit de cel mult de 1.7 Mbit/s, adică aproximativ jumătate din viteza maximă de 3.4
Mbit/s la care pot lucra dispozitivele de mod Hs conectate la magistrala serială I2C.
Pentru încărcări ale magistralei cu sarcini capacitive între 100 pF şi 400 pF,
parametrii de timp trebuie interpolaţi liniar.
Timpii de creştere şi scădere depind de timpul maxim de propagare a liniilor de
transmisie SDAH şi SCLH.

71
Tabel 5.6
Parametri simbol Cb = 100pF max. Cb = 400pF
min. max. min. max.
Frecvenţă clock SCLH fSCLH 0 3.4MHz 0 1.7MHz
Timp de setare START repetat tSU,STA 160ns - 160ns -
Timp de menţinere START repetat tHD,STA 160ns - 160ns -
Perioadă LOW a clock-ului SCLH tLOW 160ns - 320ns -
Perioadă HIGH a clock-ului SCLH tHIGH 60ns - 120ns -
Timp de setare date tSU,DAT 10ns - 10ns -
Timp de menţinere date tHD,DAT 0 70ns 0 150ns
Timp de creştere semnal SCLH trCL 10ns 40ns 20ns 80ns
Timp de creştere semnal SCLH după
Sr şi după bitul A trCL1 10ns 80ns 20ns 160ns
Timp de cădere SCLH tfSC 10ns 40ns 20ns 80ns
Timp de creştere SDAH trDA 10ns 80ns 20ns 160ns
Timp de cădere SDAH tFDA 10ns 80ns 20ns 160ns
Timp de setare condiţie STOP tSU,STO 160ns - 160ns -
Sarcina maximă pentru fiecare linie
SDAH, SCLH Cb(2) - 100pF - 400pF
Sarcină maximă pentru fiecare
SDAH+SDA si SCLH+SCL Cb - 400pF - 400pF
Zgomot LOW pt fiecare dispozitiv
conectat (incluzând histerezisul) VNl 0.1VDD - 0.1VDD -
Zgomot HIGH pt fiecare dispozitiv
conectat (incluzând histerezisul) VnH 0.2VDD - 0.2VDD -

72
CAPITOLUL 6

CONEXIUNI ELECTRICE PE MAGISTRALA I 2C

6.1 Conectarea la magistrală a dispozitivelor cu tensiuni de alimentare diferite

Dispozitivele conectate la magistrala serială I 2C şi care necesită tensiuni de


alimentare diferite trebuie să respecte, din punct de vedere electric, normele stabilite pentru
această magistrală.
a) În figura 6.1 este ilustrat cazul când la magistrala serială sunt conectate mai multe
dispozitive care au un nivel de intrare fixat.

sunt dependente de dispozitiv (de ex: 12V)


VDD – 1 = 5 V  10% VDD – 2 VDD – 3 VDD – 4

RP RP NMOS BICMOS CMOS BIPOLAR

SDA

SCL

Fig. 6.1 Dispozitive cu nivel de intrare fixat conectate la magistrala I2C

Dispozitivele cu nivele fixe ale tensiunii de alimentare, între 1.5 V şi 3 V, pot avea
fiecare propria tensiune de alimentare. În acest caz, rezistoarele pull-up (Rp) trebuie să fie
conectate la o tensiune de 5 V ± 10%.

b) În figura 6.2, la magistrala serială sunt conectate dispozitive cu nivele ale tensiunii de
intrare referite la tensiunea VDD. Aceste dispozitive necesită o linie de alimentare comună,
la care este conectat un rezistor pull-up (Rp).

VDD = 3 V

RP RP CMOS CMOS CMOS CMOS

SDA
SCL

Fig. 6.2 Dispozitive cu tensiune de alimentare de valoare crescuta,


conectate la magistrala I2C

73
c) Dacă dispozitivele cu nivele fixe ale tensiunii de intrare sunt amestecate pe magistrală
cu dispozitive care au nivelele de intrare referite la VDD , acestea din urmă trebuie conectate
la o linie de alimentare comună, de 5 V ± 10% şi, de asemenea, trebuie să aibă obligatoriu
rezistoare pull-up conectate la pinii lor SDA şi SCL, aşa cum este arătat în figura 6.3.
VDD3 depinde de dispozitiv (ex. 12 V)
VDD1 = dependente de dispozitiv (de ex: 12 )
VDD–1 = 5 V 10%
5 V  10% DD–2
VDD2 –3
VVDDDD3
V

RP RP CMOS CMOS NMOS BIPOLAR

SDA
SCL
SCL

Fig. 6.3 Dispozitive cu nivele de intrare referite la VDD amestecate cu


dispozitive cu nivele fixe de intrare, pe magistrala I2C

Noile dispozitive de mod rapid sau înaltă frecvenţă trebuie să aibă nivele de intrare
raportate la tensiunea de alimentare, după cum s-a precizat şi în tabelele 6.1 şi 6.3. Nivelele
de intrare sunt definite în aşa fel încât:
- limita admisă de zgomot pe nivelul LOW este 0.1VDD;
- limita admisă de zgomot pe nivelul HIGH este 0.2VDD;
Rezistorii serie (Rs) cu valoarea (de exemplu) de 300 Ω pot fi folosiţi împotriva
şpiţurilor de înaltă tensiune care apar pe liniile SDA şi SCL (provenite, de exemplu, de la o
descărcare -conturnare - de la un tub cinescop TV).

VDD VDD

DISP. DISP.
I2C I2C
RP RP

RS RS RS RS

SDA

SCL

Fig. 6.4 Rezistoare serie (Rs) pentru protecţia împotriva şpiţurilor de înaltă
tensiune

6.2 Valorile rezistorilor Rp şi Rs pentru dispozitive I2C de mod standard (S)

Pentru sistemele cu magistrală I2C de mod standard, valorile rezistorilor Rp şi Rs din


figura 6.1 depind de următorii parametri:
- tensiunea de alimentare;
- capacitatea de încărcare a magistralei;
- numărul de dispozitive conectate la magistrală (curent de intrare + curent de pierderi).

74
Vom prezenta în cele ce urmează rolul fiecăruia dintre parametrii enumeraţi.
Tensiunea de alimentare limitează valoarea minimă a rezistorului Rp datorită
curentului derivat minim de 3 mA, la o valoare V0Lmax = 0.4 V pentru etajele de ieşire.
Dependenţa valorii rezistorului Rp în funcţie de tensiunea de alimentare VDD este
reprezentată grafic în figura 6.5. Valoarea rezistorului de protecţie creşte liniar odată cu
creşterea tensiunii. În figură s-au considerat două situaţii: Rs = 0 şi Rs = maxim. Rezistorul
Rp trebuie ales de valori mai mari în cazul în care nu există rezistor serie (Rs = 0).
Figura 6.6 prezintă modul de alegere a valorii rezistorului de protecţie Rp în funcţie
de rezistorul serie Rs în cazul în care la magistrala serială I2C sunt conectate dispozitive care
au valori diferite ale tensiunii de alimentare (de exemplu: 2.5 V, 5 V, 10 V şi 15 V).
Şi în acest caz, rezistorul Rp variază liniar. Pentru dispozitivele conectate la
magistrala serială, care sunt alimentate la tensiuni mai mici (de exemplu VDD = 2.5 V),
rezistorul Rp trebuie ales de valoare mai mare chiar pentru Rs < 400 . Atunci când
dispozitivul necesită o tensiune de alimentare mai mare, rezistorul Rp trebuie ales de o
valoare mai mică la acelaşi Rs şi creşte odată cu creşterea lui Rs . De exemplu, pentru Rs =
400 , se alege Rp = 2,3 k la o tensiune VDD = 5 V.

6 10
Rp Rp
[k] [k] VDD = 2.5V 5V
5
8
RS = 0
4
6
15 V
3
4
max. RS 10 V
2

2
1

0 0
0 4 8 12 16 0 400 800 1200 1600
VDD [V] Rs []

Fig. 6.5 Caracteristica Rp = f(VDD ) cu Fig. 6.6 Caracteristica pp = f(Rs) cu


Rs ca parametru Vdd ca parametru

Figura 6.7 redă variaţia valorii rezistorului Rp în funcţie de capacitatea magistralei.


Capacitatea magistralei reprezintă capacitatea totală a firelor, conexiunilor şi pinilor
şi limitează valoarea maximă a lui Rp datorită timpului de creştere specificat. Odată cu
creşterea capacităţii magistralei de la 0 la valoarea maximă de 400 pF, trebuie aleasă o
valoare mai mică pentru Rp. Dependenţa rezistorului R p nu mai este liniară ci logaritmică,
datorită prezenţei sarcinii capacitive. Cele două curbe de pe grafic sunt aproximativ egale
pentru Rs = 0 şi pentru Rs = max. la VDD = 5 V.
Curentul maxim pe nivelul de intrare HIGH al fiecărui pin I/O are o valoare
specificată maximă de 10 μA. Datorită limitei de zgomot impuse, de 0.2VDD pentru nivelul
HIGH, acest curent de intrare limitează valoarea rezistorului Rp. Această limită depinde de
nivelul tensiuni de alimentare VDD. Curentul total de intrare pe nivelul HIGH este
reprezentat ca o funcţie de Rp în figura 6.8.

75
20 20
Rp max
Rp [k]
Rp max
[k] [k]
16 16

12 12

RS = 0 VDD = 15 V
8 8

10 V
4 RS max 4
@ VDD=5V 5V

0 0
2. . 5 V
0 100 200 300 400 0 40 80 120 160 200
capacitate magistrală Cb [pF] curent total pe nivel high [A]

Fig. 6.7 Valoarea maximă Rp în funcţie de Fig. 6.8 Curentul total de intrare pe nivel
capacitatea magistralei HIGH în funcţie de Rp şi tensiunea de
I2C standard alimentare

Valoarea rezistorului Rp descreşte logaritmic de la 20 k către 0 pe măsură ce


curentul total de la intrare creşte de la 0 la 200 A. Pentru dispozitivele conectate la
magistrala serială şi care sunt alimentate la tensiuni mai mari de 2,5 V, se vor alege valori
mai mari, pentru acelaşi curent total de intrare.

6.3 Etaje de ieşire cu pantă controlată pentru dispozitive I2C de mod F

Caracteristicile electrice ale etajelor I/O din dispozitivele I 2C şi caracteristicile


liniilor magistralei la care acestea sunt conectate au fost specificate anterior.
Figurile 6.9 şi 6.10 prezintă două exemple de etaje de ieşire cu controlul pantei,
realizate în tehnologie CMOS şi respectiv, tehnologie bipolară.
Panta frontului căzător este definită de capacitatea Miller (C1) şi rezistorul R1.
Valorile tipice ale acestor parametri sunt date în figuri: C1 = 2 pF şi R1 = 50 k pentru
etajul de ieşire realizat în tehnologie CMOS; C1 = 5 pF şi R1 = 20 k pentru etajul de ieşire
realizat în tehnologie bipolară. Valoarea toleranţei pentru timpul de cădere la ieşire tof din
Tabelul 6.1 nu este critică. Acest timp de cădere este doar în mică măsură influenţat de
sarcina capacitivă externă a magistralei (Cb) şi de rezistorul extern pull-up (Rp). În schimb,
timpul de creştere (tr) specificat în Tabelul 6.2 este determinat de capacitatea de încărcare a
magistralei şi valoarea rezistorului pull-up.
Etajul de ieşire reprezentat în figura 6.9 foloseşte tranzistoarele P1, N1 şi N2 cu efect
de câmp, cu canal P sau N, pentru a obţine o valoare mai mare a impedanţei.
Etajul de ieşire cu pantă controlată repezentat în figura 6.10 foloseşte tranzistoarele
bipolare T1 şi T2.

76
VDD
circ. de intrare

SDA sau
SCL

VSS

Fig. 6.9 Etaj de ieşire cu pantă controlată în tehnologie CMOS


VP
la circuitul
VDD
R1 de intrare RP
20 kΩ C1 I/O
SDA sau
5 pF SCL
T1 T2 Cb
GND VSS

Fig. 6.10 Etaj de ieşire cu pantă controlată în tehnologie bipolară

6.4 Circuit pull-up de comutaţie pentru dispozitive I2C de mod F

Tensiunea de alimentare VDD şi nivelul LOW maxim de la ieşire determină valoarea


minimă a rezistorului Rp. De exemplu, pentru o tensiune de alimentare VDD = 5 V ± 10% şi
V0L max = 0.4 V la un curent de 3 mA, Rp min = (5.5 - 0.4)/0.003 = 1.7 k. Valoarea
rezistorului Rp limitează capacitatea maximă a magistralei la aproximativ 200 pF, pentru a
respecta valoarea cerută pentru timpul maxim de creştere tr = 300 ns. În cazul în care
magistrala trebuie să suporte o sarcină capacitivă mai mare decât această valoare (200 pF),
se recomandă folosirea unui circuit pull-up de comutaţie, ca în figura 6.11. Acest circuit a
fost proiectat să suporte o tensiune de alimentare VDD = 5 V ± 10% şi o sarcină capacitivă
maximă pe magistrală de 400 pF.
Deoarece este controlat de nivelele magistralei, nu necesită semnale adiţionale
pentru controlul comutaţiei. Pe durata fronturilor crescătoare şi descrescătoare, comutatorul
bilateral din circuitul HCT4066 comută rezistorul pull-up Rp2 între stările ON/OFF la
nivelele magistralei, între 0.8 V şi 2 V. Rezistoarele combinate Rp1 şi Rp2 pot trage în sus
linia magistralei în timpul de creştere specificat tr = 300 ns.
Rezistorii serie Rs sunt opţionali, având rolul de protecţie a etajelor I/O ale
dispozitivelor conectate la magistrala I 2C de şpiţurile de înaltă tensiune care pot apărea pe
liniile magistralei şi de asemenea, minimizează diafonia pe liniile magistralei.
Valoarea maximă a rezistorului R s este determinată de căderea maximă de tensiune
permisă pe rezistor, când linia de magistrală este comutată la nivel LOW în scopul
închiderii rezistorului Rp2 .

77
nY VDD
1/44 HCT 4066 5 V  10%
nE VCC

P N

nZ
GND 1.7 kΩ RP1
1.3 kΩ RP2 SDA sau
SCL
 100Ω RS  100Ω RS
I/O I/O Cb
400 pF
max.
N N
VSS
Dispozitive I2C de mod F

Fig. 43
Fig. 6.11 pull-up dede
Circuit pull-up
Circuit comutaţie
comutaţie

6.5 Modul de alegere a conexiunilor pentru liniile magistralei seriale

În general, firele de conexiune trebuie alese astfel încât interferenţele pe liniile de


magistrală să fie minime. Liniile de magistrală sunt supuse interferenţelor în special atunci
când se află la nivel HIGH, datorită impedanţei ridicate a dispozitivelor de tip pull-up. Se
întâlnesc mai multe situaţii distincte, şi anume:
a) Dacă lungimea liniilor de magistrală realizate pe cablaj imprimat sau cu un cablu tip
bandă depăşeşte 10 cm şi include liniile de alimentare VDD şi VSS, modelul de conexiuni
trebuie ales astfel:

SDA

VDD

VSS

SCL

b) Dacă liniile de magistrală includ doar linia VSS, atunci modelul conexiunilor este:

SDA

VSS

SCL

78
În al doilea caz, toate cele trei linii se aleg de aceeaşi grosime, pentru a obţine
sarcini capacitive identice pentru liniile de magistrală SDA şi SCL. Liniile VSS şi VDD pot fi
omise dacă se foloseşte cablaj imprimat pentru VSS şi/sau VDD.
c) Dacă liniile de magistrală sunt de tip “pereche răsucită”, atunci fiecare linie trebuie să
fie răsucită cu VSS. Alternativ, linia SCL poate fi răsucită cu VSS, şi linia SDA răsucită cu
VDD. În cel de-al doilea caz, se impune folosirea unor condensatoare pentru a decupla linia
VDD de la linia VSS şi pentru a decupla ambele capete de sfârşit ale perechilor răsucite.
d) Pentru a reduce şi mai mult interferenţele pe linii, se încapsulează liniile de magistrală
(carcasa fiind conectată la VSS). Chiar şi în acest caz, cablul ecranat trebuie să fie prevăzut
cu condensatoare de valoare redusă de cuplaj între liniile SDA şi SCL.

6.6 Valorile rezistorilor Rp şi Rs pentru dispozitive I2C de mod F

Valorile maxime şi minime pentru rezistorii Rp şi Rs conectaţi la o magistrală I2C


care lucrează în modul rapid (F) pot fi determinate cu ajutorul figurilor 6.5, 6.6 şi 6.8.
Deoarece o magistrală care lucrează în modul F necesită timpi de ceştere (tr) mai
rapizi, valoarea maximă pentru rezistorul Rp în funcţie de gradul de încărcare al magistralei
va fi în acest caz mai redusă decăt în figura 6.7. Graficul din figura 6.7 (max. Rp = f(Cb)) va
fi înlocuit pentru modul F cu graficul din figura 6.12.

7.5
Rp max
[k]
6.0

4.5

RS = 0
3.0

RS max
1.5
@ VDD=5V

0
0 100 200 300 400
capacitate magistrală Cb [pF]

Fig. 6.12 Valoarea maximă Rp funcţie de capacitatea magistralei I2C de mod F

6.7 Valorile rezistorilor Rp şi Rs pentru dispozitive I2C de mod Hs

Valorile maxime şi minime ale rezistorilor Rp şi Rs pentru dispozitivele de mod Hs


conectate la magistrala I2C pot fi calculate din tabelele 6.3 şi 6.4. Sunt posibile mai multe
combinaţii ale acestora, în funcţie de timpii de creştere şi timpii de cădere, de gradele de
încărcare a liniilor de magistrală, tensiunile de alimentare, sistemele cu viteze de lucru
diferite conectate la magistrală şi schimbării nivelelor (LOW şi HIGH).
Datorită tuturor acestor factori, nu se vor mai da alte grafice pentru stabilirea
valorilor maxime şi minime ale rezistorilor Rp şi Rs. Aceste valori vor fi calculate după caz,
ţinând cont de factorii caracteristici pentru fiecare aplicaţie în parte.
79
6.8 Comutator bidirecţional de nivel pentru sisteme I2C de mod F/S

6.8.1 Realizarea comutatorului bidirecţional de nivel pentru sisteme de mod


F/S conectate la magistrala I2C

Procesele tehnologice actuale pentru circuitele integrate în clasa de 0.5 m şi mai


puţin limitează valoarea maximă a tensiunii de alimentare şi, în consecinţă, nivelele logice
ale semnalelor digitale de la pinii I/O. Pentru a interfaţa aceste circuite de tensiune scăzută
cu dispozitivele existente, alimentate la 5 V, este necesar un nivel de comutare.
Pentru sistemele cu magistrală bidirecţională, cum sunt cele care folosesc magistrala
serială I2C, un astfel de comutator de nivel trebuie să fie bidirecţional, fără a avea însă
nevoie de un semnal pentru controlul direcţiei. Cel mai simplu mod pentru a rezolva
problema este conectarea unui tranzistor MOS-FET discret la fiecare linie de magistrală.
În ciuda simplităţii surprinzătoare, o astfel de soluţie nu numai că îndeplineşte
cererile comutatorului de nivel bidirecţional fără a mai avea nevoie de un semnal pentru
controlul direcţiei dar, în plus, izolează o secţiune a magistralei de putere redusă de restul
sistemului conectat la magistrală şi protejează partea cu “tensiune scăzută” de şpiţurile de
înaltă tensiune care pot proveni de la partea de “tensiune ridicată”.
Comutatorul de nivel bidirecţional poate fi folosit pentru sisteme conectate la
magistrala serială I2C care lucrează în ambele moduri de lucru: modul Standard (S) – până
la 100 Kbit/s sau modul rapid (F) – până la 400 Kbit/s. Nu este recomandat pentru sisteme
de mod Hs, care pot avea o punte cu posibilitatea de comutare a nivelului.

6.8.2 Dispozitive cu nivele logice diferite conectate la magistrala I2C

S-a arătat în paragrafele anterioare cum dispozitive cu tensiuni de alimentare diferite


pot fi conectate la aceaşi magistrală serială I 2C, prin folosirea rezistorilor de tip pull-up la
linia tensiunii de alimentare. Aceasta este soluţia cea mai simplă, dispozitivele cu tensiune
de alimentare mai scăzută fiind nevoite să suporte tensiunea de 5 V, ceea ce determină
costuri de fabricaţie mai mari.
Prin folosirea unui comutator de nivel bidirecţional, este posibilă interconectarea a
două secţiuni din sistemul cu magistrală I 2C, fiecare secţiune având o tensiune diferită de
alimentare şi un nivel logic diferit. O astfel de configuraţie este reprezentată în figura 6.13.
Secţiunea din stânga, de tensiune scăzută, conţine rezistori de tip pull-up şi
dispozitive conectate la o tensiune de alimentare de 3.3 V. Secţiunea din dreapta, de
tensiune ridicată, conţine rezistori de tip pull-up şi dispozitive conectate la o tensiune de
alimentare de 5 V.

80
VDD = 3.3 V VDD = 5 V

RP TR1 RP RP
RP g

SDA1 s d SDA2

g
TR2

SCL1 SCL2
s d

DISP DISP DISP DISP


3.3V 3.3V 5V 5V

Fig. 6.13 Circuit de comutare a nivelului bidirecţional care conectează


două secţiuni cu tensiuni de alimentare diferite într-un sistem cu magistrală
I2 C

Dispozitivele din fiecare secţiune au pini I/O cu nivele logice de intrare referite la
tensiunea de alimentare şi o configuraţie de ieşire de tip open drain.
Comutatorul de nivel pentru fiecare linie a magistralei este identic şi conţine unul
din tranzistorii MOS – FET cu canal N; TR1 este pentru linia serială de date SDA şi TR2 este
pentru linia seriala de clock SCL. Porţile (g) trebuie să fie conectate la cea mai scăzută
tensiune de alimentare VDD1, sursele (s) trebuie conectate la liniile magistralei din secţiunea
de tensiune scăzută şi drenele (d) trebuie conectate la liniile de magistrală din secţiunea de
tensiune ridicată. Multe tranzistoare de tip MOS-FET au substratul conectat intern cu
propria sursă; în caz că aceasta nu există, se poate realiza o conexiune externă. De
asemenea, fiecare MOS-FET are o diodă integrată (o joncţiune n - p) între drenă şi substrat.
k, f pagewidth

6.8.3 Funcţionarea comutatorului de nivel

În timpul funcţionării comutatorului de nivel, trebuie luate în considerare


următoarele trei situaţii:
a) Nici un dispozitiv nu trage în jos linia magistralei. Linia de magistrală din
secţiunea cu “tensiune scăzută” este trasă în sus de proprii rezistori pull-up (Rp) până la 3.3
V. Poarta şi sursa tranzistorului MOS-FET sunt ambele la 3.3 V, deci potenţialul său VGS
este sub pragul de tensiune şi tranzistorul nu conduce, permiţând liniei de magistrală din
secţiunea tensiune ridicată, să fie trasă trasă în sus de rezistorul său Rp la 5 V. Astfel, liniile
de magistrală din ambele secţiuni sunt în starea HIGH, dar la nivele de tensiune diferite.
b) Un dispozitiv alimentat la 3.3 V trage în jos linia de magistrală la un nivel
LOW. Sursa tranzistorului MOS-FET devine de asemenea LOW, în timp ce poarta rămâne
la 3.3 V. Tensiunea VGS creşte aproape de prag şi MOS-FET-ul începe să conducă. Linia de
magistrală din secţiunea tensiune ridicată va fi apoi trasă în jos la un nivel LOW de
dispozitivul alimentat la 3.3 V prin tranzistorul în conducţie MOS-FET. Astfel, liniile de
magistrală din ambele secţiuni sunt LOW la acelaşi nivel de tensiune.
c) Un dispozitiv alimentat la o tensiune de 5 V trage în jos linia de magistrală, la
nivel LOW. Dioda drenă – substrat a tranzistorului MOS-FET din secţiunea “tensiune
scăzută” este trasă în jos până când potenţialul VGS depăşeşte pragul şi tranzistorul intră în
81
conducţie. Linia de magistrală din secţiunea tensiune scăzută este apoi trasă în jos, mai
departe până la nivelul LOW de către dispozitivul alimentat la 5 V, prin tranzistorul MOS-
FET în conducţie. In acest fel, liniile de magistrală din ambele secţiuni trec în LOW la
acelaşi nivel de tensiune.
Cele trei situaţii prezentate mai sus arată că nivelele logice sunt transferate în
ambele direcţii ale magistralei sistemului, indiferent care dintre secţiuni conduce (regiunea
de tensiune scăzută sau regiunea de tensiune ridicată).
Situaţia a) asigură funcţia de schimbare a nivelului. Situaţiile b) şi c) asigură funcţia
de conexiune ŞI cablat între liniile de magistrală din ambele secţiuni, după cum este
specificat în documentaţia pentru magistrala I 2C.
Se pot folosi şi alte tensiuni de alimentare diferite: 3.3 V pentru VDD1 şi 5 V pentru
VDD2 (de exemplu, 2 V pentru VDD1 şi 10 V pentru VDD2). În funcţionarea normală, tensiunea
VDD2 trebuie să fie egală sau mai mare decât VDD1 (este permis ca VDD2 să cadă sub
tensiunea VDD1 în timpul comutării on/off).

82
CAPITOLUL 7

TEHNICI DE CODIFICARE A DATELOR

7.1. Comparaţie între tehnicile de codificare a datelor

Tehnicile de codificare a datelor au un efect semnificativ asupra radiaţiilor


electromagnetice (EMI). Pentru a obţine cea mai înaltă viteză posibilă de transmisie, este
important să se aleagă o tehnică de codificare a datelor care să îndeplinească următoarele
condiţii:
- să aibă cele mai puţine tranziţii pe bit;
- intervalul de timp dintre tranziţii să fie suficient;
- să aibă sincronizare de bit astfel încât testarea biţilor nevalabili să fie eficientă;
- să fie capabile de a realiza arbitrarea;
- să nu genereze nivele excesive ale radiaţiilor electromagnetice, etc.
În tabelul 7.1 sunt date principalele tehnici utilizate în codificarea datelor transmise
pe magistrale multiplexate şi caracteristicile acestora.

Tabelul 7.1
PWM VPWM 10-Bit bit-stuf L-MAN E- MFM
NRZ NRZ MAN
variabilă nu da Nu da nu nu Nu
sincroniz. da da Nu nu da nu Da
arbitrare da da Da da da da Da
tranziţii/bit 2 1 1.25 1.015 2 1.25 1
viteza max 7.1 K 11.2 K 13.5 K 16.6 K 8.4 K 13.5 K 16.8 K
toleranţă osc. ±29.2% ±29.2% ±5.1% ±9.7% ±29.2% ±9.7% ±10.7%
integritate date perfect bună satisf. satisf. perfectă satisf. superb

În paragrafele care vor urma se vor studia toate aceste tehnici:


- modulaţia impulsurilor în durată (PWM - pulse width modulation),
- modulaţia variabilă a impulsurilor în durată (VPWM - variable pulse width
modulation),
- 10 – bit NRZ (non return to zero),
- NRZ cu biţi de umplutură (Bit – Stuf NRZ - bit stuf non return to zero),
- L – MAN (L - Manchester),
- E – MAN (E – Manchester),
- modulaţia cu frecvenţă modificată (MFM - modified frecquency modulation).

Variabilitatea - descrie un atribut prin care timpul de transmisie pentru un byte de


date (8 biţi) este o cantitate variabilă depinzând de valoarea datelor. Modulaţia variabilă a

83
impulsurilor în durată (VPWM) şi NRZ cu biţi de umplutură (Bit-Stuf NRZ) au amândouă
viteză de repetiţie pe byte variabilă (variabilitatea datelor).
Sincronizarea - este asigurată de modulaţia impulsurilor în durată (PWM),
modulaţia variabilă a impulsurilor în durată (VPWM), L-MAN, şi modulaţia cu frecvenţă
modificată (MFM). De exemplu, PWM are două tranziţii pe bit cu 1/3 timp de bit între
transmisii. Tehnica NRZ are un maxim de o tranziţie pe bit, dar este mărită pentru a asigura
sincronizarea. Câteva tehnici de codificare pentru comanda discurilor, cum ar fi modulaţia
cu frecvenţă modificată (MFM) sunt sincrone cu puţin peste o tranziţie pe bit.
Unele tehnici de codificare a biţilor sincronizează pe tranziţii care încep sau se
încheie în interiorul graniţelor bitului. De exemplu, NRZ de 10 biţi, Bit-Stuf NRZ şi E-
MAN folosesc tranziţii adăugate pentru realizarea sincronizării (sincronizarea clock-ului).
Arbitrarea - toate tehnicile de codificare din pot realiza arbitrarea bit cu bit.
Excepţie face codificarea în frecvenţă modificată (MFM). Arbitrarea bit cu bit este calculată
prin numărul de tranziţii de bit al datelor.
Viteza maximă de transmisie a datelor -. pentru a face o comparaţie între tehnicile
de codificare, s-au folosit aceleaşi viteze nominale de bit sau viteza medie de bit, cum ar fi
în cazul codificării VPWM. Mica descreştere a vitezei datelor pentru 10-Bit NRZ, Bit-Stuf
NRZ şi E-MAN este în mod normal neglijabilă, fiind folosită viteza Baud.
O cerinţă importantă în alegerea unei tehnici convenabile pentru codificarea datelor
în vederea transmiterii, este ca aceasta să nu genereze nivele excesive ale radiaţiilor
electromagnetice.
În mod uzual, standardul CISPR este considerat adecvat (CISPR/D/WG2 - Radiated
Emission Antenna & Probe Test Document a fost în general interpretat de majoritatea
inginerilor de RF pentru a specifica un punct de frângere la 500 kHz de -60 dBV). Acest
factor determină viteza maximă permisă a datelor codificate, cu scopul de a menţine un
nivel al interferenţei electromagnetice (EMI) sub punctul de frângere al standardului
CISPR, adică de -60 dBV la 500 kHz.
De exemplu, pentru a calcula nivelele EMI radiate de un singur fir într-un arbore de
cablu al unui vehicul s-a folosit forma de undă trapezoidală reprezentată în figura 7.1,
pentru care s-a calculat seria Fourier.

Amplitudine
[V]

t0 t1 t2 t3 Timp
T

Fig. 7.1 Formă de undă trapezoidală

2  n
1  freq  , unde n este un număr întreg.
T T

84
a  n  1  t1

b  n  1  t 2

c  n  1  t 3

 1 cos( a ) cos(b)  cos(c)


R =  
t1 t1 t3  t 2

 sin( a) sin( c)  sin( d )


F = 
t1 t3  t 2

Vamp
MAG  20 log R2  F 2 (7.1)
(2  n   ) 2

Pentru a determina timpul de creştere, în calcule s-a considerat o viteză a datelor de


10.4 Kbit/s la un factor procentual de 42% al factorului de umplere (lăţimea minimă a
impulsului). Cel mai scurt timp de creştere (42 procente din cea mai scurtă lăţime a
impulsului), cel mai scurt timp pentru impuls şi cea mai rapidă rată de repetiţie ar trebui
produse în cel mai rău caz de EMI în dBV. Valoarea reală măsurată pentru EMI va fi cu
puţini dBV mai bună decât valoarea calculată, deoarece lăţimea benzii de frecvenţă a ieşirii
driver va acţiona ca un filtru trece jos.
Toleranţa oscilatorului. Există un număr de constrângeri hardware care afectează
sincronizarea reţelei şi toleranţa oscilatorului. Valorile date în tabelul 7.1 sunt calculate
fără aceste constrângeri, deoarece ele nu sunt în general considerate un factor pentru
evaluarea tehnicilor de codificare.
Pentru deteminarea toleranţei oscilatorului, un rol important îl are tehnica folosită de
receptor pentru a detecta o tranziţie de sincronizare. Pentru comparaţie, pot fi folosite mai
multe tehnici diferite de eşantionare sau de integrare. Cea mai folosită se referă la tehnica
cu numărător pentru lăţimea impulsurilor. S-a presupus o lăţime minimă a impulsului (PW
min) de 12.5 procente pentru variabilitatea timpului de integrare (IT). Timpul maxim pentru
sincronizare a fost fie lăţimea maximă a impulsului (nominală), fie timpul (nominal) între
tranziţiile de sincronizare.
Pentru exemplificare, s-a calculat toleranţa naturală a oscilatorului (ecuaţia (7.2))
pentru tehnica de codificare PWM. Toate celelalte tehnici de codificare urmează aceeaşi
metodă.

PW max  PW min  IT
Tol %   100 (7.2)
PW max  PW min

85
Figura 7.2 ilustrează clock-ul cel mai rapid maxim şi clock-ul cel mai lent minim
care pot determina valoarea "1" logic sau respectiv "0" logic, pentru simbolul decodat de
către decodorul de simbol.
Timpul de integrare (IT) este timpul de incertitudine în determinarea lăţimii
impulsului.
Toleranţa reală poate fi afectată de aplicaţie şi de hardware-ul specific folosit în
reţea. Variabilităţile introduse de către hardware-ul specific impun ajustarea parametrilor în
ecuaţia (6.2), în vederea găsirii toleranţei finale a oscilatorului pentru dispozitivul care
transmite date.

PW max PW min

Clock nominal
("1" logic)

PW min PW max

Clock nominal
("0" logic)

PW max PW min

Clock rapid
("1" logic)

PW min PW max

Clock lent
("0" logic)

Fig. 7.2 Exemplu de calcul a toleranţei oscilatorului

În general, există trei tipuri de oscilatoare folosite în sistemele multiplexate:


- oscilator cu cuarţ, pentru toleranţe foarte strânse;
- oscilator cu rezonator ceramic, pentru preţ scăzut, toleranţe strânse şi pornire rapidă;
- oscilatoare RC pentru cost foarte scăzut şi pornire foarte rapidă, dar toleranţă slabă.
Pentru filtrarea zgomotului, se foloseşte un filtru digital. Filtrele RC sunt folosite
mai rar deoarece nu sunt suficient de precise.
Pentru toate tehnicile de codificare, un procent de 12.5 din lăţimea minimă a
impulsului a fost folosită pentru timpul de integrare (IT) în calculul toleranţei oscilatorului.
Într-o reţea cu fir unic, decalajele de masă între dispozitivele de pe magistrală
cauzează o variabilitate suplimentară a lăţimii impulsurilor recepţionate. Această condiţie
este acută atunci când se folosesc forme de undă trapezoidale pentru a reduce interferenţa
electromagnetică (EMI).

86
Figura 7.3 arată variabilitatea evoluţiei în timp a lăţimii impulsului introdusă de
decalajul masei.

Max
Decalaj Nom
Min

Fig. 7.3 Efectul decalajului circuitului de masă asupra lăţimii impulsului

Variabilitatea lăţimii impulsului cauzează o reducere a lăţimii minime a impulsului


şi o creştere a lăţimii maxime, având efectul reducerii toleranţei oscilatorului.
Driverele de ieşire sunt sursa unei alte variabilităţi a lăţimii impulsurilor. Efectul
este acelaşi cu cel al decalajului de masă, dar nu atât de acut. Problema este cauzată de
driverele de linie folosite pentru a permite arbitrării să aibă un timp de întârziere mai lung
când se merge dintr-o condiţie activă spre una pasivă decât din una pasivă spre una activă.
Integritatea datelor este apreciată, pentru fiecare tehnică de codificare în parte, pe
o scară de la slabă, satisfăcătoare, bună, superbă, până la perfectă.
Integritatea datelor este afectată de interferenţa electromagnetică (EMI). Dacă se
consideră de exemplu un vehicul, nivelele EMI din interior sunt foarte scăzute. Nivelele
foarte înalte de zgomote "în salve", pentru o perioadă scurtă de timp şi la intervale aleatorii,
pot distruge complet comunicaţiile multiplexate pe durata zgomotului. Alt efect al acestor
zgomote în salve este doar un perceptibil pocnet în difuzorul aparatului de radio de pe bord.
Pe durata acestor evenimente, integritatea datelor este compromisă. Pentru transmisiile de
date multiplexate trebuie detectată această denaturare a datelor şi eliminat întregul mesaj,
soluţie preferată celei prin care s-ar încerca să se recupereze datele. Metoda este
recomandată deoarece cantitatea de date denaturate comparată cu datele nedenaturate este
neglijabilă şi/sau poate fi retransmisă fără a cauza probleme de lăţime de bandă pentru
magistrală.
Un studiu amănunţit al imunităţii la zgomot este foarte complex, iar criteriile pentru
caracterizare trebuie să ia în considerare mai mulţi factori (mediul cu zgomot, detectorul
hardware, capacitatea interfeţei hardware şi protocolul de manevrare a mesajelor, etc.).
Nivelul mesajului (datelor transmise) se poate aprecia prin teste de validare. Cele
mai folosite teste sunt algoritmii eroare bit: un bit de paritate, sumă de control sau CRC.
Lungimea mesajului transmis se poate stabili folosind protocoale adecvate. Aceste teste de
nivel al mesajelor nu depind de metoda folosită pentru codificarea biţilor şi nu ar trebui să
influenţeze integritatea datelor.
Abilitatea naturală a tehnicilor de codificare pentru a detecta denaturarea datelor
este cunoscută sub denumirea de detecţia bitului nevalabil.
În mod uzual se consideră trei tipuri de integritate a datelor:

87
1. Filtrarea trece jos presupune trecerea bitului de date print-un filtru trece jos (un
integrator); cu cât este mai lungă cea mai scurtă durată a impulsului, cu atât este mai
eficientă filtrarea.
2. Testul pentru detecţia zgomotului în salvă controlează duratele reduse ale EMI.
3. Două teste independente ale bitului de date confirmă datele valabile. De exemplu,
PWM are două perioade de eşantionare unice pe bit şi ambele perioade trebuie să se
complementeze una pe cealaltă.

7.2 Tehnica de codificare PWM

Tehnica de codificare cu modulaţia impulsurilor în durată (PWM) are două perioade


de eşantionare (faze) pe bit (T1 şi T2), descrise în figura 7.4.
Codificarea PWM are avantajul unui timp pe bit constant.
Ca dezavantaj, deoarece are două tranziţii pe bit, generează mai multă interferenţă
electromagnetică (EMI). Pentru a reduce cât mai mult efectul EMI, unul din cei doi timpi
de fază este definit ca având o durată de timp dublă faţă de cea a celeilalte faze.

Activ

Pasiv
T1 T2 T1 T2
Valoare logică a bitului: "0" "1"

Fig. 7.4 Codificarea PWM a datelor

Tehnica PWM are abilitatea de a realiza arbitrarea bit cu bit. Figura 7.5 arată cum
un bit "0" domină şi are prioritate faţă de un bit "1" logic.

Activ
Bit "0" logic
Pasiv

Activ
Bit "1" logic
Pasiv

Rezultat: "0" logic Activ


are prioritate faţă de
"1" logic Pasiv

Fig. 7.5 Un "0" logic arbitrat cu un "1" logic


88
Pentru stabilirea integrităţii datelor codificate PWM, considerăm un circuit de
eşantionare hardware (figura 7.6) care are capacitatea de a detecta (1) tranziţia şi (2) faza
() la fiecare fereastră de eşantionare. Circuitul începe eşantionarea la o tranziţie, apoi
eşantionează secvenţial fereastra 1, fereastra 2 şi apoi fereastra 3. Dacă nu se detectează o
tranziţie de către fereastra 3, înseamnă că data transmisă a fost denaturată şi mesajul este
eliminat (îndepărtat).
Circuitul trebuie să eşantioneze cinci ferestre pe bit şi să ofere informaţii pe bit
despre dubla tranziţie şi fază. Dacă informaţia despre tranziţie şi fază este consistentă,
atunci data este corectă; în caz contrar, data a fost denaturată şi mesajul va fi eliminat.
Dacă, la orice moment se detectează în fereastra 1 o tranziţie de oricare fază, data a fost
denaturată şi mesajul trebuie eliminat.

fereastră 1 2 3
eroare 1+ X X
activ lung 0 1+ X
activ scurt 0 0 1+

Fig. 7.6 Circuit de eşantionare cu trei ferestre

Cu toate că eficienţa filtrului trece-jos este redusă, codificarea PWM are capabilităţi
foarte bune de testare a biţilor nevalabili, deoarece are două din trei teste de validare (de
exemplu, confirmarea perioadelor duble ale datelor transmise şi zgomotul salvă).
PWM este o tehnică de codificare "perfectă" folosită cu succes de exemplu, pentru
multiplexare în electronica pentru automobile, electronica militară sau în electronica
medicală, atunci când integritatea datelor reprezintă prioritatea cea mai înaltă.
Ca un dezavantaj, PWM are tranziţii multiple pe bit şi nu permite funcţionarea la
viteze ale datelor lângă limitele naturale ale EMI pentru un mediu de transmisie pe un
singur fir sau pe fire răsucite.

7.3 Tehnica de codificare VPWM

Tehnica de codificare cu modulaţia variabilă a impulsurilor în durată (VPWM),


uneori simbolizată ca modulaţie VPW, este o variantă a tehnicii PWM.
Codificarea PWM normal are două faze pe bit; T 1 este ilustrat ca fiind un pasiv scurt
şi T2 ca fiind un activ lung. Această combinaţie este definită ca un bit “0” logic.
Un bit "0" logic are prioritate în cazul arbitrării faţă de şablonul opus cu un pasiv
lung şi un activ scurt.

89
Variabilitatea lungimii impulsului, introdusă de factori cum ar fi decalajul masei şi
variaţii ale sincronizării driverului de ieşire pot fi adunate la temporizarea duratei (lăţimii)
impulsului, fără o reducere severă a toleranţei oscilatorului, ceea ce reprezintă unul dintre
avantajele codificării VPWM.
În figura 7.7 este reprezentat un bit “0” logic codificat în tehnica VPWM.

bit n-1 bit n bit n+1


Activ

Pasiv
T1 T2

Fig. 7.7 Un bit "0" logic codificat VPWM

Standardul de comunicaţii seriale SAE J1850 foloseşte tehnica VPWM. O durată a


impulsului de 64 µs pentru o perioadă scurtă şi 124 µs pentru o perioadă lungă aproximează
aceeaşi viteză medie a datelor (de 14.4 Kbit/s) ca şi PWM obişnuit folosind o lăţime a
impulsului de 32 µs pentru unul scurt şi 64 µs pentru unul lung. Durata minimă a
impulsului VPWM pentru unul scurt este de 64 µs şi permite un timp de creştere de 16 µs
pentru T, aşa cum s-a arătat în figura 7.3. Comparăm acest timp de creştere cu PWM
convenţional, unde un 32 µs scurt permite un timp de creştere de numai 8 µs. Rezultatul
timpului de creştere proporţional mai lung şi al formării undei este o îmbunătăţire de
aproximativ 9-dBV în EMI faţă de PWM.
Dezavantajul codificării VPWM este variabilitatea în timp a vitezei datelor pe byte
transmis, în funcţie de valoarea datelor. Viteza de polling a interfeţei transmiţător /
receptor a microcomputerului cu VPWM trebuie să fie mai mică decât  512 µs pe byte, în
timp ce pentru PWM, trebuie sa fie mai mică decât  768 µs.
Pentru a realiza arbitrarea bit cu bit, tehnica VPWM codifică fiecare fază ca un bit
de date. Figura 7.8 redă arbitrarea unui pasiv scurt cu un pasiv lung iar figura 7.9 prezintă
arbitrarea unui activ lung cu un activ scurt. În ambele cazuri, un "0" logic are prioritate faţă
de un "1" logic, deci codificarea VPWM este capabilă să realizeze arbitrarea.
Tehnica VPWM are o bună integritate a datelor prin eşantioanarea de până la trei ori
a duratei fiecărui impuls, aşa cum s-a arătat în figura 7.6.
Circuitul de eşantionare este proiectat pentru a detecta o tranziţie şi fază () la
fiecare fereastră de eşantionare şi are un număr mediu de 2.5 eşantioane pe bit. Ori de câte
ori în fereastra de eşantionare 1 se detectează o tranziţie de orice fază, data a fost denaturată
şi mesajul trebuie eliminat.
Secvenţa de eşantionare este iniţiată printr-o tranziţie de orice fază, când este sesizat un
simbol scurt prin nedetectarea unei tranziţii (0) în fereastra 1 şi detectarea unei tranziţii (1 + ) şi
faza corespunzătoare în fereastra 2. Eşantionarea în fereastra 3 este "indiferentă", deoarece
eşantionarea este terminată şi procedura este repetată. Fereastra 3 este de fapt fereastra 1 în
următoarea secvenţă de eşantionare.

90
Un simbol lung este în acelaşi mod sesizat prin nedectarea unei tranziţii în fereastra 1 sau 2
şi detectarea unei tranziţii (1 + ) şi fază adecvată în fereastra 3.
Activ
Un pasiv scurt este
definit ca bit "0"
logic Pasiv

Activ
Un pasiv lung este
definit ca bit "1"
logic Pasiv

Rezultat: un pasiv Activ


scurt are prioritate
faţă de un pasiv lung Pasiv

Fig. 7.8 Arbitrarea unui pasiv scurt cu un pasiv lung

Un activ lung este Activ


definit ca bit "0"
logic Pasiv

Un activ scurt este Activ


definit ca bit "1"
logic Pasiv

Rezultat: un activ Activ


lung are prioritate
faţă de un activ scurt Pasiv

Fig. 7.9 Arbitrarea unui activ lung cu un activ scurt

Detectarea fazei adecvate la o tranziţie, este folosită pentru a verifica dacă secvenţa
nu a fost amestecată şi, de asemenea, pentru a defini nivelul logic recepţionat ("0" sau "1").
VPWM a fost apreciată cu o integritate "bună" a datelor deoarece filtrarea trece-jos
a lăţimii impulsurilor de date este bună. Fiecare tranziţie este validată de o fereastră de
eşantionare a erorii, iar măsurătorile de durată a impulsurilor sunt validate de testul de fază
adecvată, adică, două din trei teste de bit nevalabil.

7.4 Tehnica de codificare 10-Bit NRZ standard

Formatul codificării 10-Bit NRZ standard este prezentat în figura 7.10. Formatul are 10 biţi
pe byte de date de tip asincron serial (UART standard).
Pentru realizarea sincronizării byte-ului de date, au fost adaugaţi un bit de START şi
un bit de STOP.
91
START DATA STOP
7 0 1 2 3 4 5 6 7 0

Fig. 7.10 Forma de undă 10-bit NRZ (LSB primul)

UART standard folosit în interfaţa serială RS232 este de tipul cu biţi ordonaţi, în
care LSB este primul. Reţelele multiplexate care folosesc 10-bit NRZ folosesc hardware-ul
cu pin I/O asincron, adică interfaţa de comunicaţii disponibilă pe multe microcomputere.
Arbitrarea pentru 10-bit NRZ se poate analiza din figura 7.11, care prezintă
arbitrarea valorii 28H de la transmiţătorul #1, cu valoarea 44H de la transmiţătorul #2.
Un "0" activ câştigă arbitrarea în faţa unui "1" pasiv.

START 0 0 0 1 0 1 0 0 STOP
1
XMIT 1
0 1 2 3 4 5 6 7 0
0

0 0 1 0 0 0 1 0
1
XMIT 2 0 1 2 3 4 5 6 7 0
0

0 0 0 1 0 1 0 0
Magistrală 1
0 1 2 3 4 5 6 7 0
0

Fig. 5.11 Arbitarea unei reţele 10-Bit NRZ

Deoarece magistrala multiplexată pentru transmisia datelor are pe ea valoarea 28H,


transmiţătorul #2 îşi deconectează ieşirea când transmite bitul 2 deoarece a pierdut
arbitrarea. Pierderea arbitrării este metoda folosită de toate protocoalele de arbitrare.
Dacă pentru aprecierea integrităţii datelor codificate în tehnica 10-bit NRZ s-ar
folosi eşantionarea cu sincronizare pe bit (ca în tehnicile PWM şi VPWM), aceasta ar trebui
să fie mult mai complexă şi să garanteze sincronizarea numai pe tranziţia STOP spre
START. Ar trebui să nu se eşantioneze doar un bit, ci toţi opt, de aceea, se foloseşte un
detector pentru bitul START, cu scopul de a sesiza un bit de START valabil şi apoi se
eşantionează secvenţial toţi cei opt biţi ai datei transmise.
Ca în toate tehnicile de decodare, data este trecută printr-un filtru trece-jos. Totuşi,
filtrarea pentru NRZ este foarte eficientă datorită duratelor lungi ale impulsurilor de date.

92
Codificarea 10-Bit NRZ are o integritate a datelor "satisfăcătoare", deoarce
adăugarea unei tranziţii între bitul STOP şi bitul STAT nu este unică în secvenţă şi
detectorul hardware s-ar putea "agăţa". Adăugând detecţia unui bit nevalabil pentru
zgomotul salvă între biţii de date, se îmbunătăţeşte integritatea datelor, dar nu poate fi
validat fiecare bit.

7.5 Tehnica de codificare Bit – Stuf NRZ

Tehnica de codificare NRZ cu biţi de umplutură foloseşte "umplerea" cu biţi ca o


cale de sincronizare a datelor codificate NRZ. Se inserarează un bit (adică două tranziţii)
după un număr specificat (X) de biţi alăturaţi "0" sau "1" şi dacă al X+1 -lea bit este de
aceeaşi valoare logică ca şi ceilalţi biţi învecinaţi. Numărul biţilor învecinaţi este ales ca un
compromis între toleranţa oscilatorului şi EMI generat.
Figura 7.12 redă forma de undă folosită de protocolul CAN, pentru X = 5 biţi
alăturaţi identici.

Curent de bit
original 0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1
(transmiţător)

Şapte biţi "1" alăturaţi


Curent de bit
pe magistrală 0 1 0 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1

Bit opus "umplut" în curent


Curent de bit
original
(transmiţător) 0 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 0 1

Şase biţi "1" alăturaţi

Curent de bit
pe magistrală 0 1 0 0 0 0 0 1 0 1 1 1 0 0 1 0 0 0 1

Bit opus "umplut" în curent

Fig. 7.12 Codificarea NRZ cu biţi de umplutură

Cu cât este mai mare numărul de biţi învecinaţi înainte de a introduce un bit de
umplutură, cu atât mai bună trebuie să fie toleranţa de sincronizare a oscilatorului, dar cu
atât este mai mică EMI. Numărul biţilor de umplutură într-un cadru depinde de valoarea
datei, iar timpul de transmisie pentru un byte de date depinde de valoarea datei. De aceea,
trebuie cunoscut numărul mediu de bytes de date pe bit de umplutură. Deducerea numărului
mediu de biţi de umplutură se face cu ajutorul ecuaţiilor 7.3. În mod normal, un bit de date
dintr-un mesaj are probabilitate egală de a fi "1" sau "0".
93
Probabilitatea de a exista un bit de umpultură Bi în algoritmul de umplere când
numărul biţilor egali alăturaţi este ales X = 5 este:

B0 B1    Bi    Bn1

0 cand i  5

pi  1 / 32 cand i  5

1 / 64 cand i  5

N
F (N )  n 1
= Numărul de BYTES / UMPLUTURĂ
p
i 0
i

unde: n = Numărul de biţi


n
N Numărul de bytes
8

lim F ( N )  8 , F(12) = 8.348 (7.3)


n 

Arbitratrea NRZ cu biţi de umplutură se face bit cu bit. Ca în toate tehnicile de


arbitrare a codificării, transmiţătorul NRZ cu biţi de umplutură foloseşte un driver care are
o stare activă şi o stare pasivă, acest mod susţinând arbitrarea bit cu bit.
Stabilirea integrităţii datelor codificate NRZ cu biţi de umplutură se face prin
eşantionare sincronizată pe bit, în şase ferestre, aşa cum este prezentată în figura 7.13.

Fereastră 1 2 3 4 5 6
Data Dn Dn+1 Dn+2 Dn+3 Dn+4

Eroare 1+ X X X X X
Bit 1 0 1+ X X X X
Bit 2 0 0 1+ X X X
Bit 3 0 0 0 1+ X X
Bit 4 0 0 0 0 1+  X
Bit 5 0 0 0 0 0 1+ 

Fig. 7.13 Circuit de eşantionare cu şase ferestre

94
Eşantionarea trebuie să se adapteze de la unul la cinci biţi de date în mod secvenţial
şi să sincronizeze pe bitul de umplutură. Toţi biţii de date anteriori eşantionării unei tranziţii
au atribuit acelaşi nivel logic ca şi nivelul detectat de detectorul de tranziţie şi fază. Dacă
este detectată tranziţia în fereastra #1, datorată zgomotului salvă, mesajul trebuie înlăturat.
Detectorul poate îmbunătăţi integritatea datelor, dar nu poate valida fiecare bit. Ca şi în
celelalte tehnici de codificare prezentate, data este trecută printr-un filtru trece-jos. Totuşi,
filtrarea pentru NRZ este foarte eficientă datorită duratei lungi a impulsului de date.
Codificarea NRZ cu biţi de umplutură are integritatea datelor "satisfăcătoare",
deoarece adăugarea unui bit de umplutură pentru sincronizare nu este unică în secvenţă şi
detectorul hardware ar putea agăţa.

7.6 Tehnica de codificare L – Manchester (L-MAN)

Tehnica de codificare L-MAN are două perioade de eşantionare de faze opuse, ca în


figura 7.14. Codificarea L-MAN are avantajul că timpul pe bit rămâne constant, dar are
dezavantajul de a genera mai mult EMI deoarece poate avea pentru numărul de tranziţii pe
bit o valoare medie de unu şi jumătate şi o valoare maximă de doi.

CLOCK

Activ

Pasiv

Valoare logică bit "0" "1"

Fig. 7.14 Biţi de sincronizare codificaţi L-MAN

O tranziţie de la nivelul activ la cel pasiv va fi decodată ca un "0" logic şi o tranziţie


de la nivelul pasiv la ce activ va fi decodat ca "1" logic. O tranziţie de sincronizare este
întotdeauna generată în centrul bitului dar nu poate fi generată la începutul unei perioade de
bit, deoarece depinde de dată. Când există o secvenţă de date "0" la "1" sau "1" la "0",
tranziţia nu este generată (figura 7.15).

95
CLOCK

7 6 5 4 3 2 1 0
Activ
Pasiv

Data 0 1 1 0 0 0 1 0

Fig. 7.15 Byte de date codificate L-MAN

Arbitrarea pentru L-MAN se observă în figura 5.16. Un bit "0“ logic câştigă
întotdeauna arbitrarea cu un "1" logic. Situaţia este posibilă deoarece porţiunea activă a
semnalului se suprapune peste porţiunea pasivă şi decuplează concurentul pasiv înainte ca
acesta să devină activ.

Activ

Pasiv

Valoare logică Xmit 1 "0"

Activ

Pasiv

Valoare logică Xmit 2 "1"


Activ

Pasiv

Valoare logică magistrală "0"

Fig. 7.16 Arbitrarea unui "0" logic cu un "1" logic

Integritatea datelor L-MAN se stabileşte folosind un circuit de eşantionare în trei


ferestre cu capacitatea de a detecta o tranziţie (1) şi fază () la fiecare fereastră de
eşantionare. Circuitul începe eşantionarea la o tranziţie şi apoi eşantionează secvenţial
fereastra 1, fereastra 2 şi apoi fereastra 3. Dacă nu se detectează o tranziţie de către fereastra
3, atunci înseamnă că data a fost denaturată şi mesajul este înlăturat.
Atunci când sistemul de eşantionare este folosit pentru date codificate L-MAN, el
trebuie să eşantioneze de la patru la cinci ferestre pe bit şi să producă pe bit informaţii
despre tranziţiile complementare şi fază. Dacă Dn şi Dn+1 au acelaşi nivel logic, adică "1"
sau "0", atunci nu trebuie să aibă loc o tranziţie la graniţă sau o dată denaturată ar putea fi
luată în considerare şi mesajul va fi înlăturat. Dacă la orice moment în fereastra de

96
eşantionare 1 de detectează o tranziţie de orice fază, data a fost denaturată şi mesajul este
îndepărtat.
Codificarea L-MAN are integritatea datelor "perfectă”, chiar dacă eficienţa filtrului
trece-jos este redusă. Pe de altă parte, are două din cele trei teste de validare:
- validarea dublă a datelor prin perioadele adecvate la graniţa bitului şi
- testul de zgomot salvă la fiecare bit. L-MAN este o tehnică de codificare "perfectă"
folosită în multe aplicaţii de transfer de date pe magistrală multiplexată, atunci când
integritatea datelor are cea mai înaltă prioritate.
Totuşi, această tehnică are tranziţii multiple pe bit şi nu permite funcţionarea la
viteze ale datelor lângă limitele naturale EMI pentru medii de transmisie cu fir unic sau
pereche răsucită.

7.7 Tehnica de codificare E-Manchester (E-MAN)

E-Manchester, sau manchester intensificat, foloseşte un bit de date codificat L-


Manchester pentru sincronizare, combinat cu trei biţi de date codificaţi NRZ. Figura 7.17
reprezintă patru biţi de dată codificaţi E-MAN. Primii trei biţi sunt codificaţi în tehnica
NRZ iar al patrulea bit este codificat L – MAN.

CLOCK

Valoare "0" "1" "0" "1"


logică bit NRZ NRZ NRZ L - MAN
Activ

Pasiv

Fig.7.17 Patru biţi de dată codificată E-MAN

Pe timpul arbitrării, un activ ("0" logic) are prioritate faţă de şablonul opus ("1"
logic) atât pentru biţii de sincronizare codificaţi NRZ cât şi pentru L - MAN. Dominaţia
unui "0" logic asupra unui "1" logic este posibilă deoarece porţiunea activă a semnalului se
suprapune peste partea pasivă şi astfel deconectează ieşirea concurentului pasiv înainte ca
acesta să devină activ.
Avantajele tehnicii de codificare E – MAN:
- cea mai scurtă durată de impuls la 10.4 Kb/s este  76.8 µs şi permite un procent de
42% a timpului de creştere de 32.3 µs comparativ cu 32 µs durata scurtă a
impulsului şi 13 µs timp de creştere la codificarea PWM convenţional sau VPWM;
- timpul de creştere al formei de undă este mai mare;
- are o îmbunătăţire de 11-dBV în EMI faţă de PWM;
- viteza datelor pe byte transmis este constantă faţă de codificarea VPWM, în care
viteza datelor era variabilă;

97
- viteza de polling a transmiţătorului / receptorului microcomputerului care transferă
date codificate E-MAN trebuie să fie o constantă de valoare mai mică decât 768 µs
pe byte.

Pentru stabilirea integrităţii datelor E-MAN, se foloseşte aceeaşi tehnică de


eşantionare ca în codificarea NRZ cu biţi de umplutură, capabilă să detecteze (1) o tranziţie
şi (2) o fază () la fiecare fereastră de eşantionare şi poate eşantiona până la de şase ori pe
durata unui impuls.
Secvenţa de eşantionare este iniţiată de o tranziţie de orice fază. Dacă există o
tranziţie (1 + ) în fereastra 2, atunci valoarea lui Dn este determinată de nivelul logic şi
fază.
Dacă există o tranziţie (1 + ) în fereastra 3 din secvenţa de eşantionare, atunci Dn =
Dn+1 şi este determinat de nivelul logic şi fază.
Dacă există o tranziţie (1 + ) în fereastra 4 din secvenţa de eşantionare, atunci Dn =
Dn+1 = Dn+2 şi este determinat de nivelul logic şi fază.
Dacă există o tranziţie (1 + ) în fereastra 5 din secvenţa de eşantionare, atunci Dn =
Dn+1 = Dn+2 şi este determinat de nivelul logic şi fază. Valoarea lui Dn+3 este determinată de
către fază () deoarece acesta este bitul codificat L-MAN şi va fi confirmat de o tranziţie (1
+ ) în fereastra 2 pe următoarea secvenţă de eşantionare.
Dacă există o tranziţie (1 + ) în fereastra 6 din secvenţa de eşantionare, atunci Dn =
Dn+1 = Dn+2 şi este determinat de nivelul logic şi fază. Valoarea lui Dn+3 este determinată de
către fază () deoarece acesta este bitul codificat L-MAN.
Bitul codificat L-MAN nu este unic în secvenţă şi detectorul hardware trebuie să
păstreze urma unde bitul L-MAN ar trebui să fie, deoarece dacă o tranziţie (1 + ) pentru
bitul codificat L-MAN cade într-o fereastră alta decât fereastra 6, atunci valoarea lui Dn+3
este determinată de faza () a tranziţiei.
Codificarea E-MAN are integritatea datelor "satifacătoare", deoarece bitul codificat
L-MAN nu este unic în secvenţă şi detectorul hardware ar putea agăţa. Dacă o tranziţie este
detectată în fereastra 1, un bit nevalabil a fost detectat, care ajută integrităţii datelor dar nu
ar putea valida fiecare bit. Ca şi cu toate tehnicile de decodare, data este trecută printr-un
filtru trece-jos. Pe de altă parte, filtrarea pentru E-MAN este foarte eficientă din cauza
duratei lungi a impulsului.

7.8 Tehnica de codificare MFM

Tehnica de codificare cu frecvenţă modificată (MFM) a fost dezvoltată spre sfârşitul


anilor '60 şi a fost folosită în special în unităţile de discuri. Ea poate fi adaptată pentru
codificarea datelor transferate în sisteme cu conectare multiplexată. Avantajul folosirii
tehnicii de codificare MFM este acela că poate fi sincronă la o medie de 0.75 şi maximum 1
tranziţii pe bit.
Tehnica permite un timp de creştere al tranziţiei care poate fi maximizat şi o formă
de undă care reduce EMI semnificativ. Unităţile de disc au cerinţe similare, în care tehnica
de codificare MFM permite impulsurilor să fie înregistrate pe disc cu o densitate maximă.
98
Codificarea implică o tranziţie la timpul de date, atunci când data la momentul
fantei este "1" logic. De asemenea, este generată o tranziţie la momentul fantei de clock
când data dinainte şi de după fanta de timp a fost "0" logic (sau doi de "0" într-un rând).
Diagrama arătată în figura 7.18 prezintă metoda de aplicare a tehnicii de codificare
MFM la o reţea de transmisiuni de date.

Bit  7 6 5 4 3 2 1 0
Timp C D C D C D C D C D C D C D C D C
Data 1 1 0 1 0 0 0 1

Formă
de undă

D = impuls date C = impuls clock

Fig. 7.18 Byte de date codificat MFM

Datele transmise de la un dispozitiv pe magistrala multiplexată vor fi arbitrate bit cu


bit cu datele de la un alt dispozitiv. Ordonarea prin arbitrarea biţilor este definită cu MSB
primul, iar 00H are cea mai înaltă prioritate. Pentru a susţine arbitrarea, driverul de ieşire
este definit şi proiectat pentru a avea o stare activă care are prioritate faţă de starea pasivă.
Figura 7.19 prezintă cele patru reguli de codificare care pot fi folosite pentru a
genera o formă de undă "A", care câştigă întotdeauna arbitrarea.
Deoarece pentru datele codificate MFM există patru reguli pentru câştigarea
arbitării pe magistrala multiplexată, înseamnă că datele pot fi convertite într-o formă care
va fi corect arbitrată. În concluzie, rezultă că datele pot fi codificate în bytes diferiţi, care
vor trebui decodificaţi înapoi după arbitrare.
Aplicând cele patru reguli, procesul de codificare în bytul original a unui "0" logic
care va câştiga şi a unui "1" logic care va pierde, este următorul: START cu MSB,
deplasare către LSB, adică de la stânga către dreapta.
Când se face codificarea, trebuie să fim siguri că toţi "0" care se întâlnesc vor
câştiga arbitrarea, adică Regula 1 şi 4. Când un "1" se întâlneşte trebuie să fim siguri că
tipul de "0" care va fi urma bitul precedent va câştiga arbitrarea în faţa unui "1" în bitul
prezent, adică Regula 2 şi 3. Pentru fiecare "1" întâlnit într-un rând, trebuie să fim siguri că
celălalt byte care are aceiaşi biţi până la acest punct, dar care acum are un "0", va câştiga
arbitrarea cu acel "0".
Codificarea şi decodificarea datelor într-un format MFM poate fi realizată prin
hardware în circuitul de intefaţă. Pentru aceasta este necesar un proces în doi paşi:
- În primul pas, bytes-ii de date care trebuie transmişi pe magistrală sunt translaţi în
forma corectă pentru arbitrare folosind regulile indicate de figura 5.19. Funcţionarea
codorului MFM depinde de o valoare de START a unui "1" dominant, care este furnizat
de START CADRU (SOF - start of frame).
- După ce data a fost translată în forma corectă pentru arbitrare, ea poate fi codificată de
către circuit. După aceasta, data este pregătită pentru a fi transmisă de către circuitul
I/O. Data recepţionată necesită secvenţa inversă şi apoi translarea în forma binară
corectă. Translarea poate fi realizată de către circuit.
99
C D C D C
Regula 1 - Unda "A": Unda "B" 0 1
Dacă bitul anterior a fost un "0" pasiv, codând Activ
bitul urmărtor ca un "0" va domina întotdeauna Pasiv
Unda "A" 0 0
Activ
Pasiv

Rezultat: "A" câştigă arbitrarea

C D C D C
Regula 2 - Unda "A": Unda "B" 0 0
Dacă bitul anterior a fost un "0" activ, codând Activ
bitul urmărtor ca un "1" va domina întotdeauna Pasiv
Unda "A" 0 1
Activ
Pasiv

Rezultat: "A" câştigă arbitrarea

C D C D C
Regula 3 - Unda "A": Unda "B" 1 0
Dacă bitul anterior a fost un "1" pasiv, codând Activ
bitul urmărtor ca un "1" va domina întotdeauna Pasiv
Unda "A" 1 1
Activ
Pasiv

Rezultat: "A" câştigă arbitrarea

C D C D C
Regula 4 - Unda "A": Unda "B"
Activ 1 1
Dacă bitul anterior a fost un "1" activ, codând
Pasiv
bitul urmărtor ca un "0" va domina întotdeauna
Unda "A" 1 0
Activ
Pasiv

Rezultat: "A" câştigă arbitrarea

Fig. 7.19 Cele patru reguli pentru câştigarea arbitrării la codificarea MFM

Integritatea datelor MFM se stabileşte prin eşantionare. Receptorul pentru date


codificate MFM eşantionează până la de patru ori fiecare durată de impuls atunci când
începe o tranziţie a datei şi până la de trei ori pe durata fiecărui impuls când începe un
impuls de clock, aşa cum se arată şi în figura 7.20.

100
Fereastră 1 2 3 4
Clock Dn C Dn+1
Data C Dn C Dn+1

Eroare 1+ X X X
Bit 1 0 1+ X X
Bit 1½ 0 0 1+ X
Bit 2 0 0 0 1+

Fig. 7.20 Capacitatea de integritate a datelor MFM

Secvenţa de eşantionare este iniţiată de o tranziţie de orice fază. Circuitul de


eşantionare poate detecta o tranziţie (1 + ) de orice fază, în orice fereastră de eşantionare.
Într-o fereastră de date, următoarele secvenţe încep cu o tranziţie:
1. Dacă după 1 +  în fereastra de date 1, atunci a fost detectată o eroare.
2. Dacă după 1 +  în fereastra de date 2, atunci valoarea Dn = 1.
3. Dacă după 1 +  în fereastra de date 3, atunci valoarea Dn = 0 şi Dn+1 = 0.
4. Dacă după 1 +  în fereastra de date 4, atunci valoarea Dn = 0 şi Dn+1 = 1.

Într-o fereastră de clock, următoarele secvenţe încep cu o tranziţie:


1. Dacă după 1 +  în fereastra de clock 1, atunci a fost detectată o eraoare.
2. Dacă după 1 +  în fereastra de clock 2, atunci valoarea Dn = 0 şi Dn+1 = 0.
3. Dacă după 1 +  în fereastra de clock 3, atunci valoarea Dn = 0 şi Dn+1 = 1.
4. Dacă după 1 +  în fereastra de clock 4, atunci a fost detectată o eroare.

Codificarea cu frecvenţă modificată (MFM) are o integritate a datelor "superbă"


deoarece, ca şi la codificarea VPWM, fiecare transmisie este validată de o fereastră de
eşantionare a erorilor şi un test de fază adecvat. De asemenea, când tranziţiile cad în
ferestrele 3 şi 4 pentru date şi 2 şi 3 pentru clock, capătă sens două valori ale biţilor de date.
O eşantionare confirmă pe cea anterioară, aceasta îmbunătăţind capacitatea de integritate a
datelor.
Cu tehnica de decodare MFM, datele sunt trecute printr-un filtru trece-jos. Filtrarea
pentru MFM este foarte eficientă datorită duratelor lungi ale impulsurilor de date.

101
CAPITOLUL 8

PROTOCOALE PENTRU COMUNICAŢII SERIALE CU


MAGISTRALĂ MULTIPLEXATĂ

8.1 Introducere

Capitolul prezintă principalele protocoale folosite pentru comunicaţii seriale în


sistemele cu magistrală multiplexată din industria de automobile, domeniu de vărf, cu o
dezvoltare spectaculoasă în ultimii ani.
Tabelul 8.1 descrie paragrafele pentru fiecare protocol, ele apărând în ordinea în
care acestea vor fi analizate.

Tabel 8.1 Caracteristicile protocoalelor de comunicaţii seriale cu magistrală multiplexată


A-BUS CAN D2B C2 D PWM
SAE RP Ford
Afiliere VW BOSCH Philips Chrysler
Aplicaţii auto pe vehicul auto pe vehicul audio/video auto vehicul auto vehicul
Mediu de fir unic pereche pereche pereche pereche
transmisie răsucită/ răsucită răsucită răsucită
fibră optică
Codificare NRZ NRZ cu biţi PWM 10 biţi NRZ PWM
biţi umplutură
Acces competiţie competiţie competiţie competiţie competiţie
Detecţie numai bit CRC paritate sumă de CRC
erori control
Lungime 2 bytes 0-8 bytes 1-128 bytes 1-6 bytes 0-8 bytes
câmp date
Confirmare da da
în mesaj
Viteză de bit 500 Kb/s 1 Mb/s 100 Kb/s 7.812 Kb/s 41.6 Kb/s
maximă
Lungime nespecificată nespecificată 150 m nespecificată 40 m
maximă a tipic 30 m tipic > 40 m tipic > 30m
magistralei
Nr. maxim nespecificat nespecificat 50 nespecificat nespecificat
de noduri tipic 32 tipic > 16
Hardware da da da da da
disponibil

102
VPWM CSC fantă simbol TTP VAN
Chrysler, GM Chrysler Universitatea ISO
Afiliere GM
Viena
Aplicaţii auto auto auto auto auto
pe vehicul pe vehicul pe vehicul pe vehicul pe vehicul
Mediu de fir unic fir unic pereche pereche pereche
transmisie răsucită/ răsucită/ răsucită
fibră optică fibră optică
Codificare VPWM NRZ analog NRZ cu biţi MFM L-MAN
biţi şi PWM umplutură E-MAN
Acces competiţie master/slave fantă simbol declanşare competiţie
timp
Detecţie CRC paritate CRC CRC CRC
erori
Lungime 0-8 bytes 1-32 biţi 0-256 bytes 2-8 bytes 0-8 bytes
câmp date
Confirmare da da da da
în mesaj
Viteză max. 10.4 Kb/s 1 Kb/s 2 Mb/s 1 Mb/s definită de
de bit utilizator
Lungime 40 m nespecificată nespecificată nespecificată 20 m
maximă tipic > 40m tipic 30 m tipic 20 m
magistrală
Nr. max. de nespecificat nespecificat 32 (capacitate nespecificat 16
noduri de transmisie)
Hardware da da nu nu da
disponibil

Aplicaţie - identifică pe scurt aplicaţiile pentru care protocolul a fost proiectat să


servească: militar, aviaţie, industrial, vehicule, etc.
Afiliere - identifică organizaţia sau organizaţiile care au dezvoltat inţial, au
specificat sau susţin protocolul.
Medii de transmisie - mediul fizic, în general asociat sau cerut de protocol: cu un
singur fir, fire duble (paralel), pereche răsucită, pereche răsucită ecranată, pereche dublu
răsucită şi fibră optică.
Interfaţă fizică - circuitele de bază folosite pentru a conecta nodurile la reţea şi
schemele unor interfeţe tipice, aspecte ale interfeţei. De exemplu, nodurile receptoare se
sincronizează cu semnalul de la un nod transmiţător sau nodurile receptoare ajustează
clock-ul receptorului, în funcţie de semnalul de date recepţionat.
Codificarea biţilor - modul în care biţii "1" şi "0" sunt translaţi în semnale pe
mediul de transmisie de către interfaţa fizică. Cele mai utilizate tehnici pentru codificarea
datelor sunt: PWM, NRZ şi MANCHESTER.
Acces la reţea - metoda folosită pentru a acorda reţeaua de comunicaţie unuia dintre
noduri, pentru transmisia unui mesaj: master/slave, trecere simbol, CSMA/CD.

103
Format mesaje - câmpurile care formează mesajul (sau mesajele) de bază folosit
(folosite) în protocol. Aceasta include ordinea, numele şi dimensiunea câmpurilor.
Stabilire legătură (engl. handshaking) - descrie interacţiunea nodurilor în interiorul
unei reţele, în vederea efectuării unei transmisii de date. Aceasta poate include o serie de
procedee cum ar fi confirmarea pozitivă sau negativă şi confirmare în mesaj.
Administrarea detectării erorilor - tipurile de erori detectate de protocoale şi
tehnicile de reconstituire: eroare de lungime a mesajelor şi CRC.
Toleranţa la defect - capacitatea protocolului respectiv de a continua funcţionarea,
posibil la un nivel degradat, atunci când diferite părţi ale stratului fizic sau ale mediului
reţelei pe care operează protocoalele se defectează (adică, conexiunile nodului sunt rupte,
firele magistralei sunt în gol, firele magistralei sunt scurt-circuitate la masă sau la tensiunea
bateriei sistemului).
Viteză de transmisie - identifică viteza maximă de transmisie a datelor pe
magistrală, asigurată de către protocol.
Antet de cadrare - arată cantitatea de nondate ale antetului (antetul de cadrare)
asociat cu protocolul dat şi modul de calculul pentru dimensiunea antetului. Deoarece unele
protocoale oferă formate şi/sau dimensiuni diferite, anumite calcule ale antetelor pot fi
necesare pentru a da o imagine clară a necesităţilor pentru antetul protocolului.
Latenţă - descrie factorii care afectează întârzierea între disponibilitatea unui mesaj
de a fi transmis şi începutul recepţionării acelui mesaj de receptor. Prin definiţie, latenţa
repezintă intervalul de timp între momentul începerii transmisiei datelor pe magistrală şi
momentul de timp la care datele au fost recepţionate corect. Latenţa va fi cu atât mai mică,
cu cât tansmisia datelor se face cu viteză mai mare şi datele sunt recepţionate fără erori.
Reducerea puterii - informaţii generale despre modurile de funcţionare care cer mai
puţină putere decât funcţionarea normală. Ca un minim, se identifică cel mai redus nivel.

8.2 Protocolul A-BUS

Protocolul A-BUS (interfaţă universală cu biţi seriali pentru automobil) a fost


proiectat de firma Volkswagen AG pentru aplicaţii pe automobil (engl.: Automotive Bit-
Serial Universal Interface System).
Mediul de transmisie nu a fost specificat, dar se recomandă folosirea unui singur fir.
Interfaţa fizică nu este specificată, proiectanţii de sisteme de transmisie care folosesc acest
protocol având libertatea de a alege interfaţa.
Codificarea biţilor se face prin tehnica NRZ cu 8 eşantioane / bit, fiecare eşantion
reprezentând ⅛ din lungimea bitului. Un bit valabil trebuie să aibă fie 4, fie 6 eşantioane
complementare (figura 8.1). Alegerea numărului de eşantioane împerechiate, 4 sau 6, este o
funcţie selectabilă de către operator.
Accesul la reţea se face printr arbitrare nedestructivă bit cu bit, care are loc pe
timpul sfârşitului câmpului identificator.
Formatul mesajului pentru protocolul A-BUS este reprezentat în figura 8.2.
Lungimea mesajului este constantă şi are următoarea structură:
- un bit START;

104
- un bit NC/DAT, care indică dacă este vorba despre un mesaj de date sau mesaj de
comandă;
- un identificator de 11 biţi;
- 16 biţi de date şi
- 2 biţi de STOP (STP0 şi STP1).

8 EŞANTIOANE

CLOCK

. . . . . . . .

θ 1 1 1 1 1 1 θ
X θ 1 1 1 1 1 1
X X θ 1 1 1 1 1
VALABIL
X X X θ 1 1 1 1
X X X X θ 1 1 1
X X X X X θ 1 1
X X X X X X θ 1
X X X X X X X θ

Fig. 8.1 NRZ cu 8 eşantioane pe bit

magistrală
mers în gol NC/DAT

1 1 11 16 2
magistrală
START IDENTIFICATOR DATE STOP mers în gol

ID10 ID9 ID8 ID7 ID6 ID5 ID4 ID3 ID2 ID1 ID0

CÂMP IDENTIFICATOR

D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0

CÂMP DE DATE

STP0 STP1

BIT START CÂMP STOP

Fig. 8.2 Formatul mesajului A-BUS

Sunt posibile două tipuri de mesaje:


- mesaje de date şi
- mesaje de comandă, folosite pentru a asigura dacă o comandă următoare va fi
acceptată pe magistrală până când receptorul a citit comanda.
105
Integratul A-BUS poate fi programat într-un mod în care fiecare comandă următoare
nu va fi acceptată pe magistrală până când controlerul master nu a citit ultima comandă
recepţionată. În acest caz nu se pierde nici o comandă.
Dacă pe magistrală s-a produs o eroare, receptorul detectează confirmarea negativă.
Orice dispozitiv receptor care observă o eroare de protocol informează toate celelalte
dispozitive conectate la magistrală prin tragerea jos a bitului STP1. Dacă bitul STP1 este
jos, mesajul este considerat nevalabil de către toate dispozitivele, nefiind necesară
confirmarea pozitivă.
Administrarea detecţiei erorilor se realizează astfel: transmiţătorul şi receptorul
monitorizează magistrala pentru erori. Transmiţătorul citeşte propriul său mesaj de pe
magistrală şi îl compară cu mesajul pe care a intenţionat să-l transmită. Receptorul
detectează patru tipuri de erori ale codurilor prin eşantionarea magistralei şi situaţia în care
nu a fost posibilă compararea eşantioanelor. Cele patru tipuri de erori sunt următoarele:
- eroarea de bit-START - nu a fost posibilă generarea unui bit START la
începutul unui proces de transmisie;
- eroarea de transmisie - pe durata transmisiei unui mesaj, valoarea recitită nu
a fost egală cu valoarea transmisă de un total de Y* ori consecutiv între arbitrare şi bitul
STP1*;
- eroarea de recepţie - pe durata recepţiei unui mesaj, o eroare a fost detectată
în total de X* ori consecutiv anterior bitului STP1;
- eroarea de scurtcircuit - nu s-a citit nici un "1" logic pe o perioadă de 256
impulsuri de clock, după o tranziţie HIGH - LOW.

Observaţie: * X şi Y sunt valori programabile (la 8, 16 şi 32). Pentru implementarea


în discuţie, apariţiile acestor erori sunt stocate într-un registru de stare şi provoacă o
întrerupere. Transmiţătorul încearcă să transmită un mesaj de 8 la 32 ori, înainte ca acestă
situaţie să fie recunoscută ca eroare.
Toleranţa la defect nu este specificată pentru acest protocol.
Viteza de bit maximă specificată pentru transmisia datelor este de 500 Kbiţi/s.
Lungimea totală a mesajului care poate fi transmis utilizând protocolul A-BUS este
de 31 biţi, dintre care 16 sunt biţi de date. Pentru a transmite, de exemplu, patru bytes de
date, trebuie transmise două mesaje.
Folosind formula:

ANTET CADRARE
 (8.1)
MESAJ CADRARE  DATE

Raportul aproximativ antet de cadrare / mesaj calculat este:

(15+15) / ((15+16)+(15+16)) = 48%

106
Protocolul A-BUS foloseşte abitrarea nedestructivă bit cu bit în competiţie, pentru a
determina accesul pe magistrală. În cazul a două sau a mai multor dispozitive care încep
simultan transmisia, mesajul cu cea mai înaltă prioritate va câştiga arbitrarea şi va continua
transmisia. Latenţa maximă pentru mesajul cu cea mai înaltă prioritate este numărul de biţi
în mesajul de lungime maximă multiplicat cu timpul de bit. De exemplu, un mesaj cu
lungimea de 31 biţi are nevoie de 64 μs la o viteză maximă de transmisie de 500 Kbiţi/s.
Mesajele cu prioritate mică au întârzieri suplimentare dacă pierd arbitrarea. Latenţa
lor se determină prin analiza statistică a sistemului, încărcării magistralei, priorităţii, etc.
Consumul de putere al circuitului integrat A-BUS poate fi redus la (10 – 100) μA
prin folosirea modului "somn", când oscilatorul este oprit. Modul somn este iniţiat de către
microprocesorul gazdă. Integratul se "trezeşte" printr-un reset sau prin activitatea de pe
magistrală, dar va trece printr-un reset în ambele cazuri. După reset, sunt necesare 50 ms
pentru ca oscilatorul să funcţioneze corect; primul mesaj acţionează ca un "ceas
deşteptător", nefiind recepţionat complet.

8.3 Protocolul CAN

Protocolul CAN (engl.: Controller Area Network) este unul dintre cele mai utilizate
protocoale pentru transmisii de date pe magistrală multiplexată. Se poate utiliza atât în
formatul de mesaj standard (S) cât şi în fomatul extins (E).
Mediul de transmisie nu este specificat de producător, însă majoritatea proiectanţilor
de sisteme cu CAN folosesc magistrală cu fir ecranat sau neecranat, uneori cu fibră optică.
Interfaţa fizică este de cele mai multe ori definită de utilizator.
Codificarea biţilor se face prin tehnica NRZ (Nonreturn to Zero) cu biţi de
umplutură (figura 8.3) unde, nivelul logic este constant pentru întregul câmp de bit, fie "1",
fie "0". Dacă în secvenţa transmisă apar cinci biţi consecutivi de aceeaşi stare, atunci
transmiţătorul inserează un bit de stare opusă este inserat în curentul de bit. Receptoarele
îndepărtează bitul din curentul de bit, rezultând restaurarea curentului de date original.
Implementarea este programată să permită fie trei, fie un eşantion pe bit şi să specifice
plasarea eşantioanelor în interiorul unui bit.
curent de bit
(transmiţător)
0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1
Şapte biţi "1" alăturaţi
curent de bit
pe magistrală
0 1 0 0 1 1 1 1 1 0 1 1 0 0 1 0 0 0 1
Bit opus "umplut" în curent
curent de bit
(receptor)
0 1 0 0 1 1 1 1 1 1 1 0 0 1 0 0 0 1

Bit "umplutură" detectat de


receptor

Fig. 8.3 NRZ cu biţi umplutură

107
Accesul la reţea se face prin competiţie, prin arbitrare nedistructivă bit cu bit. Când
magistrala este la mers în gol, orice dispozitiv conectat la magistrală poate transmite. În
cazul transmisiilor simultane pe magistrală, arbitrarea se rezolvă prin valoarea din câmpul
identificator, deoarece prioritatea oricărui mesaj este definită în identificatorul propriu.
Fiecare mesaj are un identificator unic, deci o prioritate unică. Aceşti identificatori /
priorităţi sunt definiţi de utilizator (proiectantul de sistem).
Există patru tipuri primare de mesaje, reprezentate în figurile următoare:
a) cadru DATE, figura 8.4, are următoarea alcătuire:
- 1 bit START cadru;
- câmp de abitrare, format din 12 biţi pentru formatul standard şi din 32 de biţi pentru
formatul extins;
- câmp de control, format din 6 biţi;
- câmp de date, în care se pot transmite de la 0 la 64 biţi;
- câmp CRC, format din 16 biţi şi unde se realizează detecţia erorilor;
- câmp de confirmare ACK (engl. Acknowledge) cu 2 biţi şi
- câmp sfârşit de cadru, alcătuit din 7 biţi.
Cadrul DATE se poate transmite atunci când magistrala este la mers în gol (idle).
După cadrul DATE urmează un spaţiu intercadre format din 3 biţi.

Magistrală
la mers Spaţiu
CADRU DATE
în gol intercadre

1 S=12-E=32 6 0 la 64 16 2 7 3

Câmp date Sfârşit cadru


Câmp control Câmp confirmare
Câmp arbitrare Câmp CRC
Start cadru

Fig. 8.4 Cadru date CAN

b) cadru DISTANŢĂ, reprezentat în figura 8.5, are următoarea alcătuire:


- 1 bit START cadru;
- câmp de arbitrare (12 biţi pentru formatul standard sau 32 biţi pentru formatul extins);
- câmp de control, 6 biţi;
- câmp CRC, cu 16 biţi;
- câmp de confirmare, 2 biţi;
- sfârşit de cadru, din 2 biţi.

108
Magistrală
la mers CADRU DISTANŢĂ Spaţiu
în gol intercadre

1 S=12-E=32 6 16 2 7 3

Câmp Sfârşit cadru


C âmp control CRC Câmp confirmare
Câmp arbitrare
Start cadru

Fig. 8.5 Cadru distanţă CAN

După un cadru DISTANŢĂ urmează un spaţiu intercadre alcătuit din 3 biţi. Atât
cadrul DATE cât şi cadrul DISTANŢĂ au aceeaşi structură, singura diferenţă fiind câmpul
de DATE de la cadrul DATE, cuprins între câmpul de control şi câmpul CRC.
c) cadru EROARE, reprezentat în figura 8.6, are următoarea strutură:
- un flag eroare, transmis de staţia X, format din 6 biţi;
- o porţiune din flagul eroare de la staţia Y, cu 0 până la 6 biţi şi
- un câmp delimitator de eroare, care are 8 biţi.

Un cadru EROARE se transmite întotdeauna după un cadru DATE.

Spaţiu
CADRU EROARE intercadre
Cadru date

6 0-6 8

Delimitator eroare
Porţiune a flagului
eroare
Flag eroare de la staţia Y
de la staţia X

Fig. 8.6 Cadru eroare CAN

d) cadru SUPRASARCINĂ, reprezentat în figura 8.7 este format din:


- un flag suprasarcină de la staţia X şi care are 6 biţi;
- o porţiune de flag suprasarcină de la staţia Y, format din 0 până la 6 biţi şi
- un câmp delimitator de suprasarcină, care are 8 biţi.

109
Sfârşit cadru sau
delimitator eroare
sau delimitator Spaţiu
suprasarcină CADRU SUPRASARCINĂ
intercadre

6 0-6 8
Delimitator surasarcină
Porţiune a flagului suprasarcină
de la staţia Y
Flag suprasarcină
de la staţia X

Fig. 8.7 Cadru suprasarcină CAN

Cadrul SUPRASARCINĂ se transmite atunci când un nod individual (dispozitiv)


conectat la magistrală nu are un interval de timp suficient pentru a stoca un mesaj.
Stabilirea legăturii cu magistrala este asigurată în interiorul unui mesaj, printr-o
confirmare pozitivă sau negativă (neconfirmare).
Confirmarea pozitivă este asigurată de un câmp dedicat de doi biţi în cadrul mesaj:
un bit pentru confirmare şi un bit pentru delimitator. Toate dispozitivele netransmiţătoare
vor confirma recepţia de mesaje nedeformate prin transmisia unui bit "dominant" în acest
câmp dedicat. Ca rezultat, dispozitivul transmiţător recepţionează confirmarea că mesajul a
fost recepţionat nedeformat şi nu are confirmări independente de la dispozitive individuale.
Confirmarea negativă este asigurată prin cadrul eroare.
Dispozitivele conectate la magistrală urmăresc toate mesajele transmise. Dacă este
detectată o eroare în interiorul unui mesaj, dispozitivul care a detectat eroarea distruge acest
mesaj prin transmiterea unui cadru eroare, înştiinţând astfel toate dispozitivele de pe
magistrală (incluzând şi dispozitivul transmiţător) că a fost detectată o eroare în interiorul
mesajului şi, ca urmare, transmiţătorul retransmite mesajul cu prima ocazie, după o
arbitrare normală a accesului pe magistrală. Verificarea erorilor este asigurată prin CRC,
lungime mesaj, format mesaj şi nivel şi timing de bit.
Protocolul CAN tratează toate defectele dispozitivelor conectate la magistrală şi
care sunt adresate în acelaşi mod. Restrângerea defectului este asigurată de fiecare
dispozitiv prin urmărirea constantă a performanţei cu privire la succesul sau insuccesul
tranzacţiilor cu mesaje. Fiecare dispozitiv acţionează asupra propriei stări pe magistrală, pe
baza istoriei sale individuale. Ca rezultat, degradarea "elegantă" permite unui dispozitiv
transmiţător să se deconecteze el însuşi de la magistrală. Dacă mediul magistralei este
aservit sau în scurt-circuit, atunci capacitatea de a continua comunicaţiile depinde de
condiţii şi de interfaţa fizică utilizată.
Viteza de bit a protocolului CAN este de maxim 1 Mbit/s, dublă faţă de protocolul
A-BUS.
Lungimea maximă a mesajului (timpul maxim între mesaje) este de 111 timpi de bit
pentru formatul standard şi 131 timpi de bit pentru formatul extins adică, 111 şi 131 μs la o
viteză de 1 Mbit/s.

110
Pentru mesajul cu cea mai înaltă prioritate, dacă un alt mesaj tocmai a început şi
mesajul respectiv stă la coadă, latenţa va fi de la 111 / 131 μs şi până la maximum 222 / 262
μs, până când transmisia mesajului este completă.
Timpul maxim între mesaje cu 4 bytes de date este de 79 biţi pentru formatul
standard şi 99 biţi pentru formatul extins. De notat că acesta include şi spaţiul intercadre.

Exemplu: a) Presupunem că se transmite un mesaj de 4 bytes de date. Prin formula:

ANTET/MESAJ = CADRARE/(CADRARE + DATE),

raportul antet/mesaj calculat va fi:


- pentru formatul standard: 47 / (47 + 32) = 59%,
- pentru formatul extins: 67 / (67 + 32) = 68%.

b) Dacă se transmite un mesaj de 8 bytes de date, raportul antet/ mesaj va fi:


- pentru formatul standard: 47 / (47 + 64) = 42%,
- pentru formatul extins: 67 / (67 + 64) = 51% şi nu include biţii de umplutură.

Protocolul CAN foloseşte arbitrarea nedestructivă bit cu bit în competiţia de


câştigare a accesului pe magistrală.
În cazul în care două sau mai multe dispozitive încep transmisia simultan, mesajul
cu cea mai înaltă prioritate va câştiga arbitrarea şi dispozitivul care îl transmite îşi va
continua transmisia. Ca rezultat, latenţa maximă pentru mesajul cu prioritate maximă este
numărul de biţi ori timpul de bit, sau 111 μs la viteza de 1Mbit/s pentru format standard şi
131 timpi de bit sau 131 μs la viteza de 1 Mbit/s pentru formatul extins. În eventualitatea în
care pierd arbitrarea, mesajele cu prioritate mai scăzută pot înregistra întârzieri adiţionale.
Latenţa lor poate fi determinată pe baza unei analize statistice a sistemului, ţinând seama de
încărcarea magistralei, prioritate şi altele.
Modul de funcţionare la putere redusă nu este specificat de producător,
proiectantul având posibilitatea să aleagă funcţionarea în acest mod.

8.4 Protocolul D2B (Digital Data Bus)

Protocolul D2B (Magistrala de date digitale) este un produs Philips pentru utilizare
în comunicaţii audio/video, periferice de computer şi în electronica pentru automobile
Pentru transmisii de date, se recomandă utilizarea firelor în pereche răsucită.
Interfaţa fizică este reprezentată în figura 8.8 (pereche diferenţială flotantă).
Codificarea biţilor pentru protocolul D2B se face în tehnica PWM (impulsuri
modulate în durată).
Formatul general al bitului este reprezentat în figura 8.9 şi conţine patru secţiuni:
perioada de pregătire, perioada de sincronizare, perioada de date şi perioada de stop.
Duratele perioadelor şi ale biţilor depind de viteza de lucru a magistralei şi de tipul biţilor.

111
V alimentare
de la
logică I
Ct + Cd
+
Rb
la logică Rt Rt
Rb
-
+ Ct + Cd
Vcmd
I - UNITATE
Ct + Cd

Fig. 8.8 Interfaţa fizică D2B

Perioadă de Perioadă Perioadă


pregătire date stop

Perioadă de
sincronizare

Fig. 8.9 Formatul bitului pentru impulsuri modulate în durată

Viteza de lucru pe magistrală este determinată pe durata competiţiei (abitrării). Sunt


trei viteze posibile:
- viteză standard, de până la 100 Kbit/s;
- viteză rapidă, până la 400 Kbit/s şi
- viteză înaltă, până la 3.4 Mbit/s.
Accesul la reţea se face prin competiţie, cu arbitrare nedestructivă, prioritizată, bit
cu bit. Dispozitivele care intră în competiţie arbitrează primele modul în care fiecare
dispozitiv va opera într-un câmp de 3 biţi, unde modul LOW este dominant.
Toate dispozitivele care sunt conectate la magistrală şi lucrează în acelaşi mod
comun (modul standard S, modul rapid F sau modul viteză înaltă Hs) sunt arbitrate apoi pe
baza biţilor de adresă unică, a masterilor competitori. Adresa LOW este dominantă. Modul
desemnează viteza la care magistrala va funcţiona pe durata transferului mesajului. O
unitate poate folosi magistrala pentru o fantă de timp iar cantitatea de date transferate pe
durata fantei de timp depinde de viteza modului de lucru.
Formatul mesajului pentru protocolul D2B este reprezentat în figura 8.10.
Cadrul are o lungime totală de 47 biţi, în şase câmpuri. După câmpurile master,
slave, control şi date urmează un bit de paritate. După câmpul slave, câmpul control şi
câmpul date urmează un bit confirmare. Fiecare byte de date este urmat de 1 bit sfârşit date.

112
Fantă de timp
P P A P A E P A

Câmp Câmp
bit Câmp Câmp Câmp date
START mod master slave control n bytes
P = bit paritate
A = confirmare transmisie
E = Bit sfârşit date

Fig. 8.10 Formatul mesajului cu şase


câmpuri
Stabilirea legăturii cu magistrala se face printr-o confirmare pozitivă în mesajul
transferat. Nici o replică de la dispozitivul slave nu este interpretată ca o confirmare
negativă. Masterul poate încerca din nou să trimită mesajul pe timpul rămas în fantă.
Pe durata fiecărui transfer, sunt trei biţi de confirmare diferiţi: după adresa slave,
după biţii de control şi după fiecare byte de date.
Un master poate bloca un slave la adresa sa, dezactivându-l de la comunicarea cu orice
alt master al reţelei. Aceasta se realizează atunci când un transfer de date depăşeşte timpul
fantei şi masterul trebuie să intre din nou în procesul de arbitrare pentru ca magistrala să
completeze transferul de date (masterul trebuie să încheie procesul de trasfer de date pe care
l-a început).
Verificarea erorilor se face prin paritatea impară pentru adresa slave, câmp de
control şi după fiecare byte de date. Bitul confirmare în mesajul transferat nu va fi transmis
de slave-ul adresat în următoarele situaţii:
- dacă există o eroare de paritate;
- dacă viteza modului este prea ridicată;
- dacă există o eroare de coordonare (timing);
- dacă dispozitivul slave deserveşte alt dispozitiv master sau
- dacă bufferul receptor este plin.
Toleranţa la defect a dispozitivelor de pe magistrală nu este specificată.
Viteza maximă admisă pentru transferul datelor este de 1 Mbit/s.
Dimensiunea totală a cadrului este de 34 biţi, incluzând şi separarea intercadre. În
modul viteză 1, se pot transfera 32 biţi de date, de la un master la un slave. Ca urmare,
procentajul pentru antetul de cadrare este:

34 / (34 + 256) = 11,7%.

Protocolul D2B permite trei moduri viteză diferite pentru transmisie şi arbitrează
adresele dispozitivelor competitoare o singură dată într-un mod viteză. Astfel, un dispozitiv
care are atribuită prioritate scăzută pe magistrală poate avea timpi de latenţă mari faţă de
medie. Latenţa este afectată de capacitatea unui master de a bloca un dispozitiv slave;

113
dispozitivul blocat nu va răspunde la nici un mesaj şi, în anumite situaţii, aceasta poate
degrada performanţa globală a sistemului.
Modurile de reducere a puterii sunt disponibile pentru controlerele de magistrală.

8.5 Protocul C2D (SAE J1567)

Protocolul C2D (Detecţia Ciocnirii Chrysler – engl.: Chrysler Collision Detection)


foloseşte un circuit integrat cu funcţie specială de reţea de comunicaţii seriale şi interfaţă de
magistrală. Protocolul a fost dezvoltat de Chrysler Corporation şi este furnizat comercial de
Harris Corporation. Circuitul integrat de interfaţă asigură o reţea simplă, fiabilă, pentru
comunicaţii de date între membrii unui sistem de procesare distribuit muliplex pe vehicul.
Pentru mediul de transmisie se recomandă folosirea unei perechi dublu răsucită
convenţională, pentru domeniul auto, de 120 ohmi.
Interfaţa fizică este realizată de transceiverul diferenţial, un dispozitiv de interfaţă
serială care acceptă semnale digitale şi translează aceste informaţii pentru a permite
transmisia pe o magistrală diferenţială formată din două fire (figura 8.11).

+
TRANSMISIE
ARBITRARE DETECTOR
DETECTOR CIOCNIRE POLARIZARE
MAGISTRALA -
TERMINARE

RECEPŢIE FILTRU
MAGISTRALA +
DIGITAL POLARIZARE
SINCRO
CLOCK
TIMING
- Stabilizator
DETECŢIE TRANCEIVER +5V
MERS ÎN GOL DIFERENŢIAL
mers
în gol

Fig. 8.11 Schema-bloc simplificată a interfeţei cu reţeaua

Secţiunea transmiţător, atunci când transmite, asigură surse de curent constant


împerechiate pentru driverele de pe magistrala "+" şi de pe magistrala "-", furnizând şi
respectiv absorbind curent. Când intrarea "transmitere dată" = "0", amplificatorul diferenţial
determină driverul magistralei "+" să asigure sursa de curent şi driverul magistralei "-" să
asigure o ramificaţie de curent împerechiată. Un logic "1" la intrarea de transmitere a datei
determină driverele pentru magistralele "+" şi "-" să asigure simultan o impedanţă ridicată.
Circuitul SAU cablat a secţiunii transmiţător permite ca mai mult de un dispozitiv să
poată transmite în acelaşi timp, acesta cauzând ciocnirea datelor. Acţiunea asimetrică a
driverelor de magistrală permite unei transmisii a unui "0" logic de la un dipozitiv să
depăşescă în putere transmisia unui "1" logic de la alte dispozitive. Astfel, două sau mai
114
multe dispozitive pot transmite simultan şi pot concura pentru câştigarea accesului la
magistrală, fiecare folosind un byte unic de identificare mesaj (ID). Câştigătorul este
determinat de valoarea sau prioritatea bytului ID, fără pierdere de timp pe magistrală.
Un bit "0" logic într-un byte identificator mesaj are prioritate faţă de un bit "1" logic
dintr-un alt byte identificator de mesaj.
Magistrala depinde de rezistoarele externe şi alte componente pentru polarizare.
Pentru a asigura un înalt nivel al protecţiei la tranziţii, se adaugă diode de clampare.
În completarea transmisiei de date, transceiverul diferenţial recepţionează date la
terminalele sale magistrală "+" şi magistrală "-". Data recepţionată este translată înapoi în
nivele logice digitale standard de un amplificator diferenţial. Microcomputerul
recepţionează întotdeauna datele transmise efectiv, testând piederea arbitrării.
Tehnica folosită pentru codificarea biţilor este 10 biţi NRZ standard, o intrare/ieşire
asincronă serială (figura 8.12).

START DATE STOP

7 0 1 2 3 4 5 6 7 0

Fig. 8.12 Forma de undă pentru NRZ de 10 biţi (LSB primul)

Interfaţa foloseşte hardware-ul disponibil al portului I/O serial, de exemplu, interfaţa


de comunicaţii seriale (SCI) disponibilă pe multe microcomputere.
Formatul mesajului, prezentat în figura 8.13, poate susţine mai multe protocoale de
nivel mai înalt.

(SOM),(id 1),(id 2),(data 1),(data 2). . . (data n),(EOM)

1. SOM defineşte începutul mesajului


2. id 1, 8 biţi pentru schema de adresare firmware
3. id 2, identificator opţional
4. date, pot lua orice formă, adică, valori date, CRC, sumă de control, număr de bytes în
mesaj, confirmare, etc.
5. EOM, defineşte sfârşitul mesajului (10 biţi de mers în gol magistrală)

Fig. 8.13 Formatul cadrului mesaj

Trebuie menţionat că, perioade de mers în gol, adică separaţii interbyte (IBS), sunt
permise între fiecare byte de date, facilitând controlul firmware şi conectarea directă la
portul asincron serial I/O al microcomputerului gazdă.
Accesul la reţea se face prin competiţie, prin arbitrare bit cu bit nedestructivă.
Pentru stabilirea legăturilor, circuitul integrat foloseşte o interfaţă serială universală
de cost scăzut spre majoritatea microcomputerelor, prin trei moduri de operare care sunt
asigurate într-un dispozitiv: SCI, SPI şi SPI bufferat.
115
Circuitele interfeţei circuitului integrat folosit când s-a conectat intrarea SCI a
microcomputerului sunt de bază pentru funcţionarea tuturor celorlalte moduri de
comunicaţii seriale. Deci, acest mod va fi explicat primul.
Componentele dispozitivului (figura 8.11) includ: un transciever diferenţial care
permite competiţia, un detector de ciocnire şi un circuit de timing şi sincronizare.
Cu un detector de ciocnire, detecţia ciocnirii datelor are loc deoarece ieşirea
transceiverului este reflectată înapoi la intrările sale. Coordonarea acestei eşantionări este
determinată de circuitul de timing. Când detectorul de ciocnire găseşte că un bit "1" logic a
fost transmis, dar s-a recepţionat un "0" logic, el blochează semnalul transmis. În acest
mod, detectorul de ciocnire va permite numai interfeţei cu prioritatea cea mai înaltă şă-şi
continuie transmisia. Acţiunea detectorului de ciocnire de a bloca transmisia este resetată
la detectarea mersului în gol a magistralei (10 biţi de mers în gol consecutivi).
Detectorul de arbitrare funcţionează în conjuncţie cu circuitele de timing şi
sincronizare pentru a arbitra între startul unei date care trebuie transmisă şi startul unui
mesaj recepţionat de pe magistrală. Detectorul de arbitrare blochează o transmisie care ar
putea modifica un mesaj aflat în desfăşurare. De asemenea, permite dispozitivului care
începe primul transmisia, după un mers în gol al magistralei, să-şi treacă datele prin
interfaţă şi să le plaseze pe magistrală. În toate celelalte dispozitive netransmiţătoare,
detectorul de arbitrare blochează transmisia datelor până la detectarea unei condiţii de
magistrală la mers în gol.
Când mai mult de un dispozitiv vor să transmită date pe magistrală, la aproximativ
acelaşi moment de timp, decalat cu mai mult de ¼ din timpul de bit, detectorul de arbitrare
va permite transmisia pe baza regulii primul sosit - primul servit.
Dacă mai multe dispozitive încearcă să transmită date în apropierea sincronismului -
adică, mai puţin sau egal cu ¼ din timpul de bit - detectorul de arbitrare va permite
transmisia dar, numai dispozitivul cu cea mai înaltă prioritate îşi poate continua transmisia.
Detectorul de arbitrare este de asemenea resetat prin detecţia mersului în gol al magistralei.
Un filtru digital trece jos, plasat între transceiver şi ieşirea datelor recepţionate,
filtrează orice EMI recepţionat de semnalul de date digitale, înainte de a fi procesat de alte
circuite ale interfeţei.
Funcţia circuitului detector magistrală la mers în gol este de a detecta când
magistrala este la mers în gol (inactivă) sau ocupată (activă) şi apoi de a transmite această
informaţie înapoi la microcomputer. Detecţia mersului în gol se face prin sesizarea unui bit
stop recepţionat, urmat de 10 biţi de mers în gol continuu sau un "1" logic. În mod normal,
o perioadă activă sau ocupată urmează după o perioadă de mers în gol. Pe durata condiţiilor
neuzuale, cum ar fi de exemplu pornire dispozitiv, orice tranziţie de la "1" logic la "0" logic
care este menţinută pentru o perioadă mai lungă de ¼ dintr-un timp de bit setează flagul
activ sau ocupat.
Circuitul de sincronizare şi timing foloseşte un clock extern pentru viteza Baud. Mai
întâi sincronizează pe frontul negativ al bitului de START şi apoi generează un semnal de
timing la centrul fiecărui bit (la ½ din timpul de bit). Acest semnal de timing este folosit de
către circuitele de arbitrare şi ciocnire pentru a eşantiona datele recepţionate. Semnalul de
timing este folosit de circuitul de detecţie a mesului în gol, pentru a găsi momentele de timp
în care magistrală este la mers în gol.

116
Pentru a detecta o eroare în mesajul de date, se foloseşte o schemă firmware cu
sumă de control. Numărul corect de bytes într-un cadru este validat de firmware-ul
microcumputerului şi, în unele aplicaţii, flagurile depăşire byte date sunt folosite de
hardware-ul microcomputerului.
Toleranţa la defect a protocolului se manifestă printr-o continuare a funcţionării
reţelei, când un dispozitiv pierde alimentarea sau este deconectat de la reţea.
Rata Baud indicată de producător pentru transmisia datelor este 7812.5.

Lungimea tipică a cadrului este de 4 bytes (32 biţi):

- 4 biţi de START;
- 4 biţi de STOP;
- 8 biţi sumă de control (CRC) şi
- 10 biţi sfârşit de mesaj.

În total sunt 34 biţi de cadrare, fără a include separaţiile interbyte (IBS). Secvenţa
DATA = 16 biţi.

ANTET CADRARE

MESAJ (CADRARE  DATE )

ANTET 34
  68% , neincluzând IBS
MESAJ (34  16)

În schema de arbitrare nedestructivă, un dispozitiv poate înregistra valori variabile


ale latenţei, în funcţie de prioritatea mesajului care trebuie transmis.
Modul putere redusă asigură o "stare de somn" sub controlul microcomputerului,
cu o valoare < 10 μA a curentului de fugă în starea deconectat, furnizat sau absorbit de
pe magistrala "+" sau magistrala "-".

8.6 Interfaţa pentru reţea de comunicaţii de date SAE J1850 PWM

Societatea Inginerilor pentru Automobile (SAE) a dezvoltat o reţea de comunicaţii


pentru vehicule. Standardul SAE J1850 defineşte două versiuni ale reţelelor multiplexate
pentru vehicule. Acest paragraf descrie transmisia pe magistrală a datelor codificate în
tehnica PWM (modulaţia impulsurilor în durată), la o viteză de 41,6 Kbit/s iar paragraful
următor (6.7) prezintă codificarea datelor în tehnica VPWM (modulaţia variabilă a
impulsurilor în durată), pentru o viteză de transmisie a datelor pe magistrală de 10.4 Kbit/s
(engl.: Communication Network Interface SAE J1850 PWM).
Schema electrică a interfeţei fizice receptor/ transmiţător, cu transferul datelor
codificate PWM este prezentată în figura 8.14.

117
V alim

R4
Q2
Q3
R1 D2
+
Rx X1 R2 R3
- MAGISTRALA -

R5 D1
R6
Tx Q1

Fig. 8.14 Schemă reprezentativă pentru interfaţa fizică PWM

Abordarea stratului fizic se face prin atac în tensiune, pe fir dublu. Mediul de
transmisie pentru fire duble este fie o pereche răsucită, fie o pereche paralelă.
Codificarea biţilor foloseşte tehnica PWM, figura 8.15. Toţi biţii sunt codificaţi în
acest mod, cu excepţia câtorva simboluri unice diferite prin timingul impulsurilor: start
cadru (SOF), sfârşit date (EOD) şi sfârşit cadru (EOF).

> Tp 3 Tp 1

Dominant

Pasiv

Bit anterior sau marcă Bit "1"

Definiţia bitului "1"

> Tp 3 Tp 2

Dominant

Pasiv

Bit anterior sau marcă Bit "1"

Definiţia btului "0"

Fig. 8.15 Reprezentarea biţilor pentru PWM SAE J1850

118
Accesul la reţea se face printr-un proces de arbitrare bit cu bit, prioritizată şi
nedestructivă.
Lungimea maximă pentru un cadru mesaj este de 101 timpi de bit (figura 8.16).
Bytul detector de eroare este inclus în câmpul de date, la dispoziţia proiectantului. O altă
posibilă utilizare a câmpului de date ar putea fi un identificator mesaj/adresă. Bytul răspuns
este explicat mai pe larg în paragraful următor, care se referă la stabilirea legăturilor.
Spaţierea intercadre nominală este de 2 timpi de bit.

MERS
2 0 - 64 8 1 0 sau mai mulţi 1 2 ÎN
GOL

IMS
Sfârşit cadru
Bytes răspuns
Sfârşit date
Byte detecţie eroare (ERR)
Bytes date (DATA)
Start cadru (SOF)

Fig. 8.16 Cadru mesaj în varianta PWM SAE J1850

Cadrul mesaj începe cu START cadru (SOF), format din 2 biţi. Urmează bytesii de
date (DATA), care au o lungime de 0 până la 64 biţi. În acest câmp se transmit datele.
Câmpul următor este reprezentat de un byte (8 biţi) pentru detecţia erorilor (ERR). Se
transmite apoi 1 bit care marchează sfârşitul datelor (EOD). Cadrul mesaj continuă cu
bytesii răspuns (0 sau mai mulţi), 1 bit de sfârşit de cadru (EOF) şi 2 biţi pentru spaţierea
intercadre nominală (IMS). După aceasta, magistrala trece în modul “idle” (mers în gol).
Confirmarea este asigurată în cadrul mesaj folosind bytesii răspuns. Bytul răspuns
apare după bitul de sfârşit date (EOD). Dacă nu se aşteptată o confirmare, atunci nu se va
transmite un byte răspuns şi magistrala va rămâne în stare pasivă, semnificând un sfârşit de
cadru (EOF). Dacă este activă caracteristica confirmare/răspuns în mesaj, atunci bytul
răspuns este un identificator de cofirmare de 8 biţi sau unul ori mai mulţi bytesi răspuns
urmaţi de un byte ERR. Unul sau mai multe dispozitive slave pot încearca să răspundă
dispozitivului master solicitant şi arbitrarea va avea loc pe durata de timp a răspunsului.
Administrarea detecţiei erorilor include detecţia valorii de bit nevalabile şi a
structurii nevalabile de mesaj. Un bit nevalabil sau un mesaj nevalabil va provoca
terminarea procesului de recepţie până la următorul START cadru (SOF).
Câmpul detector de eroare în mesaj (ERR) foloseşte CRC de 8 biţi bazat pe
polinomul x8 + x4 + x3 + x2 + 1.
Toleranţa la defect a interfeţei pentru retea de comunicaţii date este explicată astfel:
Comunicaţiile pot fi întrerupte spre un dispozitiv sau de la un dispozitiv în unul din
următoarele cazuri:
- dacă acesta îşi pierde alimentarea;
- dacă există un scurtcircuit la masă a magistralei;
- dacă magistrala este scurtcircuitată la baterie;
119
- dacă s-a detectat un defect al dispozitivului transmiţător, însă nu va exista nici o
defectare a nici unui alt dispozitiv conectat la magistrală.
Trebuie menţionat că, dispozitivele rămase conectate în continuare la magistrală
sunt capabile de comunicaţii chiar şi atunci când un dispozitiv îşi pierde alimentarea, există
un defect al transmiţătorului sau pierde conectarea la reţea.
Viteza de bit specificată de producător pentru interfată este de 41.6 Kbit/s.
Pentru calculul antetului de cadrare, considerăm lungimea totală pentru cadru mesaj
de 101 timpi de bit, la care se adaugă 2 biţi pentru IMS. Lungimea totală pentru calcul
devine 103 biţi. Data permisă totală este de 80 biţi pentru forma de un byte al antetului, un
identificator mesaj şi 64 biţi pentru o formă de trei bytes ai header-ului.
Procentajul antetului este deci

23 / (80 + 23) = 22.3% şi respectiv 39 / (64 + 39) = 37.9%.

Studiem în continuare latenţa interfeţei propusă de standardul SAE J1850 PWM.


Într-o schemă de arbitrare nedestructivă bit cu bit, cea mai înaltă prioritate
mesaj/adresă câştigă accesul la megistrală.
Într-o schemă cu prioritate mesaj, un dispozitiv de pe magistrală şi care transmite
date are latenţă variabilă, funcţie de prioritatea medie a mesajului ce trebuie transmis.
Într-un sistem cu prioritate după adresă, un dispozitiv care transmite un mesaj va
înregistra o întârziere proporţională cu nivelul de prioritate al adresei sale şi cu activitatea
pe magistrală (de exemplu, un dispozitiv cu prioritate scăzută va avea latenţă mai mare
decât media pe durata perioadelor cu încărcări maxime ale magistralei).
Un dispozitiv conectat la magistrală intră în modul de putere redusă ("stare de
somn"), dacă magistrala este la mers în gol pentru mai mult de 500 ms. "Trezirea"
dispozitivului are loc la orice activitate înregistrată pe magistrală.

8.7 Interfaţă pentru reţea de comunicaţii de date SAE J1850 VPWM

Standardul SAE J1850 (eng.l: Data Communication Network Interface SAE J1850
VPWM) defineşte două versiuni ale reţelelor multiplexate pentru vehicule. Acest paragraf
acoperă transmisii de date codificate VPWM (modulaţia impulsurilor cu durată variabilă),
la o viteză de 10.4 Kbit/s. În paragraful precedent (6.6) s-a prezentat codificarea datelor cu
modulaţia impulsurilor în durată (PWM) într-o versiune la 41.6 Kbit/s
Schema circuitului pentru interfaţa fizică receptor/ transmiţător VPWM este
prezentată în figura 8.17.
Stratul fizic pentru versiunea VPWM defineşte pentru mediul de transmisie un
singur fir, aşezat aleator, cu atac în tensiune.
Codificarea biţilor se face astfel: fiecare bit sau simbol se codifică cu impulsuri cu
durată variabilă (exceptând ruptura) şi este definit de timpul între două tranziţii consecutive
şi nivelul magistralei, dominant sau pasiv. Prin urmare, există un simbol pe tranziţie şi o
tranziţie pe simbol. Sfârşitul simbolului precedent startează simbolul curent.
Codificarea biţilor "1" logic şi "0" logic este reprezentată în figura 8.18.

120
V alim

Tx FORMATOR Q1
R1 D1
Rx x1 MAGISTRALA +

R2

Fig. 8.17 Schemă reprezentativă pentru interfaţa fizică


VPWM

Dominant
SAU scurt
lung
Pasiv
Bit "1"
Dominant
scurt SAU lung
Pasiv
Bit "0"

Fig. 8.18 Codificarea biţilor “1” logic şi “0”


logic

Un bit "1" este fie un impuls pasiv lung de 128 μs sau un impuls dominant scurt de
64 μs. Dimpotrivă, un bit "0" este fie un impuls pasiv scurt, fie un impuls dominant lung.
Lăţimile impulsurilor se schimbă între stările pasivă şi dominantă ale magistralei în
vederea adaptării la cerinţele de arbitrare şi prioritate.
Start cadru (SOF) din figura 8.19, este un impuls dominant cu durata de 200 μs.

Dominant
200 μs
Pasiv
"SOF"

Fig. 6.19 Simbolul Start cadru (SOF)

Sfârşit date (EOD), din figura 8.20, este un impuls pasiv cu durata de 200 μs.
Sfâşit cadru (EOF), figura 8.21, este un impuls pasiv cu durata de 280 μs.

121
Dominant Dominant

200 μs 280 μs
Pasiv Pasiv

"EOD" "EOF"

Fig. 8.20 Simbolul Sfârşit date Fig. 8.21 Simbolul Sfârşit cadru
(EOD) (EOF)

Byte(sii) de răspuns în cadru. Răspunsul în cadru este transmis de slave-ul care


răspunde şi începe după simbolul pasiv EOD. Pentru modulaţia în durată variabilă a
impulsurilor (VPWM), primul bit din data răspuns în cadru este de asemenea pasiv.
Bit de normalizare. Înainte de a trimite DATA este necesară generarea unui bit de
normalizare, IFR (figura 8.22). Acest bit de normalizare defineşte startul răspunsului în
cadru şi poate lua două forme. Prima formă este o perioadă scurtă dominantă. A doua formă
este o perioadă lungă dominantă, folosită pentru a defini un răspuns în cadru cu CRC.
bit normalizare

Dominant Ultimul
bit de
date EOD scurt sau lung primul bit răspuns

Fig. 8.22 Bitul de normalizare la modulaţia în durată a impulsurilor


Accesul la reţea se face prin arbitrare nedestructivă prioritizată, bit cu bit.
Formatul mesajului este prezentat în figura 8.23, lungimea maximă pentru un cadru
fiind de 101 timpi de bit. Bytul detecţie eroare este inclus în câmpul de date la dispoziţia
proiectantului. O altă posibilă utilizare a câmpului de date ar putea fi un identificator
mesaj/adresă. Spaţierea intercadre nominală este de 300 μs în durata timpilor de bit.

MERS ÎN
2 0 - 64 8 0 sau mai mulţi
GOL

IMS
Sfârşit cadru(EOF)
Bytes răspuns
Bit normalizare
Sfârşit date
Byte detecţie eroare (ERR)
Bytes date (DATA)
Start cadru (SOF)

Fig. 8.23 Cadru mesaj în varianta VPWM SAE J1850

122
Cadrul mesaj seamănă cu cadrul mesaj de la interfaţa reţea pentru transmisie date
codificate PWM, deosebirea constând în prezenţa bitului de normalizare, după sfârşit date.
Confirmarea este asigurată în cadrul mesaj prin bytesii răspuns, care apar
întotdeauna după EOD (sfârşit date). Dacă nu se aşteptată o confirmare, nu se trimite un
byte răspuns şi magistrala va rămâne în starea semnificând un EOF. Dacă este activă
caracteristica de confirmare în mesaj/răspuns, atunci bytul răspuns este un identificator de
confirmare de 8 biţi sau unul ori mai mulţi bytes de răspuns urmaţi de un byte ERR.
Dacă unul sau mai multe dispozitive slave încearcă să răspundă masterului care a
lansat cererea pe magistrală, atunci arbitrarea va avea loc pe durata de timp a răspunsului.
Administrarea detecţiei erorilor include detecţia magistralei de comunicaţii în afara
domeniului, valoarea nevalabilă a biţilor transmişi şi o structură de mesaj nevalabilă.
Un bit nevalabil sau un mesaj nevalabil determină încheierea recepţiei datelor până
la următorul SOF (început de cadru).
Câmpul pentru detecţia erorilor (ERR) foloseşte un CRC de 8 biţi pe baza
polinomului x8 + x4 + x3 + x2 + 1.
Toleranţa la defecte a interfeţei se manifestă astfel:
Comunicaţiile pot fi întrerupte spre / de la un dispozitiv în următoarele situaţii:
- dacă un dispozitiv conectat la magistrală îşi pierde alimentarea;
- dacă există un scurtcircuit la masă a magistralei;
- dacă magistrala este scurtcircuitată la baterie;
- dacă se detectează un defect al dispozitivului care transmite date pe magistrală, dar nu
va exista nici o defecţiune a nici unui alt dispozitiv de pe magistrală.
Observaţie: Toate celelalte dispozitive rămase conectate la magistrală pot efectua
transferuri de date când un dispozitiv îşi pierde alimentarea şi este deconectat de la reţea.
Viteza specificată pentru transferul datelor este de 10.4 Kbit/s.
Pentru calculul antetului de cadrare, la lungimea totală a cadrului mesaj (101 timpi
de bit) se adaugă 2 biţi pentru IMS, lungimea totală de calcul devenind de 103 timpi de bit.
Data permisă totală este de 80 biţi pentru forma de 1 byte al antetului (identificator mesaj)
şi 64 biţi pentru o formă de 3 bytes ai headerului. Prin urmare, procentajul antetului este:

23 / (80 + 23) = 22.3% şi respectiv 39 / (64 + 39) = 37.9%.

Într-un sistem în care acesul la magistrală se câştigă prin arbitrare nedestructivă bit
cu bit, cea mai înaltă prioritate mesaj/adresă câştigă accesul la magistrală.
Într-un sistem cu prioritate mesaj, un dispozitiv conectat la magistrală şi care
transferă date, va avea mărimi variate ale latenţei, în funcţie de prioritatea medie a
mesajului transmis.
Într-un sistem cu prioritate după adresă, un dispozitiv care solicită accesul la
magistrală va avea o întârziere proporţională cu nivelul de prioritate al adresei sale şi cu
activitatea pe magistrală. De exemplu, un dispozitiv cu prioritate scăzută, va avea latenţă
mai mare decât media pe durata perioadelor cu încărcări mari ale magistralei.
Un dispozitiv conectat la magistrală poate intra în modul putere redusă (starea de
“somn”) dacă magistrala este la mers în gol pentru mai mult de 500 ms. "Deşteptarea" are
loc la orice activitate pe magistrală.

123
8.8 Sensori şi control Chrysler (CSC), SAE J2058

Magistrala Sensori şi Control Chrysler (CSC - engl.: Chrysler Sensor and Control)
reprezintă o tehnică de multiplexare cu o mare flexibilitate şi cu posibilitatea de expansiune.
Componentele de magistrală CSC au fost dezvoltate pentru a asigura comunicaţii
simple dar fiabile, între un modul gazdă master şi sensorii şi dispozitivele sale de acţionare.
Schema aleasă permite comunicarea atât în modul polling cât şi în moduri de
adresare directă, folosind conectoare mici pentru module şi reducerea numărului de fire care
umplu arii aglomerate, fără a introduce mai multe module.
Magistrala CSC este un tip de multiplexare care reuneşte aceste obiective şi permite
proiectarea de bază a vehicului, în timp ce determină costul complet al caracteristicilor
opţionale ca o funcţie de opţiune.
Componentele CSC sunt disponibile în următoarele variante:
(1) magistrală CSC cu 2 pini; magistrală CSC pentru sensori cu efect Hall;
Allegro P/N A3054 U şi
(2) interfaţă master driver / receptor, Cherry Semiconductor, Automotive IC
Data Book, P/N CS-8425 Hall-Effect Sensor.
Magistrala CSC foloseşte pentru transmisii de date un singur fir, aşezat aleator.
Interfaţa master driver / receptor limitează timpul de creştere (t r) şi timpul de cădere
(tf). Dacă tranziţiile formei de undă de la ieşirea interfeţei depăşesc 20 μs la o viteză de
transfer a datelor pe magistrală de 1 Kbit/s, nivelele EMI sunt acceptabile (figura 8.24).
V alim MAGISTRALA

A
Micro MUX DISPOZITIV DE
B ACŢIONARE
MAGISTRALA
A/D CSC

DRIVER / RECEPTOR MUX SENSOR

Fig. 8.24 Schema magistralei CSC pentru sensori şi dispozitive de acţionare

Soluţia preferată este adaptarea senzorilor CSC la masa interfeţei master driver/
receptor, eliminând astfel curentul longitudinal de zgomot şi reducând semnificativ efectele
tensiunii de decalaj a masei.
124
În producţia de vehicule, returnarea referinţelor senzorilor CSC la modulul master în
mod uzual nu adaugă un circuit cu fire, deoarece aceşti sensori au un fir de retur
independent la caroserie sau şasiu. Îmbunătăţirea în continuare a performanţelor în ceea ce
priveşte susceptibilitatea la EMI se poate realiza prin plasarea unui mic condensator de la
magistrala CSC la sensor.
În figra 8.25 este reprezentată forma de undă a tensiunii folosită pentru comunicarea
pe magistrala CSC, în modul poling continuu. Sensorii folosesc curent pentru a răspunde
dispozitivului master care a generat forma de undă de tensiune.

Exemplu
≈ 1 ms
9V

6V
Adresă Adresă Adresă Adresă Adresă
1 2 3 4 N
0V

Forma de undă a tensiunii de la master pentru modul polling magistrala


CSC sensori

4V
A B C D E F G H I J

1V
0V

Tensiune reprezentând semnificaţia curenţilor absorbiţi de către sensorii CSC

A: Sensor furnizează curent B: Curent prezenţă sensor


C: Comutator deschis D: Curent prezenţă sensor
E: Comutator închis F: Curent prezenţă sensor
G: Comutator deschis H: Curent prezenţă sensor
I: Comutator deschis J: Nici un sensor prezent

Fig. 8.25 Forma de undă pentru modul polling, magistrala CSC


sensori

În această schemă, fiecare sensor are o adresă internă programabilă. Tensiunea


începe la un nivel de reset (0 V) şi urcă până la 6 V, asigurând alimentarea sensorilor. În
acest timp, masterul citeşte mărimea curentului cerut pentru a păstra sensorii alimentaţi.
Acest curent este numit curent de alimentare sensor. La fiecare schimbare de la 6 V la 9 V,
este incrementat un numărător existent în sensor.
Sensorii sunt adresaţi în mod consecutiv, astfel încât, acest mod de comunicaţii pe
magistrala CSC este numit mod de polling continuu.
În timp ce tensiunea este la aproximativ 9 V, sensorii compară valorile din
numărătoarele lor cu adresa programată. Dacă un sensor detectează o coincidenţă între
125
aceste două valori, el creşte curentul scurs pe magistrala CSC. Acest curent de răspuns
informează dispozitivul master că un sensor şi-a recunoscut propria adresă. Condiţia
rămâne valabilă până când tensiunea cade la aproximativ 6 V.
Când sensorul adresat detectează că tensiunea este sub pragul său, de aproximativ
7.5 V, acesta va determina starea elementului sensibil, adică câmp magnetic detectat de
sensori cu efect Hall, sensori optici sau comutatoare mecanice conectate la masă. Dacă
elementul sensibil este activ - adică s-a detectat câmp magnetic, s-a detectat lumină sau un
comutator mecanic cu contact la masă este închis, sensorul continuă să tragă curent de
răspuns astfel încât masterul poate sesiza starea sensorului. Dacă elementul sensibil nu este
activ, va înceta curentul de răspuns şi va fi tras numai curentul de alimentare al sensorului.

Multiplexarea polling a dispozitivelor de acţionare.


Pentru controlul dispozitivele de acţionare se foloseşte tehnica de multiplexare CSC
a magistralei ca o exindere a modului polling pentru sensori. Unui anumit dispozitiv de
acţionare îi este atribuită o adresă, aşa cum se atribuie adrese pentru sensori şi fiecare
dispozitiv de acţionare urmăreşte magistrala CSC şi numără tranziţiile de la 6 V la 9 V în
acelaşi mod ca şi sensorii. Când valoarea din numărătorul dispozitivului coincide cu adresa
dispozitivului de acţionare pe durata porţiunii de 6 V a adresei, dispozitivul de acţionare
trage curent pentru a informa masterul că şi-a recunoscut propria adresă.
Pentru a activa o ieşire a dispozitivui de acţionare, starea trebuie mai întâi
monitorizată prin testarea curentului tras pe durata celei de-a doua jumătăţi a ciclului
adresei. Spre deosebire de schema polling pentru sensori, care foloseşte numai nivelele de 6
V şi 9 V, schema de multiplexare pentru dispozitive de acţionare adaugă un al treilea nivel,
de 3 V (figura 8.26).
Pe durata celei de-a doua jumătăţi a ciclului de adresă, masterul comandă nivelul la
3 V, când ieşirea dispozitivului de acţionare trebuie basculată.
Dispozitivul de acţionare monitorizează magistrala CSC pe durata adresei sale şi,
dacă detectează nivelul de 3 V, se setează un latch. Din considerente de zgomot, după
detectarea primului nivel de 3 V, dispozitivul de acţionare nu trebuie să-şi schimbe starea
de la ieşire.
Dispozitivul de acţionare urmăreşte următorul ciclu de polling. Dacă cea de-a doua
jumătate a perioadei de adresă a dispozitivului de acţionare este 3 V, în imediat următorul
ciclu de polling, atunci dispozitivul de acţionare îşi va inversa (va bascula) ieşirea. Fiecare
ciclu de polling ulterior trebuie să conţină nivelul de 6 V pe durata perioadei de adresă a
dispozitivului de acţionare, pentru ca fiecare ieşire să rămână constantă. Curentul tras de
dispozitiv pe durata acestei a doua jumătăţi indică starea ieşirii. Când ieşirea trebuie să-şi
schimbe din nou starea, două cicluri de polling consecutive trebuie să conţină nivele de 3 V
pe durata celei de-a doua jumătăţi a perioadei de adresă a dispozitivului de acţionare.

126
9V

6V

3V

0V

Forma de undă a tensiunii pentru modul polling magistrala CSC dispozitive de acţionare

4V

1V
0V
A B C D E F

Tensiune reprezentând semnificaţia curenţilor absorbiţi de către sensori


şi dispozitive de acţionare

A: Sensor furnizează curent B: Sensor prezent, inactiv


C: Dispozitiv acţionare sus D: Stare curentă sus dispozitiv acţionare
E: Dispozitiv acţionare jos F: Sensor prezent, activ

Fig. 8.26 Forma de undă pentru modul polling continuu multiplexare


dispozitive de acţionare

Mutiplexare în modul comandă a dispozitivelor de acţionare.


Pentru creşterea flexibilităţii schemelor de comunicare, proiectantul are posibilitatea
opţională complementară de multiplexare a dispozitivelor de acţionare. Cu scopul de a
asigura pollingul tuturor adreselor dispozitivelor de acţionare şi a permite adresarea directă
a unui anumit dispozitiv, a fost concepută o schemă care completează modul polling.
Schema a fost numită modul comandă, adresare directă sau mod control al magistralei
CSC (figura 8.27).
În locul unei adresări secvenţiale a dispozitivelor de acţionare, ca în metoda cu
polling, masterul trimite un semnal de tensiune de 6 ms spre dispozitivele de acţionare.
Această formă de undă constă din tranziţii între 6 V şi 3 V. Forma de undă de 6 ms este
divizată în şase biţi de 1 ms şi este numită un cuvânt de 6 biţi. Pentru a defini valoarea de
bit se foloseşte modularea în durată a impulsurilor (PWM) 75% / 25% , în care fiecare bit
începe cu o tranziţie la 6 V. De exemplu, un bit "1" logic este definit ca 750 μs la 6 V şi 250
μs la 3 V. Un bit "0" logic este definit ca 250 μs la 6 V şi 750 μs la 3 V.
Primii 5 biţi din cuvântul de 6 biţi sunt folosiţi pentru a adresa un anumit dispozitiv
de acţionare, iar cel de-al şaselea bit este folosit pentru controlul ieşirii dispozitivului.
Magistrala CSC este iniţial resetată (≈ 0V). De la tensiunea de reset, forma de undă
este comandată la nivelul de 6 V şi rămâne la această valoare 750 μs sau 250 μs, în funcţie
de valoarea bitului ("1" logic, respectiv "0" logic). Magistrala CSC cade apoi la 3 V pentru
127
restul până la 1 ms a bitului. Pe durata porţiunii de 6V a primului bit, masterul urmăreşte
curentul tras de componente pe magistrala CSC şi va folosi acest curent mai târziu, ca
referinţă pentru a determina dacă un dispozitiv de acţionare şi-a recunoscut adresa.

6V
1 1 0 1 0 1
3V
Adresă Date
0V

Forme de undă pentru modul comandă multiplexare dispozitive de comandă


cu magistrala CSC

6V

1V
0V A B C D E F G H

A, B, C, D, E şi G: sensorii furnizează curent


F: curent de răspuns al dispozitivului de acţionare
H: stare "high" ieşire dispozitiv de acţionare

Tensiune reprezentând curentul absorbit de sensori şi dispozitive de acţionare

Fig. 8.27 Forma de undă pentru modul comandă dispozitive de


acţionare cu magistrală CSC

Toţi cei 6 biţi sunt transmişi în acelaşi mod, descris anterior. Pe durata porţiunii de 3
V a celui de-al cincilea bit şi a bitului final de adresă, prin măsurarea mărimii curentului
care este tras, masterul determină dacă un dispozitiv de acţionare şi-a recunoscut adresa.
Pentru accesul la reţea, magistrala CSC foloseşte un protocol master-slave, deoarece
masterul este în mod uzual modulul prezent cu caracteristică majoră, iar sensorii şi
dispozitivele de acţionare asociate sunt slave-i. Microcomputerul modul caracteristic este
gazda spre circuitul integrat al interfeţei driver/receptor.
Circuitul integrat interfaţă master driver/receptor - magistrală CSC conţine circuitele
necesare pentru a asigura o formă de undă de tensiune de decalaj în curent continuu.
Această ieşire este controlată de două intrări digitale CMOS: A şi B, asigurate de un
microcomputer gazdă şi funcţionează ca nişte "creiere" ale modului de control master.
Circuitul integrat sesizează curentul magistralei CSC şi-l converteşte într-o tensiune
analogică, la ieşirea circuitului integrat spre intrarea analogică a microcomputerului.

Formatul mesajului pe magistrala CSC


Transferul datelor pentru un sistem de comunicaţii multiplexate cu magistrală CSC
se face în mod polling master/slave şi/sau prin adresare directă.

128
Masterul comunică cu sensorii şi dispozitivele de acţionare conectaţi la magistrala
CSC printr-o formă de undă de tensiune.
Un sensor este adresat prin pollingul succesiv şi ordonat al fiecărei adrese (fantă de
timp sau perioadă) în ordine crescătoare:

<SOM>, Wake-Up Period, Addr 1, Addr2, . . .,Addr 32

Un dispozitiv de acţionare conectat la magistrală poate fi controlat fie prin modul


polling, fie prin adresare directă, folosind mesajul de mai jos, startul mesajului fiind frontul
crescător la la 0 la 6 V din forma de undă a tensiunii din figura 8.25.

<SOM>,<Adresă de cinci biţi>, <Biţi de date 1 la N>, {<bit paritate>}

Atât sensorii cât şi dispozitivele de acţionare răspund nodului master când sunt
testaţi sau adresaţi direct, cu un curent răspuns care informează masterul că a fost
recunoscută o adresă.
Datele pentru dispozitivele de acţionare sunt protejate de acţiuni nedorite de un bit
de paritate în mesajul comandă. Pentru eliminarea susceptibilităţii EMI, care poate cauza
date false de la sensori, datele sunt filtrate software, în modulul de control master.
Pentru a valida adresarea corectă a unui sensor sau dispozitiv de acţionare într-un
mediu zgomotos de pe vehicul, se sugerează următoarea procedură:
- Dacă valoarea curentului nu este în vecinătatea curentului de referinţă măsurat,
sensorul nu este prezent şi nu este ascultat nici un dispozitiv de acţionare.
- Dacă sunt ascultaţi doi sau mai mulţi sensori sau dispozitive de acţionare
(determinat de dublul răspuns în curent), masterul resetează magistrala CSC (ieşire 0 V).
- Dacă masterul detectează că sensorul sau dispozitivul de acţionare adresat nu este
în starea corectă, comanda poate fi reluată sau retransmisă.
Stabilirea legăturii între master şi sensori permite funcţionarea şi detecţia situaţiei în
care sunt îndepărtaţi din reţea (de pe magistrală) sensori sau dispozitive de acţionare.
Driverul/receptor are o limită de curent care îl protejează de un scurtcircuit pe magistrală.
Referitor la viteza de transmisie a datelor pe magistrala CSC, aceasta este
determinată de software-ul modulului master şi nu trebuie să fie fixă. Se recomandă o
viteză de transfer de 1 Kbit/s.

Calculul antetului de cadrare


Timpul cerut pentru cadrare este egal cu timpul de date, deci:

ANTET CADRARE

MESAJ (CADRARE  DATE )

ANTET 1
  50%
MESAJ 2

129
Masterul este în control şi poate înterupe comanda de polling a sensorilor sau
dispozitivelor de acţionare pentru a comanda un singur dispozitiv de acţionare în câteva ms
sau 32 sensori în 32 ms, sau cu o viteză de 1 Kbit/s.
De asemenea, dispozitivul master poate controla alimentarea sistemului cu
magistrală CSC prin netestarea sau neadresarea reţelei; în acest caz, curentul tras va fi cel
corespunzător alimentării de aşteptare a sensorului.

8.9 Protocolul fantă simbol, SAE J2106

Protocolul fantă simbol a fost dezvoltat de General Motors (engl.: Token Slot
Protocol) şi este destinat controlului şi informării generale distribuită a vehiculelor de înaltă
performanţă.
Mediul de transmisie nu este specificat de producător însă, se recomandă folosirea unei
perechi răsucite sau fibră optică, la viteza de 1 Mbit/s.
Interfaţa fizică este nespecificată, dar este necesar un acces multiplu la magistrală.
Reţeaua cu magistrala este deschisă, cu structură de tip multimaster. Este de tip non
competiţie şi foloseşte o tehnică cu fantă de timp, cu trecerea simbolurilor (figura 8.28).

Trecere SLN 0 SLN 1 SLN 2 SLN 3 SLN 4 SLN 5 SLN 6 SLN 7


Mers în
simbol
gol disp A disp B disp C disp D disp E
SLN31
Instr

SLN 8 SLN 9 SLN 8 SLN 9 SLN 8 SLN 9 SLN 8 SLN 9

disp A disp F disp D disp G

SLN 16 SLN 17 SLN 18 SLN 19 SLN 20 SLN 21 SLN 22 SLN 23

disp A disp B disp C disp D disp H

SLN 24 SLN 25 SLN 26 SLN 27 SLN 28 SLN 29 SLN 30 SLN 31

disp A disp F disp D disp J

Fig. 8.28 Atribuire de dispozitiv fantă simbol şi şablon ciclu secvenţă fantă

130
Caracteristicile principale ale acestui protocol sunt următoarele:
- garantează transmisia periodică pe magistrală a mesajelor de către fiecare
dispozitiv conectat;
- asigură ca magistrala să rămână operaţională când sunt adăugate sau
eliminate în mod dinamic dispozitive;
- asigură revenirea rapidă din condiţiile de eroare.
După ce un anumit dispozitiv de pe magistrală a transmis în trafic mesajul său
complet, o explorare în secvenţe de timp scurte, egale (fante) oferă magistralei posibilităţi
de transmisie spre posesorii de dispozitive fantă (figura 8.29).
Fante simbol cu numerele relative ale fantelor indicate

p Fantă #(sn) 0 1 mers în gol sn + 1 sn + 2 sn + 3 sn + 4 sn + 5

paritate pară

Fig. 8.29 Formatul mesajului trecere simbol

Un mesaj simbol deplasat (trecut) sau o magistrală presată instruieşte toate


dispozitivele care sunt conectate să înceapă modul timing fantă simbol. Noul posesor al
simbolului continuă după aceasta să-şi transmită mesajele (figura 8.30).

fantă mers
simbol în mers mers fantă
SLN SLN SLN SLN SLN Mesaj Mesaj simbol
SLN 5 gol 6 7 31 0 1 în în
1 gol 2 gol SLN 1

nodul preia simbolul

Fig. 8.30 Secvenţă tipică de trecere simbol

Fiecărui dispozitiv de pe magistrală îi sunt atribuiţi individual timpi limitaţi de


menţinere a simbolului, pentru a asigura o limită maximă a latenţei mesajului în sistem.
Priorităţile mesajelor individuale transmise variază în funcţie de aplicaţie şi nu sunt
restricţionate de reţeaua de comunicaţii de date.
Un dispozitiv încheie o sesiune de transmisie mesaje prin trimiterea mesajului
simbol trecut (token slot), care conţine numărul curent al fantei (figura 8.30).
În următoarea secvenţă fantă simbol, dispozitivul care deţine următorul număr
secvenţial fantă poate lua simbolul sau îl poate lăsa să treacă. Când s-a atins numărul de
fantă maxim, secvenţa revine la fanta 0 şi continuă până ce fanta este restabilită sau până
când simbolul trecător îşi vede fanta sa, moment în care un nou mesaj simbol trecere este
generat şi ciclul reîncepe.

131
Există trei tipuri de mesaje de bază care pot fi deosebite de un câmp de control de 2 biţi
ce se găseşte în primul byte:
 Trecere simbol (token slot), figurile 8.29 şi 8.30, este un mesaj de 1 byte care conţine
câmpul control mesaj (2 biţi), numărul curent al fantei (5 biţi) şi un bit de paritate
(paritate impară). Este urmat de un delimitator linie mers în gol (8 biţi).
 Date, figurile 8.31 şi 8.32, include câmpul de control mesaj (2 biţi), câmpul identificator
de mesaj ID de 14 biţi, până la 256 bytes de date, un câmp de 16 biţi verificare
redundanţă ciclică (CRC) şi o linie delimitator mesaj magistrală mers în gol (8 biţi).
Câmpul de control mesaj este folosit pentru a cere un mesaj de confirmare.
timp

mers în mers mers mers


mesaj 1 mesaj 2 mesaj 3
gol în gol în gol în gol
linie

aşteptare confirmare
confirmare

Fig. 8.31 Cadrarea mesajului general în reţeaua fante simbol

LSB biţi control mesaj

identif. 1 X 0 identif. 2 câmp de date crc crc mers


în gol
1 + 8 + 8 + 0-256 bytes x 8 + 8 + 8 + 8= 41 biţi
antet
0 = mesaj date
0 = transmisie; 1 = cerere confirmare

Fig. 8.32 Formatul mesajului date în reţeaua fante


simbol

 Confirmare, figura 8.33, este un mesaj fix, de un singur byte (Hex D5) şi o linie
delimitator de mers în gol de 8 biţi (16 biţi în total). Este iniţializat de câmpul de control
al mesajului precedent.

1 0 1 0 1 0 1 1 mers în gol .....

Fig. 8.33 Formatul mesajului confirmare în reţeaua fante simbol

132
Orice mesaj de date poate fi programat în mod dinamic pentru a comanda un mesaj
de confirmare, care să fie returnat imediat de la unul din dispozitivele receptoare de pe
magistrală. Dacă după un scurt interval de aşteptare confirmarea cerută nu a fost
recepţionată, transmiţătorul poate reîncerca şi/sau continuă să transmită alte mesaje.
Dispozitivul care răspunde nu posedă simbolul.
Atât dispozitivele receptoare cât şi cele transmiţătoare supraveghează în mod
independent transmisiile de pe magistrală. Dispozitivul transmiţător verifică mesajul pentru
o corespondenţă 1 la 1 a biţilor receptionaţi şi transmişi.
Toate dispozitivele verifică timing-ul corect, CRC, spaţiile dintre mesaje şi, dacă se
cere, trimit un mesaj de confirmare. Dispozitivele receptoare nu confirmă mesajele eronate.
Câmpul CRC de 16 biţi are următoarele funcţii:
- detectează toate erorile de 1 bit;
- detectează toate erorile de paritate;
- detectează toate erorile de salvă cu o lungime mai mică de 17 biţi.
Pentru erori în salvă mai lungi de 16 biţi, rata nereuşitelor câmpului CRC este de
0.0015 procente din erori, deci foarte mică.
Un transmiţător detectează dacă are loc o eroare time out magistrală (BTO) când
magistrala merge în gol pentru mai mult decât o perioadă completă a unei secvenţe fantă
simbol. Dacă este detectată o eroare BTO, toate nodurile încep o nouă secvenţă trecere
fantă simbol, cu începere de la fanta 0.
Erorile de magistrală sau ciocnirile determină ca dispozitivul care le-a detectat să
genereze un semnal de tip magistrală presată, semnal care reprezintă o linie dominantă
pentru 8 timpi de bit, înaintea liniei mers în gol de sfârşit mesaj. Acesta declară operaţia
curentă sau mesajul nevalabil şi instruieşte toate celelalte dispozitive conectate la
magistrală să înceapă o nouă secvenţă trecere fantă simbol, cu începere de la fanta 0.
Fiecare dispozitiv transmiţător supraveghează propriile transmisii de date pe
magistrală, starea magistralei, istoricul defectelor şi controlează operaţiile în modul de
degradare corespunzător.
Pierderea oricărui dispozitiv sau chiar separarea lui de magistrală, precum şi
adăugarea altor dispozitive noi la magistrală nu afectează funcţionarea continuă a
magistralei cu dispozitivele rămase conectate.
Protocolul fantă simbol lucrează cu viteze maxime de transmisie a datelor de până la
2 MHz. Deoarece viteza de transfer a datelor este limitată doar de lăţimea benzii
magistralei, este posibilă creşterea ulterioară a vitezei datelor.
Modul de calcul al antetului de cadrare mesaj este prezentat în Tabelele 8.2 şi 8.3.

Tabelul 8.2 Antetul fantei trecere simbol în timpi de bit (figurile 8.29 şi 8.30)

Lăţime fantă (considerând ON acţionând în mijlocul fantei = 2 biţi) 2


Mesaj trecere simbol 8
Spaţiu delimitator 8 .

Antet trecere simbol pe dispozitiv 18 biţi

133
Tabelul 8.3 Antetul mesajului date fantă simbol (figurile 8.31, 8.32 şi 8.33)

Bit sincronizare 1
Identificator ID 16
Date (limită de terminată de sistem, de exemplu 0 - 256 bytes) variabil
Verificare redundanţă ciclică CRC 16
Spaţiu delimitare intermesaje 8
Răspuns confirmare (dacă se cere) + spaţiu 16 .
Antet pe mesaj - cu confirmare ACK 57 biţi
Sau antet pe mesaj - făra confirmare ACK 41 biţi

Antet mesaj fantă simbol (în timpi de bit = bt)

Bit sincronizare 1
Identificator ID 16
Date (limită determinată de sistem - bytes) 0 - 256 bytes
CRC 16
Spaţiu delimitare intermesaj 8
Răspuns confirmare (dacă se cere) + spaţiu 16
----------------
Antet pe mesaj - cu confirmare ACK 57 bt
Sau antet pe mesaj - fără confirmare ACK 41 bt

Antet fantă trecere simbol

Lăţime fantă (considerăm ON la mijlocul fantei) 1


Mesaj trecere simbol 8
Spaţiu delimitator 8
-------
Antet trecere simbol pe dispozitiv: 17 bt

Calculul buclei de timp – (P dispozitive transmit N bucle de mesaj cu M bytes date/ mesaj

Antet mesaj total (fără confirmare ACK) 41N


Antet simbol total 17P
timp date mesaj total (m x 8 biţi) 8M
Fante nefolosite =
Lăţime fantă x (max #fante - #fante folosite) = 1(32-P)
-----------
Total buclă de timp 41N + 17P + 8M + 4(32-P)

134
Exemplu de calcul al timingului pentru fantă simbol

- pentru 8 dispozitive ce transmit o buclă cu 16 mesaje cu un total de 32 bytes de date mesaj


(2 mesaje x 8 bytes pe nod x 8 noduri):

Antet mesaj total 41x16 = 656


Antet total simbol 17x8 = + 136
--------
792
timp de date mesaj total (32 x 8 biţi) = + 256
timp fante nefolosite (1 x 24) = + 24
--------
Timp total buclă (bt) 1072

eficienţă date la timp total antet: 256 / 1072 = 24.0%

Fig. 8.34 Determinarea latenţelor pentru mesaje fantă simbol

Protocolul fantă simbol este de tip non-concurenţă şi deterministic. De aceea,


latenţele mesajelor în reţelele cu fantă simbol sunt atât predictibile cât şi limitate, ceea ce
constituie un avantaj pentru sistemele de control cu reacţie.
Factorii care afectează timpii de latenţă ai mesajelor sunt discutaţi în continuare.
Bucla de timp simbol determină intervalul de timp între posibilităţile de transmitere
a unui mesaj şi reprezintă timpul total scurs între posesiile simbolului de un anumit
dispozitiv de pe magistrală. Bucla de timp simbol include tot traficul cu mesaje, timpii de
trecere ai fantei simbol şi toţi timpii de menţinere a simbolului de către dispozitive.
Lungimea timp fantă simbol este importantă pe durata secvenţei trecere simbol,
când fiecare fantă de timp trebuie să furnizeze suficient timp pentru cea mai mare întârziere
în propagare ale semnalului, pentru a permite dispozitivelor să detecteze luarea simbolului.
Timpul menţinere simbol reprezintă numărul maxim de timpi de bit pentru care
fiecare dispozitiv are permisiunea să păstreze simbolul. Toate identificatoarele (ID) de
mesaj, CRC, spaţiile intermesaje, biţii de sincronizare mesaje, inserţiile de biţi NRZ5,
mesajele de confirmare sau confirmarea de time out şi mesajele trecere simbol nu trebuie să
depăşească această limită. Fiecare dispozitiv supraveghează şi controlează ca acest timp să
rămână în limita atribuită prin proiectare.
Modul de funcţionare la putere redusă nu este specificat, dar poate fi implementat.

8.10 Protocolul timp declanşat (TTP)

Pentru orice proiectant de sistem, cunoaşterea comportamentului ulterior al


sistemului are o importanţă deosebită. De multe ori, acesta este disponibil şi poate fi
controlat de trecerea timpului. De exemplu, momentul de timp când se presupune că se
trimite un mesaj poate şi trebuie să fie determinat prin algoritmii de control de timp real şi

135
programat în modul înainte de lansarea în producţie. Marele avantaj al protocolului TTP
(engl.: Time Triggered Protocol TTP) este controlul distribuit de timp real de mare viteză
cu timp declanşat a sistemelor.
Protocolul TTP a fost dezvoltat de Institutul pentru Informatică Tehnică,
Universitatea Tehnică din Viena şi este un protocol integrat de comunicaţii pentru aplicaţii
pe vehicule, care furnizează toate serviciile cerute pentru implementarea unui sistem de
control de timp real de mare viteză, distribuit, cu toleranţă la defect
Mediul de transmisie foloseşte o pereche de fire răsucite sau fibră optică.
Structura sistemului de bază I/O pentru interfaţare conţine dispozitive conectate prin
două interfeţe fizice redundante la reţele duale, pentru protecţia la defecte de cablare,
contacte, conectori, etc. Pentru a tolera un defect de dispozitiv, două dispozitive sunt
conectate în paralel. Codificarea biţilor nu este specificată de proiectant, dar este sugerată
tehnica de codificare MFM, deoarece are mai puţin de o tranziţie pe bit.
Accesul la reţea se face prin acces multiplu, cu divizare de timp (TDMA) şi este
controlat de o bază de timp globală generată de protocolul TTP. Un TDMA complet este
definit ca fiind un ciclu complet pe durata căruia fiecărui modul al vehiculului i s-a acordat
cel puţin o dată acces pentru transferul de date. Toate informaţiile transmise pe un canal de
comunicaţii pot fi cadrate în mod corespunzător.
În figura 8.35 sunt prezentate patru configuraţii posibile: clasă I, clasă II, clasă III şi
clasă IV. Pentru efienticizare, în configuraţia de clasă IV se introduc dispozitive fantomă.

< >
< >
Configuraţia clasă I

< >
< >
Configuraţia clasă II şi III

Dispozitive
fantomă

< >
< >
Configuraţia clasă IV

Fig. 8.35 Configuraţia cu t7oleranţă la defect

136
În figura 8.36 este prezentat un cadru TTP.

câmp control câmp de date de 8 bytes câmp CRC

biţi confirmare
mod schimbare biţi
bit iniţializare

Fig. 8.36 Format tipic al cadrului

Cadrul TTP are următoarea alcătuire:


- start cadru (SOF), cu rolul de a identifica începutul unui nou cadru;
- un câmp de control, care conţine trei subcâmpuri: un bit de iniţializare, modul
schimbare biţi (3 biţi) şi 4 biţi de confirmare;
Bitul de iniţializare specifică un cadru iniţializare (cadru I) sau un cadru normal
(cadru N).
Cadrele I sunt necesare pentru iniţializarea unui anumit dispozitiv. Starea
dispozitivului controler de comunicaţii (adică, starea C) constă din trei câmpuri: un câmp
dispozitiv, un câmp timp, şi un câmp membru. Fiecare din aceste câmpuri are o lungime de
doi bytes, sau 16 biţi. Când un dispozitiv este iniţializat, aceste trei câmpuri sunt umplute
din câmpul de date. Cadrele N sunt cadre date care conţin date aplicaţie în câmpul date.
Modul schimbă biţi (3 biţi): Dacă bitul de iniţializare ≠ 0, se specifică şapte moduri
succesoare modului curent. Ca urmare, protocolul permite schimbarea rapidă a unui mod în
alt mod, de exemplu start, funcţionare normală, urgenţă, etc.
Cei 4 biţi de confirmare conţin o confirmare pentru cadrele trimise de modulul
precedent de pe vehicul. Lungimea câmpului de confirmare permite confirmarea fiecăruia
din cele patru cadre trimise de un modul într-o configuraţie clasă III sau clasă IV.
- câmp de date de 8 bytes;
Câmpul de date constă din concatenarea unuia sau a mai multor mesaje de date. Lungimea
fiecărui mesaj este definită statistic în definiţia modului. Nu este necesar să se dea un nume
de câmp în cadru, deoarece numele mesajului poate fi dedus din câmpul mod şi momentul
de timp al trimiterii.
- câmpul CRC:
Câmpul verificare redundanţă ciclică (CRC) are o lungime de 2 bytes. Pentru cadre
N, CRC este calculat peste starea C a controlerului, funcţie de câmpul de date al cadrului.
Un cadru normal este acceptat doar dacă transmiţătorul şi receptorul au stări C identice,
adică sunt de acord asupra modului, timpului şi dispozitivului care efectuează transferul de

137
date. Deoarece receptorul ştie a priori timpul de trimitere al fiecărui cadru, nu este necesar
să se transfere în cadru valoarea timpului de trimitere.
Între oricare două cadre TTP există un delimitator intercadre, notat IFD, necesar
pentru sincronizarea biţilor transmiţătorului şi receptorului.
Aşa cum s-a arătat în figura 6.35, două dispozitive sunt conectate în paralel pentru a
tolera defectul unui dispozitiv în canale duplicate de comunicaţii pe vehicul. Aceste canale
duplicate înregistrează aceleaşi schimbări de stare la aproximativ aceleaşi momente de timp
şi sunt sincronizate cu o precizie cunoscută de protocolul TTP.
Pentru administrarea erorilor, protocolul TTP se bazează pe canalele de comunicaţii
care realizează numai omisiunea defectelor şi a dispozitivelor care detectează o stare de
defect (un cod de defect); de exemplu, furnizează rezultate corecte sau de loc rezultate, ceea
ce ajută la restrângerea ariei de eroare la nivelul sistemului.
Într-un proces de transfer de date, un transmiţător ataşează un câmp CRC fiecărui
cadru iar un receptor poate detecta când un cadru a fost afectat şi înlătură acel cadru.
Pentru o funcţionare corectă, protocolul TTP trebuie să asigure detectarea tuturor
defectelor interne ale unui dispozitiv şi oprirea lor, înainte de a fi transmis un mesaj de
ieşire eronat. Acest lucru se realizează prin folosirea redundanţei de spaţiu sau timp. Mai
mult, protocolul TTP are un serviciu care poate detecta defectul de omisiune a verigilor din
comunicaţiile care vin şi pleacă pe magistrală.
În concluzie, cu magistrale duale duplex şi canale de comunicaţii cu dispozitive
redundante, capacitatea de toleranţă la defect a protocolului TTP este excelentă.
În Tabelul 8.4 se arată capacitatea de toleranţă la defect realizată cu o configuraţie
clasa IV, prezentată anterior în figura 6.35. Intervalul de restabilire pentru un eveniment
tranzitoriu depinde de lungimea perioadei tranzitorii de întrerupere şi de timpul cerut de
protocolul TTP pentru a detecta, monitoriza şi restabili din întrerupere. Acest timp este de
ordinul ms.

Tabelul 8.4 Capacitatea de tolerare a defectelor


Toleranţă la Clasă I Clasă II Clasă III Clasă IV
Defect permanent 0 1 1 2
dispozitiv
Defect permanent 1 1 1 2
magistrală
Defect tranzitoriu 0 1 pe eveniment 1 pe eveniment 1 pe TDM rotunjit
dispozitiv
Defect tranzitoriu 1 din 2 1 din 2 3 din 4 3 din 4
magistrală

Viteza de transfer a datelor nu este specificată dar, se recomandă 1 Mbit/s.


Lungimile pentru start cadru (SOF) şi identificatorul de cadru (IFD) depind de
întârzierile în propagare pe magistrală, calitatea clock-ului sincronizare şi tehnica folosită
pentru codificarea biţilor. De exemplu, pentru viteze de transmisie a datelor cu valori sub 1
Mbit/s şi o lungime a magistralei sub 20 m, avem SOF = 1 şi IFD = 3.

138
Pentru stabilirea antetului de cadrare, se calculează lungimea totală a mesajului
transmis, în biţi, cu formula:

ANTET/MESAJ = CADRARE/(CADRARE + DATE)

- pentru un mesaj transmis de 4 bytes (32 biţi) de date, antetul de cadrare este:

28 / (28 + 32) = 47%.

- pentru un mesaj de 8 bytes (64 biţi) de date, antetul de cadrare este:

28 / (28 + 64) = 39%.

Antetul total de cadrare considerat pentru transmisia iniţializării cadrelor are o


valoare mai mare.
Latenţa mesajele transmise cu protocolul TTP:
Presupunem un canal de transmisie de 1 Mbit, cu 8 dispozitive conectate, care
transmit o buclă de 16 mesaje, cu un total de 32 bytes de date de mesaj. TDMA aproximativ
al protocolului TTP este 0.48 ms în configuraţie clasă I sau clasă II. Acesta este considerat
cel mai defavorabil caz de întârziere pentru un dispozitiv comutator. Dacă este selectată o
configuraţie clasă III sau clasă IV cu 4 mesaje replică, TDMA este aproximativ dublat,
adică puţin sub 1ms.
Producătorul nu specifică funcţionaea potocolului TTP în modul de putere
redusă, însă ea poate fi specificată ca mod de operare. Schimbarea modului de
funcţionare la putere redusă poate fi făcută în orice moment.

8.11 Arie de reţea pe vehicul (VAN)

Protocolul denumit Arie de Reţea pe Vehicul (VAN - Vehicle Area Network) este un
protocol de magistrală multiplexată, propus pentru aplicaţii multiplexate pe vehicule.
Mediul de transmisie este specificat, recomandându-se perechea de fire răsucite.
Transmisia se face pe pereche diferenţială, folosind surse de curent. Pentru creşterea
imunităţii la zgmot, s-a prevăzut un filtru analogic opţional. Interfaţa este reprezentată în
figura 8.37.
Pentru acest protocol sunt permise două tehnici de codificare, selectate de utilizator,
şi anume: L-Manchester şi E-Manchester (figura 8.38).
În codificarea L-Manchester, toţi biţii din cadru sunt codificaţi Manchester.
Încodificarea E-Manchester, biţii sunt codificaţi NRZ cu excepţia unltimului bit din
fiecare secvenţă, care va fi codificat L-MAN.
Câmpurile IMS şi SOF sunt codificate prin mers în gol E-Manchester, iar NRZ şi
ACK sunt codificate L-Manchester.
Accesul la reţea se face prin arbitrare nedestructivă prioritizată, bit cu bit, folosind
câmpul identificator unic de 12 biţi, al cărui format este definit de utilizator.

139
MAGISTRALA + RI RECEPŢIE
FILTRU
ANALOGIC RI
MAGISTRALA -
CONTROL
POL

EMISIE

FIXARE CURENT

Fig. 8.37 Interfaţă cu magistrala cu toleranţă la defect

CLOCK

dominant

pasiv
valoare logică bit 0 1
REPREZENTARE BIŢI L - MANCHESTER

CLOCK

valoare logică bit "0" "1" "0" "1"


NRZ NRZ NRZ MAN
dominant

pasiv
REPREZENTARE BIŢI E - MANCHESTER

Fig. 8.38 Codificarea biţilor pentru VAN

Protocolul VAN permite accesul în cadru pe baza unei linii de acces la mediu R.
Orice dispozitiv conectat la magistrală poate accesa cadrul, cu condiţia ca R-1 biţi anteriori
ai câmpului de arbitrare să fi fost emişi şi ca fanta de timp precedentă să fi fost recesivă.
Pentru definirea formatului mesajului, analizăm cadrul mesaj, format din 8 câmpuri:
- Start cadru (SOF), furnizează o referinţă de timp comună tuturor dispozitivelor de pe
magistrală, permiţând acestora să-şi sincronizeze clock-ul local; bitul start mesaj are
rolul de a iniţializa cadrul;
- Câmpul identificare cadru, de 2 bytes, include identificatorul mesaj unic de 12 biţi
urmat de 3 biţi de control (CRC) şi bitul cerere transmisie la distanţă (RTR). Bitul RTR
140
specifică dacă în cadrul transmis sunt incluse date (bit RTR = 0) sau dacă se cer date
(bit RTR = 1). De asemenea, bitul RTR permite răspunsul imediat în cadru sau, mai
târziu, într-un cadru separat.
- Câmpul de date, care este format din (0 – 64) biţî de date;
- Câmpul CRC, format din 15 biţi, pentru detecţia erorilor;
- Un bit sfârşit date;
- Un bit confirmare;
- Câmpul EOF (sfrrşit cadru) de 4 biţi şi
- Identificatorul de cadru (IFS – Identifier Frame Single).
Formatul cadrului de mesaj tip single este prezentat în figura 8.39.

6 16 0 – 64 15 1 1 4 2

SOF CAMP DATE CRC IFS


EOF
IDENTIFICARE CADRU
CONFIRMARE
SFARŞIT DATE

Fig. 8.39 Format cadru mesaj

Confirmarea mesajului se realizează prin una din următoarele două căi:


- fără confirmare sau
- cu confirmare pozitivă, cea ce înseamnă că cel puţin o staţie (un disozitiv) de pe
magistrală a recepţionat şi acceptat mesajul. Dacă staţia receptoare nu poate face o
confirmare în cadru, mai târziu trebuie trimis separat un mesaj de confirmare.
Metodele folosite de protocolul VAN pentru detectarea erorilor include:
- monitorizarea nivelului,
- verificare CRC,
- detectarea violării codului şi
- verificarea cadrului mesajului transmis.
Monitorizarea nivelului este realizată de dispozitivul care a transmis mesajul, prin
compararea nivelelor biţilor transmişi cu nivelele biţilor detectaţi pe magistrală.
Verificarea cadrului se realizează printr-un cod CRC de 15 biţi, de tipul:

( x 8  x 4  x 3  x 2  1)
( x 7  1)

Funcţionarea pe un singur fir este posibilă cu o schemă cu control diferenţial,


datorită cuplajului de curent alternativ, dacă celălalt fir este scurtcircuitat la masă,
scurtcircuitat la Vbat sau în circuit deschis.
Viteza datelor nu este specificată.

141
Dimensiunea totală a cadrului (incluzând datele) este 109 biţi. Dimensiunea
cadrului total include biţii START, STOP şi mers în gol.
Cantitatea de date permisă pentru transfer într-un cadru este de maxim 64 biţi.
Considerând toate aceste valori, obţinem pentru procentajul antetului:

45 / (45 + 64) = 41.3%.

Ca în toate protocoalele bazate pe arbitraj, mărimea latenţei variază în funcţie de


prioritatea mesajului care trebuie transmis.
Funcţionarea în modul de putere redusă nu este specificată de producător.

142
CAPITOLUL 9

ARHITECTURA SISTEMELOR CU CONECTARE MULTIPLEXATĂ

9.1 Selectarea header-ului şi a arhitecturii de reţea

Header-ul este un câmp de unul, doi sau trei bytes în interiorul unui cadru şi conţine
informaţii despre:
- sursa mesajului (dispozitivul transmiţător),
- adresa ţintei (dispozitivului de pe magistrală căruia îi este destinat mesajul respectiv),
- prioritatea mesajului (mesajele de alarmă şi mesajele de tip Sync sunt prioritare),
- tipul mesajului (funcţional, fizic, condus de eveniment, etc.) şi
- răspunsul în cadru.
Selectarea header-ului se face în funcţie de arhitectura aleasă pentru sistem (uni-
reţea sau multi-reţea) şi în funcţie de tipul mesajului care trebuie transferat pe magistrală
(mesaj funcţional sau mesaj fizic).
Pentru sistemele cu arhitectură multi-reţea şi în care se transferă mesaje
funcţionale sunt recomandate de obicei headere de un singur byte, a căror structură este
reprezentată în figura 9.1 a). Un astfel de header îndeplineşte funcţia de identificator de
mesaj (ID), oferind toate informaţiile necesare despre mesajul respectiv. Este folosit pentru
transferul mesajelor funcţionale de tip difuzare (broadcast), nefiind necesară specificarea
sursei sau destinaţia mesajelor deoarece recepţionarea lor este responsabilitatea exclusivă a
dispozitivului receptor.
Pentru sistemele cu arhitectură multi-reţea, în care se transferă mesaje fizice, se
recomandă alegerea unui header de doi bytes-i. Primul byte este identificatorul de mesaj
(ID) şi conţine informaţiile de bază, iar cel de-al doilea byte reprezintă adresa ţintei
(dispozitivului de pe magistrală căruia îi este destinat). Structura unui astfel de header este
reprezentată în figura 9.1 b).

ID Data 1 ...
a) Header pentru cadre de mesaj funcţional

ID Adresa ţintei Data 1 ...


b) Header pentru cadre de mesaj fizic

Fig. 9.1 Header pentru reţele multiple

Proiectanţii de reţele pentru sisteme cu conectare multiplexată şi control distribuit


pun la dispoziţia utilizatorilor o largă varietate de topologii pentru reţele. Cele mai folosite
sunt arhitectura de tip uni-reţea, deservită de un singur protocol şi arhitectura de tip multi-
reţea, care poate fi deservită de unul sau mai multe protocoale, în funcţie de gradul de
complexitate şi de tipul aplicaţiei.
143
Selectarea arhitecturii de reţea pentru sistemul multiplexat este făcută de
proiectantul de sistem, care ţine cont de cerinţele utilizatorului şi de constrângerile impuse.
Hardware-ul care susţine arhitectura unui sistem nu este fix, el putând fi modificat în
funcţie de cerinţele utilizatorului sau aplicaţiei de timp real. Se recomandă însă prudenţă în
alegerea arhitecturii, deoarece aceasta este în general ireversibilă, datorită limitărilor din
configuraţia hardware a sistemului.
Pentru sistemele cu arhitectură uni-reţea se recomandă folosirea header-elor
multiplu-byte, indiferent dacă se transferă mesaje funcţionale sau mesaje fizice. Structura
unui header multiple-byte este reprezentată în figura 9.2.

Prioritate / tip Adresă ţintă Sursă DATA 1 ...

Fig. 9.2 Header pentru reţele unice

Primul byte al cadrului conţine informaţii despre prioritatea şi tipurile de mesaje


transferate pe magistrală, fie că sunt mesaje funcţionale, fie că se referă la mesaje fizice.
Al doilea byte conţine adresa ţintei mesajului. Urmează adresa sursei, apoi datele
care trebuie transferate (DATA1, DATA2, …).
Selectarea arhitecturii este responsabilitatea proiectantului de reţea, care trebuie să
acorde o mare atenţie domeniului de aplicaţie în care va fi folosită. Pentru aceasta, trebuie
să analizeze condiţiile în care este preferată o arhitectură uni-reţea sau o arhitectură multi-
reţea. De exemplu, în aplicaţiile în care sunt folosite protocoale pentru date, este indicată o
arhitectură multi-reţea. În schimb, în aplicaţiile care includ sisteme cu conectare
multiplexată cu senzori, sunt indicate arhitecturile de tip uni-reţea.
În sistemele destinate tansferului de date, latenţa este o cerinţă semnificativă a
protocolului de aceea, pentru eficienţă se folosesc mesajele scurte, de tip funcţional.
Sistemele multiplexate cu senzori tranferă evenimente (de exemplu, sistemele de
control pentru vehicule).

9.2 Clasificarea reţelelor din sistemele cu conectare multiplexată pe vehicule

În acest paragraf sunt prezentate reţelele mutiplexate şi transmisia de date din


producţia de vehicule. Sistemele sunt descrise prin metode relevante inginerului electronist,
acesta având datoria de a aplica tehnicile de multiplexare la producţia de mare volum.
În proiectarea vehiculelor pentru pasageri, costul reprezintă o metodă decisivă în
determinarea aplicabilităţii unui proiect în producţia de serie. Pentru ca o reţea multiplexată
să poată fi acceptată ca proiect, ea trebuie să aducă îmbunătăţiri funcţionale sistemului,
păstrând în acelaşi timp şi un preţ scăzut.
Comitetul SAE a definit următoarele trei clase de reţele pentru transferuri de date
multiplexate pentru vehicule:
Clasa A. Se referă la folosirea potenţială a unui sistem cu conectare multiplexată, în
care numărul de conexiuni este mult redus datorită realizării transmisiei şi recepţiei de
semnale multiple pe aceeaşi magistrală de date. În sistemele cablate în mod convenţional,
transferul de date între diferitele dispozitive (noduri) era realizat prin fire individuale, între
surse şi receptori. Nodurile folosite pentru conectarea multiplexată a sistemului nu există în
144
mod tipic în aceeaşi formă sau într-o formă similară pe un sistem conectat în mod
convenţional (clasic).
Clasa B. Se referă la folosirea potenţială a unui sistem cu conectare multiplexată, în
care datele (de exemplu valorile parametrilor) sunt transferate între noduri (dispozitive)
conectate la magistrală, eliminând astfel senzorii redundanţi sau alte elemente auxiliare din
sistem. Nodurile din noul sistem multiplexat existau în mod tipic şi în sistemul conectat în
mod convenţional, cu deosebirea că erau module de sine stătătoare.
Clasa C. Se referă la folosirea potenţială a unui sistem cu conectare multiplexată, în
care semnale de mare viteză asociate cu sisteme de control de timp real (de exemplu,
controlul motorului sau antiblocarea frânelor la vehicule), sunt trimise pe o magistrală de
semnal, în scopul facilitării controlului distribuit şi suplimentar şi reducerii numărului de
conexiuni din sistem.
Reţelele Clasă B reprezintă un superset funcţional al reţelelor Clasă A; adică,
magistrala Clasei B trebuie să fie capabilă să realizeze cel puţin comunicaţiile (conexiunile)
pe care le îndeplineşte o magistrală Clasă A. Acestă trăsătură protejează folosirea aceleiaşi
magistrale pentru toate funcţiile sistemelor Clasă A şi Clasă B, sau o configuraţie
alternativă a ambelor magistrale (Clasă A şi Clasă B) cu un dispozitiv tip poartă.
Într-un mod similar, magistrala unui sistem de Clasă C reprezintă de fapt un
superset funcţional al magistralei Clasă B. Ea realizează toate conexiunile de date pe care le
îndeplineşte magistrala Clasă B şi are în plus funcţii suplimentare, cerute de utilizator.
În continuare, vor fi analizate cerinţele pentru cele mai scăzute trei straturi ale
modelului OSI (open system interconnects). Aceste straturi, în ordine descrescătoare, sunt
următoarele:
- stratul reţea,
- stratul de legături de date şi
- stratul fizic.

9.3 Arhitecturile reţelelor în sistemele cu conectare multiplexată pe vehicule

Multiplexarea în reţea Clasă A interconectează dispozitive (noduri) cu inteligenţă


limitată, adesea acestea fiind simpli senzori sau dispozitive de acţionare. Reţelele Clasă A
reduc semnificativ cablarea de bază (convenţională) a sistemului şi îndepărtează senzorii
redundanţi. Datele distribuite între dispoztivele conectate la magistrala multiplexată sunt în
acest caz comandate şi controlate de eveniment (event-diven).
În majoritatea sistemelor conectate astfel, numărul de semnale controlate de
eveniment predomină, dar sunt necesare numai în anumite cazuri. De exemplu, la sistemele
de pe vehicule, mesajul "aprinde farurile", poate fi considerat condus de eveniment.
Deoarece aceste mesaje sunt nefrecvente, (trimise doar o singură dată, doar atunci când
semnalul se schimbă), în general ele necesită confirmare, fie în interiorul aceluiaşi mesaj,
fie într-un mesaj separat, de tip conectare/răspuns.
Multiplexarea în reţea Clasă B interconectează dispozitive inteligente (de exemplu,
un controler pentru motor, un computer pentru caroserie, un grup de instrumente ale
vehiculului, etc.) Multiplexarea în clasă B nu impune alegerea unei anumite arhitecturi sau
header. Cablarea de bază a sistemului nu se reduce în mod semnificativ, dar sunt asigurate
comunicaţiile de date între module pentru procese distribuite. Datele distribuite pot fi de
natură repetitivă şi, uneori, necesită legături între module sau confirmarea recepţiei.
Ca urmare a manevrării datelor repetitive sau de tip răspuns, o reţea Clasă B poate fi
optimizată în scopul adresării funcţionale. Adresarea funcţională trimite date pe magistrala
145
multiplexată, acestea fiind recepţionate de unul sau mai multe dispozitive conectate, fără a
respecta însă localizarea fizică a modulului, ci numai interesul lor pentru funcţiile specifice.
În arhitectura clasă B, nu contează care dispozitiv a trimis datele pe magistrală.
Dispozitivele receptoare primesc datele cerute direct de pe magistrala multiplexată.
Dacă sistemul este adresat fizic, atunci reţeaua este folosită pentru întreţinere şi
poate fi uşor manevrată, fără reducerea benzii de trecere caracteristică.
Arhitectura uni-reţea transportă mesajele pe magistrală atât în sistemele
multiplexate în Clasă A cât şi în sistemele multiplexate în Clasă B iar header-ul multiplu-
byte are avantajul de a conţine mai mulţi biţi disponibili pentru atribuirea de identificatori,
priorităţi şi tipuri de mesaje.
Caracteristicile mesajelor, atât pentru cele cu timp critic (time-critical) cât şi pentru
mesajele conduse de eveniment (event-driven), trebuie să fie ajustate pe o bază prestabilită,
mesaj cu mesaj. În general, acest nivel de complexitate necesită structuri de header
multiplu-byte.
Arhitectura multi-reţea, spre deosebire de arhitectura uni-reţea, tinde să separe
mesajele Clasă A de cele în Clasă B şi să optimizeze fiecare reţea, precum şi interfaţarea
dispozitivelor pentru caracteristici specifice fiecărei clase.
Într-o arhitectură multi-reţea, mesajele cu timp critic pot fi transferate pe o reţea, în
timp ce mesajele conduse de eveniment sunt transmise pe o alta. De exemplu, transmisiile
de date în mesaje repetitive (Clasă B) pot fi menevrate pe o reţea, iar cerinţele de
multiplexare pentru senzori şi control, pe o altă reţea. Această arhitectură impune ca ambele
reţele (Clasă A şi Clasă B) să lucreze împreună pentru a realiza conectarea multiplexată de
ansamblu a sistemului. Dacă între reţelele multiple este necesar un schimb de informaţii,
trebuie acordată o mare atenţie în îndeplinirea cerinţelor specifice fiecărei reţele în parte.
Acest concept al reţelelor multiple nu este limitat la două, ci poate fi extins la atâtea
reţele separate cât se doreşte.
Ambele arhitecturi de reţea trebuie să fie eficiente în cea ce priveşte costul pentru
aplicarea în producţie, iar dispozitivele conectate să fie specifice fiecărei reţele.

9.3.1 Structură uni-reţea multiplexată în Clasă A

Într-un sistem pe vehicul, multiplexarea Clasă A este recomandată pentru cablarea


de viteză scăzută a caroseriei şi funcţiilor de control. Exemplul cel mai adesea folosit pentru
a evidenţia avantajele multilpexării în Clasă A este circuitul de bază pentru iluminare
exterioară, dearece acesta este foarte simplu şi are un preţ scăzut. Ca dezavantaj, aplicarea
unei reţele multiplexate la acest sistem de iluminare duce la creşterea complexităţii şi a
costului.
Integritatea datelor recepţionate în sistemul de iluminare reprezintă o cerinţă
stringentă pentru multiplexarea Clasă A. De exemplu, o eroare de un singur bit poate avea
ca rezultat faruri stinse atunci când acestea ar trebui să fie aprinse. Din acest motiv,
integritatea datelor într-o reţea multiplexată reprezintă o constrângere iniţială de proiectare
şi impune testarea erorilor de bit.
În timpul funcţionării sistemului, rezultatele se pot schimba de la un moment la altul
dacă noile trăsături (cum ar fi comutarea la curent scăzut sau avertizare bec întrerupt) devin
necesităţi de moment sau noile tehnologii (de exemplu, folosirea becurilor rapide) devin
realitate. În general, adăugarea unor noi caracteristici într-un sistem cu conectare
multiplexată are un rol major iar multiplexarea devine o soluţie foarte eficientă în ceea ce
priveşte costul de fabricaţie şi cel de întreţinere şi service.
146
Proiectarea unor sisteme care să reducă complexitatea producţiei şi să scadă
costurile reprezintă o cerinţă care a condus la dezvoltarea arhitecturii divizate. Aceasta
foloseşte un număr redus de componente în fabricile de asamblare, iar testabilitatea inclusă
reduce substanţial timpul de testare la construcţia sistemului.
Pentru a demonstra eficienţa utilizării unei reţele multiplexate Clasă A, considerăm
sistemul de alarmă antifurt din figura 9.3.

PORTIERĂ ŞOFER PORTIERĂ PASAGER

Comutator portieră Comutator portieră


Comutator cheie Comutator cheie

PORTIERĂ STÂNGA SPATE PORTIERĂ DREPTA SPATE

Comutator portieră Comutator portieră

Comutator capotă
Comutator portbagaj

Comutator manual Comutator cheie


portbagaj

Claxon vehicul

Modul alarmă
Masă
antifurt vehicul

Fig. 9.3 Sistemul de alarmă antifurt pentru vehicul

Chiar dacă acest exemplu nu reprezintă toate caracteristicile sistemelor de alarmă


antifurt de pe vehicule, totuşi el ilustrează condiţia de lucru nemultiplexat. Unele din
dezavantajele acestei structuri sunt următoarele:
- dispozitivul de acţionare al claxonului şi comutatoarele tip senzor sunt toate conectate
direct la modulul alarmei;
- alarma poate fi armată prin activarea comutatorului manual (dash arm);
- alarma nu are o dezactivare unică, ci în mai multe moduri:
- prin acţionarea comutatorului de la încuietoarea uşii şoferului;
- prin acţionarea comutatorului de la încuietoarea uşii pasagerului;
- prin acţionarea comutatorului încuietorii de la portbagaj.
- în situaţia în care modulul alarmei este armat, claxonul sună când se violează capota
vehiculului, uşa, sau portbagajul.
Acelaşi sistem, însă cablat multiplexat Clasă A, este reprezentat în figura 9.4.
Transferul de date se face mai uşor deoarece senzorii şi dispozitivele de acţionare
sunt integrate cu electronica multiplexată, astfel încât ei pot comunica pe un singur fir cu
modulul alarmei antifurt.
Integrarea electronicii în sensori şi dispozitive de acţionare îmbunătăţeşte
diagnosticarea senzorilor, deoarece starea şi condiţia acestora poate fi legată de
funcţionarea mecanică. Acest nivel al integrităţii comutatorului nu poate fi realizat prin
metodele clasice de polarizare.

147
MUX

MUX
Claxon

Comutator

MUX
manual Modul alarmă Masă
antifurt a vehiculului

Comutator Comutator

MUX
portieră şofer MUX portieră pasager

Comutator

MUX
MUX

cheie Comutator
cheie

Comutator Comutator

MUX
MUX

portieră portieră
stânga spate dreapta spate

MUX Comutator MUX Comutator cheie


portbagaj portbagaj

Fig. 9.4 Sistem de alarmă multiplexat clasă A

Sistemul de alarmă antifurt are un avantaj suplimentar, şi anume: condiţiile


senzorilor pot fi folosite pentru a dezactiva alarma şi a împiedica situaţia unei alarme false.
Cerinţele porturilor de intrare/ieşire impun conexiunile care au ramificaţii în T
deoarece acestea pot fi automatizate la un nivel înalt în producţia arborilor de cabluri,
reducând astfel dimensiunea fasciculului de fire şi eliminând papucii dubli folosiţi în
conectarea convenţională.
Un alt avantaj este posibilitatea de adăugare în reţea a unor noi senzori sau
dispozitive de acţionare, fără a modifica funcţionarea sistemului. Arhitetura reţelei Clasă A
permite alegerea unei structuri opţionale a modulelor, fără schimbarea configuraţiei
modulului de alarmă. Această posibilitate de extindere influenţează costul sistemului
deoarece în calculul său intră şi costurile opţiunilor suplimentare.
După cum s-a precizat anterior, configuraţia clasei A este flexibilă şi poate fi uşor
expandabilă. Considerăm, de exemplu, cazul în care producătorul oferă mai multe versiuni
de alarme antifurt, construite după modelul prezentat. Dintre acestea, o versiune este mai
performantă, deoarece unitatea este armată de coducătorul auto prin simpla închidere a uşii.
Pentru a susţine această opţiune, producătorul trebuie să elimine din structură comutatorul
manual iar întrerupătorul uşii de la conducător trebuie realizat cu un comutator integrat,
multiplexat la o adresă diferită. Dacă aceste condiţii sunt îndeplinite, atunci soft-ul
modulului de alarmă antifurt se poate reconfigura singur, fără modificări ulterioare ale
hardware-ului sistemului.
Într-un sistem caroserie al unui vehicul real există aproximativ şapte senzori la
fiecare dispozitiv de acţionare. Sistemul de alarmă antifurt prezentat este realizat tipic cu 10
senzori (comutatori) la fiecare dispozitiv de acţionare (în acest caz, claxonul).
Senzorii şi electronica multiplexată pot fi integrate în componente de comutaţie,
această configuraţie eliminând conectarea separată şi montarea modulului de multiplexare.
148
Unele componente funcţionează ca senzori pe două fire (semnal şi masă),
alimentarea senzorului făcându-se prin semnalul multiplexat. Aceşti senzori sunt proiectaţi
să includă în aceeaşi capsulă TO92 circuitul de multiplexare integrat şi dispozitivul cu efect
Hall. Partea multiplexorului are dimensiuni foarte mici, chiar dacă înglobează aproximativ
300 de porţi logice.
Dacă ne referim la sistemele complexe de pe un vehicul, driverul dispozitivului de
acţionare şi multiplexorul pot fi în mod similar integrate în claxon sau în motorul electric,
reducând considerabil numărul de conexiuni şi simplificând astfel montajul.
În mod normal, dispozitivele de acţionare au nevoie de mai multă putere decât
senzorii, de aceea, folosesc trei fire: semnal, alimentare şi masă. Totuşi, unii producători au
găsit modalităţi de a elimina unul din aceste fire prin plasarea semnalului util pe firul de
alimentare.

9.3.2 Structură uni-reţea multiplexată în Clasă B

Proiectantul de sisteme pentru vehicule are la dispoziţie mai multe structuri de


arhitecturi distribuite, el având sarcina de a alege arhitectura cea mai potrivită pentru
sistemul la care se referă, atât în ceea ce priveşte costul de fabricaţie cât şi reducerea
substanţială a numărului de conexiuni folosite.
Un prim exemplu îl reprezintă integrarea mai multor caracteristici într-un modul sau
folosirea unui nod dedicat. Structura trebuie aleasă cu multă grijă, respectând toate
constrângerile iniţiale ale sistemului. În caz contrar, strategia de partiţionare nu va conduce
la obţinerea rezultatelor dorite.
Cea mai utilizată strategie de reţea este arhitectura uni-reţea Clasă B, însă există
situaţii în care ea nu reprezintă soluţia optimă. Despre avantajele şi dezavantajele aplicării
reţelei multiplexate Clasă B se va discuta în cele ce urmează. Pentru exemplificare,
considerăm sistemul reprezentat în figura 9.5 unde, este evidenţiată partea din reţeaua de
transmisiuni de date care conţine computerul pentru caroseria unui vehicul, un grup de
instrumente şi un centru de mesaje. În acest exemplu, toţi sensorii care alimentează reţeaua
sunt conectaţi la computerul pentru caroserie.
Dacă sistemul de pe vehicul are puţine componente electronice, modul de legare al
senzorilor nu ridică probleme în ceea ce priveşte dimensiunea fasciculului de fire şi
numărul pinilor de conectare. Însă, odată cu dezvoltarea electronicii pe vehicule, au fost
incluse în cerinţele standard şi unele caracteristici suplimentare. Din acest motiv, a devenit
tot mai dificilă implementarea unor noi sisteme, solicitate fie de consumator, fie prin
reglementări guvernamentale. Această complexitate suplimentară se datorează numărului
mare de fire de interconectare între senzori şi module. Complexitatea constructivă şi
problemele de service şi depanare fac această opţiune o soluţie limitată pentru strategia de
partiţionare.
Arhitectura uni-reţea Clasă B poate rezolva această problemă complexă, prin
adăugarea unui nod pentru senzori, denumit nod dedicat, care reduce numărul firelor de
interconectare (figura 9.6). În noua structură, sensorii convenţionali sunt conectaţi direct la
nodul care îndeplineşte rolul de poartă de acces spre alte module prin reţeaua de date Clasă
B, reducând numărul de circuite şi numărul de conexiuni folosite pentru conectare. Metoda
are avantajul minimizării numărului firelor pentru senzori, eliminarea punctelor cu lipituri
care se deteriorează în timp (de exemplu, peretele despărţitor sau balamalele uşilor unui
vehicul). Ca un dezavantaj, reducerea cablării este obţinută cu preţul a trei noduri
suplimentare pentru sensori: nod motor, nod portieră şofer şi nod portieră pasager.
149
C0MPARTIMENT MOTOR PANOU INSTRUMENTE

Nivel lichid răcire Faruri aprinse


Lichid de frână Benzină puţină
Nivel ulei Comutator ştergător
Lichid transmisie Comutator cheie
Lichid parbriz Centuri de siguranţă
Capotă deschisă
PORTIERĂ ŞOFER PORTIERĂ PASAGER

Mâner portieră Mâner portieră


Cilindru cheie Cilindru cheie
Uşă închisă Uşă închisă
Uşă deschisă Uşă deschisă

Computer pentru
caroserie

Magistrală
Masă

Grup de Centru de
instrumente mesaje

Fig. 9.5 Reţea de comunicaţii de date cu computer pentru caroserie, grup de


instrumente şi centru de mesaje

Multiplexarea în Clasă B este o tehnică folosită pentru eliminarea problemelor care


apar în proiectarea sistemelor pentru automobile. Însă, nu în toate cazurile multiplexarea în
Clasă B este avantajoasă, în multe situaţii ea nefiind soluţia optimă care trebuie aleasă.
Soluţia ideală este alegerea arhitecturii de multiplexare de nivel înalt, care permite:
- folosirea unui număr cât mai mic de conectori pentru cuplarea modulelor sistemului;
- reducerea numărului de fire necesare operaţiilor de cablare, fire care pentru modelul
convenţional sunt în număr foarte mare şi înghesuite în arii strâmte;
- reducerea numărului de module folosite la asamblarea sistemului, cablare şi service.
Pentru obţinerea acestei arhitecturi, se pot lua următoarele decizii:
Nodul compartimentului motor se integrează cu modulul controler motor,
reducându-se astfel totalul modulelor şi circuitelor conectate prin fire în acelaşi timp.
Soluţia integrării nu este întotdeauna posibilă, deoarece controlerul pentru motor are un
modul conector incontrolabil şi trebuie adăugată o parte separată pentru nodul
compartiment motor, ceea ce ar spori şi mai mult dimensiunile.
Nodurile uşilor pot fi localizate cel mai bine în interiorul uşilor, numărul de circuite
prin balama fiind minimizat. Cu toate acestea, dacă nu se fac îmbunătăţiri suplimentare în
interiorul uşii, va exista în continuare aceeaşi complexitate a cablării. Îmbunătăţirile
suplimentare pot fi realizate integrând electronică şi mecanică în aceeaşi capsulă.

150
Nivel lichid răcire Faruri aprinse
Lichid de frână Benzină puţină
Nivel ulei Comutator ştergător
Lichid transmisie Comutator cheie
Lichid parbriz Centuri siguranţă
Capotă deschisă
Grup de
instrumente

Computer
Nod motor
caroserie

Magistrală
Masă

Nod portieră Nod portieră


şofer pasager

Mâner portieră Mâner portieră


Centru de
Cilindru cheie Cilindru cheie
mesaje
Uşă închisă Uşă închisă
Uşă deschisă Uşă deschisă

Fig.9.6 Legătură de date cu computer pentru caroserie, centru de mesaje


şi trei noduri de sensori

Nodul de interes general include următoarele opţiuni:


 Pentru un cost minim, nodurile tind să devină specifice fiecărei aplicaţii şi nu
universale, deoarece pot acoperi numai o trăsătură a produsului finit.
 Pentru a putea fi utilizate în asamblarea mai multor tipuri de produse finite, nodurile
trebuie să fie inteligente prin urmare, folosesc un microcomputer, ceea ce poate avea un
impact negativ asupra costului şi complexităţii sistemului.
 Folosirea senzorilor convenţionali conectaţi la distanţă mare de nod, reprezintă un
dezavantaj pentru sistem deoarece nodul nu poate afirma cu certitudine dacă comutatorul
sensor este deschis sau firul este deconectat.
 Nodul pentru uşă reprezentat în figura 9.7 şi în general toate nodurile sistemului, pot fi
eficiente în reducerea dimensiunii şi greutăţii fasciculului de fire. Dacă se doresc
îmbunătăţiri suplimentare în funcţionarea sensorilor sau dispozitivelor de acţionare în
sistem, atunci se utilizează o reţea multiplexată Clasă A.

151
Stabilizator de
Baterie tensiune

Masă

Mâner portieră
Magistrală
Cilindru cheie Microcontroler Circuit
Integrat Masă
Uşă închisă
J1850
Uşă deschisă

Fig. 9.7 Nod driver pentru uşă

9.3.3 Structură multi-reţea multiplexată în Clasă B

Până acum au fost descrise diferite structuri de sisteme complexe cu arhitecturi uni-
reţea pentru conectarea multiplexată. Arhitectura multi-reţea este cea de-a doua strategie
folosită de proiectanţii de sisteme, pentru rezolvarea problemelor ce apar în sistemelor cu
conectare multiplexată.
Această arhitectură necesită dezvoltarea mai multor tipuri de componente hardware
pentru reţele specializate, în scopul deservirii eficiente a fiecărei aplicaţii. Componentele
hardware sunt conectate printr-o poartă de acces la reţeaua Clasă B, pentru semnalele
trimise de sensori (în scopuri de diagnosticare). În figura 9.8 este reprezentată această
soluţie sub forma unei reţele de arie locală (LAN – Local Area Network) clasă A, fără
adăugarea de noi componente la sistemul vehiculului.
Arhitectura multi-reţea integrează electronica în senzori, dispozitive de acţionare şi
motoare electrice, astfel încât acestea să poată comunica pe un singur fir, în interiorul
modulului care le comandă. Datorită electronicii suplimentare, se elimină instalarea şi
conectarea separată a modulului de multiplexare. Spre deosebire de strategia arhitecturii cu
reţea unică, se îmbunătăţeşte diagnosticarea senzorilor deoarece stările şi condiţiile acestora
pot fi raportate direct modulului de control.
LAN-ul Clasă A elimină necesitatea nodului pentru compartimentul motor şi a
modulului senzor două uşi, păstrând avantajul reducerii cablării la punctele de uzură (de
exemplu, balamalele uşilor). Arhitectura multiplexată din figura 9.8 simplifică sistemul din
figura 7.6, prin separarea reţelei Clasă B – orientată spre comunicaţiile între module, de
comunicaţiile Clasă A, înre sensori şi modulul de comandă.
LAN-ul Clasă A conectează în paralel toate componentele multiplexate. Cerinţele
porturilor de intrare/ieşire susţin conexiunile cu ramificaţii în T, care au un înalt grad de
automatizare în producţia arborilor de cabluri.

152
COMPARTIMENT MOTOR

Motor
Nivel Lichid de Nivel Lichid Lichid Capotă ştergătoare
lichid răcire frână ulei transmisie parbriz deschisă parbriz

MUX
MUX
MUX

MUX

MUX
MUX

MUX
M

PORTIERĂ ŞOFER PORTIERĂ


PASAGER

MUX
MUX
Mâner portieră Mâner portieră

MUX
MUX

Cilindru cheie Cilindru cheie

MUX
MUX

Portieră închisă Portieră închisă

MUX
MUX

Portieră deschisă Portieră deschisă

PANOU INSTRUMENTE PANOU INSTRUMENTE


Comut ştergător Computer Faruri aprinse
Contact aprindere caroserie Benzină puţină
Centuri siguranţă

Magistrală
Masă
Grup de Centru de
instrument mesaje
e

Fig. 9.8 Legătură de date cu computer pentru caroserie, grup de instrumente,


centru de mesaje şi reţea clasă A pentru sensori

Avantajele configuraţiei sunt următoarele:


- reducerea dimensiunilor fasciculelor de fire de conexiune;
- eliminarea papucilor dubli de conectare;
- permite adăugarea de noi sensori şi dispozitive de acţionare, fără a schimba configuraţia
computerului pentru caroserie sau funcţionarea sistemului;
- permite opţiunii alese să dicteze configuraţia şi nu să domine costul nodului adăugat.
Cele două reţele care folosesc senzori multiplexaţi sunt prezentate în figurile 9.8 şi
9.9. Este evidenţiată astfel caracteristica de flexibilitate a computerului pentru caroserie,
caracteristică indisponibilă altor abordări de arhitectură (de exemplu, arhitectura uni-reţea).
În figura 9.9 este reprezentat computerul pentru caroseria sistemelor cu multiplexare
combinată, în Clasă A şi în Clasă B, dar transferurile de date sunt separate.
Comutatorul ştergătoarelor de parbriz, comutatorul centurilor de siguranţă, faruri
aprinse, nivel scăzut al carburantului şi comutatorul acţionat de cheie pentru aprinder au
interfaţare în Clasă A la computerul pentru caroserie şi interfaţare multiplexată în Clasă B
cu restul sistemului. Această structură combinată permite intrărilor suplimentare să fie
conectate fără modificarea hardware-ului existent în computerul pentru caroserie.
153
COMPARTIMENT MOTOR

Lichid spălare Motor


parbriz Ştergătoare parbriz
Alimentare

MUX
MUX
M
Masă

PORTIERĂ ŞOFER PORTIERĂ PASAGER

Portieră închisă

MUX
MUX
Portieră închisă

Portieră deschisă

MUX
Portieră deschisă
MUX

PANOU INSTRUMENTE PANOU INSTRUMENTE

Comutator ştergător Computer pentru Faruri aprinse


Contact aprindere caroserie
Benzină puţină
Centuri siguranţă

Magistrală
Masă

Grup de Centru de
instrumente mesaje

Fig. 9.9 Vehicul bază cu legătură de date Clasă B, computer pentru caroserie, grup
de instrumente, centru de mesaje şi reţea Clasă A pentru senzori

Spre deosebire de această situaţie, un vehicul real are un număr redus de dispozitive
de acţionare şi câţiva senzori conectaţi la computerul pentru caroserie. Există aproximativ
şapte sensori conectaţi la fiecare dispozitiv de acţionare în sistemul unui vehicul real. În
exemplul considerat, au fost reprezentaţi mai mulţi sensori (14 sensori) şi un dispozitiv de
acţionare (motorul ştergătoarelor de parbriz), pentru a evidenţia posibilitaea de expandare a
sistemului multiplexat fără afectarea hardware-ului iniţial şi fără a modifica software-ul.
Principiile descrise anterior se pot aplica oricărui număr de dispozitive de acţionare
şi oricărui număr de senzori.

9.3.4 Reţeaua multiplexată în Clasă C

Multiplexarea în Clasă C reprezintă soluţia cea mai matură în ceea ce priveşte


caracteristicile sale şi posibilităţile de extensie, dar nu există încă un consens de opinii
asupra cerinţelor. Experţii în domeniu nu sunt de acord cu multe aspecte ale acestei reţele
iar multe ceriţe sunt contradictorii.
Mulţi ingineri proiectanţi de sisteme multiplexate pentru automobile cred că o
latenţă adecvată din punct de vedere statistic, realizabilă cu un protocol de acces la mediu
154
bazat pe o arbitrare bit cu bit este suficientă pentru o multiplexare Clasă C distribuită, de
timp real. Alţii sunt de părere că este necesar un protocol de acces la mediu de tip trecere
simbol (token-passing), deoarece acesta garantează o latenţă maximă faţă de protocolul de
acces la mediu bazat pe arbitrare, în care este realizabilă numai latenţa statistică maximă.
Sunt şi alte opinii, care resping ambele protocoale, atât accesul la mediu, bazat pe
arbitrare, cât şi cel cu trecere simbol, pe motiv că nu sunt suficient de bune pentru procese
distribuite în bucle închise, deoarece ambele metode au o prea mare variaţie a latenţei. Ei
propun protocolul de acces la mediu cu declanşare în timp (TTP), în care variaţiile reţelei
nu afectează timpii de procesare în bucle închise, deci nu afectează latenţa sistemului.
Alţi factori, de exemplu anumite viteze cerute pentru transferul datelor şi mediul
fizic, rămân de asemenea de discutat în alegerea arhitecturii de reţea.
Prin enumerarea acestor opinii contradictorii, este evident că sunt necesare multe
cercetări şi dezvoltări pentru a rezolva toate aceste probleme.

155
CAPITOLUL 10

CONTROLER ÎN ARIE DE REŢEA

10.1 Introducere

Controlerul în arie de reţea (CAN) este un protocol de comunicaţii seriale destinat


controlului de timp real distribuit în sisteme de comunicaţii cu un nivel foarte înalt de
securitate (engl. Controller Area Network).
Domeniul său de aplicare se întinde de la reţelele de mare viteză, până la cablajul
multiplexat de preţ scăzut. De exemplu, în electronica de pe automobile se interconectează
unităţi de control ale motorului, sensori, sisteme anti-derapare, etc. folosind protocoale
CAN cu viteze de transfer pentru date de până la 1 Mbit/s.
Din punct de vedere al costurilor, este eficient să se înlocuiască arborii de cabluri
pentru conectarea elementelor de pe caroserie (cum ar fi, de exemplu, grupul de lămpi,
acţionarea electrică a geamurilor, etc.), cu sisteme multiplexate serial.
Acceptarea şi introducerea comunicaţiilor seriale la un număr din ce în ce mai mare
de aplicaţii a condus la anumite cerinţe de atribuire a mesajelor de identificare, fapt impus
şi de necesitatea standardizării funcţiilor de comunicaţie pentru anumite aplicaţii.
Aplicaţiile se pot realiza mult mai simplu folosind protocolul CAN, dacă domeniul de
adresă definit iniţial pe 11 biţi de identificare (formatul standard) este lărgit. Ca urmare, a
apărut al doilea format de mesaj, denumit format extins, cu un domeniu de adresă de 29 de
biţi, permiţând proiectantului să conceapă scheme cu structură bine stabilită.
Utilizatorii circuitelor cu interfaţă CAN care nu au nevoie de domeniul de
identificare al formatului extins, pot folosi în continuare domeniul convenţional al
identificatorului de 11 biţi (format standard). În acest caz, se folosesc implementările CAN
disponibile pe piaţă sau controlerele care au ambele formate, atât cel standard cât şi cel
extins. Pentru a se face distincţia între formatul standard şi formatul extins, se apelează la
primul bit rezervat din mesajul format, definit astfel încât formatul standard este recunoscut
şi valabil. În plus, formatul extins este definit astfel încât mesajele în format standard şi
format extins pot exista simultan în interiorul aceloraşi reţele.
O atenţie specială s-a acordat realizării compatibilităţii între oricare două
implementări cu protocolul CAN. Compatibilitatea se referă la caracteristicile electrice şi
modul de interpretare a datelor care trebuie transferate pe magistrala de comunicaţii.

10.2 Funcţiile de bază ale protocolului CAN

Protocolul CAN asigură următoarele funcţii de bază:


 fixarea priorităţii mesajelor transferate pe magistrală - mesajele sunt transferate în
ordinea priorităţilor, stabilită prin proiectare şi în conformitate cu aplicaţia deservită.
 garantarea timpilor de latenţă - Latenţa este intervalul de timp între momentul în care a
început transmisia datelor pe magistrală şi momentul în care datele au fost recepţionate
corect (detecţia erorilor şi corecţia lor sunt incluse în acest interval de timp). Cu cât
156
latenţa este mai mică, cu atât protocolul a transferat datele cu o viteză mai mare şi au
fost detectate şi corectate mai puţine erori.
 flexibilitatea configuraţiei – se referă la posibilitatea adăugării unor dispozitive (staţii)
noi la magistrală sau dezactivarea unora existente, fără a modifica funcţionarea
magistralei neinfluenţând viteza de transfer a datelor sau corecţia acestora.
 recepţia multicast a datelor, cu sincronizare de timp - Toate dispozitivele conectate la
magistrală îşi sincronizează propriul clock cu acela al sistemului.
 consistenţă mărită a datelor în sistem - În procesul de transfer nu se pierd date şi nici nu
sunt recepţionate date deteriorate, erorile sunt foarte de mici, deci consistenţa datelor
recepţionate corect este sporită.
 structură multimaster a sistemului - În sistem pot exista unul sau mai multe dispozitive
master, ele disputându-şi prioritatea accesului la magistrală.
 detectarea şi semnalizarea erorilor apărute în timpul transferurilor de date;
 retransmisia automată a mesajelor perturbate, de îndată ce magistrala este din nou în
modul mers în gol (idle). Datele sunt transferate în cadre de date.
 distincţie între erorile temporare şi defectele permanente ale dispozitivelor de pe
magistrală şi deconectarea autonomă a dispozitivelor defecte, fără a influenţa
funcţionarea sistemului.

10.3 Structura protocolului CAN

Pentru transparenţa proiectării şi flexibilitatea implementării, protocolul CAN a fost


divizat în mai multe straturi:
 Stratul CAN - obiect
 Stratul CAN - transfer
 Stratul fizic.

Primele două straturi (stratul obiect şi stratul transfer) conţin toate serviciile şi
funcţiile stratului de legături de date (data link) definite de modelul ISO/OSI. Astfel,
domeniul stratului obiect include:
- găsirea acelor mesaje care trebuie transmise
- luarea deciziei asupra mesajelor care, recepţionate de stratul transfer, trebuie utilizate;
- asigurarea unei interfeţe cu stratul aplicaţie – din punct de vedere hardware.
Stratul de transfer reprezintă miezul protocolului CAN. El prezintă mesajele
recepţionate stratului obiect şi acceptă mesajele care trebuie transmise de la stratul obiect.
Stratul de transfer este în principal protocolul de transfer, fiind responsabil de timingul de
bit şi sincronizarea clock-ului sistemului, formarea cadrelor de mesaj, realizarea arbitrării
pe magistrală, confirmare, detectarea şi semnalizarea erorilor şi limitarea defectelor.
În interiorul stratului de transfer se decide momentul în care magistrala este liberă
(starea de mers în gol), pentru declanşarea unei noi trasmisii de date, de la un dispozitiv
transmiţător de pe magistrală sau în care tocmai a început o recepţie de date de către un
dispozitiv receptor conectat la magistrală. De asemenea, anumite caracteristici de timing
pentru bit sunt privite ca o parte a stratului de transfer. Aceasta face parte din natura
stratului transfer şi nu poate fi modificat.
Stratul fizic se referă la transferul curent al biţilor între diferite dispozitive conectate
la magistrală, cu respectarea tuturor proprietăţilor electrice ale acestora. Stratul fizic
defineşte modul în care sunt transmise în realitate semnalele. În specificaţia protocolului
CAN nu se defineşte stratul fizic, pentru a permite optimizarea mediului de transmisie a
157
datelor şi implementarea nivelelor pentru aplicaţie.
Se impune ca, în interiorul unei reţele, stratul fizic să fie acelaşi pentru toate
dispozitivele transmiţătoare sau receptoare de date de pe magistrală. Spre deosebire de
stratul de transfer, în care nu se puteau face modificări, pentru stratul fizic există o mare
libertate în selectare, în funcţie de aplicaţia deservită de protocolul CAN, de tipul mesajelor
vehiculate pe magistrală şi de încărcarea acesteia.

10.4 Concepte de bază ale protocolului CAN

Mesaje
Informaţia pe magistrală este transmisă în mesaje cu format fix, de lungimi diferite,
dar limitate. Când magistrala este liberă, orice dispozitiv conectat poate începe transmisia
unui mesaj nou.

Fluxul informaţiilor
Orice dispozitiv conectat la magistrala multiplexată nu foloseşte informaţiile
referitoare la configuraţia sistemului (de exemplu, adresele staţiilor). Aceasta are câteva
consecinţe importante, şi anume:
- Flexibilitatea sistemului: se pot adăuga dispozitive (noduri) la reţeaua CAN fără a fi
necesară nici o modificare software sau hardware a nodurilor din stratul aplicaţie;
- Fluxul mesajelor: conţinutul unui mesaj este precizat de un identificator. Acesta nu
indică destinaţia mesajului, dar descrie semnificaţia datelor astfel încât, dispozitivele
din reţea pot decide, prin filtrarea mesajului, dacă datele acţionează sau nu asupra lor;
- Multicast: Ca o consecinţă a filtrării mesajelor, mai multe dispozitive pot recepţiona şi
acţiona simultan asupra aceluiaşi mesaj, fără a influenţa funcţionarea celorlalte
dispozitive;
- Consistenţa datelor: Protocolul CAN garantează că un mesaj este acceptat simultan de
toate dispozitivele conectate la magistrală sau nu este acceptat de nici unul. În acest fel,
consistenţa sistemului este obţinută prin conceptele multicast şi manipularea erorilor.

Viteza de bit
Viteza protocolului CAN poate fi diferită în sisteme diferite. Totuşi, într-un sistem
de date, viteza de transfer pe bit este uniformă şi fixă.

Priorităţi
Identificatorul (ID) defineşte prioritatea statică a mesajului, pe toată durata
accesului la magistrală.

Cerere de date la distanţă


Prin transmiterea unui cadru distanţă, un dispozitiv de pe magistrală care solicită
date, poate cere altui dispozitiv de pe magistrală, să transmită cadrul de date corespunzător.
De aceea, cadrul de date şi cadrul distanţă corespunzător au acelaşi identificator.

Structură multimaster
Când magistrala este liberă, orice dispozitiv conectat poate transmite un mesaj.
Dacă două sau mai multe unităţi încep să transmită mesaje în acelaşi timp, conflictul de
acces pe magistrală se rezolvă printr-o arbitrare la nivel de bit, folosind identificatorul.

158
Mecanismul arbitrării garantează faptul că nu se pierde nici o informaţie în timpul
transferului şi nici timp.
Dacă un cadru de date şi un cadru distanţă sunt iniţiate în acelaşi timp, cadrul de
date are întâietate faţă de cadrul distanţă. Pe durata arbitrării, fiecare unitate transmiţătoare
compară nivelul bitului transmis cu nivelul bitului care este pe magistrală. Dacă aceste
nivele sunt egale, unitatea continuă să transmită. Când se transmite un nivel “recesiv” şi pe
magistrală se observă un nivel “dominant”, înseamnă că unitatea a pierdut arbitrarea şi
trebuie să se retragă fără a mai transmite nici un bit.

Siguranţa în funcţionare
Pentru obţinerea siguranţei transferului de date pe magistrală, în fiecare dispozitiv
conectat sunt implementate măsuri severe pentru detectarea şi semnalarea defectelor,
precum şi procedee de autoverificare şi autodetecţie.

Detecţia erorilor
Pentru detecţia erorilor s-au luat următoarele măsuri:
- monitorizare (dispozitivele transmiţătoare compară nivelele de bit care se transmit, cu
nivele de bit aflate pe magistrală);
- verificarea redundanţei ciclice, cu ajutorul unui câmp CRC (cyclic redundancy check);
- folosirea tehnicii de codificare a datelor cu biţi de umplutură (bit stuffing), atunci când
secvenţele de date transferate pe magistrală conţin mai mulţi biţi “1” sau “0” alăturaţi.
Inserarea biţilor de umplutură se face prin tehnica de codificare Bit-Stuf NRZ.
- verificarea cadrului mesaj.

Performanţele detecţiei de erori


Mecanismele detecţiei erorilor au următoarele proprietăţi:
- sunt detectate toate erorile globale;
- sunt detectate toate erorile locale la nivelul dispozitivului transmiţător;
- se detectează până la maxim 5 erori cu distribuţie aleatorie într-un mesaj;
- sunt detectate erorile de tip salvă, cu o lungime mai mică de 1 secundă;
- se detectează erorile de orice număr impar dintr-un mesaj.
Probabilitatea erorii reziduale pentru mesaje perturbate nedetectate, e mai mică decât:

rata erorilor de mesaj * 4,7 * 10 -11

Semnalarea erorilor şi timpul de revenire


Mesajele perturbate sunt semnalate indiferent de modul în care se detectează o
eroare. Aceste mesaje sunt apoi abandonate şi retransmise automat, imediat ce magistrala se
află la mers în gol. Timpul de revenire, de la detectarea unei erori până la începerea
următorului mesaj, este de cel mult 29 perioade de bit, dacă nu mai apare nici o altă eroare.

Limitarea defectelor
Dispozitivele conectate la magistrală pot face distincţie între perturbaţiile de scurtă
durată şi defectele permanente. Dispozitivele care sunt detectate defecte sunt deconectate în
mod automat de la magistrală, fără a fi afectată în vreun fel funcţionarea sistemului.

Conexiunile
La magistrala serială CAN se pot conecta un număr nelimitat de dispozitive dar
numărul lor este limitat de timpii de întârziere şi/sau de sarcinile electrice de pe magistrală.
159
Canal unic
Magistrala are un canal unic care transportă biţii de date. De la acesta se poate
obţine informaţia de date resincronizate. Modul în care se realizează implementarea
canalului nu este fixat prin specificaţiile de catalog, proiectantul având libertatea să aleagă
modul de implementare, în funcţie de aplicaţia deservită. De exemplu, poate alege:
- un singur fir (plus masă);
- două fire diferenţiale;
- fibre optice, etc.

Valorile de bit
Magistrala CAN poate avea pentru bit două valori logice complementare: “bit
dominant” şi “bit recesiv”. În cazul transmisiei simultane a biţilor ”dominant” şi “recesiv”,
valoarea rezultată pe magistrală este un “bit dominant”. De exemplu, în cazul implementării
de tip ŞI cablat, nivelul “dominant” este reprezentat de un “0” logic iar nivelul “recesiv”
este reprezentat de un “1” logic.
Stările fizice (de exemplu tensiune, lumină) care reprezintă nivelele logice, nu sunt
precizate de specificaţia de catalog.

Confirmare
Dispozitivele receptoare de pe magistrală verifică consistenţa mesajelor recepţionate
şi, confirmă un mesaj consistent sau semnalează un mesaj inconsistent.

Modul somn / deşteptare (modul putere redusă)


Pentru reducerea consumului de energie din sistem, un dispozitiv cu magistrală
CAN poate fi selectat în modul somn fără nici o activitate şi cu driverele de magistrală
deconectate. Modul somn se încheie cu o deşteptare, când se semnalează o activitate pe
magistrală, sau de la anumite condiţii interne ale sistemului. La deşteptare, activitatea
internă a dispozitivului respectiv este reluată, deşi stratul de transfer aşteaptă stabilizarea
oscilatorului de sistem şi sincronizarea la activitatea magistralei (prin verificarea celor 11
biţi recesivi consecutivi), înainte ca driverele să se conecteze din nou la magistrală.
Pentru a deştepta şi alte dispozitive ale sistemului, care sunt în modul somn, se
foloseşte un mesaj special de deşteptare cu identificatorul dedicat cel mai scurt posibil, de
tipul (rrrr rrrd rrrr, r = “bit recesiv”, d = “bit dominant”)

10.5 Transferul mesajului

10.5.1 Tipuri de cadre

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


Cadru de date - transferă informaţia de la dispozitivul transmiţător la cel receptor;
Cadru distanţă - transmis de un dispozitiv pe magistrală pentru a solicita transmisia
unui cadru de date cu acelaşi identificator;
Cadru erori - transmis de orice dispozitiv care detectează o eroare de magistrală;
Cadru suprasarcină - folosit pentru a asigura o întârziere suplimentară între cadrele
de date sau cadrele distanţă, precedent şi următor.
Cadrele de date şi cadrele distanţă sunt separate de cadrele precedente printr-un
spaţiu intercadre.
160
10.5.1.1 Cadrul de date

Un cadru de date conţine 7 câmpuri diferite: start cadru, câmp de abitrare, câmp de
date, câmp verifcare redundanţă ciclică (CRC), câmp de confirmare (ACK) şi sfârşit cadru.
În cazul în care nu se transmit date, câmpul de date are lungimea zero. Structura
unui cadru de date este prezentată în figura 10.1.

spaţiu spaţiu
intercadre CADRU DATE intercadre

sau
cadru
start cadru suprasarcină
câmp arbitrare
câmp control
câmp date
câmp CRC
câmp confirmare (ACK)
sfârşit cadru

Fig. 10.1 Cadru de date

Start cadru marchează începutul cadrelor de date şi cadrelor distanţă şi are un


singur bit, de tip “dominant”.
Un dispozitiv de pe magistrală are permisiunea să înceapă transmisia atunci când
magistrala este în regim de mers în gol. Toate dispozitivele (staţiile) trebuie în acel moment
să se sincronizeze cu frontul conducător (clock) determinat de start cadu de la dispozitivul
care a început primul transmisia.
Câmpul de arbitrare (figura 10.2) conţine identidicatorul (ID) şi bitul RTR.

spaţiu CÂMP câmp


start
intercadre ARBITRARE control
cadru

identificator
bit RTR

Fig. 10.2 Câmp de arbitrare

Pentru formatul standard, lungimea identificatorului (ID) este de 11 biţi. Aceşti biţi
sunt transmişi în ordinea ID-10 până la ID-0, cel mai puţin semnificativ bit fiind ID-0.
Primii 7 cei mai semnificativi biţi (ID-10 … ID-4) nu trebuie să fie toţi “recesivi”.
Bitul RTR - este bit de cerere transmisie la distanţă "Remote Transmission Request".
Câmpul de control (CRC) are şase biţi (figura 10.3). El include cadrul lungime date
şi 2 biţi rezervaţi pentru extinderi ulterioare ale câmpului. Aceşti biţi rezervaţi trebuie
transmişi “dominanţi”. Dispozitivele receptoare de pe magistrala CAN acceptă biţii
dominanţi şi recesivi în toate combinaţiile.

161
CÂMP
câmp CONTROL câmp
arbitrare date
sau
r1 r0 DCL3 DCL2 DCL1 DCL0 câmp CRC

biţi
rezervaţ cod lungime date
i
Fig. 10.3 Câmp de control

Codul lungime date indică numărul de bytes din câmpul de date. Este transmis în
interiorul câmpului de control şi conţine 4 biţi, notaţi DCL3, DCL2, DCL1, DCL0.
Într-un cadru de date se pot transmite {0, 1, 2, 3, 4, 5, 6, 7 sau 8} bytes de date, alte
valori nefiind permise. Codificarea numărului bytesilor de date în codul lungime date este
precizată în tabelul 10.1, unde s-au folosit prescurtările: d – pentru “bit dominant” şi r –
pentru “bit recesiv”.

Tabelul 10.1
Număr bytes de
DCL3 DCL2 DCL1 DCL0
date
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

Câmpul de date conţine datele care trebuie transferate pe magistrala CAN, în


interiorul unui cadru de date şi poate conţine de la 0 până la 8 bytes, fiecare byte având 8
biţi. Biţii de date sunt transferaţi începând cu cel mai semnificativ bit (MSB).
Câmpul de control (CRC) conţine secvenţa CRC, urmată de un delimitator CRC,
după cum se arată în figura 10.4.

date câmp
CÂMP CRC
sau ACK
câmp de
control

secvenţă CRC delimitator CRC

Fig. 10.4 Câmp CRC

Secvenţa CRC are rolul de verificare a cadrului şi derivă dintr-un cod cu redundanţă
ciclică (Cyclic Redundancy Code), recomandat pentru cadre ce numără mai puţin de 127
biţi (cod BCH). Pentru calculul CRC, polinomul care trebuie împărţit are coeficienţii daţi
162
de curentul de biţi - din care s-au scos biţii de umplutură - constând din: start cadru, câmp
de arbitrare, câmp de control, câmp de date (dacă este prezent), pentru cei 15 coeficienţi de
cel mai scăzut ordin, valoarea fiind 0. Acest polinom este împărţit (coeficienţii sunt
calculaţi modulo 2) la polinomul generator, care este de forma:

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

Restul împărţirii polinoamelor reprezintă secvenţa CRC transmisă pe magistrala


CAN.
Pentru implementarea acestei funcţii se foloseşte 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 "dezumpluţi" de la start cadru până la câmpul de date, atunci secvenţa CRC se
calculează după cum urmează:

CRC_RG = 0; //iniţializare registru deplasare


REPEAT
CRCNXT = NXTBIT EXOR CRC_RG(14);
CRC_RG(14:1) = CRC_RG(13:0); //deplasare stânga o poziţie
CRC_RG(0) = 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 EROARE)

După transmisia / recepţia ultimului bit din câmpul de date, CRC_RG conţine
secvenţa CRC, urmată de delimitatorul CRC, care constă dintr-un singur bit de tip recesiv.
Câmpul de confirmare (ACK) are o lungime de 2 biţi şi conţine fanta ACK şi
delimitatorul ACK (figura 10.5).

câmp sfârşit
CÂMP ACK
CRC cadru

fantă ACK
delimitator ACK

Fig. 10.5 Câmp confirmare


(ACK)
Un dispozitiv receptor care a recepţionat un mesaj valabil în mod corect, raportează
acest fapt dispozitivului transmiţător prin transmiterea unui bit dominant pe durata fantei
ACK (trimite “ACK”). Toate dispozitivele de pe magistrală care au recepţionat secvenţa
CRC potrivită, raportează aceasta în interiorul fantei ACK, prin suprascrierea peste bitul
recesiv de la dispozitivul transmiţător a unui bit dominant.
Delimitatorul ACK este cel de-al doilea bit din câmpul de confirmare (ACK) şi
trebuie să fie un bit recesiv. Ca urmare, fanta ACK este înconjurată de 2 biţi recesivi
(delimitator CRC şi delimitator ACK).
Fiecare cadru de date şi cadru distanţă este delimitat de o secvenţă flag (de
semnalizare) care constă din şapte biţi recesivi şi poartă denumirea de sfârşit de cadru.

163
10.5.1.2 Cadrul distanţă

Un dispozitiv receptor conectat la magistrala CAN poate iniţia transmisia datelor


primite prin propria sursă, prin transmiterea unui cadru distanţă.
Un cadru distanţă conţine şase câmpuri de biţi diferite: start cadru, câmp de
arbitrare, câmp de control, câmp CRC, câmp ACK, sfârşit de cadru (figura 10.6).
Spre deosebire de cadrele de date, bitul RTR de la cadrul distanţă este de tip recesiv.
În interiorul cadrului distanţă nu există câmp de date, independent de valorile codului
lungime date care poate semnala orice valoare din domeniul admisibil 0, … , 8. Valoarea
codului lungime date este aceeaşi cu a cadrului de date corespunzător.
spaţiu spaţiu
intercadre CADRU DISTANŢĂ intercadre

sau
cadru
start cadru suprasarcină
câmp arbitrare
câmp control
câmp CRC
câmp confirmare (ACK)
sfârşit cadru

Fig. 10.6 Cadru distanţă

Polaritatea bitului RTR indică dacă un cadru transmis este un câmp de date (bitul
RTR este de tip dominant) sau un cadru distanţă (când bitul RTR este de tip recesiv).

10.5.1.3 Cadrul eroare

Cadrul eroare conţine două câmpuri diferite. Primul câmp este dat de suprapunerea
flagurilor eroare cu care contribuie diferitele dispozitive conectate la magistrala CAN. Cel
de-al doilea câmp care urmează este delimitatorul de eroare (figura 10.7).

cadru CADRU
EROARE spaţiu
date intercadre
flag eroare sau cadru
suprasarcină

suprapunere flaguri
eroare
delimitator eroare

Fig. 10.7 Cadru eroare

Pentru a termina în mod corect cadrul eroare, un dispozitiv de tip “eroare pasivă”
are nevoie ca magistrala să fie la modul de 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 să fie încărcată la capacitatea maximă de 100%.
Există două forme ale flagului eroare: un flag eroare activă şi un flag eroare pasivă.

164
1. Flagul eroare activă conţine şase biţi dominanţi consecutivi.
2. Flagul eroare pasivă conţine şase biţi recesivi, dacă nu este suprascris cu biţi dominanţi
de la alte dispozitive de pe magistrala CAN.
Un dispozitiv “eroare activă” care detectează o condiţie de eroare semnalizează
aceasta prin transmisia unui flag eroare activă. Flagurile eroare încalcă legea bitului de
umplutură (bit stuffing) aplicată tuturor câmpurilor de la start cadru până la delimitatorul
CRC sau distruge forma fixată a câmpurilor de confirmare (ACK) sau sfârşit cadru. De
aceea, toate celelalte dispozitive vor detecta o condiţie de eroare şi la rândul lor încep
transmisia unui flag eroare. Astfel, secvenţa de biţi dominanţi, de pe magistrală, rezultă din
suprapunerea diferitelor flaguri eroare transmise de dispozitivele individuale. Lungimea
totală a acestei secvenţe variază între minimum 6 şi maximum 12 biţi.
Un dispozitiv “eroare pasivă” care detectează o condiţie de eroare, încearcă să
semnaleze aceasta prin transmisia unui flag eroare pasivă. Dispozitivul eroare pasivă
aşteaptă şase biţi consecutivi de polaritate identică, începând cu startul flagului eroare
pasivă. Acesta este completat atunci când s-au detectat aceşti 6 biţi identici.
Delimitatorul eroare conţine opt biţi recesivi.
După transmiterea unui flag eroare, fiecare dispozitiv de pe magistrală transmite biţi
recesivi şi supraveghează magistrala până când detectează un bit recesiv. După aceea
începe transmiterea a încă 7 biţi recesivi.

10.5.1.4 Cadrul suprasarcină

Cadrul suprasarcină conţine două câmpuri de bit: flag suprasarcină şi delimitator


suprasarcină. Structura unui cadru suprasarcină este prezentată în figura 10.8.

CADRU
sfârşit cadru spaţiu
SUPRASARCINĂ
sau intercadre

delimitator flag sau


eroare suprasarcină cadru
sau suprasarcină
suprapunere flaguri
delimitator suprasarcină
suprasarcină delimitator suprasarcină

Fig. 10.8 Cadru suprasarcină

Există două feluri de condiţii de suprasarcină, ambele conducând la transmisia unui


flag suprasarcină:
- condiţiile interne ale unui dispozitiv receptor, care solicită o întârziere a următorului
cadru de date sau cadru distanţă;
- detectarea unui bit dominant în timpul pauză.
Startul unui cadru suprasarcină datorat condiţiilor interne ale dispozitivului receptor
este permis numai la primul timp de bit al unei pauze aşteptate, pe când cadrele
suprasarcină datorate bitului dominant din timpul pauzei încep după un bit de la detectarea
unui bit dominant. Pentru întâzierea următorului cadru de date sau cadru distanţă pot fi
generate cel mult două cadre suprasarcină.
Flagul suprasarcină din cadrul suprasarcină conţine 6 biţi dominanţi, forma sa
generală corespunzând celei a flagului eroare activă.
165
Flagurile suprasarcină distrug forma fixată a câmpului intermisiune. Ca urmare,
toate celelalte dispozitive de pe magistrala CAN vor detecta de asemenea o condiţie
suprasarcină. În cazul în care există un bit dominant detectat pe durata celui de-al treilea bit
al pauzei, localizat la acelaşi dispozitiv, celelate dispozitive nu vor interpreta în mod corect
flagl suprasarcină, dar interpretează primul din aceşti 6 biţi dominanţi ca un start cadru. Cel
de-al şaselea bit dominant încalcă regula bitului de umplutură, stabilită de tehnica de
codificare Bit-Stuf NRZ, determinând astfel o condiţie de eroare.
Delimitatorul suprasarcină conţine 8 biţi recesivi şi are aceeaşi formă ca şi
delimitatorul eroare.
După transmiterea unui flag suprasarcină, dispozitivul respectiv supraveghează
magistrala CAN până când detectează o tranziţie de la un bit dominant la un bit recesiv. În
acel moment, fiecare dispozitiv de pe magistrală a terminat transmiterea flagurilor
suprasarcină proprii şi toate dispozitivele încep transmisia a încă 7 biţi recesivi.

10.5.1.5 Spaţiere intercadre

Cadrele de date şi cadrele distanţă sunt separate de cadrele precedente, indiferent de


tipul lor (cadru de date, cadru distanţă, cadru eroare, cadru suprasarcină) de un câmp numit
spaţiu intercadre. Spre deosebire de acestea, cadrele suprasarcină şi cadrele eroare nu sunt
separate printr-un spaţiu intercadre. De asemenea, 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ă iar
pentru dispozitivele eroare pasivă care au fost transmiţătoare ale mesajului anterior,
suspendare transmisie.
Pentru dispozitivele care nu sunt eroare pasivă sau care au fost receptoare ale
mesajului anterior, situaţia se prezintă ca în figura 10.9:
SPAŢIU
cadru INTERCADRE cadru

intermisiune
mers în gol magistrală

Fig. 10.9 Spaţiere intercadre - receptor

Pentru dispozitive “eroare pasivă” care au fost transmiţătoare ale mesajului


anterior, situaţia se prezintă ca în figura 10.10:
Pauza constă din 3 biţi recesivi.
Pe durata unei intermisiuni, nici unui dispozitiv de pe magistrală nu i se permite să
înceapă transmisia unui cadru de date sau cadru distanţă, singura acţiune permisă fiind
semnalizarea unei condiţii de suprasarcină.
Perioada de mers în gol magistrală are lungime arbitrară. Magistrala este
recunoscută ca fiind liberă şi orice dispozitiv conectat o poate accesa dacă are date de
transferat. Un mesaj care nu a putut fi transmis pe durata transmisiei unui alt mesaj, este
startat pe primul bit care urmează după intermisiune.

166
SPAŢIU
cadru INTERCADRE cadru

intermisiune
suspendare transmisie
mers în gol magistrală

Fig. 10.10 Spaţiere intercadre - transmiţător

Detectarea unui bit dominant pe magistrală este interpretată ca un stop cadru.


Suspendarea transmisiei se referă a următoarea situaţie: După ce un dispozitiv
eroare pasivă a transmis un mesaj, el va trimite 8 biţi recesivi 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 un alt dispozitiv), atunci dispozitivul va
deveni receptor al acelui mesaj.

10.5.2 Dispozitive transmiţătoare / receptoare

Transmiţătorul este orice dispozitiv care iniţiază un mesaj şi îl transmite pe


magistrală. Dispozitivul rămâne transmiţător până când magistrala merge în gol sau până
când dispozitivul în cauză pierde arbitrarea în favoarea altuia, conectat de asemenea la
magistrală.
Receptorul este orice dispozitiv de pe magistrală, dacă nu este transmiţător al acelui
mesaj şi magistrala nu este în starea de mers în gol.

10.6 Validarea mesajelor

Momentul în care un mesaj este preluat ca fiind valabil, diferă pentru dispozitivul
transmiţător şi cele receptoare.
Mesajul este considerat valabil pentru dispozitivul transmiţător, dacă nu există erori
până la sfârşit cadru. Dacă mesajul a fost afectat (s-au înregistrat erori, a fost pierdut, etc.)
retransmisia va urma automat şi în concordanţă cu priorităţile stabilite prin protocolul CAN.
Pentru ca mesajul să poată concura la accesul la magistrală cu alte mesaje, retransmisia
trebuie declanşată de îndată ce magistrala este la modul de mers în gol.
Mesajul este valabil pentru dispozitivele receptoare, dacă nu sunt semnalate erori
până la penultimul bit din sfârşit cadru.

10.7 Codificarea curentului de biţi

Segmentele cadrului (start cadru, câmp de arbitrare, câmp de control, câmp de date
şi secvenţă CRC) sunt codificate prin metoda biţilor de umplutură. Când un transmiţător
detectează 5 biţi consecutivi de valoare identică în curentul de bit, el introduce în mod
automat un bit complementar în curentul de biţi iniţial. Câmpurile de biţi rămase din cadrul
de date sau cadrul distanţă (delimitator CRC, câmp ACK şi sfârşit cadru) au format fix şi nu
sunt umplute cu biţi.
167
Cadrul eroare şi cadrul suprasarcină au de asemenea de formă fixată şi nu se
codifică prin metoda biţilor de umplutură.
Curentul de biţi dintr-un mesaj este codificat prin metoda NRZ (Non-Return-to-
Zero) adică, pe durata totală de bit, nivelul de bit generat este fie dominant, fie recesiv.

10.8 Detecţia şi semnalizarea erorilor în protocolul CAN

Există cinci tipuri de erori care nu se exclud reciproc, şi anume:


Eroarea de bit. Un dispozitiv care transmite un bit pe magistrala CAN
supraveghează magistrala. Se spune că s-a detectat o eroare de bit la un anumit moment de
timp dacă, valoarea de bit observată diferă de cea transmisă. O excepţie este trimiterea unui
bit recesiv pe durata transmiterii biţilor de umplutură ai câmpului de arbitrare sau pe durata
fantei ACK. În acest caz nu are loc nici o eroare de bit când se observă un bit dominant. Un
dispozitiv transmiţător care transmite un flag eroare pasivă şi care detectează un bit
dominant, nu va interpreta acest fapt ca fiind o eroare de bit.
Eroarea de umplere se produce dacă sunt număraţi şase biţi identici “0” sau “1”
consecutivi, într-un câmp mesaj codificat prin metoda biţilor de umplutură, înainte de a
începe biţii de umplutură (programaţi după 5 biţi identici).
Eroare CRC. Secvenţa CRC reprezintă rezultatul calculului CRC de către
dispozitivul transmiţător al mesajului. Dispozitivele receptoare calculează CRC în acelaşi
mod ca şi transmiţătorul. Dacă rezultatul calculat nu este acelaşi cu cel recepţionat în
secvenţa CRC, se spune că a fost detectată o eroare CRC.
Eroarea de formă este detectată atunci când un câmp de biţi de o formă fixată
conţine unul sau mai mulţi biţi ilegali.
Eroarea de confirmare este detectată de un dispozitiv transmiţător atunci când nu
se observă un bit dominant pe durata fantei ACK.
Orice dispozitiv conectat la magistrala CAN care detectează o condiţie de eroare,
semnalizează aceasta prin transmiterea unui flag eroare. Pentru un dispozitiv de tip eroare
activă acesta este un flag eroare activă iar pentru un dispozitiv de tip eroare pasivă este un
flag eroare pasivă.
Ori de câte ori o eroare de bit, o eroare de formă sau o eroare de confirmare este
detectată la respectivul dispozitiv, acesta poate fi deconectat de la magistrală fără a
influenţa funcţionarea sistemului.
Ori de câte ori se detectează o eroare CRC, se va transmite un flag eroare la bitul
care urmează după delimitatorul ACK, mai puţin dacă a fost deja declanşat un flag eroare
pentru o altă condiţie.

10.9 Limitarea defectelor

Orice dispozitiv de pe magistrala CAN trebuie să fie în una din următoarele stări:
 “eroare activă”;
 “eroare pasivă”;
 “magistrală deconectată”.
Un dispozitiv eroare activă poate participa la comunicaţiile de pe magistrala CAN
şi transmite un flag eroare activă de îndată ce a detectat o eroare.

168
Un dispozitiv eroare pasivă nu trebuie să transmită un flag eroare activă. El
participă la comunicţiile pe magistrala CAN dar, când s-a detectat o eroare, se transmite
numai un flag eroare pasivă. Astfel, după o transmisie, un dispozitiv eroare pasivă va
aştepta înainte de a iniţia o nouă transmisie (suspendare transmisie).
Un dispozitiv care a fost deconectat de la magistrala CAN nu are permisiunea să
influenţeze în vreun fel magistrala (de exemplu, driverele de ieşire deconectate). Pentru
limitarea defectelor sunt implementate două conturi în fiecare unitate de magistrală:
- Cont erori transmisie şi
- Cont erori recepţie.
Aceste conturi sunt modificate conform următoarelor reguli:
1. Când un dispozitiv receptor detectează o eroare, contul erori recepţie este incrementat
cu 1, excepţie fiind situaţia în care eroarea detectată a fost o eroare de bit pe durata
transmiterii unui flag eroare activă sau flag suprasarcină.
2. Când un dispozitiv receptor detectează un bit dominant ca prim bit după transmiterea
unui flag eroare, contul erori recepţie este crescut cu 8.
3. Când un dispozitiv transmiţător transmite un flag eroare, contul erori transmisie este
crescut cu 8.
Excepţia 1: Dacă dispozitivul transmiţător este de tip 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ă dispozitivul transmiţător trransmite un flag eroare datorat unei erori de
umplere produsă pe durata arbitrării, cum bitul de umplutură este plasat înaintea bitului
RTR şi ar trebui să fie recesiv, a fost transmis ca recesiv, dar observat ca dominant.
În excepţiile 1 şi 2, contul erori transmisie nu se modifică.
4. Dacă un dispozitiv transmiţător detectează o eroare de bit în timp ce transmite un flag
eroare activă sau un flag suprasarcină, contul erori transmisie este crescut cu 8.
5. Dacă un dispozitiv receptor detectează o eroae de bit în timp ce transmite un flag eroare
activă sau un flag suprasarcină, contul eroare recepţie este crescut cu 8.
6. Orice dispozitiv de pe magistrala CAN tolerează până la 7 biţi consecutivi dominanţi,
după transmiterea unui flag eroare activă, flag eroare pasivă sau flag suprasarcină. După
detectarea celui de-al 14-lea 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ă, fiecare dispozitiv transmiţător de pe magistrala
CAN creşte propriul cont erori transmisie cu 8 şi fiecare dispozitiv receptor creşte
propriul cont erori recepţie cu 8.
7. După transmisia cu succes a unui mesaj transmisie fără eroare până la fanta ACK şi
ransmiterea cu succes a bitului ACK), contul erorilor de transmisie este decrementat cu
1, mai puţin pentru situaţia în care este deja 0.
8. După recepţia cu succes a unui mesaj (recepţie fără eroare până la fanta ACK şi
transmiterea cu succes a bitului ACK), contul erorilor de recepţie este scăzut cu 1, dacă
acesta era între 1 şi 127. Dacă valoarea contului era 0, atunci rămâne 0, iar dacă
valoarea lui a fost mai mare de 127, el va fi setat la o valoare între 119 şi 127.
9. Un dispozitiv de pe magistrala CAN este de tip eroare pasivă atunci când contul erori
de transmisie egalează sau depăşeşte valoarea 128. O condiţie de eroare care lasă un
dispozitiv să devină eroare pasivă, îl determină să transmită un flag eroare pasivă.
10. Un dispozitiv de pe magistrala CAN este deconectat atunci când contul erorilor de
transmisie este mai mare sau egal cu 256.
11. Un dispozitiv eroare pasivă devine eroare activă din nou, atunci când contul erori de
transmisie şi contul erori de recepţie sunt mai mici sau egale cu 127.
169
12. Un dispozitiv care a fost deconectat de la magistrala CAN poate deveni eroare activă
(nu mai este deconectat) cu ambele conturi ale sale setate la 0 după ce au fost observate
pe magistrală 128 de evenimente de 11 biţi recesivi.

Un cont de eroare cu o valoare mai mare de 36 indică o magistrală perturbată


puternic. Este indicat să se prevadă mijloace de testare a acestei condiţii.
Dacă pe durata pornirii magistralei, numai un dispozitiv este conectat şi acesta
transmite câteva mesaje, el nu va primi confirmare, detectare eroare sau repetare mesaj. El
poate deveni eroare pasivă dar nu poate fi deconectat de la magistrală.

10.10 Timingul de bit

Rata de bit nominală reprezintă numărul de biţi transmişi pe secundă, în absenţa


sincronizării, de un transmiţător ideal.
Timpul de bit nominal are 4 segmente de timp separate, nesuprapuse (figura 10.11).

TIMP DE BIT NOMINAL

SYNC_SEG PROP_SEG PHASE_SEG1 PHASE_SEG2

punct de eşantionare

Fig. 10.11 Segmentele timpului de bit nominal

- Segmentul sincronizare (SYNC_SEG): este folosit pentru sincronizarea dispozitivelor


reţelei. Pentru aceasta, trebuie detectat un front în interiorul acestui segment.
SYNC_SEG = 1 cuantă de timp
- Segmentul timp de propagare (PROP_SEG): este folosit pentru compensarea timpilor
fizici de întârziere din interiorul reţelei. Este dublul sumei timpilor de propagare a
semnalelor pe linia magistralei CAN, întârzierea comparatorului de intrare şi întârzierea
driverului de ieşire.
PROP_SEG = 1, 2, …, 8 cuante de timp (este programabil)
- Segmente buffer fază (PHASE_SEG1 şi PHASE_SEG2): sunt folosite pentru
compensarea erorilor de fază ale fronturilor. Pot fi lungite sau scurtate prin resincronizare.
PHASE_SEG1 = 1, 2, …, 8 cuante de timp (este programabil)
PHASE_SEG2 = max (PHASE_SEG1, timp procesare informaţie)
Timpul de procesare a informaţiei  2 cuante de timp.

Timpul de bit nominal = 1 / Rata de bit nominală

Punctul de eşantionare se află la sfârşitul segmentului PHASE_SEG1 şi reprezintă


momentul de timp la care nivelul magistralei CAN este citit şi interpretat ca valoare a
respectivului bit.
Timpul de procesare a informaţiei este segmentul de timp care începe cu punctul de
eşantionare rezervat pentru calculul nivelului de bit ulterior.
170
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 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ă, unde m = valoarea din circ. de prescalare.
Numărul cuantelor de timp într-un timp de bit este programat cel puţin de la 8 la 25.

Sincronizarea:
După o sincronizare hard, timpul intern de bit este restartat cu SYNC_SEG. Astfel,
sincroniarea hard forţează plasarea frontului care a provocat-o în interiorul segmentului de
sincronizare al timpului de bit restartat.
Lungime salt resincronizare: Ca rezultat al resincronizării, PHASE_SEG1 poate fi
lungit sau PHASE_SEG2 poate fi scurtat. Lungirea sau scurtarea segmentelor buffer fază
are ca limită superioară lungimea saltului de resincronizare, valoare programată între 1 şi
min (4, PHASE_SEG1).
Informaţiile de clock derivă din tranziţiile de la o valoare de bit la alta. Proprietatea
ca numai un număr fix maxim de biţi succesivi să aibă aceeaşi valoare oferă posibilitatea
resincronizării unei unităţi de magistrală cu curentul de bit, pe durata unui cadru. Lungimea
maximă între două tranziţii folosite pentru resincronizare este de 29 timpi de bit.
Eroarea de fază pentru un front depinde de poziţia frontului raportată la
SYNC_SEG, măsurată în cuante de timp. Semnul erorii de fază este definit astfel:
 e = 0 dacă frontul este plasat în interiorul SYNC_SEG;
 e > 0 dacă frontul este plasat înaintea punctului de eşantionare;
 e < 0 dacă frontul este plasat după punctul de eşantionare a bitului precedent.
Efectul unei resincronizări este acelaşi cu al sincronizării hard, când magnitudinea
erorii de fază a frontului care provoacă resincronizarea este mai mică sau egală cu valoarea
programată a lungimii saltului de resincronizare. Când dimensiunea erorii de fază este mai
mare decât lungimea saltului de 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 resincronizare
Sincronizarea hard şi resincronizarea sunt cele două forme ale sincronizării şi se
supun următoarelor reguli:
1. În interiorul unui timp de bit este permisă o singură sincronizare.
2. O tranziţie poate fi folosită pentru sincronizare doar 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 cât magistrala este la mers în gol.
4. Toate celelalte fronturi de la recesiv la dominant (şi opţional de la dominant la recesiv
în cazul vitezelor de bit scăzute) îndeplinind regulile 1 şi 2, se folosesc pentru
resincronizare, cu excepţia situaţiei când un dispozitiv care transmite un bit dominant
nu realizează o resincronizare ca rezultat al unui frront de la recesiv la dominant cu o
eroare de fază pozitivă, dacă numai fronturile de la recesiv la dominant sunt folosite
pentru rersincronizare.

171
10.11 Creşterea toleranţei oscilatorului CAN

Pentru creşterea toleranţei maxime a oscilatorului CAN, de la 0,5% uzual, până la


1,5%, sunt necesare următoarele modificări, compatibile superior cu specificaţia CAN:
 Dacă un dispozitiv de pe magistrala CAN eşantionează un bit dominant la cel de-al
treilea bit al pauzei, atunci acesta va fi interpretat ca un bit start cadru.
 Dacă un dispozitiv de pe magistrala CAN are un mesaj care aşteaptă să fie transmis şi
eşantionează un bit dominant la al treilea bit din intermisiune, el va interpreta aceasta ca
un bit start cadru şi, cu bitul următor, declanşează transmiterea mesajului cu primul bit
al identificatorului, fără a mai transmite întâi un bit start cadru şi fără a deveni receptor.
 Dacă un dispozitiv de pe magistrala CAN eşantionează un bit dominant la cel de-al
optulea bit (ultimul bit) al delimitatorului eroare sau delimitatorului suprasarcină şi, la
următorul bit va declanşa un cadru suprasarcină (nu un cadru eroare), conturile nu vor
fi incrementate.
 Numai fronturile recesiv la dominant vor fi folosite pentru sincronizare.

În concordaţă cu specificaţia de catalog existentă, sunt valabile următoarele reguli:


 Toate controlerele de pe magistrala CAN sincronizează la bitul start cadru cu o
sincronizare hard.
 Nici un controler de pe magistrala CAN nu va transmite un bit start cadru până când nu
a numărat 3 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 125 kbit/s. Pentru tot domeniul vitezei
magistralei conform protocolului CAN, este necesar încă un oscilator cu cuarţ.
Compatibilitatea protocolului extins cu a celui existent se menţine atât timp cât:
- Controlerele de pe magistrala CAN cu protocoale extinse şi normale folosite în una şi
aceeaşi reţea, sunt prevăzute cu oscilatoare cu cuarţ.
- Chipul cu cele mai ridicate necesităţi privind acurateţea propriului oscilator, determină
acurateţea oscilatoarelor pentru celelalte dispozitive de pe magistrală. Rezonatoarele
ceramice sunt folosite doar când dispozitivele din reţea folosesc protocolul extins.

172
CAPITOLUL 11

PROTOCOLUL CANopen

11.1 Caracteristicile principale şi avantajele protocolului CANopen

Protocolul CANopen foloseşte întreaga putere a protocolului CAN, permiţând


schimbul de date direct între noduri, de la egal la egal, într-un mod foate bine organizat şi
determinist. Funcţiile de management ale reţelei protocolului CANopen simplifică
proiectarea, implementarea şi diagnoza, prin asigurarea unor mecanisme standard pentru
iniţializarea reţelei multiplexate şi managementul erorilor.
Protocolul CANopen deserveşte ambele tipuri de comunicaţii: ciclice şi evenimente,
astfel încât, magistrala este încărcată la minim, dar timpii de reacţie se menţin în continuare
scăzuţi. De asemenea, protocolul are avantajul că asigură comunicaţii performante şi la
viteze relativ scăzute, ceea ce reduce inteferenţele electromagnetice (EMI) şi minimizează
costurile de conectare multiplexată.
O trăsătură distinctivă o reprezintă realizarea schimbului de date cu nivel de control
supervizat şi integrarea unor senzori de dimensiuni foarte mici şi a unor dispozitive de
acţionare pe aceeaşi reţea fizică. Aceasta evită costul suplimentar care s–ar fi datorat
conectării senzorilor şi dispozitivelor de acţionare la magistrala sistemului şi sporeşte
atractivitatea protocolului pentru întreprinderile ce realizează echipament original.
Avantajele potocolului CANopen sunt următoarele:
- este deschis şi poate fi comercializat independent;
- asigură interoperabilitatea diferitelor dispozitive conectate la magistrală;
- are o înaltă viteză în timp real;
- are caracteristica de modularitate pentru dispozitive simple sau complexe;
- are o utilizare facilă, datorită marii varietăţi de instrumente pe care le asigură.
Trăsăturile specifice sunt:
- posibilitatea de autoconfigurare a reţelei sistemului;
- acces uşor la toţi parametrii dispozitivelor conectate la magistrala sistemului;
- sincronizarea dispozitivelor cu clock-ul central al sistemului;
- asigurarea unui schimb de date ciclice sau evenimente;
- realizează achiziţia de date sincronizate şi reacţie.
Datorită caracteristicilor prezentate, CANopen reprezintă protocolul ideal pentru
toate tipurile de sisteme automate de timp real.

11.2 Necesitatea dezvoltării protocolului şi domeniile de utilizare

Protocolul CANopen este o reţea complexă standardizată, dezvoltat într-un proiect


Esprit sub conducerea firmei Bosch.
În anul 1995, specificaţia CANopen a fost aplicată protocolului CAN simplu, pentru
utilizatorii de dispozitive automate intenaţionali (CiA) şi la grupurile de întreprinderi. La
început, profilul de comunicaţii CANopen s-a bazat pe protocolul CAL (CAN Application
Layer – reţea de aplicaţie CAN).

173
De la versiunea 4.01, specificaţia CANopen CiA DS-301 include şi precizarea
reţelei de aplicaţie.
Reţelele CANopen sunt folosite în multe câmpuri de aplicaţii, alături de sistemele
complexe de control. Sunt instalate cu succes în vehicule, nave, echipamente medicale,
sisteme de informare a pasagerilor, mecanisme de jocuri electronice, automate pentru cafea
sau în fabrici, la automatizarea unor procese de producţie şi în construcţii. În sistemele de
control electronic pentru lifturi gasim, de asemenea, protocolul CANopen ca şi în
congelatoarele din supermarket-uri sau în instalaţiile de încălzire pentru plante. CANopen a
fost ales şi de companiile care realizează sisteme de control electronic pentru uşi,
locomotive şi camioane.

11.3 Profile de comunicaţii

Reţeaua de aplicaţii şi profilul de comunicaţii pentru protocolul CANopen (CiA DS-


301) asigură accesul direct la parametrii dispozitivelor conectate şi transmiterea datelor
într-un timp minim. Serviciile manageriale ale reţelei CANopen simplifică proiectarea,
integrarea sistemului şi diagnoza.
În fiecare aplicaţie de control descentralizat se lucrează cu obiecte diferite de
comunicare, pe care CANopen le defineşte şi le descrie în Dicţionarul de Obiecte.
Variabilele care descriu aceste obiecte sunt accesibile printr-un index de 16 biţi iar în cazul
înregistrării este prevăzut un sub-index adiţional de 8 biţi.
Obiectele datelor de proces (PDO – Process Data Objects) sunt mapate într-un
singur cadru CAN folosind toţi cei 8 bytes ai câmpului de date, pentru a le transmite mai
uşor pe magistrală. Fiecare obiect al aplicaţiei are un identificator unic şi poate fi transmis
doar de un singur nod (dispozitiv), însă poate fi recepţionat de unul sau mai multe noduri.
Acest tip de comunicare este denumit transfer de tip producător/consumator.
Transmisiile obiectelor de aplicaţie (PDO) pot fi conduse:
- de un eveniment intern;
- de un timer intern;
- de cereri de la distanţă şi
- de mesajele sincrone primite (mesaje de tip Sync).
Maparea defectelor pentru obiectele aplicaţiei ca şi modul de tramsmitere folosit
sunt de asemenea descrise pentru fiecare PDO în Dicţionarul de Obiecte.
O condiţie de bază în transmisia obiectelor este ca acestea să aibă identificatori de
prioritate înaltă, pentru a asigura un timp de răspuns cât mai scurt.
Transmisia obiectelor nu este confirmată, spre deosebire de protocolul CAN unde,
în cele mai multe situaţii este necesară confirmarea sau neconfirmarea la receţie. Pentru a
afla care obiecte din aplicaţie au fost transmise, se poate apela cartograma obiectelor,
rezultată în urma procesului de mapare. Aceasta descrie secvenţa şi lungimea fiecărui
obiect al aplicaţiei, care a fost mapat.
Maparea variabilă a obiectelor trebuie realizată în timpul stării pre-operaţionale.
Dacă se realizează maparea dinamică în timpul stării operaţionale, atunci clientul
serviciului SDO (Service Data Objects) este responsabil de consistenţa datelor (este posibil
ca unele date să se piardă sau să fie deteriorate).
Service Data Object (SDO) citeşte sau înscrie date la intrările din dicţionarul de
obiecte, protocolul de transport SDO permiţând transmiterea obiectelor (mesajelor) de orice
mărime. De obicei se folosesc 8 bytes, pentru descrierea primului segment, aceştia având
următoarea semnificaţie:
174
- Primul byte din primul segment conţine informaţii referitoare la controlul fluxului
de date, incluzând un bit basculant care rezolvă problema cadrelor CAN dublu recepţionate.
- Următorii trei bytes din primul segment conţin index-ul şi sub-index-ul datei
intrate în Dicţionarul de Obiecte, care urmează a fi citită sau înscrisă.
- Ultimii patru bytes din primul segment sunt disponibili pentru datele uzuale.
- Al doilea şi următoarele segmente (care folosesc acelaşi identificator CAN) conţin
byte-ul de control şi până la şapte bytes pentru date.
Receptorul confirmă fiecare segment sau un bloc de segmente, astfel încât există o
comunicare de la egal la egal între client şi server.

11.4 Reguli de conectare şi funcţionare

În programele de tip office, care folosesc Windows-PC, conectarea şi funcţionarea


reprezintă trăsături standard. În timpul operaţiei boot-up, computerul detectează toate
perifericele conectate (mouse, imprimantă, scanner, etc.). Dacă se adaugă un nou dispozitiv,
atunci programul Windows instalează automat driverele necesare sau le cere user-ului.
Acum, această capacitate de conectare-funcţionare poate fi de asemenea inclusă în
reţelele CANopen. Utilizatorii internaţionali (CiA) şi grupurile de întreprinderi au dezvoltat
cadrul notat CiA DS-302 pentru dispozitivele CANopen programabile (versiunea 3.0), cadru
care defineşte regulile de bază pentru conectarea şi funcţionarea în bune condiţii a
sistemelor. Partea centrală a unui astfel de sistem este Managerul CANopen (NMT Master).
Acesta se găseşte pe nodul care îndeplineşte funcţia de master în sistem şi are rolul de a
controla procedura boot-up a reţelei şi de a rula software-ul pentru aplicaţie. Nodul master
asigură şi configuraţia de funcţionare.

11.4.1 Managerul CANopen

După pornirea alimentării, managerul CANopen face câteva operaţii de autotestare


şi verifică dacă funcţia de manager este activată. Activarea sau nu a funcţiei se face
verificând bitul din NMT Start-up object (1F80H) şi concluzionând când anume acestui nod
îi este atribuită funcţia de NMT Master. Dacă funcţia nu este atribuită acestui nod, atunci
nodul respectiv va intra în modul slave.
Pentru sistemele multiplexate care cer setarea nodurilor ID sau viteză baud,
protocolul CANopen defineşte serviciile de setare a reţelelor LSS (Layer Setting Services).
După setare, masterul NMT începe resetarea comunicaţiilor pentru toate nodurile sistemului
(prin serviciul NMT), excepţie făcând cazul în care măcar unul din noduri trebuie resetat
fără a verifica mai întâi starea sa.
Există aplicaţii în care nodurile slave pot intra într-un mod special (de exemplu
modul manual), dacă managerul protocolului CANopen cade brusc. Dacă însă este asigurată
funcţionarea continuă, s-ar putea să nu fie tolerată transmiterea comenzii de resetare a
comunicaţiilor NMT pentru un astfel de nod, dacă starea sa era iniţial operaţională. De
aceea, înainte de a trimite comanda de resetare a comunicaţiilor NMT, bitul 4 din obiectul
slave (1F81H) forţează verificarea stării. Dacă bitul 4 din oricare slave este diferit de zero,
resetarea comunicaţiilor pentru toate nodurile nu trebuie transmisă, nodurile fiind resetate
individual. Aceasta permite aducerea slave-urilor într-o stare în care, setarea parametrilor
este foarte clar definită. În cazul în care masterul detectează cu întârziere un slave de
bootare, el utilizează serviciul doar pentru nodul individual.
175
11.4.2 Procedura boot-up

Înainte de a schimba starea unui nod din pre-operaţional în operaţional, managerul


CANopen trebuie să realizeze funcţia boot-up pentru toate slave-urile atribuite. Procedeul
este prezentat în organigramele din figurile 11.1 şi 11.2.

Power / Reset
Comunicaţii

Nu
Bit 0
Obiect Master NMT ? Intră în
1F80h modul
Da SLAVE

Da
LSS cerut ?
Execută LSS

Nu

Da
Obiect Bit 4 Păstrează noduri
1F81h cu biţi funcţionali
setati ?
Nu

Trimite NMT Trimite NMT


Resetează Resetează comunicaţiile
comunicaţiile între între nodurile cu biţi
toate nodurile funcţionali nesetaţi

Fig. 11.1 Organigrama principală pentru procedura CANopen boot-up (part 1)

După cum se obseră şi din figură., la început, toate nodurile slave sunt resetate,
aceasta garantând că ele se află într-o stare bine definită. Următorul pas este operaţia boot-
up pentru toate dispozitivele slave. Operaţia poate fi făcută secvenţial sau în paralel, însă
procedeul secvenţial cere mai puţin efort managerial.

176
A

Începe procesul
de bootare
slave-uri Obiect
1F81h
Bit 0,3

Opreste procedura Nu
Toate slave-urile
de bootare mandatare bootate? Obiect
reţea 1F80h
Da Bit 2

Nu
Intru singur Intru operational
operational automat de la aplicatia
?
Nu
primita?
Da
Da
Intru singur
operational ?

Bit 1,3
Porneste Obiect
Nu slave-urile cu “NMT 1F80h
start toate nodurile”

Da

Operaţie normală Trimite comanda “NMT start toate nodurile”

Fig.11.2 Organigrama principală pentru procedura CANopen boot-up (part 2)

Procedura boot-up distinge dispozitivele slave mandatare de cele opţionale. Slave-


urile mandatare trebuie să fie prezente pentru a garanta o funcţionalitate bună a reţelei de
aplicaţie. Slave-urile opţionale pot fi utilizate dacă se cer funcţii suplimentare în sistemul
multiplexat (de exemplu, nu toate controllerele de mişcare trebuie să fie prezente pentru
funcţia de bază a maşinii).
Procedura boot-up realizează următoarele funcţii:
- controlul identificatorilor,
- stabilirea tipului dispozitivului (obiect 1000H) la fel ca şi furnizorul mandatar ID
(obiect 1018H),
- verificarea codului de producţie,
- verificarea numărului de revizie şi
- verificarea numărului de serie.
De asemenea, procedura boot-up verifică de două ori configuraţia, care poate fi
stocată în memoria nevolatilă a dispozitivului slave. În cazul în care configuraţia lipseşte
sau este greşită, datele respective sunt descărcate din slave. Managerul CANopen verifică de
două ori versiunea software a slave-ului cu scopul de a dezactiva reactualizările.
177
Procedura boot-up se încheie doar dacă managerul CANopen a realizat această
operaţie pentru toate slave-urile conectate în reţea. După încheiere, masterul NMT va seta
slave-urile în stara operaţională.
Procedura boot-up poate fi realizată în timpul rulării operaţiunilor, când un nou
slave este introdus în reţea. În acest caz, configuraţia sistemului se păstrează şi
funcţionalitatea nu este afectată. Prin această funcţie, sistemul CANopen asigură capacitatea
de conectare-funcţionare, dar nu este o funcţie de conectare-funcţionare standard.
O funcţie foarte importantă a managerului CANopen în sistem este ca acesta să
recunoască dispozitivele cărora le este permisă funcţionarea într-o aplicaţie specificată,
deoarece tehnicienii service pot schimba dispozitivele fără a cunoaşte configurarea
sistemului. Din acest motiv, producătorul garantează că managerul CANopen va accepta
doar dispozitivele care au fost aprobate iar dispozitivele neconfigurate vor fi automat
configurate şi apoi integrate în reţea.

11.5 Controlul erorilor şi mesajelor de urgenţă

11.5.1 Clock-ul central şi supravegherea funţionării nodurilor

Protocolul CANopen include mecanisme care pot detecta nodurile lipsă din reţea,
realizează controlul erorilor şi a mesajelor de urgenţă.
Sunt definite două mecanisme folosite pentru detecţia nodurilor deconectate.
Serviciile pentru controlul erorilor sunt asigurate prin transmiterea unor mesaje CAN
specifice. Mesajul de control eroare, folosit de ambele mecanisme ale protocolului, are un
identificator CAN neschimbat, lungimea de un byte şi conţine codul stării NMT curente.
a) Mecanismul de supraveghere a funcţionării este bazat pe cadre distanţă transmise
periodic de masterul NMT. Slave NMT corespunzător răspunde acestui cadru distanţă cu un
mesaj de control eroare (supraveghere nod).
Dacă masterul NMT nu cere mesajul de control eroare într-un timp specificat
(lifetime), atunci slave NMT presupune că masterul este deconectat (life guarding) şi va
indica un eveniment supraveghere funcţionare (life guarding). În cazul în care slave NMT
nu răspunde cererii la distanţă, masterul NMT va indica un eveniment supraveghere nod
(node guarding).
Timpul de supraveghere (100Ch) reprezintă perioada de transmisie a mesajului de
control eroare, iar timpul de viaţă (funcţionare) (100Dh) specifică timpul în care este
asigurată funcţionarea corectă. Timpul de supraveghere şi timpul de funcţionare pot fi
diferiţi pentru fiecare slave NMT. Mesajul control eroare corespunzător conţine un bit-
toggle, care indică dacă aplicaţia (microcontrolerul) funcţionează încă.
b) Clock-ul central al sistemului (Heartbeat) este cel de-al doilea mecanism al
protocolului. Acesta foloseşte acelaşi mesaj control eroare, transmis periodic de slave-ul
NMT. Unul sau mai mulţi consumatori ai clock-ului central primesc mesajul şi indică
aceasta aplicaţiei. Perioada de transmisie reprezintă timpul de producere a clock-ului central
(117h). Timpul consumatorului de clock central (1016h) reprezintă timpul limită de
aşteptare pentru un mesaj control eroare clock central. Dacă acest timp expiră, atunci stiva
protocolului CANopen (evenimentul clock central) informează aplicaţia.
Nici un dispozitiv conectat în reţea nu poate folosi ambele mecanisme de control al
erorilor în acelaşi timp. Dacă timpul de producere a clock-ului central este diferit de zero,
atunci înseamnă că mecanismul heartbeat şi-a îndeplinit rolul cu succes.
Pentru aplicaţii noi, se recomandă folosirea celui de-al doilea mecanism.
178
11.5.2 Erori interne ale dispozitivelor

Mesajele de urgenţă sunt trigherate de erorile interne în dispozitiv şi au atribuită cea


mai înaltă prioritate posibilă (de defect 81h, în funcţie de identificatorul nodului) pentru a
asigura accesul la magistrală, fără latenţă.
Toate dispozitivele CANopen conectate în reţea sunt programate să ţină cont de
mesajele de urgenţă provenite de la dispozitive din alte reţele, nu numai de mesajele de
urgenţă din reţea. Pentru aceasta, consumatorul de urgenţă (1028h) trimite o listă de
referinţe la identificatorii mesajelor de urgenţă de care trebuie să se ţină cont.
Mesajele de urgenţă trebuie să conţină câmpul eroare cu numărul erorilor
predefinite şi informaţii suplimentare, de exemplu registrul de erori (1001h). Un mesaj de
urgenţă se transmite o singură dată într-un eveniment eroare.
Dacă urgenţa este opţională, atunci se recomandă ca aceste mesaje să fie susţinute.
Orice dispozitiv care susţine urgenţa trebuie să aibă cel puţin două coduri eroare, şi anume:

0000h: Resetare eroare sau


1000h: Eroare generică

Un dispozitiv poate fi în una din cele două stări de urgenţă, după cum sunt transmise
mesajele de urgenţă în tranziţie. Trebuie menţionat că nu este permisă cererea unui mesaj
de urgenţă de cadrele distanţă CAN. Legăturile dintre stările de urgenţă şi stările NMT sunt
definite în profilul fiecărui dispozitiv.
După resetarea pornirii, dispozitivul intră în starea fără erori dacă nu s-a detectat
nici o eroare. Când dispozitivul detectează o eroare internă, el intră automat în starea de
eroare şi va transmite un mesaj eroare care are codul eroare înscris în registrul de erori.
Codul eroare este de asemenea încărcat şi în locaţia câmpului eroare predefinit (1003h).
Dacă, din anumite motive, dispare una din cauzele care au provocat eroarea (dar nu
toate cauzele), atunci se transmite un mesaj eroare care conţine codul eroare 0000 (Reset
eroare) împreună cu erorile rămase în registrul eroare şi în câmpul eroare specificat de
producător. Când se produce o nouă eroare la dispozitiv, acesta rămâne în starea eroare şi
transmite un mesaj de urgenţă şi codul eroare corespunzător. Noul cod eroare este înărcat în
vârful stivei care conţine codurile eroare (1003h). Producătorul garantează că toate codurile
eroare sunt aranjate într-o secvenţă temporală (cea mai veche eroare la cel mai înalt sub-
index). Când toate erorile au fost corectate, dispozitivul intră în starea fără erori şi va
transmite o urgenţă de tip ‘cod eroare 'reset eroare/nici o eroare'.

11.5.3 Erori severe ale dispozitivelor

Dacă se detectează o eroare severă a dispozitivului, atunci modulul respectiv trebuie


să intre singur în starea pre-operaţională de defect. Dacă este implementată (cunoscută)
comportarea erorii respective (1029h), atunci dispozitivul poate fi configurat să intre
alternativ în starea STOP sau să rămână în starea curentă în cazul depistării unui defect.
Defectele dispozitivului trebuie să includă următoarele erori de comunicaţie:
 Condiţii de magistrală deconectată pentru interfaţa CAN
 Eveniment supraveghere funcţionare cu stare permisă

179
 Eveniment clock central cu stare permisă
Erorile severe ale dispozitivelor pot fi cauzate atât de factori externi cât şi de
defectele interne ale dispozitivelor. Este important să se cunoască modul de comportare al
erorilor, deoaree ele pot fi corectate prin mecanismele adecvate şi se pot diminua efectele
nedorite ale acestor erori în funcţionaea reţelei.

11.6 Programarea PDO

Sistemele multiplexate care utilizează protocolul CANopen specifică parametrii de


defect pentru fiecare obiect de aplicaţie care trebuie transferat pe magistrală. De asemenea,
obiectele se pot predefini chiar în absenţa parametrilor de comunicaţie.
Există mai multe modalităţi diferite de programare. Obiectele aplicaţiei pot fi
transmise sub formă de evenimente-conduse, dacă are loc un eveniment specific
dispozitivului sau un eveniment specific producătorului. Pentru evitarea unei transmisii
frecvente a unui obiect anterior, se atribuie timpi de inhibiţie, care interzic transmiterea
acestui obiect înainte de încheierea timpului de inhibiţie.
Evenimentul care provoacă transmisia unui PDO asincron, poate fi un eveniment-
timer local. În acest caz, obiectul va fi transmis periodic până când are loc un eveniment
intern în dispozitivul care a iniţiat transmisia. În acel moment, obiectul va fi trimis pe
magistrală imediat, indiferent dacă a trecut evenimentul-timer sau nu. În plus, evenimentul-
timer va fi resetat.
Obiectele de aplicaţie pot fi cerute la distanţă prin transmiterea unui cadru distanţă
CAN. Dispozitivul care conţine cadrul de date CAN corespunzător va răspunde acestui
cadru distanţă.
Pentru transmisiile sincrone de date de proces, protocolul CANopen defineşte
mesajul Sync, transmis periodic, recepţia unui astfel de mesaj forţând dispozitivul să
eşantioneze intrările şi să transmită obiectele de aplicaţie cerute.
În continuare, vor fi analizate pe rând posibilităţile de programare a obiectelor de
aplicaţie, cu avantajele şi dezavantajele caracteristice.
a) În primul mod, obiectele PDO pot fi transmise sub formă de evenimente-
conduse dacă are loc un eveniment specific dispozitivului sau un eveniment specific
producătorului. Acest mod de programare necesită o lăţime de bandă minimă, ceea ce
constituie un avantaj. Când un obiect al aplicaţiei este schimbat, se consideră că face parte
din traficul pe magistrală. Folosind doar obiecte de tip evenimente-conduse, nu se pot
prevedea uşor timpii de răspuns în cazul unei magistrale încărcate la maxim, mai ales dacă
toate obiectele încearcă să acceseze magistrala simultan. Din acest motiv, maximul de
încărcare pentru magistrală trebuie să fie mai mic decât 30 %.
În scopul evitării unei transmisii frecvente a unui obiect de aplicaţie anterior, se
atribuie timpi de inhibiţie, care interzic transmisia acestui obiect înainte de încheierea
timpului de inhibiţie. Timpul de inhibiţie este de asemenea un parametru configurat de o
operaţie SDO. Timpul de inhibiţie nu numai că evită aceste trasmisii nedorite, dar permite
de asemenea proiectarea deterministă a transferurilor de date de proces (obiecte) pe
magistrală. Dacă unui obiect PDO aflat în vârful stivei nu i-a fost permisă transmisia, atunci
al doilea PDO în ordinea înălţimii se află în perioada de timp pentru transmisie şi poate fi
transmis. Dacă şi pentru acesta se interzice transmisia, se trece la următorul PDO şi aşa mai
departe. În concluzie, calculul timpilor de inhibiţie este dificil deoarece se ţine cont de
cadrele eroare, timpul de retransmisie şi biţii de umplutură. În general, timpul de inhibiţie
nu trebuie să fie mai mare decât frecvenţa cu care se schimbă datele de proces. În caz
180
contrar, valoarea schimbată a obiectului din aplicaţie se poate pierde. Din păcate, nu există
nici o modalitate generică pentru efectuarea acestui calcul.
b) Pentru transmisia unui obiect de aplicaţie de tip asincron, trebuie să aibă loc un
eveniment-timer local. În această situaţie, obiectul este transmis periodic până când are loc
un eveniment intern specificat al dispozitivului. Apoi, obiectul poate fi transmis imediat,
indiferent dacă evenimentul timer a trecut sau nu. În plus, evenimentul timer este resetat.
Evenimentul timer reprezintă un atribut de comunicare şi poate fi configurat prin
serviciul SDO. Combinaţia dintre evenimentul timer şi timpul de inhibiţie permite
specificarea ferestrelor de transmisie virtuale, în care transmisia obiectelr este posibilă doar
după trecerea timpului de inhibiţie dar înainte de a se termina evenimentul timer.
c) Obiectele de aplicaţie pot fi cerute la distanţă prin transmiterea unui cadru
distanţă CAN. Dispozitivul care conţine cadrul de date CAN corespunzător trebuie să
răspundă acestui cadru distanţă. Deoarece compotarea cadrului distanţă din controlerul
CAN este diferită, acest tip de transmisie nu trebuie folosit pentru operaţii cu obiecte
standard. În plus, cadrele distanţă cer o lăţime de bandă mai largă, întomai ca şi obiectele
asincrone, acesta fiind un dezavantaj al cererii la distanţă. Din acest motiv, cererile la
distanţă pentru PDO-uri sunt deservite de mecanisme conectate temporar, care asigură şi
capacitatea de schimbare rapidă în sistemele cu PDO-uri asincrone. În aceste aplicaţii,
dispozitivele adăugate nu cunosc comunicaţiile efectuate până în momentul în care ele au
fost adăugate şi pot cere de la distaţă toate datele necesare.
d) În aplicaţiile de control al mişcării, există o cerere ridicată de transmisii sincrone
a datelor de proces. În scopul asigurării operaţiei sincrone într-o reţea asincronă, protocolul
CANopen defineşte mesajul Sync, transmis în mod periodic. Timpul sync reprezintă un
parametru important al comunicaţiei şi poate fi configurat. Un alt timp configurabil este
lungimea ferestrei sincrone. Dacă acest timp se încheie înainte de a fi transmis obiectul
sincron, atunci se poate produce un eveniment intern care indică un defect de sincronizare.
Recepţia unor mesaje Sync forţează dispozitivul respectiv să eşantioneze intrările şi
să transmită obiectele cerute. Recepţia unui PDO sincron nu va cauza nici o acţiune în
dispozitiv înainte ca umătorul mesaj Sync să fie recepţionat. Ieşirile sunt setate simultan în
toate dispozitivele care au recepţionat date de proces sincrone.
În scopul reducerii încărcării magistralei, obiectele de aplicaţie care conţin date de
proces de joasă frecvenţă nu pot fi transmise la fiecare mesaj Sync recepţionat, acesta fiind
configurabil de la 1 la 240. Proiectantul de sistem trebuie să aibă grijă ca frecvenţa datelor
de proces să fie mai mare decât frecvenţa de transmisie a PDP, pentru evitarea pierderii
datelor.
Deoarece obiectele sunt recepţionate sincron după primirea următorului mesaj Sync,
datele de proces pot fi nevalide. Dacă proiectantul de sistem configurează aceste obiecte ca
fiind asincrone, atunci datele sunt valide şi vor fi procesate imediat după recepţie. Această
combinaţie de tipuri de transmisii nu permite operaţii sincrone la ieşire şi este destul de rar
folosită.
Transmisia obiectelor sincrone elimină “exploziile” de transmisie dar este
considerată cea mai defavorabilă situaţie. De aceea, încărcarea magistralei trebuie să fie de
cel mult 80 % (serviciile SDO şi mesajele de control eroare nu au fost luate în considerare).
Pentru a reduce cât mai mult posibil comunicaţiile cu obiecte de aplicaţie sincrone, a
fost introdus tipul de transmisie aciclică, care garantează transmisia obiectelor PDO doar
dacă a fost recepţionat un mesaj Sync şi a avut loc un eveniment intern.
Un alt tip de transmisie este cererea la distanţă a obiectelor sincrone, care
eşantionează datele doar la recepţia unui mesaj Sync. În acest caz, transmisia obiectelor
trebuie să fie cerută de un alt dispozitiv, care a trimis un cadru distanţă CAN.
181
Dacă pe magistala de comunicaţii au fost transmise obiecte de aplicaţie prin
mecanisme diferite, multiplexarea acestora este posibilă, aceasta reducând considerabil
timpul de transmisie şi congestionarea magistralei. Obiectele care au fost transmise sincron
pot fi folosite pentru comenzi de control al mişcării iar obiectele transmise asincron conţin
informaţii despre datele care au suferit modificări în timpul transmisiei.
Dacă pe magistrală se transmit date de proces sincrone, trebuie ţinut cont de riplurile
de transmisie ale mesajului Sync. Chiar dacă identificatorul pre-definit pentru mesajul Sync
este plasat în vârful stivei, se poate întâmpla ca un mesaj anterior cu identificator mai mic
să fie deja pe magistrală la momentul când are loc cererea de transmisie Sync. Dacă
aplicaţia respectivă necsită o acurateţe foarte bună, atunci se folosesc metode cu rezoluţie
înaltă. În acest caz, timpul când are loc cererea de transmisie Sync este inclus în mesajul
pre-definit Time-stamp. Toate dispozitivele pot recalcula astfel recepţia mesajului Sync şi
cu timpul global este posibilă obţinerea unei rezoluţii de un timp de bit.

11.7 Optimizarea comunicaţilor cu PDO în reţelele CANopen

Indiferent de metoda folosită pentru transferul obiectelor de aplicaţie (datelor de


proces) pe magistrala sistemului, programarea acestora pentru tansmisie trebuie optimizată
pentru a reduce lăţimea de bandă cerută de aplicaţie.
Una dintre cele mai importante caracteristici a reţelei de aplicaţie CANopen este
înalta flexibilitate şi configurabilitate a obiectelor de comunicaţie. În particular, optimizarea
procesului de transmisii de date dă proiectantului de sistem posiblitatea de a economisi
lăţimea de bandă şi de a obţine timpii de răspuns ceruţi.
Pentru reţelele simple, optimizarea comunicaţiilor cu obiecte se rezumă doar la pre-
definirea canalele de comunicaţie şi a modurilor de programare, precum şi maparea
obiectelor de aplicaţie.
Pentru reţelele de aplicaţii sofisticate, este necesară optimizarea nu numai a
canalelor de transmisie şi alegerea modurilor adecvate pentru programarea obiectelor, ci se
impune chiar optimizarea PDO. Cu scopul obţinerii unei viteze baud scăzute, chiar şi
aplicaţile simple trebuie optimizate, deoarece cu cât viteza baud este mai săzută, cu atât
performanţa EMC este mai bună.

11.8 Legăturile PDO

Protocolul CANopen este proiectat astfel încât să considere defect de comunicaţie


transmisia a mai mult de patru PDO (Process Data Objects) sau recepţionarea a mai mult
de patru PDO – aşa numitul set de conexiuni master/slave pre-definit. În acest scop,
obiectele aplicaţiei (PDO) sunt implementate ca un singur cadru de date CAN sau ca un
cadru distanţă CAN, unul din cadre având permisiunea de a folosi întregul câmp de date de
8 bytes pentru transmisia datelor de proces (obiectele aplicaţiei). În plus, toate obiectele de
aplicaţie absente sunt conectate la dispozitivul master al aplicaţiei, care este de asemenea şi
managerul reţelei (NMT Master). Comunicaţia directă cu obiecte absente între slave-urile
NMT nu este posibilă. Setul de conexiuni master/slave pre-definit permite comunicarea
PDO fără a mai fi necesară configurarea prealabilă, fiind posibilă chiar şi o comunicaţie
slave-to-slave cu obiecte transferate între două canale asigurate de master.
Dacă aplicaţia impune comunicarea directă între slave-uri, proiectantul trebuie să
configureze identificatorii obiectelor (COB-ID) în CPO (Communication Parameter
182
Object) pentru fiecare PDO. Configurarea se face prin serviciile SDO (Service Data
Object), implementate ca nişte cadre de date CAN. Legăturile obiectelor de aplicaţie sunt
neesare pentru transferurile de tip distribuit şi multidistribuit (broadcast/multicast), în
scopul reducerii încărcării magistralei.

11.9 Prioritizarea PDO

Pntru optimizarea transmisiei obiectelor aplicaţiei în intervalul timpului de răspuns


cerut, se atribuie prioritate mai înaltă identificatorului pentru obiectele cu timp critic şi se
prevede un dispozitiv independent care transferă obiectele cu prioritate înaltă.
Cea mai înaltă prioritate în sistemul multiplexat o au mesajele de urgenţă, a căror
transmisie se face imediat ce au fost detectate pe magistrală.
Prioritizarea obiectelor permite oricărui dispozitiv să transmită atât obiecte cu
prioritate înaltă, cât şi obiecte cu prioritate scăzută.

11.10 Maparea PDO

Maparea obiectelor de aplicaţie face parte prin configurarea sistemului şi este foarte
importantă pentru optimizarea transferurilor de date pe magistrală, aceasta devenind o
cerinţă obligatorie în cazul datelor de proces de lungimi diferite şi în pachete.
Obiectele mapate sunt descrise cu ajutorul unor parametri de comunicaţie, variabili
în funcţie de natura obietului sau de tipul de aplicaţie. Setul de parametri variabili conţine
pentru fiecare dată de proces mapată adresa celui de-al 32-lea bit (un index de 24 biţi şi un
sub-index de 8 biţi) al dicţionarului de obiecte şi lungimea datei respective. Un pachet
(mesaj) poate conţine până la 64 obiecte cu lungimea de 1 bit. Maparea dinamică permite
optimizarea pachetelor de obiecte. Proiectantul trebuie să realizeze maparea astfel încât un
mesaj să conţină cât mai multe date de proces, în scopul minimizării încărcării magistralei.
Există şi o contradicţie, şi anume, nu are sens maparea datelor de proces transmise
foarte des în obiecte de aplicaţie care se schimbă foarte rar.

11.11 Multipexarea PDO

Fiecare dispozitiv compatibil CANopen poate susţine doar 512 obiecte de aplicaţie
transmise şi 512 obiecte de aplicaţie recepţionate. Dacă numărul dispozitielor conectate în
reţeaua CANopen nu este suficient sau nu mai sunt disponibli idntificatori CAN, atunci se
realizează multiplexarea obiectelor de aplicaţie. M-PDO conţine în primii 4 bytes indexul
de 16 biţi, indexul de 8 biţi precum şi câţia biţi de control, deci sunt disponibili doar 4 bytes
pentru transmiterea datelor de proces.

11.12 Modalităţi de configurare. Dicţionarul de obiecte

Configurarea comunicaţiei cu PDO este un task multi-dimensional care necesită o


temeinică cunoaştere a obiectelor de aplicaţie ce urmează să fie transferate pe magistrală. În
ceea ce priveşte mecanismele de configurare, sunt disponibile câteva pachete software
pentru PC, ele find foarte uşor de utilizat. La încheierea configurării, integratorul de sistem
trebuie doar să facă legătura între variablele de intrare şi cele de ieşire. Mecanismul de
183
configurare asigură optimizarea comunicaţiilor cu PDO iar utilizatoril poate alege tehnicile
cele mai adecvate penru transferurile de date. Pentru aceasta, caracteristicile protocolului
CANopen trebuie cunoscute foarte bine.

11.12.1 Accesul la dicţionarul de obiecte

Centrul unui dispozitiv CANopen este dicţionarul de obiecte care, pune la dispoziţia
utilizatorului toate obiectele aplicaţiei ce urmează să fie transferate în sistemul multiplexat,
prin reţeaua CAN. Pentru adresarea oricărui obiect din dicţionar, se foloseşte un index de
16 biţi şi un sub-index de 8 biţi, independenţi de idenfificatorii CAN (tabel 9.1).
Se observă că indexul 0000 (hex) nu este utilizat. Dicţionarul de obiecte are de
asemenea adrese de index rezervate pentru diverse utilizări viitoare: aceste adrese sunt de la
00A0 - 0FFF şi A000 – FFFF.
Obiectele de aplicaţie sunt structurate în funcţie de tipul datelor de proces pe care le
conţin (statice sau complexe) şi de profilul de utilizate.
Datele statice de la adresele de index 0001 – 001F conţin definiţiile unor tipuri de
date standard, de exemplu: date standard din algebra Booleeană, date standard întregi
(integer), puncte de referinţă (temperatură, presiune, punct de plutire), raţia unui şir
algebric, etc. Aceste date sunt incluse în dicţionar doar pentru referinţă, ele nu pot fi citite
sau scrise.
Datele complexe de la adresele 0020-003F sunt structuri pre-definite, formate din
date standard şi sunt comune pentru toate dispozitivele conectate în reţeaua multiplexată a
sistemului.
Datele complexe specifice producătorului, de la adresele 0040-005F, sunt structuri
formate din date standard dar sunt speifice unui anumit dispozitiv particular.

Tabel 11.1 Structura dicţionarului de obiecte

Index (hex) Obiect aplicaţie


0000 Nefolosit
0001-001F date statice
0020-003F date complexe
0040-005F date complexe specifice producătorului
0060-007F date statice specifice profilului dispozitivului
0080-009F date complexe specifice profilului dispozitivului
00A0-0FFF Rezervat pentru utilizări viitoare
1000-1FFF Aria profilului de comunicaţie
2000-5FFF Aria profilului specific poducătorului
6000-9FFF Aria profilului dispozitivului standard
A000-FFFF Rezervat pentru utilizări viitoare

Datele statice sau complexe care se găsesc în dicţionar la adresele de index 0060-
007F şi 0080-009F sunt specifice unui anumit tip de dispozitiv care poate fi conectat
adiţional în reţeaua sistemului. Dacă este configurat, un dispozitiv din sistem poate furniza
opţional structura tipurilor de date complexe pe care le conţine, împreună cu accesul la
citire la indexul corespunzător. Sub-indexul 0 indică apoi numărul de intrări la acest index,
iar următorii sub-indici conţin tipul de date codate în format Unsigned16t.

184
Aria profilului de comunicaţie are alocate adresele de index 1000 - 1FFF în
dicţionarul de obiecte şi oferă informaţii referitoare la parametrii specifici de comunicaţie
pentru reţeaua multiplexată CAN. Aceste intrări de index sunt comune pentru toate
dispozitivele conectate în reţeaua sistemului.
Dicţionarul de obiecte face parte din trăsăturile opţionale ale dispozitivului, ceea ce
înseamnă că producătorul nu trebuie să asigure o anume funcţionalitate extinsă pentru
dispozitivele sale. Dacă doreşte însă acest lucru, trebuie să pre-definească dispozitivul sau
clasa de dispozitive. Aria de profile specifice pentru producător (adresele de index 2000-
5FFF) este folosită pentru descrierea funcţiilor specifice.
Aria profilului dispozitivului standard (adrese de index 6000-9FFF) conţine toate
obiectele de aplicaţie care pot fi citite sau scrise prin reţea de o anumită clasă de
dispozitive. Aria descrie parametrii dispozitivului şi funcţionalitatea sa. În acest mod, pot fi
descrise până la 8 dispozitive diferite. Într-un astfel de caz, dispozitivele sunt considerate
module ale unui dispozitiv multiplu denominat (MDM – Multiple Device Module). MDM-
urile sunt formate din cel mult 8 segmente de profil de dispozitiv. Folosind această
caracteristică, se pot construi dispozitive cu funcţionalitate multiplă. Intrările diferite ale
profilului dispozitivului sunt schimbate cu 800h.
În tabelul 9.2 sunt date adresele de intrare pentru segmentele de dispozitive din
MDM. Proiectantul poate astfel accesa intrarea într-un anumit segment de dispozitiv pentru
efectuarea unui transfer de date pe magistrală.

Tabel 11.2 Adrese intrări mod dispozitiv multiplu în dicţionarul de obiecte


6000h la 67FFh dispozitiv 0
6800h la 6FFFh dispozitiv 1
7000h la 77FFh dispozitiv 2
7800h la 7FFFh dispozitiv 3
8000h la 87FFh dispozitiv 4
8800h la 8FFFh dispozitiv 5
9000h la 97FFh dispozitiv 6
9800h la 9FFFh dispozitiv 7

Pentru adresarea tuturor intrărilor în dicţionarul de obiecte se foloseşte un index de


16 biţi. În cazul înregistrărilor, indexul adresează întreaga structură de date.
În scopul permiterii elementelor individuale din structurile de date să fie accesate
prin reţeaua multiplexată a sistemului, s-a definit un sub-index. Pentru intrările în dicţionar
a obiectelor de tip single, de exemplu: Unsigned8, Boolean, formate Integer32 etc.,
valoarea acestui sub-index este întotdeauna 0.

11.12.2 Accesul la scriere şi citire

Accesul la citire şi scriere pentru obiectele din dicţionarul de obiecte al unui anumit
dispozitiv este asigurat prin serviciile SDO (Service Data Objects). Deoarece intrările în
dicţionar pot conţine date de mărimi arbitrare şi tipuri diferite, serviciile SDO sunt de multe
ori folosite pentru transferul seturilor de date mutiple de la un client către server şi invers.
Fiecare set de date multiple conţine un bloc de date de mărime arbitrară şi tipuri diferite
(statice, complexe, etc.).

185
Clientul poate verifica ce set de date urmează să fie transferat, accesând
multiplexorul (indexul şi sub-indexul dicţionarului de obiecte).
Conţinutul setului de date este definit prin dicţionarul de obiecte. Uzual, serviciile
SDO transferă seturile de date multiple ca o secvenţă de segmente. Înainte de a transfera
segmentele trebuie să existe o fază de iniţializare, în care clientul şi serverul pregătesc
transferul. Lungimea maximă a setului de date care poate fi transfeat în sistemul multiplexat
este de până la patru bytes în timpul fazei de iniţializare. Acest mecanism de transfer este
numit transfer expediat.
Opţional, serviciile SDO pot transfera o secvenţă de blocuri de date în care fiecare
bloc are cel mult 127 segmente. Fiecare secvenţă are un număr de identificare iar transferul
blocului de date este mai rapid decât transferul fragmentat al unui set mare de date.
Pentru evitarea încărcării maxime a reţelei de comunicaţie, proiectantul trebuie să
aleagă mecanismul prin care se va efectua transferul de date. De multe ori, în transferul de
blocuri de date este posibil ca mărimea setului de date să nu justifice folosirea unui transfer
în bloc, datorită depăşirii protocolului implicat. În aceste cazuri, trebuie implementat un
mecanism de susţinere a fragmentării transferului expediat în faza de iniţializare.
Presupunănd o mărime minimă pentru setul de date pentru care un transfer în bloc este prea
mare, celelalte tipuri de transfer depind de parametrii variabili pe care îi stabileşte clientul.
Pentru toate tipurile de transfer, clientul este cel care stabileşte condiţiile de realizare a
transferului de date.
Deţinătorul dicţionarului de obiecte accesat este serverul din SDO. Fie clientul, fie
serverul poate abandona transferul de date prin serviciul SDO, dacă decide că s-au depăşit
parametrii impuşi în faza de iniţializare a sistemului.
Printr-un SDO se poate stabili un canal de comunicaţie de tip pereche-pereche între
două dispozitive ale reţelei CANopen.
Eficienţa unui serviciu SDO este dată de raportul dintre bytesii folosiţi şi bytesii
transmişi. Deoarece, prin serviciile SDO toate mesajele sunt transmise cu un câmp de date
de 8 bytes, eficienţa uni transfer SDO expediat va fi de 0.25, pentru un obiect de 4 bytes şi
doar 0.0625 pentru un obiect de 1 byte. Utilizarea serviciilor SDO pentru transferuri
fragmentate şi a transferurilor în bloc sporeşte eficienţa acestora.
Dacă trebuie transferat un set de date de mărime mare, se preferă transferul în bloc
SDO deoaece este mai rapid decât transferul fragmentat SDO.
Citirea datelor la recepţie se face prin descărcarea blocurilor de date transfeate prin
SDO. În ultimul bloc este transmisă opţional de o secvenţă CRC de 16 biţi, pentru
verificarea corectitudinii datelor.

186
CAPITOLUL 12

SISTEME CU CONECTARE MULTIPLEXATĂ CENTRALIZATE ŞI


SISTEME CU CONECTARE MULTIPLEXATĂ DISTRIBUITE

12.1 Sistem de control centralizat

Structura clasică a unui sistem de supraveghere şi control centralizat este


reprezentată în figura 12.1.
Informaţiile provenite de la dispozitivele aflate pe stand sunt trimise către blocurile
finale, conectate fiecare la magistrala de date. Informaţiile ajung în camera de supraveghere
unde, prin intermediul porturilor de intrare / ieşire sunt trasmise pentru procesare la unitatea
CPU.

Pupitru de comandă

NT
CP IO
U
RETEA
Blocuri
IO

Blocuri
finale Blocuri finale Blocuri finale

Camerǎ de Bloc final Bloc final


Bloc final
supraveghere

Fig. 12.1 Schema clasică de control şi comandă a unui sistem centralizat

Transmisia se realizează cu ajutorul unor porturi de intrare/ieşire aflate în imediata


apropiere a unităţii de procesare şi control şi a reţelei externe. Computerul ia deciziile
necesare şi le transmite tuturor dispozitivelor aflate pe stand. Pentru transferul sutelor de
semnale singulare între diferite puncte ale sistemului complex se folosesc cabluri lungi,
care sunt foarte scumpe, incomode şi au dimensiuni mari. Legǎturile duble ale semnalelor
de intrare/ieşire în sau din dispozitivele finale ale blocurilor din camera de supraveghere
mǎresc timpii de deservire a sistemului şi, de aici, costurile ridicate ale acestor
echipamente.
În funcţie de posibilităţi, capacitatea de calcul a unităţii CPU într-un sistem de
control centralizat creşte exponenţial cu creşterea complexităţii funcţiilor de intrare/ieşire.
În acelaşi timp, programele PLC devin din ce în ce mai complicate şi deci mai lente.
187
Conform studiilor de piaţă efectuate, în momentul actual, peste 50% din totalul
programelor de control sunt încă realizate în maniera convenţională, clasică, adică folosesc
o unitate centrală CPU şi module de intrare/ ieşire. Se preconizează ca, în cel mai scurt
timp, acestea să fie înlocuite cu structuri moderne de control în timp real al sistemelor, mult
mai avantajoase în ceea ce priveşte costul echipamentelor, service, viteza de lucru,
consistenţa şi integritatea datelor recepţionate.
Dezavantajele tehnologiilor convenţionale sunt evidente. Fiecare semnal provenit de
la un senzor trebuie sǎ fie conectat de la sistemul maşinǎ la controlerul central iar în final,
este necesar un numǎr foarte mare de cabluri de legǎturǎ, care pot însemna câţiva kilometri
lungime pentru un mecanism cu facilitǎţi complexe. Proiectantul unui astfel de sistem
complex trebuie sǎ izoleze cablurile cu semnale de putere scǎzutǎ, care sunt susceptibile de
interferenţe EMI, de cablurile de înaltǎ putere, aranjându-le convenabil şi folosind izolatori
foarte scumpi. Mai mult, controlerul central necesitǎ mai multe puncte terminale, pentru
realizarea conexiunilor cu diversele echipamente şi dispozitive din sistem. Primul punct
terminal este deja localizat în camera de control şi reprezintǎ interfaţa între card-ul de
intrare/ieşire şi cablul de conectare. Cel de-al doilea punct teminal este localizat în cutia
finalǎ care urmeazǎ mecanismului (maşinii) şi reprezintǎ interfaţa între cablu şi nivelul
sensorului. În practicǎ, datoritǎ acestor puncte terminale rezultă erori de recepţie a datelor
din sistem sau chiar pierderea unor date.
Un alt factor care influenţeazǎ costul este timpul mare de deservire pentru reţeaua
de cabluri, verificarea atribuirii corecte a semnalelor şi testul final al controlerului cu
senzorii.
Pentru extinderile ulterioare posibile ale sistemului complex, spaţiul adiţional şi
cablarea trebuie incluse în calcul încǎ de la începutul proiectǎrii. Acesta este motivul
principal pentru care aceastǎ tehnologie este depǎşitǎ (necesitǎ mult hardware, personal de
deservire, iar testarea şi menţinerea echipamentelor este dificilă). De asemenea,
flexibilitatea şi posibilităţile de extindere ale sistemului sunt limitate.

12.2 Sistem de control distribuit

12.2.1 Caracteristici generale

Conceptele moderne de utilizare a unor controlere cu o unitate centrală CPU în


camera de supraveghere şi control, care acum este mult mai mică în ceea ce priveşte
dimensiunile, are costuri reduse. Capacitatea crescutǎ de calcul şi problema timpilor lungi
pentru un ciclu de funcţionare cu programe PLC mult mai complexe a fost rezolvată parţial
prin utilizarea tehnologiei cu magistrală CAN. În figura 12.2 este reprezentată o astfel de
structură.
Dezvoltarea inteligenţei distribuite pe mecanismele conectate în sistemul
multiplexat creează premizele unor costuri scăzute pentru echipamente, controlul rapid,
asigurarea în bune condiţii a service-ului şi elimină erorile care pot apărea în transferurile
de date pe magistrala multiplexată a sistemului.
Prin avantajele utilizǎrii tehnologiei cu magistralǎ CAN s-au creat premisele pentru
reducerea costurilor cablǎrii. Datoritǎ scǎderii în final a numărului de legǎturi între sistemul
propriu-zis şi diferitele instalaţii sau echipamente complementare, timpii de rǎspuns şi
deservire sunt considerabil mai mici. Dezvoltarea sistemului este relativ uşoarǎ deoarece
componentele CAN pot fi integrate cu minimum de efort.

188
Panou de
comandǎ

panou

I/O I/O
distribuit distribuite
Magistralǎ e
CAN
Camera de Bloc final Bloc final Bloc final
control

Fig. 12.2 Unitate centrala CPU cu module I/O conectate la magistrala CAN

În conformitate cu studiile de piaţǎ, tendinţele viitoare se referǎ la dezvoltarea


acestor tipuri de cablare şi extinderea multiplexării cu magistrală CAN în cât mai multe
domenii de interes general: industrie, medicină, electronică auto, avionică, echipamente
militare, instalaţii de securitate, supraveghere şi control, etc. Motivul principal este dat de
performanţele şi capacitatea de control în timp real, care pentru aceste sisteme depinde în
mod crucial de unitatea centralǎ CPU precum şi de viteza magistralei CAN utilizatǎ. Prin
urmare, performanţele cresc odatǎ cu creştera costurilor.
Totuşi, sistemul are un dezavantaj major, el depinzând în mare mǎsurǎ de unitatea
CPU. Prin urmare, orice defectare a acesteia implicǎ automat cǎderea sistemului. Acest
dezavantaj poate fi în mare parte înlăturat prin folosirea unei magistrale CAN cu
posibilitatea autodiagnozei şi autodepanării.

12.2.2 Sistem de control distribuit cu magistrală CAN

O îmbunǎtǎţie a sistemului descris anterior se obţine prin folosirea unei magistrale


CAN cu posibilitatea autodiagnozei şi autodepanării şi trecerea la sistemele de control
distribuit de dimensiuni reduse (un procent de piaţǎ de 20% până în prezent, dar cu o
putenicǎ tendinţǎ de creştere). Schema reprezentativă a unui astfel de sistem este dată în
figura 12.3.
Sistemele de control de dimensiuni mici au urmǎtoarele avantaje:
- o structurǎ de montaj standard pentru utilizare directǎ în blocurile finale;
- unitate centrală CPU independentă, echipată cu funcţionalitate PLC;
- interfaţǎ programabilǎ;
- conexiune de magistralǎ CAN;
- module de intrare / ieşire fǎrǎ inteligenţǎ, care se pot adǎuga structurii deja implementate,
în scopul executării unor funcţii suplimentare.

189
Panou comandǎ

Operaţii şi monitorizare

Panou

Conexiuni Conexiuni Conexiuni


Magistralǎ distribuite distribuite distribuite
CAN inteligente inteligente inteligente

Bloc final Bloc final Bloc final

Fig. 12.3 Sisteme de control de dimensiuni mici în reţea distribuită

Pentru facilitatea controlului sistemului, se utilizează o structură distribuită.


Structura conţine sisteme de control de dimensiuni mai mici, specializate fiecare pentru
controlul unei anumite funcţii sau parametru din sistem.

12.2.3 Sistem de control distribuit cu magistrală CAN internă

Structura anterioară are dezavantajul că poate ceda uneori, datoritǎ capacitǎţii de


calcul reduse a CPU sau a posibilitǎţilor reduse de extindere a sistemelor de control de
dimensiuni mici, în raport cu numǎrul maxim de puncte de intrare/ieşire conectate.
Soluţia acestei probleme o reprezintǎ eliberarea unităţii centrale CPU de la funcţiile
de timp intensiv şi utilizarea unei magistrale de sistem deschisǎ, de tip CANopen, care
deserveşte modulele de intrare/ieşire conectate printr-o magistralǎ CAN secundarǎ, internă.
Pentru creşterea performanţelor de calcul a unităţii centrale (în soluţia anterioară
aceasta era limitată) şi expandarea CPU, s-au conectat module de intrare/ieşire inteligente.
Fiecare dintre aceste module are încorporată o unitate centrală de procesare propie a
semnalelor şi, dacă este cazul, poate asigura şi post-procesarea lor. Modulele I/O inteligente
comunicǎ permanent între ele prin cea de-a doua magistrală CAN internǎ.
La proiectarea unui astfel de sistem de control complex, se aplică aceleaşi reguli atât
pentru proiectarea hardware-ului cât şi pentru proiectarea structurii software. Funcţia
generalǎ a sistemului complex cu conectare multiplexată este împǎţitǎ în mai multe funcţii
(task-uri) individuale, adaptate de asemenea la modulele din blocurile finale.
Funcţia (FC) este asigurată printr-un modul specializat iar proiectantul de sistem
trebuie să o dimensioneze astfel încât hardware-ul şi software-ul sǎ poatǎ fi testate
împreunǎ. Ne referim la o funcţie logică unică pentru sistem, ca un bloc funcţional (FB –
Functional Block)) care, în ansamblu, este procesat cu ajutorul câtorva module specializate.
Toate blocurile funcţionale au o unitate de organizare CPU. Software-ul PLC,
supranumit şi bloc de organizare (OB – Organisation Block)) funcţioneazǎ în unitatea de
190
organizare CPU. Din nou, constelaţia de legǎturi corespunde unui sistem de control de
dimensiuni mici, dar cu potenţial de înaltǎ performanţǎ, stucturat într-un mod clar şi simplu,
şi caracterizat printr-o flexibilitate sporită în ceea ce priveşte expandarea ulterioară.
Funcţiile individuale sunt coordonate printr-un nivel de control. În final, sistemele
de control de dimensiuni mici sunt conectate într-o reţea formând astfel un sistem de
control complet. Dacǎ este necesar, se pot adǎuga sistemului complex mai multe staţii de
control şi monitorizare, pentru a facilita controlul la distanţǎ.
Cel mai mare pas în dezvoltarea sistemelor de control distribuite s-a înregistrat prin
folosirea modulelor CAN inteligente. Aceste module sunt echipate cu CPU propriu, cu
funcţia principală de a comunica semnale I/O cǎtre sistemele de nivel mai înalt, echipate cu
protocoale standard. Când se utilizeazǎ un protocol de tip CANopen, procedurile de calcul
se schimbă doar dacǎ apar modificări în semnalele de conexiune. Alegerea timpului de
consum pentru intrǎri/ieşiri este distribuitǎ, ceea ce face ca reţeaua CAN sǎ nu fie
influenţată de evenimentele de comunicare nenecesare; acest fapt asigurǎ capacitatea de
procesare sporitǎ pentru toate sistemele de control în timp real.
În funcţie de experienţǎ, fiecare CPU dintr-un modul este ocupat doar 20% din timp
cu operarea comunicaţiilor pe magistrala CAN. Din acest punct de vedere, se aseamănă cu
funcţiile de procesare multiple pentru semnalele fundamentale sau cu funcţiile de control în
bucle închise simple. De exemplu, funcţiile treaptǎ pentru semnalele de intrare digitale,
impulsurile modulate ale semnalelor de ieşire şi valorile limitǎ raportate la semnalele
analogice pot fi procesate în modulul de procesare CAN. Modulele speciale permit
poziţionarea driverelor de nivel înalt, fǎrǎ inteligenţǎ.
Capacitǎţile fiecărui modul sunt partiţionate cu ajutorul soft-ului integrat iar
variabilele funcţiei sunt scrise în modul ca simpli parametri, prin intermediul magistralei
CAN. Folosirea unei magistrale CAN standardizate pentru comunicarea între module oferǎ
proiectantului libertatea de a utiliza terminale inteligente, în funcţie de necesitǎţi. CPU
intern conţine deja un program software care asigurǎ funcţiile independente cum sunt:
funcţiile treaptǎ, filtrarea, valorile limitǎ pentru semnalizare şi poziţionare.
CPU de organizare asigurǎ funcţionalitatea PLC şi organizeazǎ schimburile între
terminalele inteligente. Proiectantul unui sistem cu conectare multiplexată planificǎ
întotdeauna un CPU de organizare, ori de câte ori a introdus în sistem un bloc de funcţii
uşor inteligibile. În acelaşi timp, datoritǎ expansiunilor întârziate, încǎrcarea pe CPU ar
trebui sǎ nu depǎşeascǎ 60%. Un CPU de organizare adecvat unui sistem de control cu
inteligenţǎ distribuitǎ are cel puţin douǎ canale de comunicaţii separate. Canalul de
comunicaţie între modulele magistralei CAN este preferabil sǎ fie o magistralǎ CAN
standardizatǎ, pentru a nu limita performanţele de utilizare.
Când magistrala CAN utilizeazǎ protocolul CANopen, programatorul foloseşte un
numǎr mare de module I/O care deservesc mai mulţi utilizatori. A doua interfaţǎ de
comunicaţie serveşte scopului de reţea externǎ pentru nodurile funcţionale. Structura unui
astfel de sistem este prezentată în figura 12.4.
Cercurile tehnice sunt discutate în reţeaua Ethernet prin protocoluli TCP/IP. Orice
capacitate de timp real este asiguratǎ doar prin intemediul derivatelor care provin din
protocolul de bazǎ TCP/IP. În viitor, aceste variaţii de la modelul standard vor trebui sǎ
facǎ faţǎ mediului industrial şi sǎ devinǎ standard. Din acest motiv, în reţelele actuale de
sisteme de control, sunt folosite aceleaşi protocoale cu magistrale CAN, atât pentru canalele
de comuncaţie externe cât şi pentru nivelele sensorilor.
Nodurile de funcţii din canalul de comunicaţie extern sunt unite prin console de
control, pentru a realiza funcţiile de control şi monitorizare, întocmai ca şi PC-urile
industriale utilizate la procesarea, vizualizarea şi analiza datelor transferate.
191
Panou control

Operaţiuni şi monitorizare

Panou

Reţea Reţea
distribuitǎ distribuitǎ

Magistralǎ
CAN
Bloc final
Bloc final Bloc final

Magistralǎ Funcţie de
CAN internǎ poziţionare
+24V Motor
Magistralǎ
CAN
externǎ Sensor
CPU de +24V Motor
organizare

+24V Motor

Bloc funcţional pentru


ajustare registru

Fig. 12.4 Sistem distribuit cu magistala internă care realizează


întreruperea funcţiilor unei imprimante

Sistemele de control cu inteligenţǎ distribuitǎ au un grad mult mai înalt de securitate


la defect total decât în cazul unui sistem cu unitate centralǎ CPU. În cazul producerii unui
defect la unele extensii, segmentele pot fi izolate de circuitele active sau sunt şuntate prin
simple operaţii manuale. Din acest motiv, un defect local nu implicǎ neapǎrat oprirea
întregului sistem complex (maşină, mecanism) pentru remedierea acestuia. Corectarea unui
astfel de defect este în geneal uşoarǎ deoarece modul în care acesta se manifestǎ poate fi
atribuit unui bloc funcţional (FB). Mulţumitǎ costurilor relative scǎzute precum şi
funcţionalitǎţii universale, se pot înlocui parţial modulele defecte. Timpii de staţionare sunt
minimizaţi astfel, disponibilitatea sistemului şi implicit a maşinii devenind maximǎ.

192

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