Mikrovaldiklių sąsajos I2C, SPI, USART

Mikrovaldiklių sąsajos I2C, SPI, USART

Turinys

1 I2C 1

Pranešimo protokolai  2

2 USART 5

USART galimybės 6

Duomenų perdavimas 7

3 SPI 8

Duomenų perdavimas 8

Protokolų palyginimas 9

Išvados 10

Literatūros sąrašas 11

1 I2C

I2C angliškai (Inter-integrated Circuit). Šis protokolas leidžia sujungti mažesnės spartos mikroptocesorius ir kontrolerius nedideliais atstumais. Šio protokolo komunikacijai tarp įrenginių reikalingos dvi bekryptės linijos pav.1[1] . Dažniausiai naudojamos įtampos yra: 5v, 3.3V. Pav1 pavaizduotas valdantysis įrenginys (angl Master) ir keli valdomi įrenginiai (angl. Slave). Visi įrenginiai sujungiami nuosekliai prie duomenų (SDA) ir laiko linijos (SCL).

"http://www.cs.fsu.edu/~baker/devices/notes/graphics/i2cbus3.gif

Pav.1 paprastoji I2c jungimo schema.[2]

Pajungimas

I2C sudaro dvi signalų linijos: SCL (Serial Clock Line) ir SDA (Serial Data Line). SCL yra laikrodžio signalas, o SDA yra duomenų signalas. SCL visada generuojamas valdančiojo prietaiso. Kai kurie valdantieji įtaisai gali priverstinai pakeisti SCL lygį į žemą taip pristabdydami valdančiojo prietaiso duomenų siuntimą. Tačiau nėra įmanoma tokia situacija, kai vienas prietaisas stengiasi linijos lygį pakeisti į aukštą, o kitas tuo pat metu – į žemą, kas galėtų sukelti įrangos gedimus, pažeidimus ar maitinimo šaltinio problemas. Kiekviena linija turi rezistorių, prijungtą prie aukšto lygio (angl. pull-up) , todėl ji visad yra loginiame vienete, jei joks prietaisas nenaudoja (pav.1) linijos duomenų perdavimui.

Pranešimo protokolai

I²C apibrėžia pagrindinių tipų pranešims, kurių kiekvienas prasideda pradžios ir baigiasi STOP:

Viena žinutė, kur valdantysis įrenginys įrašo duomenis į valdomajį;

Viena žinutė, kur valdantysis įrenginys nuskaito duomenis iš valdomo;

Kombinuoti pranešimai, kur valdantysis įrenginys bent du nskaito ir, arba įrašo į vieną ar daugiau valdomų įrenginių.

Kombinuotoje žinutėje kiekviena pranešimas nuskaitymo ar įrašymo prasideda pradžios (START) sąlyga ir valdomo įrenginio adresu. Po pirmojo pražios bito kombinuotose žinutėse siunčiamas pasikartojantis pradžios bitas. Pasikartojantis pradžios bitas nėra valdomas pabaigos (STOP) sąlyga. Taip valdantysis įrenginys supranta, jog tai yra tos pačios žinutės dalis.

I²C sistemos palaiko sutartinę pranešimų struktūrą. SMBus yra apribota iki devynių šių struktūrų, pavyzdžiui, skaityti teksto N  ir parašyti žodį N. PMBus tęsiasi su SMBus grupiniu protokolu, todėl kelios tokios SMBus struktūros turi būti siunčiami į vieną pranešimą. Baigiamasis pabaigos (STOP) bitas rodo kada sugrpuoti veiksmai turi įsigalioti. Pavyzdžiui, vienas PMBus operacija gali konfigūruoti iš naujo tris maitinimo šaltiniai (naudojant tris skirtingus I2C valdomo įrenginio adresus), o jų naujos konfigūracijos turi įsigalioti tuo pačiu metu, kai jie gauna pabaigos bitą.

Adreso dalis visuomet siunčiama pirmiausia. Tradiciškai naudojamas 7 bitų adresavimas. Pirmiausias siunčiamas reikšmingiausias adreso bitas (angl. most significant bit MSB), o aštuntasis bitas, priklausomai nuo jo vertės, reiškia, ar duomenys bus įrašomi (vertė 0), ar nuskaitomi (vertė 1).

Devintasis bitas yra patvirtinimo bitas. Jis naudojamas prie visų pranešimo dalių (ir prie adresavimo, ir prie duomenų). Kuomet perduodamas paskutinis 8-tasis bitas, valdantysis įrenginys perduoda linijos valdymą valdomajam prietaisui, kuris savo ruožtu gali pats pakeisti SDA linijos lygį į žemą. Jei taip nėra padaroma, tuomet laikoma, kad siuntimas nepavyko, duomenys nebuvo gauti arba valdomasis įtaisas jų nesuprato. Tokiu atveju komunikacija yra nutraukiama.

Po adresavimo dalies siunčiami duomenys. Valdantysis prietaisais toliau generuoja laikrodžio impulsus pastoviais intervalais, o duomenys keliauja SDA linija. Jų kryptis priklauso nuo to, ar vykdomas įrašymo, ar nuskaitymo operacija. Duomenų keikis yra laisvai pasirenkamas dydis bei dauguma valdomųjų prietaisų jų skaitymo (ir įrašymo) metu automatiškai padidina registrų žymeklio padėtį po kiekvieno veiksmo. Laikoma, kad sekantys nuskaitymo/įrašymo veiksmai bus skirti sekančiam registrui.

Laiko schema perduodant duomenys suformuojamas pradžios bitas (S) kai duomenų linios (SDA) lygis pakeičiamas į žemą o laiko (SCL) išlieka aukštas. Toliau suformuojamas pirmas duomenų bitas kol SCL žemas. Toliau duomenys yra nuskaitomi kai SCL bito lygis yra aukšas(B1). Toliau viskas kartojasi kol SCL yra žemas SDA duomenis perduodami, kai SCL žemas duomenys nuskaitomi(B2, Bn). Pabaigos (STOP) bitas perdodamas, kai SDA pasikeičia į aukštą lygi kol SCL dar yra aukšto lygio (Pav2)

"Data

 

Pav.2 I2C linijos loginiai lygiai perduodant duomenis

2 USART

USART modulis (angl. Universal Sincronous Asynchronous Receiver Transmitter). Šis modulis yra skirtas perduoti duomenis ne tik asinchroninėmis sąsajomis, bet ir sinchroninėmis. Modulis naudoja atskirą liniją sinchronizavimo singnalui. Taigi šis modulis yra pranašesnis už UART moduli, kuris perduoda duomenis tik asinchroniniu budu. Pagrindiniai skirtumai:

Sinchroninis režimas reikalauja duomenų ir laikrodžio. Asinchroninis režimas reikalauja tik duomenų.

Sinchroninio režimo metu duomenys peruodami fiksuotu greiciu. Asinchroniniu režimu duomenys neturi būti perduodami fiksuotai.

Sinchroniniu budu duomenys perduodami blokais, tuo tarpu asinchroniniu režimu duomenys perduodami po baitą.

Sinchroninis režimas leidžia tureti didesne DTR (duomenų perdavimo sparta) ne asinchroninis režimas.

USART galimybės

USART modulis asinchroninėje veikloje vienu metu gali tiek priimti,tiek išsiųsti duomenis.

Šiuo metu Jūs matote 50% šio straipsnio.
Matomi 861 žodžiai iš 1719 žodžių.
Peržiūrėkite iki 100 straipsnių per 24 val. Pasirinkite apmokėjimo būdą:
El. bankininkyste - 1,45 Eur.
Įveskite savo el. paštą (juo išsiųsime atrakinimo kodą) ir spauskite Tęsti.
Turite atrakinimo kodą?