Documente Academic
Documente Profesional
Documente Cultură
INTERFETE SERIALE
Utilizate, n general, pentru a conecta circuite periferice la microcontroller, n cadrul unui EmS Aceste interfee permit conectarea de dispozitive diverse, cum ar fi:
ceas de timp real (RTC - real-time clock) memorii nevolatile pentru stocarea unor parametrii interfee cu senzori ... i multe altele
INTERFETE DE COMUNICAIE i i
Se folosete comunicaia serial ntre microcontroller i alte subsisteme, pentru economie de pini la capsul Multe MC au incluse att interfee de comunicare sincrone ct i asincrone
Interfata serial asincron este numit de obicei "serial communication interface" (SCI sau UART) Interfata serial sincron e numit de obicei "serial peripheral interface" (SPI) 1
De obicei (dar nu obligatoriu) o magistral serial sincron include o linie separat de clock
se simplific astfel interfaa ntre emitor i receptor linia de ceas e susceptibil la zgomot n cazul distanelor mari
La magistrala serial asincron ceasurile emitorului i receptorului sunt independente i se face o re-sincronizar pentru fiecare bit sup bitul de start
Perifericul receptor ("sclav") utilizeaz semnalul de ceas la achiziia fluxului de bii seriali Exist posibilitatea de a conecta mai multe dispozitive la aceeai interfa SPI a master-ului
Un master selecteaz un sclav prin activarea intrrii sale de chip select Un periferic ne-selectat nu va lua parte la transferul SPI
INTERFATA SPI
Peripheral S!
S O
LK G GND
1GND
TRANSMISIA SPI
Master-ul i scalvii conin cte un registru cu deplasare serial a datelor (serial shift register) Master-ul ncepe transferul unui octet prin scrierea acestuia n registrul su SPI de sealizare. Pe msur ce se face transmisia serial ctre sclav (prin linia MOSI), sclavul transfer coninutul registrului su de sealizare (prin linia MISO) ctre mater
n acest fel se face schimb al informaiilor stocate n cele dou registre de sealizare n acest fel se face schimb al informaiilor stocate n cele dou registre de sealizare
POK W t tS
Penpliml
SPI
Unele periferice cu interfa SPI permit transfer de mai muli octei
se transfer un flux continuu de date de la master multe memorii cu interfa serial SPI lucreaz n acest fel la acest tip de transfer semnalul ICS rmne activ pe toat durata transferului de exemplu: o memorie ateapt ca o comand de "write" s fie urmat de patru octei de adres (adresa de start) i apoi octeii de date ce vor fi stocai
Alte periferice sclav ateapt doar un singur octet de control, cum ar fi de exemplu un convertor A/D Unele dispozitive sclav permit conectarea n lan de prioriti (daisychained)
SCI
SCI (UART) este o interfa de comunicaie asincron (Universal Asynchronous Receiver Transmitter, UAF^T) UART utilizeaz dou fire transmit (TXD) i receive (RXD), pentru comunicaie full- sau half-duplex. Standardul RS-422 e proiectat de asemenea pentru comunicaie punct la punct dar utilizeaz dou linii difereniale pentru transmisie (att RXD ct i TXD constau din perechi de fire torsadate) RS-422 se folosete la distane mai mari i este o alegere bun pentru medii cu zgomot. UART :
DAISY-CHAINED TRANSFER
n acest exemplu procesorul (mater) transmite trei octeti prin interfaa SPI
Primul octet e transferat n sclavul A La transferul celui de-al doilea octet n A, primul e transferat ctre B Al treilea octet n A, al doilea n B i primul n C
Dac materul dorete s citeasc un rezultat din A, el va transfera o secven fictiv de 3 octei prin MOSI Conectarea n lan nu funcioneaz cu orice dispozitiv SPI (niciodat cu dispozitivele de memorie care cer un transfer multi-octet)
Po e s r r c so
10
imI^.
Generaliti l2C
l 2 C (Inter-lntegrated Circuit numit i 110) este o magistral ieftin i eficient l 2 C este o magistral sincon, bidirecional, de vitez mic Conectarea / deconectarea unor dispozitive la l 2 C nu afecteaz alte dispozitive l 2 C este o magistral multi-master Viteza datelor n mod standard este de 100 kbps, iar n mod extins de 400 kbps Fiecare dispozitiv conectat la l 2 C are o adres unic i poate lucra ca transmitor sau receptor l 2 C mai este numit TWI (Two-Wire serial Interface)
Generaliti l2C
Ambele linii (SDA i SCL) sunt activate de circuite open-drain
- Liniile sunt conectate la tensiunea pozitiv prin rezistoare de pull-up, astfel c n repaus sunt la nivel HIGH
14
1 SDA SCL s! /
I "
MSB
1 X X X LSB S
j L I
ACli
~ 7 \ _ i StQt Condition
f 2 \
Stop Condition
16
Aspecte funcionale
Sclavul poate prelungii perioada JOS a ceasului (nu i pe cea SUS) att ct este necesar. Oricare receptor poate trage, dac este nevoie, SCL jos (bit/eveniment de W A I T ) pentru a ntrzia un octet de date care urineaz unui octet ce a sosit la aceeai adres. Dac dou dispozitive ncearc s controleze aceeai linie (SDL sau SCL) circuitele cu colector n gol previn erorile fizice, iar fiecare din cei doi materi trebuie s asculte magistrala n timpul transmisiei pentru a fi sigur c nu interfereaz cu alt mesaj Dup fiecare 8 bii transmii pe SDL urmeaz un semnal (eveniment) de ACKNOWLEDGE (confirmare). Pentru a confirma recepia corect, prin ACK, receptorul trage SDL jos pe timpul cehii de-al noulea impuls de ceas
17
19
Mater transmitor *
ACK
Sclav
'dup recepia corect a adresei 'dup recepia corect a unui octet de date t , , ACK
Mater receptor
Sclav
Adres dispozitiv
7biti
R/W lbit
20
ARBITRARE l2C
I 2 C este o magistral multi-master
=>Mai multe dispozitive mater pot porni transmisia n acelai timp !!
Mater transmite:
- un bit 0 dac trage SDA jos - un bit 1 dac las linia SDA n stare sus
Dac doi materi ncep transmisia simultan, cel ce transmite 1 i citete 0 pe magistral va renuna pentru c a detectat o transmisie cu prioritate mai mare Protocolul de arbitrare e numit protocol cu bit dominant, sau Binary Countdown
Adrese speciale
Adresa 0000000 cu bit de direcie 0, este un apel general ("general caii" sau "bus broadcast") care pornete transmisia ctre toate dispozitivele I2C Prin acest apel general dispozitivul mater determin ce sclavi sunt disponibili
Al doilea octet al transmisiei indic scopul apelului general Dup acest al doilea octet sclavii afl dac comanda le este adresat i rspund cu A C K Sclavii pentru care comanda nu e aplicabil neglijeaz apelul general
Dac al doilea octet este 0x06 (00000110), se indic c sclavii vor face un reset i apoi vor rspunde cu adresa lor. Dac al doilea octet este 0x04 (00000100), sclavii vor rspunde cu adresa lor, dar nu vor face i reset Dac cel mai puin semnificativ bit la octetului doi este un 1, atunci, prin apelul general, materul se identific ctre ali materi din sistem prin transmiterea adresei sale Ceilali bii ai celui de-al doilea octet reprezint adresa materului
23
Un pachet l2C
2]
HillS(rt ^ A d d r e s s bits H i Dircdn |Fn?;eiw?rflCK ]_ | Dala bi Stop
22
Adrese speciale
Adresa 0x01 (00000001) este o adres special cunoscut ca i octet de START Acest octet e utilizat pentru a indica c urmeaz un transfer lung de date Aceast adres special este important pentru dispozitivele mater ce nu au interfa specializat I 2 C i care prin software trebuie s testeze continuu magistrala Atunci cnd un asemenea mater detecteaz un octet de START generat de alt mater, el poate reduce rata de interogare, alocnd mai mult timp pentru alte sarcini software
24
Adrese speciale
Adresa 1111OXX este adresa special care indic c se va genera o adres de dispozitiv pe 10 bii Se folosete n modul extins al l 2 C Teoretic se pot controla pn la 1,024 periferice n acelai sistem pot exista dispozitive cu adrese pe 7 i 10 bii La adrese pe 10 bii, adresarea se face prin doi octei succesivi (ultimii 2 bii ai adresei speciale + 8 bii din al doilea octet) n acest caz perifericele cu adrese pe 7 bii vor ignora tranzacia
25
UART
UART este asincon pentru c nu se transmite semnal de ceas prin linia de date serial Receptorul recunoate valorile binare individuale fr o linie comun de ceas Interfaa UART const din dou pri:
- un receptor (receiver - Rx) care convertete un flux serial de bii n date paralele (cuvinte) pentru microprocesor - un transmitor (transmitter - Tx) care convertete date paralel de la microprocesor ntr-un flux serial de bii, pentru transmisie
UART furnizezaz i informaie de stare, cum ar fi "receptorul este plin (datele au ajuns) sau transmitorul este gol (o transmisie n curs s-a terminat)
27
La EmS interfaa serial este metoda cea mai simpl i ieftin pentru conectarea unui calculatorul gazd, fie ca parte a aplicaiei, fie pentru scop de depanare Cea mai simpl interfa serial asincrpon este UART (the Universal Asynchronous Receiver Transmitter) UART este numit de asemenea ACIA (Asynchronous Communication Interface Adapter)
28
Transmisie serial
O problem important asociat cu transmisia serial este reconstrucia datelor la captul de recepie Apar dificulti n determinarea granielor dintre biii individuali
- De exemplu, dac linia serial este jos pentru un anumit timp, receptorul trebuie s fie capabil s identifice dac informaia reprezint "00" sau "000" - Trebuie s se tie unde se oprete un bit i unde ncepe cellalt
Fiecare dispozitiv implicat n comunicaia serial are propriul semnal de ceas local Dispozitivele emitor i receptor trebuie s lucreze la aceeai frecven, iar n plus trebuie s existe logic pentru detectarea fazei datelor transmise i pentru sincronizarea ceasului receptorului la aceast faz Transmisia asincron este utilizat n special la transmisa caracterelor i la sisteme unde intervalul dintre transmisa octeilor se poate modifica n timp
29
1 2 1 I * I I* I 1 I
3 0
4 1
5 6
8 I I J
Transmisie serial
Formatul datelor transmise utilizeaz la nceputul transmisiei pentru fiecare caracter un bit de start i la sfrit unul sau doi bii de stop Receptorul i sincronizeaz ceasul dup recepionarea bitului de start i apoi eantioneaz biii de date (7 sau 8 n funcie de configuraia sistemului) Dac receptorul nu primete secvena de stop, presupune c ceasul su este defazat fa de al emitorului i se declar o eroare de cadru Rezolvarea erorii cade n seama aplicaiei software
Pentru o transmisie corect, emitorul i receptorul trebuie s utilizeze acelai tip de paritate (even parity sau odd parity) Erorile de paritate trebuie tratate de programatorul sistemului
- UART nu ia nici o msur la detectarea erorii de paritate
32
RS-232C
RS-232C este un standard de interfa de comunicaie serial aprut nc din anii '60 ai secolului trecut RS-232C este utilizat pentru interfaarea dispozitivelor seriale printr-un cablu cu lungime maxim de 25 m i o rat maxim de 38.4 kbps Se poate folosi pentru conectare la:
- Alte calculatoare - Modem - Imprimante seriale - Plottere seriale
33
RS-232C
O legtur RS-232C const dintr-un driver i un comparator:
35
RS-232C
RS-232C folosete tensiuni referite fa de mas (transmisie unipolar):
- Un logic high este un semnal cu tensiunea n domeniul -5 la -15 V (tipic -12 V) - Un logic low este un semnal cu tensiunea n domeniul +5 la +15 V (tipic+12 V)
Unele sisteme RS-232C nc utilizeaz cadre de date pe 7 bii, iar altele 8 bii
34
RS-232C
RS-232C definete de asemenea conectorii i alocarea pinilor RS-232C a fost conceput iniial pentru interconectarea a dou tipuri de echipamente:
- Data Terminal Equipment (DTE) - Data Communication Equipment (DCE)
nainte de apariia PC-urilor un DTE era un terminal sau un teletype, iar un DCE era un modem
36
RS-232C
conectare a unui terminal sau a unui modem la intzerfata serial a calculatorului
>
Standardul RS-232C spune c dac un terminal este la un capt al legturii, la cellalt capt este un DCE Dac se conecteaz un terminal la o staie Unix workstation, standardul RS-232C spune c staia de lucru este un DCE Dac se conecteaz un modem la un calculator, calculatorul va fi DTE
37
Conexiuni RS-232C
C o n e x i u n i s t a n d a r d p e n t r u c o n e c t o r i cu 2 5 pini i 9 pini. N u m e l e s e m n a l e l o r s u n referite la D T E . D e e x e m p l u , T x s e r e f e r la d a t e l e t r a n s m i s e d e la D T E i r e c e p i o n a t e la D C E
Function Transmitted Data Eeceived Data Eequest To Send Clear To Send Data Terminal Eeady Data Set Eeady Data Carrier Detect Eilig Indicator Frame Ground (chassis) Signal Ground
25-pin 2 3 4 5 20 6 8 22 1 7
9-pin 3 2 7 8 4 6 1 9
-
Direction From DTE to DCE To DTE from DCE From DTE to DCE To DTE from DCE From DTE to DCE To DTE from DCE To DTE from DCE To DTE from DCE Common Common 39
Conectri RS-232C
Pentru a conecta un PC la un modem e nevoie de un cablu DTE-DCE Pentru a conecta un PC la un terminal e nevoie de un cablu DTE-DTE Pentru a conecta o staie Sun la un PC e nevoie de un cablu DCE-DTE nuli modem (unde Rx i Tx sunt inversate) Pentru a conecta dou PC-uri e nevoie de un cablu DTE-DTE nuli modem Pentru doar dou tipuri de dispozitive (DTE i DCE) e nevoie de o sumedenie de cabluri cu permutri ale terminalelor
Shake Hands
Atunci cnd se face transmisie serial, trebuie s existe o cale de a mpiedica transmitorul s transmit noi date nainte ca receptorul s fi avut ansa s termine prelucrarea datelor anterioare Protocolul este numit comunicare cu confirmare (handshaking), sau controlul fluxului de date (flow control) Conform acestui protocol dup transmiterea unui octet (sau pachet de date), transmitorul nu va mai trimite nimic pn la confirmarea c receptorul este gata pentru o nou transmisie Exist trei forme de handshaking:
Hardware Software Fr confirmare
40
NO-HANDSHAKING
Se utilizeaz atunci cnd transmisia este mult mai lent dect procesul de recepie
De exemplu, dac se folosete un sistem embedded simplu ce lucreaz la 1 MHz i care transmite date ctre un calculator de mare vitez ce lucreaz la 4 GHz Chiar dac viteza de prelucrare a receptorului este foarte mare, dac maina ruleaz un sistem de operare obinuit, pot exista situaii cnd nu face fat la fluxul de date de intrare In aceste situatii, o soluie practic bun este s se includ handshaking
Dac se folosete un port serial pentru a furniza o interfa a calculatorului cu un utilizator uman, este sigur c omul nu poate tipri suficient de repede ca s pun calculatorul n dificultate Ca urmare, dac utilizai porturile seriale doar pentru accesul utilizator, sau pentru depanare, nu este nevoie de handshaking
41
Software handshaking
Este cunoscut i sub numele XON/XOFF Se utilizeaz doar la sistemele unde nu se poate implementa protocolul hardware, aa cum se ntmpl la transmisia prin linie telefonic Software handshaking folosete dou caractere pentru a indica o cerere de suspendare a transmisiei ("suspend transmission") , respectiv un caracter de gata pentru reluare ("clear to resume") Acestea sunt caracterele Ctrl-S (0x13) i Ctrl-Q (0x11) Dac se transmite doar text ASCII, totul va fi OK Dac se transmit date binare, datele pot fi interpretate ca i caractere de control
Soluia obinuit const n pre-procesarea datelor nainte de transmisie, prin conversie n caractere ASCII De exemplu octetul 0x2F se transform n caracterul ASCII "2" (0x32) plus "F" (0x46) Programele de la receptor vor face conversia invers n date binare
43
Hardware handshaking
Cnd transmitorul dorete s transmit, activeaz RTS, anunnd receptorul c sunt date de furnizat Receptorul activeaz CTS atunci cnd este gata s recepioneze noi date
=> fluxul de date este limitat la viteza cu care acestea pot fi prelucrate.
42
Cn M cH i n
C+ 1 1 V I. H + O 'jHlj -
"OP HD M I IN GP
44
va
RS-422
RS-422 este o interfat ce utilizeaz tensiune diferenial (ntre dou linii) pentru a transmite datele binare Permite lucrul n mediu cu interferen, pentru c diferena de tensiune ntre firele torsadate rmne aceeai RS-422 poate face transmisii de date pe cablu cu lungime de pn la 1.200 m
>
45
RS-422
Diferenele de tensiune dintre cele dou fire se ncadreaz n intervalul 4 V i 12 V
+2 2 6
47
RS-422
Legtura RS-422 conine un driver (D) i un receptor (R) legate printr-o pereche de fire torsadate Rt - rezistent terminare, anti-reflexie, de obicei de 100-120 Q.
Vtt
77777
GD N
GND
46
fti-422
^rrrrn^ ^rujorc
X
GNU
CND
48
RS-485
RS-485 este o variant a RS-422 utilizat pentru legarea dispozitivelor ntro reea de cost sczut n aplicaii industriale Permite mai multor noduri s schimbe informaii prin dou fire RS-485 este o arhitectur a master-slave
Toate tranzaciile sunt initiate de master, iar sclavul transmite doar atunci cnd i se cere acest lucru
Data In (Dl)
computer
r
Slave computer
^ ^
Stove computet Slave computer
Slave computer
tr
49
PWM
Este controllerul folosit de obicei pentru operaii de conversie DA PWM = Puise Width Modulation
De exemplu pentru un factor de umplere de 50 o i o amplitudine a formei de und dreptunghiulare de 5 V, tensiunea medie pe ciclu este 2.5 V De exemplu pentru un factor de umplere de 10 o i o amplitudine a formei de und dreptunghiulare de 5 V, tensiunea medie pe ciclu este 0.5 V
La ieirea PWM se folosete n acest caz un FTJ PWM poate fi folosit pentru a controla viteza unui motor electric PWM poate fi utilizat pentru a comanda intensitatea luminoas (reglabil) printr-un LED PWM poate fi utilizat pentru generarea de tonuri audio
IWtI
JLJl_il_
51
lCXliI
50