Il microcontrollore - ST53X301

Il crescente interesse verso la logica Fuzzy, in seguito al successo commerciale dei prodotti Fuzzy che sono stati sviluppati in prevalenza nei paesi asiatici, ha indotto molte ditte che producono hardware a realizzare microcontrollori specializzati con hardware fuzzy dedicato.

Il microcontrollore utilizzato nella realizzazione del progetto oggetto di questa tesi è un microprocessore a 8-bit della STMicroelectronics dalla sigla “ST52X301”.

Il componente ST52X301 è un dispositivo della famiglia W.A.R.P. dei microcontrollori DualLogic ad 8-bit in grado di gestire sia algoritmi booleani sia fuzzy.

Attualmente è disponibile in due versioni: una dotata di una memoria EPROM (ST52E301) e una seconda versione (ST52T301) di tipo OTP (one time programmable).

La prima versione, grazie alla possibilità di poter cancellare e di poter riprogrammare il controllore un gran numero di volte, è utilizzata durante la fase di realizzazione del prototipo.

Il dispositivo è realizzato e prodotto dalla STMicroelectronic usando la tecnologia a 0.7 micron CMOSM5E. La frequenza di lavoro può essere fissata mediante un segnale esterno oppure mediante un quarzo e deve essere necessariamente una tra queste tre alternative: 5, 10 e 20 MHz.

Grazie alla coesistenza delle due logiche in un singolo chip è possibile utilizzare, per la descrizione dei processi, anche il modello linguistico tipico della logica fuzzy che sta diventando uno standard di riferimento per i prodotti industriali.

La struttura interna di questo componente è mostrata in fig.1.2‑1. Esso si compone principalmente di: unità di controllo (CU), una unità logica-aritmetica (ALU), una unità di elaborazione fuzzy (FUZZY CORE), una serie di registri di vario uso e una EPROM di 2 Kbyte contenente il programma di esecuzione.

Diagramma a blocchi che mostra le funzioni del micro controllore

Figura 1.2‑1:Diagramma a blocchi rappresentativo dell’architettura interna del ST52X301.

 

Sono presenti, inoltre, tre unità periferiche per l’interfacciamento del processore con il mondo esterno: un convertitore analogico-digitale, una porta parallela ed una porta seriale. Completano l’architettura del microcontrollore una unità per la generazione dei segnali PWM e un TIMER, ovvero un contatore programmabile a 8 bit.

Questo controllore si differenzia da quelli convenzionali soprattutto per la presenza al suo interno del “FUZZY CORE”, un blocco in grado di svolgere tutte le funzioni di un sistema fuzzy: fuzzificazione, inferenza e defuzzificazione.

Questo blocco oltre a consentire l’utilizzo della logica fuzzy è organizzato in modo tale da cooperare con la parte a logica tradizionale.

Il codice macchina è composto dall’alternarsi di sequenze di istruzione logico-aritmetiche e di sequenze di istruzioni fuzzy. Durante la fase di fetch, l’unità di controllo preleva l’istruzione immagazzinata nella EPROM e la decodifica.

Se l’istruzione prelevata è di tipo logico-aritmetico verrà eseguita inviando gli opportuni segnali di comando ai relativi blocchi interessati, se invece si tratta dell’istruzione di stop, il controllo sarà trasferito al fuzzy core.

 

diagramma

Figura 1.2‑2: Diagramma che descrive il passaggio, del controllo, dalla CU al Fuzzy-Core.

 

Il fuzzy core preleva la successiva istruzione dalla EPROM, che dovrà essere necessariamente una istruzione di fuzzy, e la esegue. Il controllo dell’esecuzione permarrà al fuzzy-core sino al pervenire di una successiva istruzione di STOP in conseguenza della quale il controllo torna alla logica tradizionale.

Quanto detto viene sinteticamente descritto nel diagramma a blocchi di fig.1.2‑2.

L’ST52X301 dispone dei seguenti registri interni:

  • Due registri di stato;
  • 11 registri di input;
  • 26 registri di configurazione;
  • 3 registri periferici;
  • 16 registri di uso generale

I registri di stato sono costituiti dal contatore di programma (PC) e dal registro dei flag. Il primo ha 11 bit, necessari per indirizzare 2kbyte di memoria, e contiene l’indirizzo della successiva istruzione da elaborare, mentre il secondo contiene informazioni riguardanti l’esito dell’ultima operazione aritmetica. I registri di input contengono dati e stati delle periferiche: i primi 4, denotati con CHANx, sono utilizzati per memorizzare i dati provenienti dal convertitore analogico/digitale; il registro denotato con TMR_OUT contiene il corrente valore conteggiato dal timer, mentre il registro TMR_ST ne rappresenta il suo stato; i registri INP_PORT e SCI_IN contengono i dati letti rispettivamente dalla porta parallela e da quella seriale.

Il contenuto del registro SCI_ST rappresenta lo stato della porta seriale. Infine gli ultimi due registri degli undici che compongono gli input register, vengono utilizzati dal fuzzy-core per scrivere i risultati di computazione. È importante sottolineare che i registri di input non sono ammessi come operandi in nessuna istruzione aritmetica o fuzzy, pertanto se si desidera elaborare un dato presente in uno di questi registri si dovrà necessariamente operare inizialmente il trasferimento mediante una istruzione LDRI in un registro di uso generale.

I registri di configurazione consentono di configurare le periferiche e di gestire gli interrupt. Ad esempio è necessario impostare un registro periferico per inizializzare il timer, la porta parallela ed il blocco predisposto alla generazione dei segnali PWM.

Il microcontrollore in oggetto contiene al suo interno una EPROM (erasable programmable ROM) di 2kbyte con parole di 8 bit in cui viene memorizzato il programma che dovrà essere eseguito. La programmazione del componente viene effettuata mediante un programmatore connesso al PC attraverso la porta parallela che provvede a trasferire il file binario generato durante la compilazione, dalla memoria del computer a quella del micro.

La EPROM è composta da tre blocchi principali (vedi figura 1.2‑3).

 

mappa della memoria

Figura 1.2‑3: Mappa della memoria

 

Il primo blocco, denotato con “Mbf set”, si estende dall’indirizzo 0 all’indirizzo 191 e contiene le coordinate dei vertici di ogni funzione di appartenenza definita nel programma. Il secondo, denotato con in nome “Vettori di interrupt”, si estende dall’indirizzo 192 all’indirizzo 201 e contiene al suo interno i vettori di interrupt. E, Infine, nel terzo blocco, denotato con il nome “Main program” e che si estende sino al completamento della memoria, è residente il programma principale che si compone di istruzioni fuzzy e di istruzioni aritmetiche.

L’ EPROM, essendo una memoria non volatile, è in grado di mantiene le informazioni anche in assenza di alimentazione. Qualora si utilizzi la versione riprogrammabile del micro e si desidera effettuare un aggiornamento del software, è necessario, prima di procedere con il processo di riprogrammazione, cancellare il contenuto della memoria espone Referer: http://www.stdtec.it/a2C a radiazioni ultraviolette (UV) con lunghezze d’onda minori di 4000 [1].

A tal proposito, dato che, nello spettro della luce solare, ed anche in quello delle lampade fluorescenti, sono presenti radiazioni con lunghezze d’onda comprese tra i 3000-4000, è necessario proteggere la finestra di cancellazione mediante etichette opache per evitare spiacevoli inconvenienti che si potrebbero verificare nel tempo.

 


[1] È necessaria una esposizione che varia tra i 15 e i 20 minuti se si utilizzano sorgenti UV aventi una intensità di 12mW/cm2 e poste a 25mm dalla finestra del chip.

Please publish modules in offcanvas position.

Free Joomla! templates by AgeThemes