Sunteți pe pagina 1din 13

PROIECT MICROCONTROLERE

Comunicatii de tip USART

Student: Profesor coordonator:

Moroșan Dimitrie Tcaciuc Anda-Simona

1
Contents
1. Introducere.....................................................................................................................................3
2. Scopul lucrării................................................................................................................................4
3. Caracteristici USART.....................................................................................................................5
4. Desfasurarea lucrarii.......................................................................................................................7
5. Aplicatia practica............................................................................................................................8
6. Rezultate finale.............................................................................................................................11
7. Concluzii......................................................................................................................................12
Bibliografie...........................................................................................................................................13

2
1. Introducere

Un receptor-emițător asincron universal (UART) este un dispozitiv hardware computerizat pentru


comunicații seriale asincrone în care formatul și viteza de transmisie a datelor sunt configurabile.

Nivelurile și metodele de semnalizare electrică sunt gestionate de un circuit de conducere extern


către UART.

Un UART este de obicei un circuit integrat individual utilizat pentru comunicațiile seriale pe un
computer sau un port serial al unui dispozitiv periferic. Unul sau mai multe periferice UART sunt
integrate în mod obișnuit în cipurile de microcontroller. Un dispozitiv asemănător,receptor-
transmițător universal sincron și asincron (USART) acceptă, de asemenea, funcționarea sincronă.

USART oferă un mod full-duplex flexibil de schimbare a datelor cu echipamente externe


ce necesită un format standard NRZ (Non Return To Zero [NRZ, 2014]-O modalitate digitală
de transmitere a datelor, în care poziţiile binare low şi high, reprezentate prin numeralii 0 şi 1,
sunt transmise prin intermediul unor tensiuni constante în curent continuu.[What, 2011])serial
asincron a datelor. Oferă ogamă largă de baud rate (numărul de schimbări distincte a
semnalului în mediul de transmisie, într-un semnal digital [Baud, 2015]) utilizând un
generator fracţional de baudrate. Suportă un mod de comnunicație unidirecţional pentru
modul sincron şi half-duplex pentru comunicația pe un singur fir. Suportă de asemenea LIN
(Local Interconnection Network), Smartcard Protocol and IrDA (Infrared Data Association)
specificaţii SIR ENDEC dar şi operaţii cu modem-ul (CTS/RTS). Permite și comunicaţii
multiprocesor. Comunicaţiile de viteză ridicată sunt posibile prin utilizarea de DMA pentru
configuraţie multibuffer.

3
2. Scopul lucrării

Scopul acestui proiect este de a realiza comunicația intre două plăci în modul DMA.
La începutul programului, apelam o funcție pentru a reseta toate dispozitivele periferice
ale plăcii și pentru a initializa interfața flash. Ceasul sistemului va fi setat la 168 Mhz.

Pentru implementarea acestui proiect vom folosi:

- Doua placi STM32F407Discovery


- Doua cabluri USB
- Doua cabluri female-to-female.

4
3. Caracteristici USART

Tehnica de comunicație între plăci USART este eficientă datorită mai multor
proprietăți specifice:

- Comunicaţii asincrone, full duplex;

- Format standard NRZ (Mark/Space);

Configurarea metodei oversampling (proces de eşantionare a unui semnal la o


frecvenţă mai ridicată decât rata Nzquist)[Over 2015]cu 16 sau 8 pentru a oferi o
flexibilitate între viteză şi toleranţa ceasului;

Sisteme de generare fracţionale a baud rate (rata de transmisie) –Baud rate de


transmisie şi recepţie comună programabilă (valorile baud rate pentru frecvenţa maximă a
ABP pot fi găsite în tabele standard).

Posibilitatea de trimitere LIN Master Synchronous Break și posibilitatea de detectare a


LIN slave break –generația pauzei (break) de 13 biți și detecția pauzei (break) de 10/11
biți atunci când USART este configurat hardware pentru LIN.

Capacitate de emulare Smartcard –Interfața Smartcard suportă protocolul Smarcards


asincron definit de standardele ISO 7816-3 –biții de stop de 0.5, 1.5 pentru operația
Smartcard.

Comunicație multibuffer configurabilă cu DMA (Direct Memory Access) –Buffer-area


octeților transmiși/recepționați în SRAM-ul rezervat prin utilizarea DMA-ului centralizat.

Două moduri de trezire a receptorului: Bitul de adresă (MSB (Most significant byte),
al 9-lea bit), linia Idle.

Interfața este conectată extern la alt dispozitiv prin trei pini, așa cum este prezentat în
figura 4. Orice comunicație bidirecțională USART necesită minim doi pini: Receive Data
In (RX) și TransmitData Out (TX):

 RX:Receive Data Input, este intrarea de date serială. Tehnicile de oversampling sunt
utilizate pentru recuperarea datelor prin diferențierea între datele de intrare valide și
zgomot.

 TX:Transmit Data Output. Atunci când transmițătorul este dezactivat, pinul de ieșire
se întoarce la configurația porturilor I/O. Pinul TX este pe nivelul high atunci când
transmițătorul este activat și nu este nimic de transmis. În modurile cu un singur fir
(single-wire) și smartcard, acest I/O este utilizat pentru transmisia și recepția datelor (la
nivel USART, datele sunt recepționate în SW_RX).

5
UART va transmite date iar în același timp primește datele dintr-o magistrală de date.
Magistrala de date este utilizată pentru a trimite date către UART de către un alt dispozitiv
precum un procesor, memorie sau microcontroler. Datele sunt transferate din magistrală,
de date către UART-ul de transmitere în formă paralelă. După ce UART-ul care transmite
primește datele paralele din magistrala de date, adaugă un bit de început, un bit de paritate
și un bit de oprire, creând pachetul de date.

În continuare, pachetul de date este transmis serial, bit cu bit la pinul Tx. UART-ul
care primește citeste pachetul de date bit cu biț la pinul său Rx. UART-ul primitor
transformă apoi datele în formă paralelă și elimină bitul de început, bitul de paritate și biții
de oprire.

În cele din urmă, UART-ul care primește transferă pachetul de date în paralel cu
magistrala de date de la capătul de primire.

Fig. 1 Comunicația între două cip-uri USART

6
4. Desfasurarea lucrarii
La începutul programului, apelăm o funcție pentru a reseta toate dispozitivele periferice ale plăcii
și pentru a initializa interfața flash. Ceasul sistemului va fi setat la 168 Mhz.

Pentru implementarea acestui proiect vom folosi:

Două plăci STM32F407Discovery

Două cabluri USB

Două cabluri female-to-female.

Prima placă așteaptă comanda de la utilizator prin intermediul apăsării unui buton. Odată ce s-a
realizat acest lucru, informațiile vor fi transmise prin UART 2 în modul DMA. Cea de a doua placă
este configurată pentru a primi informații. Odată ce s-a facut recepția de informații, cea de a doua
placă v-a transmite inapoi aceleași informații către prima placă. Ambele plăci vor compara
informațiile trimise cu informațiile primite inapoi. Daca informațiile sunt aceleași, se va aprinde LED-
ul verde. În caz contrar, se va aprinde LED-ul rosu.

Etapele transmisiei și recepției pot fi confirmate de către indicatoarele luminoase aflate pe cele
două plăci, după cum urmează:

- LED-ul 6, albastru, este aprins atunci când procesul de trimitere de date între cele două plăci
este complet
- LED-ul 4, verde, este aprins atunci când procesul de primire de date între cele două plăci este
complet
- LED-ul 3, portocaliu, este aprins atunci când se detectează o eroare de tip callback. Dacă nu
sunt erori acesta va clipi, indicându-se așteptarea începutului transmisiunii de date
- LED-ul 5, roșu, care este aprins atunci când este detectată o eroare în procesul de transmitere
de date.

7
5. Aplicatia practica

Pentru început a trebuit să conectăm cele doua plăci împreună pentru a putea realiza transmisia
de date.

Conectarea s-a realizat în modul următor: pinul A9 la pinul A10 și invers, adică RX la TX și
TX la RX.

Fig. 2 – Conectarea plăcilor pentru comunicația USART

8
A trebuit să setăm din cod cele două plăci, folosind codul regăsit în exemplu însă nu le-am
setat corespunzător iar transmisia nu s-a realizat cu succes, acest lucru fiind indicat de led-ul roșu
(Figura 2) care s-a aprins când am dorit să realizăm transferul de informații.

Fig. 3 – Comunicatie cu erori

Etapa următoare presupune corectarea codului și setarea corectă a celor două plăci astfel încât
o placă să recepționeze, iar cealantă să transmită.

Fig. 4 – Modificarea codului

9
În stânga am setat placa pentru recepție iar în dreapta este setat pentru placa de transmisie.

Fig. 5 – Modificarea codului

Fig. 6 – Modificarea codului

În figura 4 cât și în figura 5 se pot observa diferențele între coduri pentru recepție (partea stângă)
și pentru transmisie (partea dreaptă), mai exact în partea dreaptă unde am folosit doar codul pentru
recepție, punând în comentarii secțiunea de cod destinată pentru transmisie, iar în partea dreaptă
punând în comentarii partea de recepție.

10
6. Rezultate finale

În urma editării codului din fisierul main.c după am arătat în imaginea de pe slide-ul
precedent, s-a făcut compilarea, încărcarea codului pe placă și rularea acestuia.
Comunicatia între cele două plăci s-a efectuat cu succes după cum se poate observa din
figura de mai jos, acest lucru fiind indicat de indicatorul verde led de pe placă.

Fig. 7 – Transferul de date realizat cu succes

11
7. Concluzii

După cum am menționat și la începutul prezentării, în urma efectuării acestui proiect, am


observat modul în care se realizează comunicațiile de tip USART între cele două plăci.
Singura provocare pe care am avut-o a fost întelegerea codului din fisierul main.c. Acest lucru
a fost necesar pentru a face modificările necesarile în cod pentru a seta corect parametrii celor
două plăci.

12
Bibliografie
1. https://en.wikipedia.org/wiki/Universal_synchronous_and_asynchronous_receiver-
transmitter
2. http://www.circuitbasics.com/basics-uart-communication/

13

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