Sunteți pe pagina 1din 17

USART

Proiect Mocrocontrolere
Moroșan Dimitrie
EA 3341b
Cuprins

 Introducere
 Scopul proiectului
 Componentele folosite
 Modul de functionare al programului
 Aplicație practică
 Prezentarea video
 Concluzie
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.
 Oferă o gamă 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.
 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.
 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).
Scopul proiectului

 Acest proiect a avut ca scop realizarea unei comunicații USART între două
plăci STM33F407 în modul DMA.
 Deasemenea am învățat că trebuie să conectăm într-un anumit mod cele două
plăcuțe pentru a se realiza transferul de date cu succes.
Componente folosite

 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.
Modul de funcționare al programului

 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
făcut recepția de informații, cea de a doua placă v-a transmite înapoi
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.
Modul de funcționare al programului

 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 cand se detecteaza o eroare de tip
callback. Dacă nu sunt erori acesta va clipi, indicandu-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.
Aplicația practică

 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.
Aplicația practică

 Am 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 care s-a aprins când am dorit să
realizăm transferul de informații.
Aplicația practică

 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ă.
Aplicația practică

 Î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ă.
Prezentare video
Concluzie

 După cum am menționat și la începutul prezentării, în urma efectuarii 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.
Vă mulțumesc pentru atenție!

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