CORSO DI FORMAZIONE IPSIA CASTIGLIANO AS 2010/11 INTRODUZIONE E GENERALITA’ I MICROCONTROLLORI e ARDUINO DOCENTE: Prof. Francesco Contalbi prof. Francesco Contalbi Testi di alcune “2° Prove” agli 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 prof Francesco Contalbi - IPSIA Castigliano - Asti 2 3 ultimi Esami di Stato (visualizza) prof. Francesco Contalbi 4 1 Tipologie dell’Elettronica Digitale (e non solo digitale…) Logica Cablata Logica Microprogrammata Logica Custom Logica Programmata 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 !!! Oggigiorno solamente le ultime due trovano riscontro nel mondo del lavoro: sono lo stato dell’arte dell’Elettronica Digitale prof. Francesco Contalbi 5 Logica Microprogrammata 6 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 sostanza 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 (Silicon Foundry) 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 - IPSIA Castigliano - Asti prof. Francesco Contalbi Logica Custom (anche con Microprocessori Bit Slice) prof. Francesco Contalbi Logica Cablata 7 prof. Francesco Contalbi 8 2 Logica Programmata Sistemi a Microprocessore (uP) (link) Sistemi a Microcontrollore (uC) (link) PLC (Programmable Logic Controller) (link) prof. Francesco Contalbi Fa uso di IC ( Microprocessori e Microcontrollori) che comprendono al loro interno la CPU di un calcolatore (ALU + CU + Registri + ROM dei microprogrammi). L’insieme delle istruzioni realizza il “Set” di Istruzioni che il Microprocessore è in grado di eseguire. La sequenza di quelle usate dal programma è memorizzata in una ROM (o EEPROM o FLASH) o in una RAM. Per cambiare la funzione logica è sufficiente (quasi sempre) cambiare solo le istruzioni nella ROM/RAM e non l’intera scheda 9 prof. Francesco Contalbi Sistemi a Microprocessore (uP) 10 Unità di I/O Richiedono: il uP della RAM e/o 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” Logica GLUE SITEMA MINIMO A uP CON Z80 - N° 6 IC DI CUI UNO A 40 PIN prof. Francesco Contalbi prof Francesco Contalbi - IPSIA Castigliano - Asti 11 prof. Francesco Contalbi 12 3 PLC 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, I2C, CAN, USB e altri Ecc… prof. Francesco Contalbi 13 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 Il produttore più noto di PLC è la SIEMENS, ma vi è anche la Telemecanique, la SAIA ecc.. Quale usare al giorno d’oggi? 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 prof Francesco Contalbi - IPSIA Castigliano - Asti 14 15 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 4 I PIC 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 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 prof Francesco Contalbi - IPSIA Castigliano - Asti 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 5 Gli AVR http://www2.atmel.com/ Progettare con i uC / uP Wikipedia Sono dei uC prodotti dalla ATMEL Poco diffusi in Italia ma potenti e versatili, costituiscono il cuore del sistema ARDUINO. Sono meno SCALABILI dei PIC nell’ HW, ma lo sono completamente nel SW. 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 Altri per usi particolari prof. Francesco Contalbi 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 21 prof. Francesco Contalbi Fasi del Progetto SW 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 più simili al linguaggio comune (Inglese): Basic, Fortran, C, C++, Java, LISP... PROCESSING /WIRING in Arduino ( ne esistono MOLTE CENTINAIA !) 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 Applicativo : Word, Excell, StarOffice, Access, Telnet ... e Programmi scritti da noi… 23 Studiare le azioni da compiersi in un N° finito di passi per ottenere quanto voluto, ossia l’ALGORITMO Descrivere “su carta” l’algoritmo tramite: SW di Base : Compilatori, Assembler, Linker, Loader, Bakup ecc.. prof Francesco Contalbi - IPSIA Castigliano - Asti Sistema Operativo (SO) : e` il programma che sovraintende al prof. Francesco Contalbi 22 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 6 Esempio di FLOW CHART FILE SORGENTE 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 L’HEX è detto “Formato INTEL” e di fatto contiene in ESADECIMALE il codice macchina da inserire nella memoria programmi del uC uC (installa DIA) prof. Francesco Contalbi 25 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 prof Francesco Contalbi - IPSIA Castigliano - Asti 27 7