Proiect modul de transmisie serială UART

Proiect
8/10 (1 vot)
Domeniu: Electronică
Conține 1 fișier: doc
Pagini : 52 în total
Cuvinte : 9865
Mărime: 1.37MB (arhivat)
Publicat de: Casandra Scarlat
Puncte necesare: 8
Sa se scrie modelul Verilog al unui modul de transmisie seriala uart_tx.v si un modul de test testbench_tx.v

Extras din proiect

1. Port Serial (UART) – Tx

Sa se scrie modelul Verilog al unui modul de transmisie seriala uart_tx.v si un modul de test testbench_tx.v

Interfata:

Nume directie marime (nr de biti) descriere obs

reset_n input 1 reset general asincron

clk input 1 clock

tx output 1 transmisia seriala

load_en input 1 -semnal de control pentru incarcarea paralela a octetului ce urmeaza a fi transmis serial pe tx

-activ pe 1

load_data input 8 -data ce urmeaza a fi transmisa serial pe tx cand load_en e activ

baud_rate_period input 2 determina alegerea uneia din cele 4 rate de transfer:

00 –16

01 - 32

10 - 64

11 – 128

Nota: durata unui bit este egala cu clk_period * baud_rate_period.

load_ready output 1 circuitul este gata pentreu primirea load_data (semnaleaza preluarea load_data) Clientul poate prezenta o noua data

Descriere functionala:

Circuitul realizeaza codare seriala si transmite pe portul de iesire tx un sir de octeti primiti pe interfata paralela load_data.

Timing interfata paralela:

Circuitul incarca load_data intr-un registru intern inainte de transmisia seriala. Incarcarea se face daca load_en == 1 si daca load_ready ==1;

Dupa incarcarea datelor de pe portul load_data si pana la terminarea transmisiei, load_ready are valoarea 0, pentru a preveni o noua comanda. O noua data poate fi initiata pe interfata load_data & load_en doar daca load_ready == 1.

Timing interfata seriala:

Fiecare perioada a shift_clk din figura de mai jos dureaza un numar de clk de sistem in acord cu valoarea portului e intrare baud_rate_period din tabelul de mai sus, adica

shift_clk_period = clk_period * baud_rate_period

Pentru fiecare octet scris pe interfata paralela BYTE_VALUE[7:0], se vor transmite serial urmatorii biti:

0, BYTE_VALUE[0], BYTE_VALUE[1]... BYTE_VALUE[7], 1

Nota:

• primul bit este bitul START si este intotdeauna egal cu 0

• ultimul bit este bitul STOP si este intotdeauna egal cu 1

Testarea:

Modulul testbench va include instanta circuitulul testat si va genera semnalele de intrare pentru circuitul testat.

Sa se realizeze transmisia sucessiva a cate 4 octeti 0xaa, 0xab, 0xac, 9xdd pentru fiecare rata de transfer posibila.

2. Port Serial (UART) – Rx

Sa se scrie modelul Verilog al unui modul de receptie seriala uart_rx.v si un modul de test testbench_rx.v.

Nume directie marime (nr de biti) descriere obs

reset_n input 1 reset general asincron

clk input 1 clock

rx input 1 receptia seriala

rec_ready output 1 -semnal de semnalizare a existentei unui octet complet receptionat serial.

-activ pe 1

rec_data output 8 -data receptionalta serial prezentata in format parallel.

baud_rate_period input 2 determina alegerea uneia din cele 4 rate de transfer:

00 –16

01 - 32

10 - 64

11 – 128

Nota: durata unui bit este egala cu clk_period * baud_rate_period.

Rec_err output 1 Semnal de eroare; este active pe 1 si semnalizeaza faptul ca in perioada bitului de STOP rx nu are valoarea 1

Descriere functionala:

Circuitul realizeaza receptia seriala pe portul de intrare rx a unui sir de octeti; acestia sunt prezentati pe interfata paralela formata din porturile rec_data, rec_ready, rec_err.

Timing interfata seriala:

Fiecare perioada a shift_clk din figura de mai jos dureaza un numar de perioade clk confiorm cu valoarea portului de intrare baud_rate_period din tabelul de mai sus, adica:

shift_clk_period = clk_period * baud_rate_period

Pentru fiecare octet scris pe interfata paralela BYTE_VALUE[7:0], se vor transmite serial urmatorii biti:

0, BYTE_VALUE[0], BYTE_VALUE[1]... BYTE_VALUE[7], 1

Nota:

• primul bit este bitul START si este intotdeauna egal cu 0

• ultimul bit este bitul STOP si este intotdeauna egal cu 1

Circuitul este initial in stare incativa (rx == 1);

Circuitul trebuie sa detecteze tranzitia 1->0 si sa porneasca un contor ce numara de la 0 la baud_rate_period-1 de un numar de ori egal cu 8+1;

de fiecare data cand numaratorul ajunge la baud_rate_period-1 (momentele corespund sagetilor verticale din figura de mai jos) contorul o ia de la capat.

Fiecare moment simbolizat de sagetile din figura de mai jos este folosit pentru a citi valoarea rx si a o salva in registrul de receptie a datelor, pe pozitia corespunzatoare, mai putin ultimul bit, cel de stop care nu se salveaza; astfel, dupa receptia celor 8 biti (dupa cel de start si pana la cel de stop) se vor regasi pe portul rec_data impreuna cu rec_ready si (eventual) rec_error.

Timing interfata paralela:

-Dupa ce toti cei 8 biti ai unui octet plus bitul de STOP au fost receptionati si valoarea rx pentru bitul de STOP este egala cu 1 atunci valoarea octetului este scrisa pe rec_data, rec_ready devine 1 si rec_err devine 0. Aceste trei valori raman pe interfata paralela pana la detectarea unui bit de START pe interfata seriala.

-Dupa ce toti cei 8 biti ai unui octet plus bitul de STOP au fost receptionati si valoarea rx pentru bitul de STOP este egala cu 0 atunci valoarea octetului receptionat nu se inscrie in rec_data, rec_ready devine 1 si rec_err devine 1 (pentru a semnaliza eroarea de receptie).

Aceste trei valori raman pe interfata paralela pana la detectarea unui bit de START pe interfata seriala, dupa care rec_ready devine 0.

Preview document

Proiect modul de transmisie serială UART - Pagina 1
Proiect modul de transmisie serială UART - Pagina 2
Proiect modul de transmisie serială UART - Pagina 3
Proiect modul de transmisie serială UART - Pagina 4
Proiect modul de transmisie serială UART - Pagina 5
Proiect modul de transmisie serială UART - Pagina 6
Proiect modul de transmisie serială UART - Pagina 7
Proiect modul de transmisie serială UART - Pagina 8
Proiect modul de transmisie serială UART - Pagina 9
Proiect modul de transmisie serială UART - Pagina 10
Proiect modul de transmisie serială UART - Pagina 11
Proiect modul de transmisie serială UART - Pagina 12
Proiect modul de transmisie serială UART - Pagina 13
Proiect modul de transmisie serială UART - Pagina 14
Proiect modul de transmisie serială UART - Pagina 15
Proiect modul de transmisie serială UART - Pagina 16
Proiect modul de transmisie serială UART - Pagina 17
Proiect modul de transmisie serială UART - Pagina 18
Proiect modul de transmisie serială UART - Pagina 19
Proiect modul de transmisie serială UART - Pagina 20
Proiect modul de transmisie serială UART - Pagina 21
Proiect modul de transmisie serială UART - Pagina 22
Proiect modul de transmisie serială UART - Pagina 23
Proiect modul de transmisie serială UART - Pagina 24
Proiect modul de transmisie serială UART - Pagina 25
Proiect modul de transmisie serială UART - Pagina 26
Proiect modul de transmisie serială UART - Pagina 27
Proiect modul de transmisie serială UART - Pagina 28
Proiect modul de transmisie serială UART - Pagina 29
Proiect modul de transmisie serială UART - Pagina 30
Proiect modul de transmisie serială UART - Pagina 31
Proiect modul de transmisie serială UART - Pagina 32
Proiect modul de transmisie serială UART - Pagina 33
Proiect modul de transmisie serială UART - Pagina 34
Proiect modul de transmisie serială UART - Pagina 35
Proiect modul de transmisie serială UART - Pagina 36
Proiect modul de transmisie serială UART - Pagina 37
Proiect modul de transmisie serială UART - Pagina 38
Proiect modul de transmisie serială UART - Pagina 39
Proiect modul de transmisie serială UART - Pagina 40
Proiect modul de transmisie serială UART - Pagina 41
Proiect modul de transmisie serială UART - Pagina 42
Proiect modul de transmisie serială UART - Pagina 43
Proiect modul de transmisie serială UART - Pagina 44
Proiect modul de transmisie serială UART - Pagina 45
Proiect modul de transmisie serială UART - Pagina 46
Proiect modul de transmisie serială UART - Pagina 47
Proiect modul de transmisie serială UART - Pagina 48
Proiect modul de transmisie serială UART - Pagina 49
Proiect modul de transmisie serială UART - Pagina 50

Conținut arhivă zip

  • Proiect Modul de Transmisie Seriala UART.doc

Alții au mai descărcat și

Descrierea și Simularea unui Procesor cu Ajutorul Limbajului Verilog

Introducere În prezent dezvoltarea tehnico-ştiinţifică se bazează pe progresele electronicii digitale de calcul şi procesare a datelor şi mai mult...

Memorie Adresabilă prin Conținut

1. Introducere Memoria adresabilă prin conţinut ( CAM – content addresable memory ) reprezintă o memorie în care căutarea se face după o cheie de...

Monitorul

O clasificare sumara a monitoarelor ar putea fi dupa unul din criteriile : a) dupa culorile de afisare -monitoare monocrome (afiseaza doar doua...

Stabilizator de Tensiune

3. Functionarea În general, pentru realizarea stabilizatoarelor de tensiune se folosesc proprietatile diodelor. Cel mai simplu tip de...

Te-ar putea interesa și

Parcare controlată prin microsistem Arduino și aplicație Android

Capitolul 1. Parcare inteligentă, principii de funcționare 1.1 Introducere Acest proiect își propune să ușureze căutarea unui loc de parcare...

Sistem de urmărire a consumului de combustibil pe o flotă auto

1. Introducere Telematica este acea disciplină științifică și tehnologică care analizează și implementează serviciile și aplicațiile care folosesc...

Robot automat de navigație

Capitolul 1. Introducere Scopul acestui proiect este de a face un robot capabil să navigheze în jurul obstacolelor într-o încăpere folosind...

Ai nevoie de altceva?