La comunicazione seriale è controllata da vari registri, (fig 1) che impostano la porta nel modo desiderato dall’utente; questa può essere configurata per inviare o ricevere word da 8,16,24 o 32 bit simultaneamente. Il clock che scandisce le varie operazioni di trasferimento, può essere esterno o generato internamente attraverso i timer counter, period registers e il segnale TSTAT.
Fig 1 – Registri dedicati alla gestione della porta seriale. |
Fig 2 – Schema a blocchi della porta seriale. |
Nella figura 2 viene riportato lo schema a blocchi della porta seriale, usata per trasmettere: quando il data-transmit register (DXR) è carico, tutti i bit vengono trasferiti nello XSR (transmit shift-register) per essere trasmessi all’esterno serialmente. Nel momento in cui il trasferimento dal registro DXR a quello XSR è completato viene generato un interrupt interno XINT. Lo svuotamento del registro XSR avviene a cominciare dal bit più significativo. Il segnale FSX (frame synchronization) ci indica l’inizio del processo di trasmissione dati DX.
Vengono qui di seguito riportati i vari segnali:
Fig 3 – Segnali relativi alla porta seriale.
Nella figura 2 viene rappresentata la scelta di operare con i segnali esterni, che possono essere presi attivi alti o bassi (ad esempio CLKX o !CLKX) agendo sugli opportuni registri. Uno schema analogo riguarda la fase di ricezione.
La porta seriale, appena analizzata, è sincrona ed il suo uso canonico consiste nel far comunicare il DSP con altri dispositivi, ad esempio un A/D. Nel presente lavoro, invece è stata impiegata come porta asincrona allo scopo di inviare direttamente al PC di bordo, tramite la seriale RS-232, i dati ottenuti in seguito all’elaborazione. Il problema sorto dalla mancanza di una UART, come si vedrà nell’appendice A.8, e stato totalmente risolto via software, senza l’aggiunta di circuiteria esterna ad eccezione del chip MAX232 della Maxim per trasformare i livelli di tensione uscenti dal DSP in quelli voluti dalla seriale del PC.
Home | Precedente | Successivo