Sunteți pe pagina 1din 17

Lucrare de Laborator CD – Nr.

Transmisia Seriala. Dispozitive UART/USART

1. Introducere

1.1 Scopul lucrării


Scopul lucrării de laborator este acela de a familiariza studenții cu aspectele practice de bază pentru
utilizarea în aplicații a comunicației de date folosind transmisia serială bazată pe dispozitive de tip
UART/USART (Universal Asynchronous Receiver Transmitter/ Universal Synchronous-Asynchronous
Receiver Transmitter). Astfel de dispozitive sunt intergrate în structuri de tip SoC (System on Chip).

1.2 Utilizarea magistralei RS232


Principiul de funționare, logica de transmisie au ramas aceleași chiar dacă dispozitivele recente sunt apte
să lucreze pe 16, 32 sau 64 de biți și sunt părti componente ale microcontrollerelor/procesoarelor de
ultima oră, putând fi programate pe baza unui sistem de registre mai complex.

2. Brevier Teoretic
2.1 Comunicația serială vs paralelă
Într-un sistem de comunicație digital, transmisia datelor se poate face in 2 moduri: serial si paralel. Dacă
în primul mod datele se transmit pe un singur fir, bit cu bit, in cel de-al doilea mod, cel paralel, datele se
pot transmite pe mai multe fire conectate în paralel (informația este transmisă simultan pe mai multe
fire).

Fig 1 – Comunicația paralelă vs serială

1
Lucrare de Laborator CD – Nr. 3

Diferențele între cele 2 tipuri de transmisie sunt prezentate in urmatorul tabel:


Caracteristicile Transmisie serială Transmisie paralelă
transmisiei
Descriere Transmisie bit cu bit Mai mulți biți transmiși simultan
Viteza de transmisie Scazută Ridicată
Distanta de transmisie Ridicată Scazută
Aplicabilitate Comunicația între microcontroller-e Circuite integrate
Retele de calculatoare Memorii (RAM)
Mediul de transmisie Un singur canal pe care sunt Biții transmiși simultan pe mai
transmiși biții, unul cate unul multe canale paralele

2.2 Diferențe între UART și USART


Deși adesea noțiuniile sunt confundate între ele modulele UART SI USART diferă prin prezența sau
absenta semnalului de tact (clock) pentru sincronizarea intre circuite. Prin semnalul de tact se poate
realiza în cazul USART-ului transimisa numai a datelor utile fară a mai fi nevoie de date auxialiare
transmise pe langă, date precum Start bit, Parity bit etc. Din punct de vedere operațional orice circuit
USART poate sa functioneze si in modul asincron.
Comparând cele două moduri ajungem la urmatorul tabel:
UART USART (Mod sincron)
Are nevoie doar de linia de date Are nevoie de linia de date și de o sursa de clock
Rata de transimisie a datelor poate varia Rata de transmisie a datelor este fixă
Comunicatie Full duplex Comunicatie Half duplex
Viteza de transfer maximă este in jurul a 115200 Permite viteze mai mari de transfer
bps

Endianness (Big and Little Endian)


Endianness-ul se referă la ordinea octețiilor atât în memorie cât și în transmisia de date. Distingem două
abordări:
1) Big endian, adesea denumit format Motorola în cadrul căruia cel mai cel mai semnificativ octet
(MSB) este stocat sau transmis primul.
2) Little Endian denumit și format Intel în cadrul căruia cel mai cel mai puțin semnificativ octet
(LSB) este stocat sau transmis primul.
Iulstrarea celor două concepte se regăsește în Fig 2.

2
Lucrare de Laborator CD – Nr. 3

Fig 2 Diferența între little și big endian

La ora actuală nu s-a impus niciuna dintre abordări în detrimentul celeilalte astfel că în practică pot
aparea probleme la conectarea diferitelor circuite în cazul in care nu se ține cont de oridinea cerută de
către producător.
2.3 Aspecte generale despre comunicații prin RS232
Un sistem de comunicaţii de date are urmatoarele parţi componente:
o Sursa - echipamentul care generează datele;
o Destinaţia - echipamentul care primeşte datele;
o Canalul de comunicaţie (mediul).
Echipamentul sursă poate fi uneori şi receptor, sau invers. Din acest punct de vedere avem
urmatoarele tipuri de transmisii:
1. Transmisia simplex. Pe canal, datele se transmit într un singur sens. Exemplu: transmisia Radio
TV clasică.
2. Transmisia duplex (sau full duplex). Pe canal, datele se transmit concomitent în ambele sensuri.
Echipamentele sunt concomitent sursa şi receptor. Exemplu: telefonie, reţele de calculatoare.
3. Transmisia semiduplex. Pe canal, datele se transmit în ambele sensuri, dar nu concomitent, ci în
intervale de timp distincte. Exemplu: interfoane, staţii radio mobile.
Un model general a unui sistem de comunicaţii de date este aşa numitul sistem de comunicaţii cu 7 parţi
(Fig.3).
Unde:

1 2 3 5 6 7
4
DTE DCE DCE DTE
Fig.3
1,7 - DTE (Data Terminal Equipment) este un terminal de comunicaţii de date
3,5 - DCE (Data Communication Equipment) este un modem
2,6 - sunt interfeţele dintre DTE şi DCE

3
Lucrare de Laborator CD – Nr. 3

Prin interfaţa înţelegem o specificaţie, un standard, prin care sunt definite caracteristicile mecanice,
electrice şi logice prin care doua echipamente se interconectează. În sens mai larg, adesea, prin interfaţa
se înţelege dispozitivul hardware care implementează funcţionalitaţile definite anterior.
4 - este canalul de comunicaţie.
Ne propunem, în continuare, sa prezentăm pe scurt interfaţa serială standardizata sub acronimul RS232.
Standardul a fost elaborat iniţial în SUA de catre organismul EIA (Electronic Industry Association).
Ulterior, el a fost adoptat şi în Europa, sub denumirea V24, de catre CCITT.
Un exemplu de comunicație RS232 este ilustrat (Fig. 4), iar semnificatiile funcționale in Tabel, mai jos:

Fig. 4 Comunicatie RS232

4
Lucrare de Laborator CD – Nr. 3

Tabel cu specificații funcționale:

5
Lucrare de Laborator CD – Nr. 3

Nivelel de tensiune sunt: - 25V ÷ - 3V pentru “1” logic şi + 3V ÷ + 25V pentru “0” logic.

Fig. 5 Nivelele de tensiune și valorile logice asociate


2.4 Structura USART 8251.
O schema bloc si o implementare (utilizare) hardware este redată în fig. 6 a), respectiv fig. 6 b):

Fig. 6 a)

6
Lucrare de Laborator CD – Nr. 3

Fig. 6 b)
Interfața permite transferul sincron sau asincron. Formatul datelor in transferul asincron este (fig.7):

Fig. 7
Caracteristici: Sincronizare la nivel de caracter prin bitul START, 5 – 8 biţi de date, Opţional bit de
paritate, 1, 1.5, 2 biţi de STOP.
Informația între procesor (microcontroler) si 8251 se schimba pe baza unor registre tampoan pentru
receptie si emisie. Structura lor este conform fig. 8.

Fig.8

Recepţia: Pentru creşterea vitezei, a fost implementat conceptul de suprapunere (fig. 9).

7
Lucrare de Laborator CD – Nr. 3

Fig. 9 Suprapunerea la receptie.


 Tamponul pentru recepţie este alcătuit din 2 registre, RA şi RB;
 Datele sunt preluate de pe linia seriala în registrul RB, se elimina informaţia de cadrare,
şi, dupa asamblarea unui caracter, acesta este transferat în registrul RA şi, simultan, este
activat terminalul RXRDY şi rangul cu acelaşi nume din registrul de stare.
 Prin acest semnal, circuitul anunţa microprocesorul ca are un caracter asamblat pe care
poate sa i-l ofere.
 Microprocesorul va trebui sa preia conţinutul registrului RA în timpul cât se asambleaza
un nou caracter în registrul RB.
 Dacă nu este îndeplinită aceasta cerinţa, vechiul caracter se pierde, întrucât în RB se va
transfera noul caracter şi circuitul va detecta eroare de ritm şi va poziţiona un rang din
registrul de stare, anunţând astfel exteriorul că a aparut aceasta eroare.
 În acest fel, s – a realizat suprapunerea între timpul necesar preluării şi asamblării unui
caracter de pe linia serială cu timpul necesar citirii caracterului asamblat de către
microprocesor.
 Semnalul RXRDY este dezactivat doar de un semnal activ pe linia /RD, ceea ce
corespunde unei citiri din partea microprocesorului.
Emisia:
 Suprapunerea este ilustrata în fig.10.

Fig. 10
 Tamponul pentru transmisie este alcătuit din 2 registre, TA şi TB (vezi fig.5).
 Unitatea centrala încarca un caracter în registrul TA, circuitul îl transfera în registrul TB,
de unde caracterul este serializat şi transmis pe linie.
 Dupa transferul conţinutului registrului TA în TB, circuitul activeaza semnalul TXRDY
comunicând microprocesorului ca poate prelua un nou caracter.
 Simultan este activat şi rangul cu acelaşi nume din registrul de stare.

8
Lucrare de Laborator CD – Nr. 3

 Dezactivarea terminalului TXRDY se face de primul front al semnalului /WR care


corespunde operaţiei de scriere a unui nou caracter de catre microprocesor.
 Terminalul TXRDY este activat la îndeplinirea condiţiilor descrise mai sus doar daca
transmisia poate avea loc, adica rangul TXE din cuvântul de comanda este 1 şi terminalul
/CTS = 0;
 De remarcat ca rangul TXRDY din registrul de stare este activat indiferent de starea
rangului TXE şi a terminalului /CTS.
 Terminalul TXE este activat atunci când caracterul din TB a fost serializat şi transmis,
indicând microprocesorului ca tamponul de transmisie este gol.
 Daca microprocesorul nu scrie o noua data în registrul TA, pâna când circuitul a terminat
de serializat caracterul din TB, acesta va detecta eroare de ritm la transmisie şi va
poziţiona rangul corespunzator din registrul de stare.
 De remarcat ca eroarea de ritm la recepţie este distructiva, în sensul ca se pierd caractere
pe când la transmisie nu este distructiva, provocând doar scaderea vitezei transmisiei.
 Semnalele TxRDY şi RxRDY pot fi surse de cereri de întrerupere.

Exemple de conexiuni:

Fig. 11 Conexiune cu protocol hardware folosind RDS/CTS si DTR/DSR

Fig. 12 Conexiune cu număr minim de fire pentru protocol soft X-ON/X-OFF

9
Lucrare de Laborator CD – Nr. 3

Programarea circuitului se face pe baza unei logici illustrate în fig.13.

Fig.13
Structura cuvantului de mod pentru transmisie asincrona este: cea din fig. 14, cuvantul de comanda este
în fig.15, iar cuvântul de stare în fig. 16.

Fig.14
10
Lucrare de Laborator CD – Nr. 3

Fig. 15

Fig.16
Utilizarea în cadrul proiectelor de electronică industrială şi comunicatii a numeroase componente
comune precum: Microcontroller (uC), LCD, EEPROM, RAM, Real Time Clock, Convertoare analog-
numerice sau numeric-analogice, diferiti senzori (de temperatura, de presiune etc.) a determinat
necesitatea dezvoltării acestei interfețe, sub forma unor noi circuite.

EXEMPLU DE IMPLEMENTARE
Pentru schema din fig. 5 b) să se realizeze o interfaţa seriala cu circuitul 8251 transferul facându–se prin
program. Datele iniţiale ale transferului sunt: 8 biţi de date, fară paritate, 2 biţi de STOP, factor de
multiplicare 16, Rata de transfer: 9600 bps.

11
Lucrare de Laborator CD – Nr. 3

Sunt relevante:
 Rutina de programare a circuitului specializat,
 Rutinele de emisie şi recepţie.
Rezolvare:
Adresele de port: 00H pentru date şi 02H pentru comenzi/ stari;
 Rutina de programare:
MOV AL,0CEH ; cuvânt de mod
OUT 02H,AL
MOV AL,15H ; cuvânt de comandă
OUT 02H,AL
 Rutina de emitere caracter:
Emite: IN AL,02H ; citire şi testare rang TxRDY din cuvântul de stare
RCR AL,1
JNC Emite
MOV AL,CL ; se preia data din registrul CL
OUT 00H,AL
RET
 Rutina de recepţie caracter:
Recept: IN AL,02H ; citire şi testare rang RxRDY din cuvântul de stare
RCR AL,2
JNC Recept
IN AL,00H ; se preia data de la 8251
MOV CL,AL ; se depune data în registrul CL
RET

2.5 Structura USART a microcontroller-ului Atmega328p.


USART-ul prezent pe microcontroller-ul ATMEGA328P prezintă urmatoarele caracteristici:
- Operare Full Duplex (Independent Serial Receive and Transmit Registers)
- Operare în mod sincron si asincron
- Suportă cadre cu 5, 6, 7, 8, sau 9 biți de date și 1 sau 2 biți de stop
- Generarea și verificarea din HW a bitului de paritate
- Detectia de “OverRun” la nivel de date
- Detectia erorilor de format
- Filtrarea automată a zgomotelor (include detecția de biti falși de start și un filtru trece jos)
O schemă bloc este redată în fig. 17 și o implementare (utilizare) descrisă în continuare.

12
Lucrare de Laborator CD – Nr. 3

Fig. 17

Se observa trei zone principale:


a) Generatorul de tact;
b) Emitatorul;
c) Receptorul.

Schema bloc a generatorului de tact este ilustrat in fig. 18.

13
Lucrare de Laborator CD – Nr. 3

Unde semnalele sunt:

Generatorul de tact are scopul de a genera tactul pentru transmisie și receptie și poate fi configurat în
modurile: asincron normal, asincron double speed, sincron master si sincron slave.
În modurile asincrone și sincron master generatorul fi cel care determina baud rate-ul, setarea
registrului aferent se face confrom cu urmatoarea formulă (în tabelul ce urmează):

Formatul datelor in transferul asincron este (fig.19):

14
Lucrare de Laborator CD – Nr. 3

Fig.19
Pentru transferul sincron se poate alege, funcție de aplicație, ca citirea și scrierea să se facă pe front
urcător sau pe front coborâtor al semnalului de clock. Modul de operare sincron este ilustrat in fig. 20.

Fig.20
Dacă este nevoie de utilizarea unui bit de paritate acesta se poate fi par sau impar și se defineste prin
operația de sau pe biții de data

Pentru a avea loc citirea și scrierea de date perifericul de USART trebuie itițializat, un exemplu de
inițializare este urmatorul:

15
Lucrare de Laborator CD – Nr. 3

Pentru a asigura transmisia sau receptia tuturor datelor se poate proceda in două moduri polling sau
întrerupere. Pentru citirea prin polling pașii ce trebuie urmați sunt descrisi in diagrama din fig. 21 a) de
mai jos.

Fig. 21
Diagrama se ”traduce” în cod în felul următor:

Pentru scrierea datelor și verificarea scrierii prin polling, pasii ce trebuie urmati sunt descriși în diagrama
din fig. 21 b). Diagrama se ”traduce” in cod in felul urmator:

Detectia de erori se face prin intermediul registrului UCSRnA, astfel se pot determina erori de paritate,
suprapuneri de date, și de format.
Documentatia completă a microcontroller-ului Atmega 328p se gaseste la urmatorul link:
http://www.atmel.com/Images/Atmel-42735-8-bit-AVR-Microcontroller-ATmega328-
328P_datasheet.pdf

16
Lucrare de Laborator CD – Nr. 3

3. Parte practica

1. Considerând transmisia serială asincronă să se deseneze diagrama de timp pentru transmisia


codului ASCII pentru caracterele A, Q având urmatoarele caracteristici:
a) 8 biti de date, 1 stop bit, fară bit de paritate
b) 8 biti de date, 1 stop bit, paritate even
2. Folosind placa de dezvoltare Arduino sau simularea în mediul Proteus să se realizeze
transmisia/recepția de mesaje pe interfața USART prin polling si prin intrerupere

4. Tema proiect

Să se realizeze in mediul Proteus comunicația serială între 2 microcontrolere Arduino328p in modul


asincron.
Să se realizeze în mediul Proteus comunicația RS232 folosind circuitul MAX232, înregistrand secvența
de date și nivelele de tensiune.

BIBLIOGRAFIE
1. Documentație Interfaț a USART 8251 .
2. Documentație circuite 8253, Max 232, 74LS138.
3. Documentatie Atmega328p
4. Proiectarea microsistelelor digitale - Note de curs (M. Popa)

OBSERVAȚII
(i) - La examinarea de final de curs NU este nevoie ca studenţii să memorize poziţia fiecărui bit de
programare. Întrebarea de la test va fi asociată cu un text care va conţine toate datele necesare rezolvării.
(ii)- Nu se poate proiecta o aplicaţie cu datele furnizate de acest material, pentru că modulul este didactic şi
nu conţine detalii privind variaţia în timp a semnalelor, valorile lor logice în care semnalele sunt active, etc.
Pentru proiectare este nevoie de consultarea foilor de catalog.

17

S-ar putea să vă placă și