CORSO DI FORMAZIONE IPSIA CASTIGLIANO AS 2010/11 I MICROCONTROLLORI e ARDUINO DOCENTE: Prof. Francesco Contalbi
INTRODUZIONE E GENERALITA prof. Francesco Contalbi 2
Perché i Microcontrollori? Sono usatissimi nell Industria e occorre formare gli studenti alla realtà che troveranno nel lavoro Si possono realizzare esercitazioni SIGNIFICATIVE che altrimenti richiederebbero troppi componenti, troppo tempo, troppa complessità realizzativa Con essi si insegna la programmazione, e quindi si sviluppano capacità logiche e il pensiero Algoritmico degli allievi COMPAIONO SEMPRE nei temi di Sistemi agli esami di Stato prof. Francesco Contalbi 3
Testi di alcune 2 Prove agli ultimi Esami di Stato (visualizza) prof. Francesco Contalbi 4
Tipologie dell Elettronica Digitale (e non solo digitale ) Logica Cablata Logica Microprogrammata Logica Custom Logica Programmata Oggigiorno solamente le ultime due trovano riscontro nel mondo del lavoro: sono lo stato dell arte dell Elettronica Digitale prof. Francesco Contalbi 5
Logica Cablata La funzione logica viene realizzata dai collegamenti (cablaggio) tra le diverse porte (che si trovano negli IC) che costituiscono il circuito Per cambiare la funzione occorre cambiare il cablaggio di fatto occorre riprogettare il Circuito Stampato e ricostruire il circuito. Il circuito è molto complesso, occupa molto spazio sul Circuito Stampato ma per contro la velocità è molto elevata, la più elevata possibile!!! prof. Francesco Contalbi 6
Logica Microprogrammata (anche con Microprocessori Bit Slice) La funzione logica viene realizzata utilizzando, in genere, circuiti aritmetico/logici universali (le ALU) e inserendo opportune sequenze di bit di controllo (il microprogramma) in una ROM. Il circuito risultante è complesso, occupa ancora parecchio spazio sul Circuito Stampato e la microprogrammazione è molto difficile. Sono però circuiti veloci, anche se non più usati prof. Francesco Contalbi 7
Logica Custom Fa uso di appositi IC, chiamati genericamente PLD (Programmable Logic Devices) che in base all architettura (e alla complessità) interna si distinguono in: Pal / Gal Standard Cell Gate Array ecc.. Un intero dispositivo, anche un microprocessore, può essere integrato in un solo PLD. In pratica ci si costruisce in casa un IC su misura. Oggi con circa 300 è possibile realizzare PLD in un laboratorio mediamente attrezzato Per grandi volumi si possono usare gli ASIC (Application Specific Integrated Circuits) = IC commissionati alle ditte specializzate prof. Francesco Contalbi 8
Logica Programmata Sistemi a Microprocessore (up) (link) Sistemi a Microcontrollore (uc) (link) PLC (Programmable Logic Controller) (link) prof. Francesco Contalbi 9
Fa uso di IC ( Microprocessori e Microcontrollori) che comprendono al loro interno sia la ALU, che dei Registri e una ROM contenente l insieme dei microprogrammi. Ogni microprogramma realizza una istruzione in linguaggio macchina. L insieme di tutte queste ultime realizza il Set di Istruzioni che il Microprocessore è in grado di eseguire. La sequenza di quelle usate è memorizzata in una ROM o RAM esterna al processore. Per cambiare la funzione logica è sufficiente (quasi sempre ) cambiare solo le istruzioni nella ROM/RAM esterna e non l intera scheda prof. Francesco Contalbi 10
Sistemi a Microprocessore (up) Richiedono: il up della RAM e ROM esterne su cui risiede il Programma e i risultati delle elaborazioni degli appositi IC: le unità di Input/Output (I/O) che realizzano l interfacciamento col mondo esterno Un sofisticato Circuito Stampato con incise le piste che realizzano i 3 BUS (Indirizzi, dati, controlli) Un generatore di Clock e varia Logica Glue prof. Francesco Contalbi 11
Unità di I/O Logica GLUE SITEMA MINIMO A up CON Z80 - N 6 IC DI CUI UNO A 40 PIN prof. Francesco Contalbi 12
Sistemi a Microcontrollore (uc) Un uc è un IC che racchiude al suo interno un intero Sistema a up con in più (dipende dal tipo): Della RAM e Rom (Flash in genere per il programma e EEPROM per i dati) Un gruppo di Pin di I/O a direzione programmabile Un generatore di Clock programmabile In vari modi Uno o più ADC in genere multiplexati Un Counter / Timer con Prescaler Uno o più Comparatori di tensione Circuiti PWM, CCP, ECCP (ad es. per il controllo motori) Una USART per la comunicazione seriale Un controller per i bus SPI, I 2 C, CAN, USB e altri Ecc ecc prof. Francesco Contalbi 13
PLC Sono sostanzialmente dei sistemi a up o uc ma con Relè, BJT, Optoisolatori ecc.. Già impacchettati in un robusto contenitore, spesso in formato a Guida DIN, e pronti per essere collegati al Campo. Sono più adatti ad essere usati dagli elettricisti e sono nati per sostituire Teleruttori, Temporizzatori meccanici ecc Si programmano nel loro Assembly oppure in: Ladder (simile a uno schema elettrico funzionale) Grafcet Basic Ecc... prof. Francesco Contalbi 14
Il produttore forse più noto di PLC è la SIEMENS, ma vi è anche la Telemecanique, la SAIA ecc.. Recentemente è apparsa una serie di PLC a BASSO COSTO e ingombro che si presta bene a realizzare PLC minuscoli ed economici, il CUBLOC, prodotto dalla COMFILE Technology. (vedi il Sito). Programmabile in Ladder e/o Basic, è dotato di più ADC, di RS232 per la programmazione ma anche per il colloquio col PC. prof. Francesco Contalbi 15
Quale usare? up Sistemi di calcolo di elevata potenza, che richiedono programmi complessi e di uso generale: Elaboratori, Sistemi di controllo di Impianti importanti ecc uc Sistemi di controllo di dispositivi e macchine: li troviamo in giocattoli, fotocamere, TV, cellulari, termostati, regolatori di motori, robot, guide di missili ecc.. Spesso si interfacciano a sistemi a up che funzionano da supervisori prof. Francesco Contalbi 16
Tipi di uc Sul mercato c è una varietà enorme di uc: di fatto ogni ditta produttrice di IC ha il suo. Non solo Ogni ditta specializza poi la produzione in molti tipi diversi a partire da un ceppo comune, così da realizzare delle FAMIGLIE (o Serie ). Ognuno differisce per quantità di RAM/ROM, per il numero e tipo di unità controllo periferiche ecc. Scegliere dunque un uc richiede quindi una lunga, attenta e difficile comparazione tra Ditte, Famiglie e tipi!!! prof. Francesco Contalbi 17
I PIC http://www.microchip.com/ Wikipedia Sono dei uc prodotti dalla ARIZONA MICROCHIP e risultano molto diffusi e usati, soprattutto in Italia. Uno dei motivi della loro diffusione è la loro estrema SCALABILITA, ossia la possibilità di scegliere il tipo adatto alla particolare applicazione (in termini di quantità di RAM / ROM, di unità periferiche, di velocità.. e quindi di costo) mantenendo però una certa uniformità, in particolare lo stesso Set base di istruzioni come anche il poter riutilizzare gli strumenti Hardware e Software per lo sviluppo e il Testing prof. Francesco Contalbi 18
Famiglie (.. o serie) di PIC Il produttore suddivide i PIC nelle seguenti Serie, tenendo conto della dimensione (in bit) dei Registri interni. Le Serie più alte corrispondono in genere a più elementi integrati (ADC, Timer ecc.), più prestazioni, più memoria, più PIN e ovviamente un ingombro e un costo maggiore prof. Francesco Contalbi 19
32 Bits 16 Bits dspic30f 8 Bits PIC18FXXX PIC12F6XX,PIC16FXX PIC12F4XX,PIC16F5XX PIC10F2XX Enhanced Mid-range Base-line 4 Bits prof. Francesco Contalbi 20
Gli AVR Sono dei uc prodotti dalla ATMEL http://www2.atmel.com/ Wikipedia Poco diffusi in Italia ma potenti e versatili, costituiscono il cuore del sistema ARDUINO. Sono molto meno SCALABILI dei PIC, avendo le serie: TinyAVR: a 8 Bit, economici e piccoli (8-14 pin) MegaAVR: a 8 Bit, con molte periferiche XMEGA: a 8 / 16 Bit, potenti ma complessi AVR-UC3: 32 bit sofisticati e potenti prof. Francesco Contalbi 21
Progettare con i uc / up Come con qualunque sistema programmabile occorre confrontarsi coi suoi due aspetti: L Hardware (la circuiteria elettronica, la meccanica) scelta del tipo di uc / up e del suo interfacciamento con il Campo, cioè il sistema da controllare Il Software (Programmi e loro scrittura) scelta del linguaggio di programmazione e del programma per la compilazione e il caricamento dell eseguibile nella memoria programma del uc prof. Francesco Contalbi 22
Il Software varie componenti Programma = serie di istruzioni scritte in un linguaggio di programmazione: Assembly cioe` in pratica, il linguaggio della macchina solo reso un po più umano alto livello, ossia linguaggi di programmazione più simili al linguaggio comune (Inglese): Basic, Fortran, C, C++, Java, LISP... PROCESSING in Arduino ( ne esistono 200 e più!) Sistema Operativo (SO) : e` il programma che sovraintende al funzionamento di base del computer, e` memorizzato sul disco rigido e viene copiato nellla RAM al momento dell accensione. Esistono vari tipi di SO : Windows, Unix, Linux, MacOs, DOS... alcuni di questi liberi alcuni a pagamento... SW di Base : Compilatori, Assembler, Linker, Loader, Bakup ecc.. Programmi applicativi : Word, Excell, StarOffice, Access, Telnet... e Programmi scritti da noi prof. Francesco Contalbi 23
Fasi del Progetto SW Studiare le azioni da compiersi in un N finito di passi per ottenere quanto voluto, ossia l ALGORITMO Descrivere su carta l algoritmo tramite: FLOW CHART (più adatto per l Assembly) Pseudolinguaggio (più adatto ai linguaggi di alto livello) Scrivere il programma nel linguaggio di programmazione scelto, tramite un TEXT EDITOR (PROGRAMMA SORGENTE) Compilare e Linkare il programma sorgente per ottenere rispettivamente il PROGRAMMA OGGETTO e ESEGUIBILE (tramite il COMPILATORE e il LINKER) Caricare l eseguibile nella MEMORIA PROGRAMMA del uc / up tramite il LOADER (o programmatore nei uc), Trovare eventuali errori tramite il DEBUGGER prof. Francesco Contalbi 24
FILE SORGENTE L HEX è detto Formato INTEL e di fatto contiene in ESADECIMALE il codice macchina da inserire nella memoria programmi del uc uc prof. Francesco Contalbi 25
Esempio di FLOW CHART Se si intende usarlo si possono impiegare appositi programmi (oltre a Word), ad es. DIA, che oltretutto è Open Source e realizza una moltitudine di altri diagrammi (installa DIA) prof. Francesco Contalbi 26
Gli IDE (Integrated Developement Environment) Le fasi di Scrittura /compilazione / linking /debugging che un tempo venivano eseguite a mano e in sequenza, sono ora INTEGRATE in un unico programma che offre anche un aspetto grafico curato: l IDE Di fatto ormai nemmeno più ci si accorge di quello che sta succedendo: fa tutto l IDE, dietro le quinte.. davvero un grosso aiuto!!! prof. Francesco Contalbi 27