Documente Academic
Documente Profesional
Documente Cultură
Cap5 Protocoale Seriale CAN
Cap5 Protocoale Seriale CAN
5 Protocoale seriale
5
PROTOCOALE SERIALE
42
Teletransmisii de date Cap. 5 Protocoale seriale
- multimaster
- detecţia şi semnalizarea erorilor
- transmisia automată a mesajelor corupte imediat ce magistrala e liberă
- distincţie între erorile temporare şi cele permanente
CAN are o structură pe 3 nivele:
- Nivelul fizic defineşte modul cum sunt transmise semnalele. El cuprinde
mediul de transmisie, nivelele semnalelor şi reprezentarea biţilor, dar nu
permite optimizarea acestora pentru o anumită aplicaţie.
- Nivelul de transfer reprezintă nucleul (kernel) protocolului CAN. Acesta
prezintă mesajele recepţionate şi acceptă mesajele de transmis de la nivelul
obiect. Tot acest nivel este responsabil pentru rata de transmisie şi
sincronizare, pentru încadrarea mesajelor, arbitraj, confirmare, detecţie de
erori, semnalizare şi reţinerea defectelor.
- Nivelul obiect se ocupă de filtrarea mesajelor, precum şi de starea şi
manipularea acestora.
Dacă nivelul fizic este fixat prin circuitele de interfaţă utilizate iar
nivelul obiect este puntea de legătură cu programul aplicaţie, nivelul de
transfer este cel care asigură compatibilitatea tuturor dispozitivelor
conectate la magistrală. Este definit şi standardizat prin specificaţie tehnică.
Aceasta defineşte o serie de termeni utili pentru înţelegerea modului cum
sunt transferate, validate, codate şi testate pentru detecţia erorilor mesajele
vehiculate prin interfaţă.
Informaţia pe magistrală este transmisă prin mesaje cu format fix sau
diferitdar limitate ca lungime. Mesajele pot fi iniţiate de orice dispozitiv
conectat la magistrală atâta vreme cât aceasta din urmă este liberă.
În sistemele CAN nodurile nu utilizează informaţii despre
configurarea sistemului (adresele nodurilor), lucru care are câteva
consecinţe importante:
- flexibilitatea sistemului: noduri suplimentare pot fi adăugate fără a necesita
schimbări în software-ul sau în hardware-ul nodurilor existente, sau în
vreunul din nivele aplicaţie.
- rutarea mesajelor: conţinutul unui mesaj include un identificator, acesta
neindicând destinaţia mesajului, dar descrie semnificaţia datelor, astfel încât
toate nodurile din reţea sunt în stare să filtreze mesajele pentru a determina
dacă acestea sunt utile pentru ele sau nu.
- multi-distribuţie: oricare dintre noduri pot recepţiona şi acţiona simultan la
acelaşi mesaj
- consistenţa datelor: conceptul CAN garantează că un mesaj oarecare este
acceptat simultan de toate nodurile sau de nici unul. Astfel dacă un nod a
detectat o eroare atunci transmisia este oprită prin transmiterea unui fanion
de eroare prin care se previne acceptarea de către celelalte noduri a
43
Teletransmisii de date Cap. 5 Protocoale seriale
mesajului.
Rata de bit (viteza de transmisie) poate fi diferită funcţie de sistem,
dar în cadrul unui sistem ea este dată şi constantă.
Mesajele au priorităţi diferite, aceasta fiind definită prin
identificator. Dacă un nod cere altui nod un pachet de date , acesta trimite
pachetul cu acelaşi identificator ca şi cererea.
Magistrala CAN este de tip multi-master, oricare din noduri putând
porni transmisia. Nodul ce transmite mesajul cu prioritatea cea mai mare va
câştiga accesul la magistrală. Pentru aceasta este nevoie de arbitraj. Dacă 2
sau mai multe noduri încep să transmită în acelaşi timp atunci conflictul este
rezolvat prin arbitrajul pe baza identificatorului. Mecanismul de arbitrare
garantează ca nici o informaţie să nu fie pierdută. Dacă transmisia unui
mesaj de date şi a unui mesaj de cerere de date, având acelaşi identificator,
sunt iniţiate în acelaşi timp, atunci mesajul de date are prioritate. În timpul
arbirajului fiecare transmiţător compară nivelul bitului transmis cu nivelul
de pe magistrală. Dacă cele două nivele sunt aceleaşi atunci acesta continuă
să transmită. Când se transmite un nivel regresiv (recessive – eng.), adică 1
logic) şi se detectează un nivel dominant (dominant – eng.), adică 0 logic,
atunci nodul a pierdut arbitrajul şi trebuie să se retragaă fără a mai transmite
vreun bit.
Singuranţa transferului datelor este asigurată prin metodele de
detecţie a erorilor, semnalizare şi auto-verificare implementate:
- detecţia erorilor presupune următoarele măsuri: monitorizarea
(emiţătoarele compară nivelele biţilor de transmis cu cele detectate pe
magistrală), verificarea redundanţei ciclice, umplerea biţilor (bit stuffing) şi
verificarea structurii mesajului.
- performanţa detecţiei erorilor: mecanismele de detecţie a erorilor
realizează detecţia tuturor erorilor globale, a erorilor locale la nivelul
emiţătorului, a până la 5 erori aleatorii într-un mesaj, a erorilor de şarjă
(burst), precum şi a erorilor oricărui număr impar din mesaj.
Semnalizarea erorilor şi a mesajelor corupte poate fi făcută de către
orice nod. Astfel de mesaje sunt abandonate şi retransmise automat. Timpul
de revenire de la detectarea erorii până la începerea mesajului următor este
de cel puţin 29 de perioade de bit cu condiţia să nu mai apară alte erori.
Nodurile trebuie să fie capabile să distingă între perturbaţii scurte şi căderi
permanente, iar nodurile defecte sunt închise.
Magistrala CAN pemite conectarea teoretică a unui număr nelimitat
de noduri. Practic numărul total este limitat de timpii de întârziere şi de
încărcarea acesteia. Fizic, magistrala este reprezentată de un singur canal
prin care circulă semnalul electric ce poartă informaţia (datele). Din aceste
date se extrage informaţia de sincronizare, dar şi datele în sine. Tensiunea
44
Teletransmisii de date Cap. 5 Protocoale seriale
de pe linie poate avea una din două valori complementare: dominantă (0)
sau regresivă (1). Atunci când două emiţătoare plasează pe linie, unul un bit
dominant şi celălalt unul recesiv, valoarea rezultantă va fi cea dominantă.
Aceasta se datorează implementării de tip ŞI-cablat.
Toate receptoarele verifică conţinutul mesajului şi vor confirma un
mesaj corect sau vor semnaliza un mesaj incorect.
Pentru a reduce consmul de putere, un dispozitiv CAN poate fi trecut
în modul „sleep”, fără activitate internă şi cu circuitele de interfaţă
deconectate. Din acest mod ieşirea se face la prima activitate apărută pe
magistrală sau la o condiţie internă. Activitatea internă este repornită, iar
nivelul de transfer aşteaptă pentru ca oscilatorul sistemului să se stabilizeze
şi apoi până se va sincroniza la activitatea magistralei (verificarea a 11 biţi
regresivi consecutivi). Pentru a „trezi” alte noduri ale sistemului care sunt în
modul „sleep” se transmite un mesaj de trezire cu cel mai mic identificator
(rrr rrrd rrrr, r=regresiv, d =dominant).
5.1.2. Transferul mesajelor
Pe magistrala CAN se pot transmite 4 tipuri de mesaje:
- mesaj de date – transferă datele de la un emiţător la receptoare.
- mesaj de cerere – când un nod trimite o cerere de transmitere a unui mesaj
de date cu acelaşi identificator
- mesaj de eroare – transmis de un nod care a detectat o eroare
- un mesaj de supraîncărcare – anunţă o cerere de întârziere între mesajul
precedent şi cel următor.
Mesajele de date şi cele de cerere sunt separate de mesajele
Spaţiu Mesaj Spaţiu
intermesaj de date intermesaj
sau mesaj
supraîncărcare
Câmp de arbitrare
Câmp de validare
Start mesaj
Sfârşit mesaj
Câmp de date
Câmp CRC
Câmp de control
45
Teletransmisii de date Cap. 5 Protocoale seriale
46
Teletransmisii de date Cap. 5 Protocoale seriale
Câmp de validare
Start mesaj
Sfârşit mesaj
Câmp CRC
Câmp de control
S Câmp de R I Câmp A E
O arbitrare T D r DLC CRC
C O
F de 11 biţi R E 0 K F
supraîncărcare
Delimitator de
Suprapunerea
fanioanelor
de supraîncărcare
8 biţi
6 biţi dominanţi
regresivi
Pauză Liber
Spaţiu intermesaj
Mesaj Mesaj
49
Teletransmisii de date Cap. 5 Protocoale seriale
50
Teletransmisii de date Cap. 5 Protocoale seriale
Durata de bit
Punct de
eşantionare
51