Extras din laborator
Scopul lucrării
- Înțelegerea interfețelor în sistemele incorporate
- Implementarea I2C
Sarcina
Să se modifice partea practică a laboratorului precedent (senzori) astfel încât mesajele de afișare să nu fie transmise în Serial Port, dar să fie afișate pe LCD, conectat prin I2C. Totodată de modificat senzorul de temperatură și umiditate cu senzorul SHT25 (conectat la fel prin I2C). Exemplu de afisare:
Fig 1 - LCD exemplu
Interfata I2C
Interfața I2C (Inter Integrated Circuits) este o interfață serie, apărută din necesitatea de a realiza sisteme ieftine cu microcontrolere, destinate în principal conducerii proceselor industriale. Un astfel de sistem este constituit, de regulă, dintr-unul sau mai multe microcontrolere și o serie de echipamente periferice (de intrare/ieșire, memorie etc.). Conectarea acestora printr-o interfață serie satisface cerințele enunțate. Viteza mică de transfer, caracteristică interfețelor serie, nu constituie un neajuns pentru aplicațiile principale avute în vedere (conducerea proceselor).
Realizarea unui sistem I2C presupune interconectarea unor circuite integrate (specializate) prin numai trei linii: două de semnal și una de masă. Cele două linii de semnal sunt denumite "serial data" (SDA) și "serial clock" (SCL). Fiecare circuit integrat are o adresă unică și poate funcționa fie ca transmițător, fie ca receptor, în funcție de tipul circuitului. De exemplu, un circuit pentru comanda unui afișaj cu cristale lichide poate fi numai receptor, în timp ce un circuit de memorie RAM poate fi atât transmițător cât și receptor (evident, nu simultan). Dintr-un alt punct de vedere, un circuit integrat din sistem poate fi coordonator sau executant. Circuitul integrat coordonator este circuitul care inițiază un transfer de date și tot el generează semnalele de tact pentru a permite realizarea unui transfer. Orice alt circuit integrat adresat de coordonator este subordonat.
Protocolul de transfer al datelor pe magistrala I2C presupune inițierea transferului prin aducerea magistralei într-o condiție de START, transferul propriu-zis și încheierea transferului prin aducerea magistralei într-o condiție de STOP. Condiția de START (S) este definită prin trecerea liniei SDA din 1 în 0, în timp ce linia SCL este menținută la nivel ridicat. Condiția de STOP (P) este definită prin trecerea liniei SDA din 0 în 1, în timp ce linia SCL este menținută la nivel ridicat. Ambele condiții sunt ilustrate în figura 8.21. Ele sunt generate întotdeauna de către coordonator.
Fig.2 - Magistrala I2C
Datele sunt transferate pe magistrală sub formă de octeți. După transmiterea fiecărui octet transmițătorul trebuie să afle dacă acesta a fost recepționat în bune condiții de către receptor. Dacă, după recepția unui octet, receptorul nu admite un nou octet (pentru că, de exemplu, tratează o întrerupere internă), el poate menține linia SCL la nivel coborât pentru a forța transmițătorul într-o stare de așteptare.
Utilizarea tehnicii de recunoaștere a transferului este obligatorie pentru asigurarea unui transfer corect. Impulsul de tact corespunzător fiecărui octet, denumit impuls de recunoaștere, este generat de coordonator. Transmițătorul eliberează linia SDA pe durata impulsului de recunoaștere.
Preview document
Conținut arhivă zip
- Lab4 Sisteme Incorporate - Interfete.docx