SISTEME EMBEDDED DISTRIBUITE

REŢELE DE SISTEME INTEGRATE
Magistrala I2C
1

• Uneori se construiesc sisteme embedded distribuite • La un sistem distribuit, mai multe elemente de procesare sunt conectate printr-o reţea care le permite să comunice • Aplicaţia este distribuită la elementele de procesare, şi o parte din muncă este făcută în fiecare nod al reţelei.
2

SISTEME EMBEDDED DISTRIBUITE
Există mai multe motive pentru care se construiesc sisteme integrate distribuite într-o reţea: • Sarcini de procesare distribuite fizic
– folosirea puterii de procesare în locul unde se produc evenimentele transmise: de exemplu prin procesare iniţială, locală, a datelor

Exemple de magistrale utilizate pentru EmS
• magistrale seriale sincrone specifice (micro)calculatoarelor pentru control distribuit
– – – – I2C (Inter Integrated Circuit) / TWI (Two-Wire serial Interface) CAN (Controller Area Network) SPI (Serial Peripheral Interface) FlexRay

• Reducerea volumului de date transmise
– de exemplu prin procesare iniţială, locală, a datelor

• Modularitatea
– permite independenţa interfeţei locale cu traductorul sau elementul de execuţie şi depanarea mai uşoară.

• magistrale de instrumentaţie
– GPIB (General Purpose Interface Bus) – VXI (VME bus eXtention for Instrumentation) – MXI (Multisystem eXtension Interface)
4

• Implementarea unor sisteme tolerante la greşeli
3

dacă detectează un semnal dominant (0 – LOW). • Magistrală multiplu-master şi arbitrare cu prioritate fixă • Adrese pe 7 biţi (10 biţi la specificaţiile extinse) pentru dispozitivele cuplate la magistrală • Numărul maxim de dispozitive este limitat nu de numărul de biţi de adresă ci de capacitatea parazită maximă pe linie de 400 pF 5 6 • Foloseşte doar două linii: – SDL . uşor de implementat şi de viteză moderată: – până la 100 Kb/s pentru bus standard şi – până la 400 Kb/s pentru specificaţii extinse.serial clock line Caracteristici principale • • • • • Arbitrarea se bazează pe detecţia coliziunilor şi arbitrarea acestora pentru a preveni inconsistenta datelor în cazul în care două sau mai multe dispozitive master iniţiază simultan transferul de date Protocolul de arbitrare este numit Binary Countdown (ordine binară inversă). Ambele sunt însă noduri sclav. Caracteristici principale • Toate dispozitivele sunt legate la ambele linii ale magistralei (SDL şi SCL) • Liniile SDL şi SCL sunt "trase" la +V (adesea 5V) prin rezistoare "trage sus“ (surse de curent la specificaţiile extinse) • Transfer serial sincron cu viteza maximă 100 Kbps (400 Kbps la specificaţiile extinse).serial data line (notată şi SDA) – SCL . sau Bit Dominance protocol (protocol pe bază de bit dominant) Toate nodurile aşteaptă eliberarea canalului de comunicaţie înainte de a transmite mesaje Fiecare dintre nodurile aflate în competiţie pentru a controla magistrala transmite un semnal construit pe baza adresei unice de identificare În timpul acestei transmisii un nod aflat "în competiţie" va abandona. generează semnal de CLOCK şi apoi încheie transferul Dispozitiv adresat de un master 8 . • Magistrala I2C (Inter Integrated Circuits) e numită în prezent adesea TWI (Two-Wire serial Interface) • Cost redus. iar un driver LCD este doar receptor.MAGISTRALA I2C • A fost introdusă de Philips fiind destinată legării într-un sistem a microcontrolerelor. Termen Transmiţător Receptor Master Sclav 7 Descriere Dispozitiv care transmite date pe magistrală Dispozitiv care citeşte date de pe magistrală Dispozitiv care iniţiază transferul. diferit de semnalul său Noduri ale reţelei • Fiecare dispozitiv este caracterizat de o adresă unică şi poate opera în principiu fie ca emiţător fie ca receptor • De exemplu: memoria poate fi fie receptor sau emiţător.

dispozitivele pot funcţiona ca master la momente diferite de timp. 11 Aspecte funcţionale • Când magistrala este liberă. Pentru ambele linii se folosesc circuite colector / drenă în gol. SCL jos (bit/eveniment de WAIT) pentru a întârzia un octet de date care urmează unui octet ce a sosit la aceeaşi adresă. iar fiecare din cei doi masteri trebuie să asculte magistrala în timpul transmisiei pentru a fi sigur că nu interferează cu alt mesaj. • • • • 12 . dacă este nevoie. Semnalul de ceas în timpul arbitrarii este o combinaţie sincronizată a semnalelor de ceas generate de dispozitivele master folosind conexiunea AND pe linia SCL. Masterul este dispozitivul care poate iniţia un transfer şi poate genera semnal de ceas pe SCL Magistrala I2C este o magistrală multimaster . atât SCL cât şi SDL sunt în stare SUS. • Dacă două dispozitive încearcă să controleze aceeaşi linie (SDL sau SCL) circuitele cu colector în gol previn erorile fizice.Nivelul fizic I2C Interfaţa electrică de bază la magistrală + SDL + master 1 SDL SCL slave 1 data line clock line slave 2 master 2 SCL slave 3 Scrie date Citeşte date Interfaţă date 9 Scrie ceas Citeşte ceas Interfaţă ceas 10 Aspecte funcţionale • Magistrala nu defineşte tensiunile particulare de utilizat pentru nivelurile sus şi jos. Biţii de date / adrese se transmit serial. în octeţi succesivi. când controlează liniile SDL şi SCL Arbitrarea se bazează pe conexiunea AND a tuturor interfeţelor I2C aferente dispozitivelor conectate la magistrală. • Sclavul poate prelungii perioada JOS a ceasului (nu şi pe cea SUS) atât cât este necesar. Oricare receptor poate trage. pe SDL începând cu MSbit al octetului.

Aspecte funcţionale • Biţii pe SDL se modifică de către master doar pentru SCL = LOW (jos). Există doar două situaţii când informaţia de pe SDL se schimbă atunci când SCL = H: – informaţie de START: SCL = H iar SDL ↓ (front descrescător) – informaţie de STOP: SCL = H iar SDL ↑ (front crescător) Semnalizare de acknowledgement (bit ACK) • Generat întotdeauna de receptor (master sau sclav) • • După fiecare 8 biţi transmişi pe SDL urmează un semnal (eveniment) de ACKNOWLEDGE (confirmare). SDL Master transmiţător ACK Sclav •după recepţia corectă a adresei •după recepţia corectă a unui octet de date Master receptor 13 ACK Sclav 14 •după recepţia corectă a unui octet de date Nivelul legăturii de date • Fiecărui dispozitiv I2C i se alocă o adresă. • Adresele 11110XX sunt rezervate pentru schema extinsă cu adresă pe 10 biţi. Nivelul legăturii de date • O tranzacţie de magistrală constă dintr-o serie de octeţi transmişi: o adresă şi apoi unul sau mai mulţi octeţi de date. • Format pentru transmisia adresei la I2C: Adresă dispozitiv 7biţi R/W 1bit 15 16 . de obicei ca parte a programului driver pentru I2C. există de asemenea şi alte adrese rezervate. receptorul trage SDL jos pe timpul celui de-al nouălea impuls de ceas. care poate fi folosită pentru a semnala / transmite simultan către toate dispozitivele. Adresele unice ale dispozitivelor sunt determinate de proiectantul sistemului. Pentru a confirma recepţia corectă. Receptorul citeşte SDL pentru starea SCL = HIGH (sus). • O adresă de dispozitiv are 7 biţi conform standardului I2C (la I2C extins adresele pot fi de 10 biţi) • Adresa 0000000 este utilizată pentru a semnala un apel general ("general call") sau emisie pentru magistrală ("bus broadcast").Pentru SCL = H datele pe SDL rămân de regulă stabile. prin ACK.

• Pentru că un sclav nu poate iniţia un transfer masterul trebuie să transmită o cerere de citire cu adresa sclavului şi apoi să permită sclavul să transmită date. • De aceea o transmisie de adresă include adresa de 7 biţi şi 1 bit pentru direcţie (0 pentru scriere de la master către sclav şi 1 pentru citire). 20 19 . • O tranzacţie pe magistrală este iniţiată printr-un semnal de start şi terminată printr-un semnal de stop. după cum urmează: Nivelul legăturii de date • Un start este semnalat prin lăsarea liniei SCL SUS şi prin transmisia unei tranziţii de la 1 la 0 pe SDL • Un stop este semnalat menţinând SCL SUS şi prin transmisia unei tranziţii de la 0 la 1 pe SDL. urmat de o altă adresă de transmisie şi apoi de alte date. • Evenimentele de start şi stop pot fi succesive la aceeaşi adresă. • Un master poate scrie şi apoi să citească (sau să citească şi apoi să scrie) prin transmiterea unui start după transmisia datelor. el transmite adresa sclavului.Nivelul legăturii de date Master transmiţător de date Nivelul legăturii de date Master receptor de date Sclavul nu poate iniţia un transfer pe magistrală ADRESA + W+OCTEŢI DE DATE ADRESA şi cerere de citire + CITIRE DATE 17 18 Nivelul legăturii de date • Când un master vrea să transmită date la un sclav. urmată de date.

. 0 Start citire de la sclav Scriere Start Start Citeşte date Citeşte date Scrie date Trimite date S adresã 7 biţi 1 Citire data De la sclav P Stop 21 22 Exemple de format la transferul pe magistrală scrie. MSB ack stop 23 24 ... 1 Adresã.. S . . apoi citeşte adresã 7 biţi adresã 7 biţi SCL 0 Scrie data S 1 data P SDL Citire De la sclav start Formatul octeţilor ..Graf de tranziţie al stărilor pentru o tranzacţie pe magistrală Start Adresã Exemple de format la transferul pe magistrală scriere multi-octet S adresã 7 biţi 0 data data P Stop Aşteptare Stop Adresã..

atunci bineînţeles ele nu interferează niciodată şi amândouă reuşesc în a trimite propriul mesaj. dacă detectează un semnal dominant (0 – LOW). • Dacă un dispozitiv încearcă să transmită un logic 1 dar “aude” un logic 0. dispozitivul ascultă de asemenea linia. 26 Arbitrare bus • În timpul acestei transmisii un nod aflat "în competiţie" va abandona. 27 Arbitrare bus Dată transmisă Nodul 72 01001000 Nodul 16 00010000 Nodul 42 00101010 MSb 7 0 LSb 6 1 0 1 5 4 3 2 1 0 Câştigătorul 0 0 0 0 0 0 0 0 1 Nodul 42 pierde şi abandonează aici Nodul 72 pierde şi abandonează aici Secvenţa biţilor 28 . dar arbitrarea poate continua şi în porţiunea de date. nodul ce transmite numărul cel mai mic va câştiga competiţia şi va controla canalul de comunicaţie. transmite alt master cu prioritate mai mare. sau protocol pe bază de bit dominant (Bit Dominance protocol). • Astfel. se rezolvă prin transmiterea de către fiecare nod a unui semnal construit pe baza valorii unice de identificare – adresă. • Pentru că arbitrarea face parte din mesaj. • Atunci când trimite date.Arbitrare bus • Caracteristica de arbitrare a magistralei este utilizată pentru fiecare mesaj. 25 Arbitrare bus • Dacă două dispozitive încearcă să transmită date identice la aceeaşi adresă. • În multe cazuri arbitrarea se va finaliza pe timpul transmisiei porţiunii de adresă. • Protocolul de arbitrare este numit Binary Countdown (ordine binară inversă). diferit de semnalul său. acest tip de protocol are performanţe globale bune şi o eficienţă ridicată. dacă un semnal "0" este dominant. Competiţia între nodurile care încearcă simultan să transmită. În plus. aşa cum se exemplifică în figura următoare. • Toate nodurile aşteaptă eliberarea canalului de comunicaţie înainte de a transmite mesaje. acest protocol este foarte sigur pentru că nu este necesară configurarea nodurilor (pentru ordinea transmisiei) iar nodurile inactive sunt ignorate.

– MC A încheie transferul • Dacă R/W = 0: De la MC A Microcontroller A SDL SCL EEPROM Microcontroller B LCD ADC Driver S Start 29 adresã MC B 0 A data A data A P Stop Scriere 2 octeţi transferaţi Acknowledge (SDL tras JOS de MC B receptor) 30 Exemplu de reţea cu două microcontrollere • Presupunem ca microcontrollerul A doreşte să recepţioneze date de la microcontrollerul B – MC A (master) adresează MC B (slave).Exemplu de reţea cu două microcontrollere Exemplu de reţea cu două microcontrollere • Presupunem ca microcontrollerul A doreşte să trimită date la microcontrollerul B. MC B activează ACK după octetul de adresare+citire. Exemplu de interfaţă I2C 31 32 . – MC A (master . – MC A (master) adresează MC B (slave) – MC A (emiţător) transmite data la MC B (receptor).receptor) citeşte date de la MC B (emiţător) şi activează ACK după fiecare octet recepţionat – MC A încheie transferul.

pentru că interfaţa la magistrală are nevoie doar de două fire – număr mic de pini la capsulă – complexitate redusă a conexiunii – transfer bidirecţional – magistrală multimaster – lungimea datelor nu este pre-fixată 33 .Concluzii I2C • Utilizare – transfer între CI sau sisteme cu rate sub 100 kbit pe secundă – utilizată între module ce au masă comună • Avantaje: – reduce dimensiunile circuitelor.

Sign up to vote on this title
UsefulNot useful