|
Sistemi e modelli
Automi
Comunicazioni e Codifiche
Microprocessore
Controllore 8051
Sistemi e modelli
La prima parte del programma di Sistemi per la classe terza prevede l'esposizione di
alcuni concetti di Teoria dei Sistemi. Questa parte viene costantemente ridotta, dato
che l'accento viene portato sulle parti seguenti, più importanti per la figura del
Perito Informatico utile oggi.
- Classificazione dei sistemi
- Vengono indicate le principali classificazioni dei sistemi (statico/dinamico,
continuo/discreto, aperto/chiuso, combinatorio/sequenziale, ecc.). Viene dato particolare
risalto alla classificazione continuo/discreto e viene poi fatto notare che l'operazione
di misura trasforma un sistema continuo a tempo continuo in uno discreto a tempo
discreto.
Viene anche posto l'accento sul concetto di sistemo combinatorio/sequenziale, che poi
trona utile negli automi.
- Formalizzazione del sistema
- Si evidenziano gli insiemi che definiscono il sistema (ingressi, valori degli ingressi,
funzioni di ingresso ecc.) e soprattutto le funzioni di transizione e delle uscite.
- Schematizzazione del sistema alle differenze (forma locale della funzione di
transizione)
- Si fà notare come la forma normale della funzione di transizione sia poco
adatta ad un trattamento numerico e spesso molto difficile da calcolare. Si introduce il
concetto di approssimazione, sostituendo l'area del rettangolo all'area sottesa ad una
curva. Si indica come si può ridurre l'approssimazione riducendo il Δt
Laboratorio: I primi due argomenti non possono trovare applicazione in laboratorio, qundi le prime lezioni
si sfruttano introducendo il Sistema Operativo Linux, l'interfaccia Gnome, il foglio di calcolo
GNumeric ed eventualemnte altri strumenti dell'ambinete.
Una volta giunti alla forma locale della funzione di trasferimento si cominciano a fare
delle simulazioni di sistemi tramite il foglio di calcolo. Ovviamente, utilizzando Linux il
foglio di calcolo sarà quello scelto per Linux, appunto, vale a dire GNumeric.
Automi
Per quanto riguarda gli Automi, spiegato il concetto di Automa si espongono le
rappresentazioni grafica e tabellare, e come si può passare dall'una all'altra.
Vengono mostrati l'automa di Mealy e quello di Moore.
Vengono spiegati i concetti di controllabilità, di raggiungibilità, di
indistinguibilità e la tecnica delle partizioni per la riduzione delgi automi.
Vengono introdotti gli automi riconoscitori, sia con il riconoscimento per stato finale che
per uscita.
Laboratorio: Gli automi vengono sperimentati in laboratorio con uno specifico
programma automi,
che consente di descrivere in maniera semplice e tabellare un automa, quindi di simularlo.
In precedenza si è tentato di usare la programmazione C (insegnata nel frattempo in
informatica), ma la scarsa abilità di programmazione degli studenti in quel momento e
la tendenza a fare programmi invece che automi ha sconsigliato questo approccio.
Altrettanto, l'uso del foglio elettronico è risultato molto fuorviante.
Comunicazioni e Codifiche
Si introduce il concetto di bit come unità di misura dell'informazione ed
il logaritmo come metodo di misura
Si introduce il concetto di entropia e l'albero di Huffmann.
Si accenna ai vari tipi di compressione non basati sul singolo carattere, lossless e lossy.
Si introduce il concetto di codifica standard e se ne elencano le principali (Baudot, ASCII,
EBCDIC, Unicode)
Si introduce il concetto di trasmissione e di rumore.
Si introducono i principali codici di rilevazione dell'errore (parità longitudinale,
trasversale ed incrociata, checksum, CRC)
Si introduce il concetto di distanza di Hamming ed i codici a correzione dell'errore.
Si introducono le numerazioni (accenno) e le codifiche numeriche, sia intere che in virgola
fissa o mobile.
Laboratorio: Questa è la parte più ricca di esercizi.
- Si può calcolare l'entropia di un file, facendo diverse considerazioni.
- Si possono far calcolare i vari codici di rilevazione dell'errore (parità,
checksum e CRC) e li si possono fare verificare, per individuare gli errori.
- Si possono far generare codici con distanza di Hamming definita.
- Si possono fare fare conversioni di base, tra le varie numerazioni.
- Si possono fare convertire numeri con segno nelle varie codifiche.
- Si può fare scoprire la codifica di un numeroin virgola mobile, analizzando
la codifica prodotta dal sistema, con una serie di esperimenti.
Microprocessore
Una teoria vorrebbe che si giungesse al microprocessore attraverso gli automi generalizzati
e la macchina di Turing. Ho notato che questo percorso, molto bello dal punto di vista teorico,
non semplifica la vita agli studenti e spesso lascia 'tracce'. L'argomento è
già complesso, porre delle tappe intermedie consente allo studente di confondere le
architetture corrette con quelle intermedie.
La sequenza da mè scelta è invece:
- Connessione a BUS
- Schema della cella di memoria con D-Latch
- Address, Data e Control Bus
- Mondo esterno, interfacce ed I/O
- Schema della cella di I/O, come modifca della cella di memoria
- Introduzione alla CPU, l'Instruction Decode And Timing e l'Instruction Register
- Le fasi della Fetch
- Le categorie di istruzioni
- Le istruzioni Aritmetico/Logiche, la ALU, il Tempory Address Register
- Gli schemi a tre, due ed un operando ed i registri di uso generale; l'accumulatore
- I metodi di indirizzamento; lo stack
- Le operazioni di trasferimento del controllo
Con questo percorso si arriva ad una padronanza dello schema e dei limiti di un microporocessore.
Laboratorio: Questa parte crea grossi problemi in laboratorio perchè per un
lungo periodo (circa un paio di mesi) non ci sono esperienze da fare.
È possibile fare qualche esperimento con un simulatore di CPU
(The Incredible Computing Machine), ma in genere gli
studenti non riescono a sperimentare indipendentemente ed il simulatore viene utilizzato
per mostrare il funzionamento della CPU con il
videoproiettore, oltre che per stampare degli schemi presentabili su cui lavorare.
Si può sfruttare il periodo per aggiungere esperienze sui temi precedenti, per fare
programmazione C di basso livello, lavorando ad esempio sulle operazioni bitwise e sulle
maschere di bit, opure si possono fare esperienze utili per Informatica (nel caso l'ITP sia
in comune con la materia).
Controllore 8051
Una volta presentata la struttura del microprocessore e de sistema di calcolo, si deve
passare alla presentazione di un sistema reale. La scelta di passare direttamente alla
presentazione dell'architettura X86 Intel è stata scartata per due motivi:
- L'architettura presenta una complessità molto maggiore del modello presentato
e delle caratteristiche peculiari che richiedono una certa maturità per essere comprese
facilmente
- Il Perito Informatico deve aver sperimentato la maggior quantità di
diversità che sia possibile.
Per questo motivo si è scelto di usare un microcontrollore, al posto di un microprocessore.
Il microcontrollore, che contiene, oltre al processore, meoria e periferiche, è una scelta
interessante in quanto cade proprio nel campo del Perito Informatico, quando partecipa ad un
progetto di automazione.
La scelta è caduta sull'8051 dell'Intel perchè possiede una CPU abbastanza quadrata
ed ha poche caratteristiche peculiari difficili da comprendere. Inoltre contiene un interrupt
controller abbastanza semplice che dà modo di introdutte il concetto di interruzione ed
una seriale, che consente di introdurre il discorso sulla trasmissione seriale dei dati,
anche con una modalità master/slave, molto utile per presentare concetti che verranno
utlizzati più oltre.
Laboratorio: Come indicato nella Presentazione del
Laboratorio, per le esperienze sul processore 8051 si utilizzano delle schede industriali
(GPC F2 dela Grifo) tramite un ambiente di cross-sviluppo / emulazione scritto in C++ con
Gnome.
Si incomincia con piccole routine assembler scritte tramite l'assembler
in linea dell'ambiente di sviluppo e provate con l'esecuzione passo-passo, per rendersi conto
del funzionamento della CPU.
Si passa poi a delle epserienze che utilizzino i due LED ed il cicalino connessi sulla scheda,
utilizzando dei loop di ritardo.
Si scrivono dei programmi che utilizzano il tastierino esterno (TI/O 16), programmando in
maniera semplice il PPI mappato in XDATA.
Si può poi passare ad esperienze più complesse usando il timer, l'interrupt
controller e l'interfaccia seriale.
Purtroppo tutte queste esperienze non sono state realizzate quest'anno, perchè il
programma non è stato terminato, quindi per ora non verranno introdotte in questo lavoro.
[Home Page dell'ITIS "Fermi"]
[Indice Terza]
[Successivo]
© Ing. Stefano Salvi - Released under GPL licence
|