Documente Academic
Documente Profesional
Documente Cultură
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 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ă.
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.
4
3. Caracteristici USART
Tehnica de comunicație între plăci USART este eficientă datorită mai multor
proprietăți specifice:
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.
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.
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.
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.
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ă.
9
În stânga am setat placa pentru recepție iar în dreapta este setat pentru placa de transmisie.
Î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ă.
11
7. Concluzii
12
Bibliografie
1. https://en.wikipedia.org/wiki/Universal_synchronous_and_asynchronous_receiver-
transmitter
2. http://www.circuitbasics.com/basics-uart-communication/
13