Il 0% ha trovato utile questo documento (0 voti)
7 visualizzazioni155 pagine

Programmatori e Dispositivi Programmabili

Il documento presenta un corso introduttivo sui dispositivi programmabili e le memorie, coprendo argomenti come la nomenclatura dei packages, l'architettura delle memorie e la programmazione di dispositivi. Viene fornita una panoramica delle varie tipologie di memorie, tra cui EPROM, EEPROM e Flash, e delle tecniche di programmazione e saldatura. Inoltre, il documento discute le strutture delle memorie e i metodi di trasferimento dati, evidenziando le differenze tra memorie parallele e seriali.

Caricato da

cosimo de donno
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd
Il 0% ha trovato utile questo documento (0 voti)
7 visualizzazioni155 pagine

Programmatori e Dispositivi Programmabili

Il documento presenta un corso introduttivo sui dispositivi programmabili e le memorie, coprendo argomenti come la nomenclatura dei packages, l'architettura delle memorie e la programmazione di dispositivi. Viene fornita una panoramica delle varie tipologie di memorie, tra cui EPROM, EEPROM e Flash, e delle tecniche di programmazione e saldatura. Inoltre, il documento discute le strutture delle memorie e i metodi di trasferimento dati, evidenziando le differenze tra memorie parallele e seriali.

Caricato da

cosimo de donno
Copyright
© All Rights Reserved
Per noi i diritti sui contenuti sono una cosa seria. Se sospetti che questo contenuto sia tuo, rivendicalo qui.
Formati disponibili
Scarica in formato PDF, TXT o leggi online su Scribd

Programmatori e

dispositivi
programmabili
Corso di introduzione ai dispositivi logici, formati
standard e relativa programmazione
Programma del corso

 Nomenclatura dei packages comuni


 Introduzione alle eprom, flash ed eeprom. Architettura delle
memorie
 Introduzione ai micro, con particolare riferimento alla serie
Motorola. Architettura dei micro
 Riconoscimento dei componenti base in una ECU generica.
Strategie di controllo della ECU
 Programmazione dei dispositivi con programmatore generico
 Programmazione dei dispositivi con UPA
 Tecniche di dissaldatura e saldatura dei dispositivi (pratica)
 Identificazione delle zone di crash nelle ECUs airbag (pratica)
 Identificazione delle zone di contatore nei DASH (pratica)

Programmers & Devices – 2010 2


Formati standard micro e
memorie
Package

Con il termine package si intende il contenitore in cui


sono racchiusi i circuiti integrati del dispositivo. È la
forma esteriore con cui il componente si presenta.
L’identificazione del tipo di package avviene tramite
l’acronimo degli attributi che identificano il contenitore.

Programmers & Devices – 2010 4


Package

Si dividono in due grandi famiglie:

 a montaggio tradizionale (Socket)


 DIL (Dual InLine)
 DIP (Dual Inline Package)

 a montaggio superficiale (SMD)


 SOIC (Small Outline Integrated Circuit)
 PLCC (Plastic Leaded Chip Carrier)
 PSOP (Plastic Small-Outline Package)
 SSOP (Shrink Small-Outline Package)
 TSSOP (Thin Shrink Small-Outline Package)
 xQFP (Quad Flat Package)
 BGA (Ball Grid Array)

Programmers & Devices – 2010 5


Package – Numerazione PIN

L’identificazione del PIN1 in genere è semplice, ma non sempre


immediata.

Il primo pin è identificabile tramite una U o un pallino incisi sul corpo


della memoria. In alcuni casi questi simboli sono sostituiti da una
svasatura, indicante il primo set di pin.

È importantissimo ricordare che la numerazione dei pin avviene in


senso antiorario.

Di seguito sono riportate le identificazioni del PIN1 per i formati


descritti precedetemente.

Programmers & Devices – 2010 6


Package – Socket – DIL/DIP

Dual InLine/Dual Inline Package

PIN1

Programmers & Devices – 2010 7


Package – SMD – SOIC

Small Outline Integrated Circuit

PIN1

Programmers & Devices – 2010 8


Package – SMD – PLCC

Plastic Leaded Chip Carrier

PIN1

Programmers & Devices – 2010 9


Package – SMD – PSOP

Plastic Small-Outline Package

PIN1

Programmers & Devices – 2010 10


Package – SMD – SSOP

Shrink Small-Outline Package

PIN1

Programmers & Devices – 2010 11


Package – SMD – TSSOP

Thin Shrink Small-Outline Package

PIN1

Programmers & Devices – 2010 12


Package – SMD – xQFP

Quad Flat Package

PIN1

Programmers & Devices – 2010 13


Package – SMD – xQFP

Quad Flat Package

ATTENZIONE!!! Su alcuni
dispositivi formato xQFP
potrebbero esserci due
pallini su angoli opposti.
Quello indicante il primo pin
è il più grande dei due

Programmers & Devices – 2010 14


Package – SMD – BGA

Ball Grid Array

PIN1

Programmers & Devices – 2010 15


Teoria e architettura
delle memorie
Memorie – Struttura

Sono composte da due macro-gruppi:


• Package
 Come visto precedentemente è l’elemento esterno

che costituisce il contenitore in cui verrà alloggiato


il dispositivo vero e proprio
• Die
 Meglio conosciuto con il nome di chip, è la sottile

piastrina di materiale semiconduttore


(generalmente silicio) sulla quale viene ricavato il
circuito elettrico dell’integrato.

Programmers & Devices – 2010 17


Memorie – Die

Programmers & Devices – 2010 18


Memorie – Struttura DIE

 Si presenta come una grande matrice formata da Word


Line (WL) e Bit Line (BL), pilotate da multiplexer, a loro
volta controllati dagli ingressi sui PIN del package
 Per comodità di gestione dei dati, questa grande
matrice è organizzata a blocchi, chiamati pagine
 All’incrocio tra WL e BL è presente la cella di memoria.
A seconda della tipologia di questo elemento in cui
viene memorizzato il dato, le memorie vengono divise in
gruppi

Programmers & Devices – 2010 19


Memorie – Struttura DIE

Una cella di memoria è in grado di memorizzare 1 bit di informazione.


Sono sufficienti due linee per accedere alla cella.

La BL trasporta il dato da o verso la cella


La WL trasporta il segnale di selezione della cella

Programmers & Devices – 2010 20


Memorie – Struttura DIE

Logicamente, avere un solo dato per volta non è molto utile. Quindi per immagazzinare più
bit di informazione, da leggere o scrivere in un numero C per volta, si può usare
un’organizzazione a matrice.

L’informazione deve essere quindi contenuta in una matrice di dimensioni RxC dove:
R = 2N con N numero di indirizzi fisici
C = Numero di bit letti o scritti in parallelo

Programmers & Devices – 2010 21


Memorie – Struttura DIE

Il decoder di indirizzo o multiplexer, converte l’indirizzo espresso su N bit nella seleziona


di una sola WL. Più WL attive porterebbero alla distruzione immediata del dispositivo.

Programmers & Devices – 2010 22


Memorie – Struttura DIE

Il numero di righe risulta decisamente sproporzionato rispetto a quello delle colonne, quindi
per motivi costruttivi si preferisce allocare più gruppi di parole sulla stessa riga, controllati
da un secondo multiplexer

L’indirizzo sarà quindi diviso in due parti, la prima (indirizzo di riga) servirà ad abilitare una WL,
la seconda (indirizzo di colonna) permetterà di selezionare la parola all’interno della colonna

Programmers & Devices – 2010 23


Memorie – Celle di memoria

 OTP-ROM (One Time Programmable Read Only


Memory)

 UV-EPROM (UltraViolet Erasable Programmable Read


Only Memory)

 EEPROM (Electrically Erasable Programmable Read


Only Memory)

 FLASH EPROM (FLASH Erasable Programmable Read


Only Memory)

Programmers & Devices – 2010 24


Memorie – Celle di memoria

La cella di memoria deve garantire la permanenza del dato anche in assenza


di alimentazione esterna.
Il modo più semplice per realizzare una cella di memoria è un banale
cortocircuito tra WL e BL.

Tuttavia questa soluzione non permette


la programmazione del dispositivo sul
campo di funzionamento.

La programmazione deve essere fatta in


fase di costruzione, con costi
elevatissimi (non è ancora possibile
avere dei componenti standard).

Programmers & Devices – 2010 25


Memorie – Celle di memoria

Con l’aumento delle capacità tecnologiche e soprattutto con l’avvento dei


dispositivi MOS (Metal Oxide Semiconductor), si è pensato di creare un
transistor che sia in grado di “ricordare” la fase di programmazione.

Il funzionamento del transistor MOS


per applicazioni digitali è l’equivalente
di un interruttore che fa passare la
corrente dal Source S (sorgente) al
Drain D (pozzo), pilotato dal Gate G
(portale).

Una volta superata la tensione Vt


(threshold o soglia) sul Gate, il
transistor entra in conduzione.

Programmers & Devices – 2010 26


Memorie – Celle di memoria

Un esempio di funzionamento del


transistor MOS per pilotare un utilizzatore
Variando la tensione sul Gate, il transistor
si accende o si spegne, permettendo il
pilotaggio dell’utilizzatore

Programmers & Devices – 2010 27


Memorie – Cella OTP-ROM

0 Logico 1 Logico

Una OTP-ROM a fusibili può essere programmata sul campo dall'utente finale.
L'interruzione del collegamento equivale alla programmazione di un '1' all'interno della
cella corrispondente. Se il collegamento rimane, quando la WL si attiva il transistor si
accende e porta a livello basso la BL. Le ROM di questo tipo sono programmabili una
volta sola.

Programmers & Devices – 2010 28


Memorie – Cella UV-EPROM

1 Logico

0 Logico

Le celle di questo tipo possono essere programmate elettricamente in modo individuale


(portando ad una tensione elevata ad es. 12 V la WL e la BL corrispondenti). La
cancellazione è necessariamente collettiva e richiede l'esposizione del componente a
radiazione UV. Se il quarzo è oscurato, si ha una OTP-ROM.

Programmers & Devices – 2010 29


Memorie – Cella EEPROM

1 Logico

MOS di
0 Logico selezione

L'aggiunta di un transistor nMOS in serie al transistor a gate flottante permette la


cancellazione individuale per via elettrica delle celle. Lo svantaggio principale è che una
cella occupa un'area quasi doppia rispetto a quella di una EPROM, per cui si ottengono
componenti meno densi.

Programmers & Devices – 2010 30


Memorie – Cella Flash EPROM

La cella Flash combina la versatilità di un modulo EEPROM con la compattezza di una


struttura EPROM: le operazioni avvengono “on-system” elettricamente, non è necessario
alcun transistore addizionale per effettuare la selezione del bit, la procedura di
cancellazione può essere eseguita sull’intero chip, come per i moduli EPROM, oppure a
settori.

Programmers & Devices – 2010 31


Memorie – Flash – Scrittura

e- e- e- e-

Programmers & Devices – 2010 32


Memorie – Flash – Cancellazione

e- e- e-

Programmers & Devices – 2010 33


Memorie – Flash – Lettura

e- e- e-

e-

La BL
andrà a 0V

Programmers & Devices – 2010 34


Memorie – Tempo di accesso

Un fattore molto importante per valutare il


comportamento di una memoria di tipo ROM, qualsiasi
essa sia, è il tempo dopo cui il dato in uscita è
disponibile ed è affidabile.
Le WL ma soprattutto le BL sono paragonabili a dei
piccoli condensatori che accumulano una certa carica
parassita. Questa carica introduce un ritardo. È per
questo motivo che si cerca sempre di ridurre il più
possibile le dimensioni dei DIE.

Programmers & Devices – 2010 35


Memorie – Tempo di accesso

t1 = tempo di carica della WL


t2 = tempo di scarica della BL
t3 = tempo di assestamento
tacc = tempo di accesso al dato

tacc = t1+t2+t3
ATTENZIONE: È importante notare
che il tempo di accesso è maggiore
nel caso di cella di memoria non
programmata!!! Il dato dichiarato dal
costruttore si riferisce quindi al caso
peggiore.

Programmers & Devices – 2010 36


Memorie – Trasferimento dati

E’ possibile trasferire dati in ingresso o in uscita dal dispositivo


programmabile essenzialmente in due modi:

• Trasferimento di tipo seriale


• Trasferimento di tipo parallelo

E’ evidente che il sistema di comunicazione scelto condizionerà


l’intero circuito e la velocità massima di trasferimento raggiungibile.
Inoltre il trasferimento seriale necessita di regole ben precise per lo
scambio delle informazioni: queste regole vengono definite dai
PROTOCOLLI.
Quindi in base alla modalità scelta, si parlerà di memorie parallele e
memorie seriali.

Programmers & Devices – 2010 37


Memorie – Memoria parallela

Le memorie ad accesso parallelo sono adatta alla


memorizzazioni di una vasta mole di dati, oltre che a
garantire un’elevata velocità nel trasferimento dati.
Infatti il tempo di accesso massimo è rappresentato
sostanzialmente dal tempo di accesso alla cella di
memoria.
Non necessitano di protocolli di comunicazione
(trasmissione asincrona), ma per contro necessitano di
un bus imponente per il trasferimento dei dati. Infatti ad
ogni bit di indirizzo o output è associata una linea di
interconnessione al micro.

Programmers & Devices – 2010 38


Memorie – Memoria parallela

Programmers & Devices – 2010 39


Memorie – Memoria parallela

A questa categoria appartengono le memorie:

 OTP e UV-EPROM
 Contrassegnate dalla stringa 27C
 EEPROM
 Contrassegnate dalla stringa 28C
 FLASH EPROM
 Contrassegnate dalla stringa 28F, 29C o 29F

Programmers & Devices – 2010 40


Memorie – Memoria seriale

Le memorie ad accesso seriale o più comunemente


denominate “Serial Eprom” sono utilizzate per la
memorizzazione di pochi dati. Tuttavia il loro impiego è
vastissimo, in quanto lo scambio dei dati avviene su
almeno una linea, con un sistema denominato “bit-by-
bit”.
Per contro, necessitano di un protocollo specifico di
comunicazione univoco, e di una ulteriore linea,
denominata CLOCK, per la sincronizzazione dello
scambio dati (trasmissione sincrona)

Programmers & Devices – 2010 41


Memorie – Memoria seriale

Programmers & Devices – 2010 42


Memorie – Memoria seriale

Le serial eprom si distinguono in base al protocollo di


comunicazione:

 SPI
 Contrassegnate dalla stringa 25, 25C, 95 o 95P
 MICROWIRE
 Contrassegnate dalla stringa 93C, 93S
 I2C
 Contrassegnate dalla stringa 24C

Programmers & Devices – 2010 43


Memorie – SPI/Microwire

Il Serial Peripheral Interface o SPI è un sistema di


comunicazione tra un microcontrollore e altri circuiti
integrati o tra più microcontrollori.
È un bus standard di comunicazione ideato dalla Motorola
e sviluppato, in una sua variante, anche dalla National
Semiconductor con il nome di bus Microwire.
La trasmissione avviene tra un dispositivo detto master e
uno o più slaves (letteralmente dall'inglese padrone e
schiavo). Il master controlla il bus, emette il segnale di
clock, decide quando iniziare e terminare la
comunicazione.

Programmers & Devices – 2010 44


Memorie – SPI/Microwire

Il bus SPI si definisce:

 di tipo seriale
 sincrono per la presenza di un clock che coordina la
trasmissione e ricezione dei singoli bit e determina la
velocità di trasmissione
 full-duplex in quanto il "colloquio" può avvenire
contemporaneamente in trasmissione e ricezione.

Programmers & Devices – 2010 45


Memorie – SPI/Microwire

Programmers & Devices – 2010 46


Memorie – SPI

L’architettura classica di una SPI:

 SDI (Serial Data Input)


 SDO (Serial Data Output)
 CS# (Chip Selection)
 CLK (Clock)
 WP# (Write Protect)
 HOLD (Hold)

Non vanno dimenticali i terminali di alimentazione Vdd


(+) e Vss (GND).

Programmers & Devices – 2010 47


Memorie – Microwire

L’unica differenza del protocollo Microwire è la


possibilità di trasferimento dati a 16bit anziché 8bit

Il terminale che gestisce l’organizzazione dei dati è


denominato

 ORG (Organization)

che va a sostituire il terminale HOLD delle SPI

Programmers & Devices – 2010 48


Memorie – Comunicazione SPI

La trasmissione dei dati sul bus SPI si basa sul funzionamento dei
registri a scorrimento (shift register). Ogni dispositivo sia master che
slave è dotato di un registro a scorrimento interno i cui bit vengono
emessi e, contemporaneamente, immessi, rispettivamente, tramite
l'uscita SDO e l'ingresso SDI. Il registro può avere dimensione
arbitraria (ma uguale per i dispositivi master e slave) anche se
usualmente ha la dimensione di 8 bit. Il registro a scorrimento è
un'interfaccia completa mediante la quale vengono impartiti comandi
e trasmessi dati che arrivano in modo seriale ma che internamente
sono prelevati, a fine trasmissione, in modo parallelo. Ad ogni impulso
di clock i dispositivi che stanno comunicando sulle linee del bus
emettono un bit dal loro registro interno rimpiazzandolo con un bit
emesso dall'altro interlocutore.

Programmers & Devices – 2010 49


Memorie – I2C

I²C, acronimo di Inter Integrated Circuit è un sistema di


comunicazione seriale bifilare utilizzato tra circuiti
integrati. Questo bus è stato sviluppato dalla Philips.
Il classico bus I²C è composto anche in questo caso da
almeno un master ed uno slave.
Trattandosi di un protocollo seriale i vantaggi che offre
sono quelli di impegnare solo due linee.
Un suo limite importante è la velocità di
comunicazione.

Programmers & Devices – 2010 50


Memorie – I2C

Il protocollo hardware dell'I2C richiede:


 Una linea bidirezionale per il trasferimento dei dati
 Una linea per il clock

Va aggiunta una connessione di riferimento Vss (GND) e


una linea di alimentazione Vdd (+) a cui sono connessi i
resistori di pull-up. Le tensioni tipiche usate sono +5V o
+3,3V

Programmers & Devices – 2010 51


Memorie – I2C

Programmers & Devices – 2010 52


Memorie – I2C

L’architettura classica di una I²C:

 SDA (Serial Data Line)


 SCL (Serial Clock Line)
 A2, A1, A0 (Device Select)
 WP# (Write Protect)

Programmers & Devices – 2010 53


Memorie – Comunicazione I2C

Il master inizia lo scambio di informazioni inviando lo start bit (S) seguito


dall'indirizzo dello slave con cui vuole comunicare (B0, …, B6). Segue
un bit (B7) che indica se vuole trasferire informazioni allo slave
(scrivere, ammesso che il dispositivo permetta questa possibilità) o
ricevere informazioni (leggere). Nel primo caso il bit B7 tenuto basso dal
master nel caso voglia ricevere informazioni rilascerà la linea dati (alto
per la presenza del pull-up).
Se lo slave indirizzato (B0, ..., B7) esiste, esso prende il controllo della
linea dati sul successivo impulso alto del SCL e la forza a 0 logico. Il
master sa quindi che il dispositivo selezionato ha ricevuto la richiesta ed
è in attesa di rispondere. Gli indirizzi e i dati per convenzione del bus
sono trasmessi iniziando dal bit più significativo (B0) e terminando con il
bit meno significativo (B7 )

Programmers & Devices – 2010 54


Memorie – Identificazione

L’identificazione del dispositivo avviene per mezzo del


codice inciso o serigrafato sulla superficie del dispositivo
stesso.
La stringa è così composta:

Modello Tempo di
Eprom Accesso

XX XXX XXX XX XXX


ID Altre
Dimensione
Costruttore Informazioni

Programmers & Devices – 2010 55


Memorie – Identificazione

Descrizione del codice di identificazione


 ID Costruttore
 È una stringa a 1 o 2 caratteri che identifica univocamente il costruttore della memoria (p.e. AM
identifica la AMD, M identifica ST Microelectronics)
 Modello Eprom
 È uno dei codici visti precedentemente che descrive la natura della memoria
 Dimensione
 Espresso in kilo-bit o Mega-bit, individua lo “spazio” di memoria disponibile e quindi il numero di
transistor presenti
 Tempo di accesso
 Questa informazione è disponibile solo per le memorie ad accesso parallelo. Se si dovesse
procedere alla sostituzione della memoria, è fondamentale che il nuovo dispositivo abbia questo
tempo inferiore o uguale rispetto al vecchio
 Altre Informazioni
 Sono ad esempio informazioni riguardanti la temperatura massima di funzionamento e altre
informazioni secondarie

Programmers & Devices – 2010 56


Memorie – ID Dimensione

Stringa EPROM Struttura (bit) Dimensione (byte)


01* / 46* / 46(x16)* / 010* 128 x 8 / 128 x 8 / 64 x 16 / 128 x 8 128
02* / 56* / 56(x16)* / 020* 256 x 8 / 256 x 8 / 128 x 16 / 256 x 8 256
04* / 66* / 66(x16)* / 040* 512 x 8 / 512 x 8 / 256 x 16 / 512 x 8 512
08* / 76* / 76(x16)* / 080* 1024 x 8 / 1024 x 8 / 512 x 16 / 1024 x 8 1k
16* / 86* / 86(x16)* / 160* 2k x 8 / 2k x 8 / 1k x 16 / 2k x 8 2k
32 – 320* 4k x 8 4k
64 – 640* 8k x 8 8k
128 16k x 8 16k
256 32k x 8 32k
512 64k x 8 64k
1001 – 1024 – 010 128k x 8 128k
020 – 200 256k x 8 – 128k x 16 256k
040 – 400 512k x 8 – 256k x 16 512k
080 – 800 1024k x 8 – 512k x 16 1M
016 2048k x 8 – 1024 x 16 – 512k x 32 2M
* E2PROM Serial

Programmers & Devices – 2010 57


Memorie – ID Dimensione

Stringa EPROM Tempo di Accesso (ns – nanosecondi)


18 180
15 150
12 120
90 90
70 70
55 55
40 40

Programmers & Devices – 2010 58


Teoria e architettura
dei microcontrollori
MCU

I microcontrollori sono la forma più diffusa e più invisibile di computer.


Comprendono la CPU, un certo quantitativo di memoria RAM e
memoria ROM (può essere PROM, EPROM, EEPROM o FlashROM) e
una serie di interfacce di I/O (input/output) standard, fra cui molto
spesso bus (I²C, SPI, CAN, LIN).
Le periferiche integrate sono la vera forza di questi dispositivi: si
possono avere convertitori ADC (Analogic to Digital Converter) e
convertitori DAC (Digital to Analogic Converter) multicanale,
timer/counter, UART, numerose porte esterne bidirezionali bufferizzate,
comparatori, PWM.
La loro capacità di calcolo è molto limitata e di solito eseguono lo stesso
programma (firmware) per tutta la durata del loro funzionamento.

Programmers & Devices – 2010 60


MCU – Architettura

 Porte: costituiscono le periferiche di base per la comunicazione da e verso


l'esterno. Possono essere configurate come ingressi o uscite digitali.
 Memoria: permette di conservare dati anche in assenza di alimentazione e
contiene il codice programma
 ADC: ad alcune porte del PIC è possibile applicare un ingresso analogico e
quantizzarlo con una risoluzione tipica di 10bit.
 Timer: sono presenti sempre e vengono utilizzati spesso per generare
ritardi finiti o per la misurazione d'intervalli di tempo (ad esempio eventi
esterni).
 PWM: permette, utilizzando un Timer di generare un segnale di comando
PWM.
 Comunicazioni: consente l'interfacciamento attraverso protocolli standard
(I2C, UART, CAN, ... ) con altri dispositivi.

Programmers & Devices – 2010 61


MCU – Architettura

Programmers & Devices – 2010 62


MCU – Architettura

Per poter utilizzare le periferiche sono presenti dei REGISTRI che


servono a configurarle. Si tratta di locazioni di memoria di 1byte in cui
ad ogni bit è associato un significato specifico.
Ogni registro ha un nome riservato e l'elenco dei registri con la loro
funzione è presente nei data-sheet.
Ad esempio:
 Ogni pin di una porta può essere configurato come ingresso o uscita
attraverso il registro TRISx.
 Mentre il valore presente o inviato alla porta è scritto nel registro
PORTx
Le operazioni vere e proprie invece vengono eseguite all’interno della
ALU (Arithmetic Logic Unit)

Programmers & Devices – 2010 63


MCU – Architettura

Programmers & Devices – 2010 64


MCU – ALU

L'Arithmetic Logic Unit (ALU) è un'unità dedita allo svolgimento di


operazioni matematiche ed è formata da un insieme di porte logiche
opportunamente collegate. Queste porte logiche nel loro complesso
provvedono ad eseguire tutte le operazioni aritmetiche e logiche gestite
dal microprocessore.

Simboli di una ALU:


 A e B segnali con gli addendi
 R segnali con il risultato
 F segnali di controllo
 D segnale con l'eventuale
riporto/resto

Programmers & Devices – 2010 65


MCU – ALU

Le prime ALU erano in grado di eseguire nativamente solo


le operazioni più semplici (addizione, sottrazione e
shifting di bit ecc.) e le operazioni logiche booleane
(AND, OR, XOR e NOT).
Le operazioni più complesse come le operazioni di
moltiplicazioni o divisione venivano emulate utilizzato
ripetutamente somme o sottrazioni. Con l'evolvere
dell'elettronica si è riuscito a integrare nelle ALU anche le
operazioni di divisione e moltiplicazione.
Tuttavia per le strutture più semplici, come ad esempio i
microcontrollori, queste operazioni sono più che sufficienti

Programmers & Devices – 2010 66


MCU – ALU – Porte logiche

Le porte logiche sono delle semplici strutture in grado di


realizzare delle comparazioni tra due o più segnali in
ingresso.
L’algebra utilizzata è quella di BOOL, da cui prendono il
nome le operazioni, definite per l’appunto BOOLEANE
Le porte logiche vengono prevalentemente realizzate con
reti di transistor CMOS (Complementary Metal-Oxyde
Semiconductor) e lavorano con logica TTL (Transistor-
Transistor Logic).
Di seguito sono riportate le strutture basilari.

Programmers & Devices – 2010 67


MCU – ALU – Porte logiche

AND è una porta logica che riceve in ingresso 2 valori e


restituisce 1 se e solo se tutti e due i valori di ingresso
hanno valore 1.

Input Output
A B AeB
0 0 0
0 1 0
1 0 0
1 1 1

Programmers & Devices – 2010 68


MCU – ALU – Porte logiche

OR è una porta logica che riceve in ingresso 2 valori e


restituisce 1 se uno od entrambi i valori di ingresso hanno
valore 1.

Input Output
A B AoB
0 0 0
0 1 1
1 0 1
1 1 1

Programmers & Devices – 2010 69


MCU – ALU – Porte logiche

XOR (eXclusive OR) è una porta logica che riceve in


ingresso "n" valori e restituisce "1" in uscita se e solo se il
numero di ingressi che presentano il valore logico "1" è
dispari.
Input Output
A B oAoB
0 0 0
0 1 1
1 0 1
1 1 0

Programmers & Devices – 2010 70


MCU – ALU – Porte logiche

NOT è una porta logica che inverte il segnale in ingresso.


Questa porta logica ha un solo ingresso ed una uscita che
sarà 1 se l'ingresso è 0 o 0 altrimenti.

Input Output
A NOT A
0 1
1 0

Programmers & Devices – 2010 71


MCU – ALU

Ora proviamo a costruire una semplice ALU in gradi di


eseguire l’operazione di addizione.
Costruiamo prima di tutto la tabella della verità:

A B Riporto Somma
0 0 0 0
0 1 0 1
1 0 0 1
1 1 1 0

Programmers & Devices – 2010 72


MCU – ALU

Conosciamo già queste due funzioni: in particolare la


somma è una funzione XOR, mentre il riporto è una AND.
Abbiamo realizzato una
semplice ALU in grado di fare
la somma di due numeri.

Programmers & Devices – 2010 73


MCU – Registri

 I registri costituiscono il punto più alto della gerarchia della


memoria, e sono il meccanismo più rapido per il sistema di
manipolare i dati. I registri sono normalmente misurati in base al
numero di bit che possono contenere. Attualmente sono
implementati normalmente con file dei registri
 Il termine è usato spesso per riferirsi esclusivamente al gruppo di
registri che possono essere direttamente indirizzati dalle istruzioni
di input e output del microprocessore. Più propriamente, queste
registri sono definiti "architected registers".
 Possiamo immaginarli come dei contenitori in cui i dati vengono
depositati temporaneamente, o se si tratta di una programmazione,
in modo permanente

Programmers & Devices – 2010 74


MCU – Registri

Programmers & Devices – 2010 75


MCU – Firmware

Il firmware è il programma depositato all’interno della


memoria fisica. Il microprocessore eseguirà questo SW
per tutto l’arco del suo funzionamento.
Esso è memorizzato su una memoria non volatile ROM o
EEPROM.
Spesso esiste un altro componente software più semplice
e di livello più basso, che si occupa delle funzioni
minimali necessarie a gestire la memoria non volatile e a
caricare il firmware, denominato bootloader.

Programmers & Devices – 2010 76


MCU – Firmware – Boot

In alcuni microcontrollori, come ad esempio la serie


Motorola 68HC11, è possibile scegliere tramite due
terminale (MOD A e MOD B), quale boot caricare.
I boot multipli permettono di “spezzare” in più parti il
firmware, e quindi di conseguenza impostare le
periferiche in maniera differente, cosa che spesso
avviene durante la fase di programmazione

Programmers & Devices – 2010 77


MCU – Firmware – Boot

Questa particolare proprietà di variare l’utilizzo delle


periferiche, quindi la possibilità di variare a piacimento i
valori dei registri, rende particolarmente sicura e
semplice la riprogrammazione della memoria del micro
stesso.
Quindi, data l’impossibilità di variare un programma
mentre è in esecuzione, si preferisce delegare il tutto ad
un sottoprogramma, particolarmente stabile e snello (che
è sinonimo di velocità nell’esecuzione), che vada a
riscrivere il programma principale.

Programmers & Devices – 2010 78


MCU – Firmware – Boot

Programmers & Devices – 2010 79


MCU – Generatore di Clock

Fino ad ora sono state esaminate le varie unità che


compongono il microcontrollore. Tuttavia, non è stato
delineato ancora nessun dispositivo che sia in grado di
sincronizzare i vari sottogruppi.
Questo ruolo è affidato al generatore di clock, che
provvede a scandire un tempo standard di
funzionamento.

Programmers & Devices – 2010 80


MCU – Generatore di Clock

Programmers & Devices – 2010 81


MCU – Generatore di Clock

Il generatore di clock dunque provvede a sincronizzare:


 trasferimento delle informazioni tra le varie unità

 processare i dati all’interno di un sottogruppo

Questo segnale viene generato da un sistema di


oscillatori al quarzo o da un piccolo circuito integrato che
genera onde quadre.
Tuttavia il caso più frequente nonché estremamente
economico e affidabile è il primo.

Programmers & Devices – 2010 82


MCU – Generatore di Clock

Programmers & Devices – 2010 83


MCU – Generatore di Clock

ATTENZIONE!!! Il generatore di clock oltre che a


determinare il sincronismo, determina anche la velocità
con cui vengono effettuate le operazioni.
Questa proprietà dipende essenzialmente dal risonatore
al quarzo utilizzato e si misura in Hz (Hertz) o multipli
(più comunemente kHz o MHz).

Programmers & Devices – 2010 84


MCU – Reset

Il segnale di RESET è usato per riavviare tutti i blocchi,


quindi possiamo intenderlo come una specie di salto
incondizionato del SW.
Dopo il segnale di reset, tutte le unità si riportano nello
stato di default.

Programmers & Devices – 2010 85


MCU

Programmers & Devices – 2010 86


MCU

Programmers & Devices – 2010 87


MCU – Identificazione

È possibile identificare il microcontrollore tramite una


stringa apposta sulla superficie superiore. Ad esempio
possiamo trovare scritto:
MC68HC908AS60, che è il codice esteso del dispositivo.
Quasi mai si usa questa annotazione perché troppo lunga.
Si preferisce quindi identificare l’MCU tramite una stringa
maschera univoca.

Programmers & Devices – 2010 88


MCU – ID – Mask

La stringa maschera è composta nell’ordine da:


 Numero (non sempre presente)

 Lettera

 Numero

 Numero

 Lettera

Indicheremo con # i numeri e $ le lettere.

Programmers & Devices – 2010 89


MCU – ID – Mask

Il mask (o maschera) sarà quindi:


(#) $ # # $
Nel caso del micro esaminato precedentemente avremo:
J74Y  MC68HC908AS60
Il codice mask e l’equivalente è presente in apposite
tabelle.
Nel caso in cui non fosse presente nell’elenco,
l’identificazione avviene tramite data-sheet rilasciati dal
costruttore, osservando la corrispondenza dei PIN

Programmers & Devices – 2010 90


Composizione di un’unità
di controllo elettronico.
Sistema di
gestione e controllo
ECU – Ricerca componenti

Regole generali per identificare un dispositivo e la funzione che esso svolge


 Microcontrollore o MCU:
 Generalmente è il componente con il maggior numero di PIN
 Ha collegati a se vari Bus Dati (ad es. con EPROM/FLASH o E2P)
 È indispensabile in quanto unico elemento in grado di gestire il sistema di controllo
 Formati tipici DIL/DIP (obsoleti) - PLCC - xQFP - BGA
 EPROM/EEPROM/FLASH:
 È situata nei pressi del micro e collegata ad esso tramite un Bus Dati
 Ha in se le mappe di controllo motore, immobilizer e comunicazione diagnostica
 Non è indispensabile in quanto la sua funzione può essere svolta dallo stesso Micro
 Nel caso di architettura a 16bit è possibile una presenza doppia
 Formati tipici DIL/DIP28 - DIL/DIP32 - PLCC32 - PLCC44 - PSOP44 - SSOP56
 SERIAL EEPROM:
 È situata nei pressi del micro e collegata ad esso tramite un piccolo Bus Dati (2 lines)
 Ha in se le impostazioni del veicolo e il log-in (immobilizer)
 Non è indispensabile in quanto la sua funzione può essere svolta dallo stesso Micro
 Formati tipici DIL8 - SOIC8 - TSSOP8

Programmers & Devices – 2010 92


ECU – Logica di Controllo

Disturbo

IN + Controllore Impianto ++ OUT

Sistema
OPEN-LOOP

Programmers & Devices – 2010 93


ECU – Logica di Controllo

Sistema Disturbo
CLOSE-LOOP

IN + Controllore Impianto ++ OUT


-

La ECU valuta Trasduttore


gli errori!!!

Programmers & Devices – 2010 94


ECU – Logica di Controllo

Disturbo

+
+ Controllore Impianto +
-

Trasduttore

Programmers & Devices – 2010 95


ECU – Logica di Controllo

Sistema di controllo posizione (pedale acceleratore/valvola farfalla)

Programmers & Devices – 2010 96


ECU – Flusso dati

Condizionamento Condizionamento
Segnali Micro Segnali

Input
(Sensori)
Elettronica
Flash/ di Potenza
Eprom E2P
(MOS)

Output
(Attuatori)

Programmers & Devices – 2010 97


ECU – Layout Componenti

Bus Dati Micro

Eprom
E2P

Circuito di
potenza

Programmers & Devices – 2010 98


ECU – Layout Componenti

Coprocessore

Micro

Bus Dati

Flash
Eprom

Programmers & Devices – 2010 99


ECU – Layout Componenti

Coprocessore
Micro

Bus Dati

Programmers & Devices – 2010 100


ECU – Layout Componenti

Micro

Bus Dati

Flash
Eprom

Programmers & Devices – 2010 101


Programmazione dei
dispositivi con
programmatore generico
Programmer

Il programmatore permette la riprogrammazione del


dispositivo in seguito al distacco dal circuito.
La memoria o il microcontrollore devono essere collegati
solo ed esclusivamente alla piastra del programmatore
tramite adattatori (condizione non essenziale).
Una volta terminata la preparazione hardware, si passa
alla programmazione vera e propria.
Nell’illustrare le procedure di programmazione si farà
riferimento al programmatore Wellon VP680, ma il
ragionamento è estendibile a tutti i modelli e marche

Programmers & Devices – 2010 103


Programmer – Hardware

Il dispositivo da programmare o l’adattatore su cui


alloggerà il dispositivo va sempre rivolto con il PIN1
verso l’alto e appoggiato sul bordo inferiore.

PIN 1

Parte
bassa

Programmers & Devices – 2010 104


Programmer – Software

Menù dei
comandi

Logger

Status

Programmers & Devices – 2010 105


Programmer – Gestione file

Edita il
“buffer”
Carica file da
programmare
Salva file
letto dal
device

Programmers & Devices – 2010 106


Programmer – Buffer

Il buffer è il file letto dal dispositivo e trasposto in memoria


sul PC. Quindi è la copia del contenuto del dispositivo.

Visualizzazione Visualizzazione
in Byte in ASCII

Programmers & Devices – 2010 107


Programmer – Buffer

ATTENZIONE!!! Nel momento in cui si caricherà un


file da PC andrà a finire nel buffer e non nel
dispositivo.
Allo stesso modo un file salvato sul PC, sarà il
contenuto istantaneo del buffer

Programmers & Devices – 2010 108


Programmer – Buffer – Fill

La funzione Fill permette di riscrivere un intero settore del


buffer di qualunque dimensione con un determinato valore

Indirizzo
di start
Indirizzo
di stop

Valore

Programmers & Devices – 2010 109


Programmer – Buffer – Fill

Dopo l’esecuzione della funzione Fill, il buffer si presenta in


questo modo:

Programmers & Devices – 2010 110


Programmer – Buffer - Swap

La funzione Swap Byte permette di invertire i byte pari


con quelli dispari:

AA BB CC DD  BB AA DD CC

Esiste anche una funzione, meno usata, chiamata Swap


Word che permette di invertire un’intera parola (4 Byte):

AA BB CC DD EE FF GG HH  DD CC BB AA HH GG FF EE

Programmers & Devices – 2010 111


Programmer – Buffer - Swap

Buffer di riferimento:

Programmers & Devices – 2010 112


Programmer – Buffer - Swap

Buffer dopo Swap Byte:

Programmers & Devices – 2010 113


Programmer – Buffer - Swap

Buffer dopo Swap Word:

Programmers & Devices – 2010 114


Programmer – Buffer - Checksum

La funzione Checksum (o spesso indicato con CHKSUM)


esegue un algoritmo di verifica dell’inserimento dei dati
durante la scrittura.
Il checksum più semplice è la somma di tutti i byte presenti
nel buffer.
Nel calcolo del checksum è sufficiente individuare le ultime
4 cifre
Ad esempio:
01FDD6AC  D6AC

Programmers & Devices – 2010 115


Programmer – Select device

Selezione
del
dispositivo

Programmers & Devices – 2010 116


Programmer – Select device

Il tasto select device permette la scelta del dispositivo:

Sotto-
Costruttore Modello gruppo

Info

Programmers & Devices – 2010 117


Programmer – Select device

ATTENZIONE!!! È essenziale che l’individuazione e


scelta del dispositivo venga eseguita prima di qualunque
operazione di lettura/scrittura.
Una inosservanza di questa regola potrebbe
danneggiare irrimediabilmente la memoria o il
microcontrollore in questione.

Programmers & Devices – 2010 118


Programmer – Operazioni

Blank
check Verifica

Programma Leggi Cancella

Programmers & Devices – 2010 119


Programmer – Program

Il tasto Prog permette la (ri)programmazione del


dispositivo scelto.
Con questa operazione, tutti i dati presenti nel buffer
verranno ricopiati esattamente così come sono nella
memoria.
Al termine della procedura, buffer e dispositivo avranno
gli stessi byte.
Sulle eprom possibile effettuarla se e solo se il dispositivo
è vuoto.

Programmers & Devices – 2010 120


Programmer – Blank check

Il tasto Blank check permette di verificare se la


memoria o il micro è vuoto (nei casi in questione il
dispositivo scelto sarà vuoto se tutti i byte sono ad FF)
Questa funzione agisce solo ed esclusivamente sul
dispositivo, quindi non intacca il buffer che rimarrà
invariato così com’è.

Programmers & Devices – 2010 121


Programmer – Read

Il tasto Read permette la lettura dei dati contenuti nel


dispositivo. Tutte le informazioni presenti nel buffer
andranno perse e sovrascritte, mentre la memoria non
subirà nessuna variazione.

Programmers & Devices – 2010 122


Programmer – Verify

È l’unica operazione che non causa la variazione dei dati


nel buffer e nella memoria.
Il tasto Verify esegue semplicemente una comparazione
tra il buffer e il dispositivo.
Al termine dell’operazione verrà restituito un messaggio
di ok se le due parti (buffer e device) coincidono,
altrimenti verrà segnalato un errore.

Programmers & Devices – 2010 123


Programmer – Erase

Il tasto Erase esegue la cancellazione dei dati nel


dispositivo (ove possibile). Tutti i byte vengono ripristinati
ad FF.
Questa operazione mantiene inalterati i dati presenti nel
buffer.

Programmers & Devices – 2010 124


Programmer – Logger

Nel logger vengono riportate tutte le operazioni eseguite


sul dispositivo e l’esito della funzione scelta:

Programmers & Devices – 2010 125


Programmer – Sintesi

Riassumendo, le fasi fondamentali per la LETTURA di un


dispositivo con programmatore generico sono:
• Identificazione del dispositivo e posizionamento sul
programmatore
• Scelta del dispositivo (Select Device)
• Lettura (Read)
• Verifica (Verify) – per n volte!!! –
• Esportazione del buffer su file (Save)

Programmers & Devices – 2010 126


Programmer – Sintesi

Invece, le fasi fondamentali per la SCRITTURA di un


dispositivo con programmatore generico sono:
• Identificazione del dispositivo e posizionamento su
programmatore
• Scelta del dispositivo (Select Device)
• Importazione del buffer da file (Load)
• Verifica possibilità di scrittura (Blank Check) – Solo per
dispositivi OTP –
• Programmazione (Program)
• Verifica (Verify) – per n volte!!! –

Programmers & Devices – 2010 127


Programmazione di
dispositivi con
programmatore UPA
UPA – Hardware

Composizione dell’hardware UPA

TMS
NEC
Adapter
Adapter

UPA
Programmer

Programmers & Devices – 2010 129


UPA – Hardware

Programmers & Devices – 2010 130


UPA – Hardware NEC/912 BDM

Programmers & Devices – 2010 131


UPA – Hardware NEC/912 BDM

Programmers & Devices – 2010 132


UPA – Hardware 912 BDM

La Motorola ha predisposto per i propri processori una


“porta di servizio” (il PIN contrassegnato con BKGD) per
effettuare il debug di tutti i sistemi in cui tali CPU sono
utilizzate. Nasce da questo concetto l'interfaccia BDM
(Background Debug Module), la quale permette di
monitorare il funzionamento del processore e tramite esso
di accedere a tutte le periferiche ad esso collegate.
Tramite questo supporto hardware ed appositi software è
possibile accedere alle memorie non volatili o flash nelle
quali è memorizzato il firmware.

Programmers & Devices – 2010 133


UPA – Hardware 912 BDM

Quale è la differenza tra la programmazione in BDM e


normale???
La programmazione in BDM è sempre possibile, mentre
quella normale in-circuit non è sempre consentita. In
particolare è possibile bloccare tale opzione con il
modulo BDM

Programmers & Devices – 2010 134


UPA – Hardware 912 BDM

ATTENZIONE!!! BDM non è sinonimo di


adattatore. Il BDM è uno strumento particolare di
riprogrammazione.

Programmers & Devices – 2010 135


UPA – Hardware TMS

Programmers & Devices – 2010 136


UPA – Hardware TMS

ATTENZIONE!!! I micro della famiglia TMS370Cx36 e


TMS370Cx42 PLCC44 richiedono degli adattatori
addizionali, non inclusi nel pacchetto UPA.

Programmers & Devices – 2010 137


UPA – Software

Menù dei
comandi

Logger

Programmers & Devices – 2010 138


UPA – Software

Avvia nuova
programmazione

Programmers & Devices – 2010 139


UPA – Software

Lista
dispositivi

Programmers & Devices – 2010 140


UPA – Software

Una volta selezionato il dispositivo si aprirà la finestra con


i menù classici di comando con il buffer.

Programmers & Devices – 2010 141


UPA – Software

Comandi

Buffer

Connessioni

Programmers & Devices – 2010 142


UPA – Software

Baud o
Frequency

Byte di
protezione

Programma
solo
modifiche

Programmers & Devices – 2010 143


UPA – Frequenza

È necessario impostare una Frequenza di funzionamento


del microcontrollore prima di qualsiasi altra operazione,
che altrimenti risulterà impossibile da effettuare
Nella serie Motorola (9)08 si parla di Baud, che è
l’analogo della frequenza. L’unica differenza sta nel fatto
che nel baud sono anche indicati i bit trasmessi ad ogni
colpo di clock.
Come detto precedentemente, la frequenza da impostare
è quella del risonatore al quarzo.

Programmers & Devices – 2010 144


UPA – Frequenza

Baud

Modalità
auto

Programmers & Devices – 2010 145


UPA – Frequenza

ATTENZIONE!!! Nella serie (9)08 è possibile settare il


baud rate in modo automatico tramite il tasto Auto baud
rate. Tuttavia questa funzione è di tipo puntuale a step
variabile.
È possibile dunque che ad esempio se si è in presenza di
un cristallo da 4000kHz, l’auto baud rate restituisca un
valore prossimo a tale frequenza (ad esempio 3840kHz).
Se si procede alla lettura del micro, in questo caso verrà
visualizzato il messaggio “Frame error”.

Programmers & Devices – 2010 146


UPA – Security byte

Programmers & Devices – 2010 147


UPA – Security byte

I security byte sono una protezione sia in lettura che in


scrittura del microcontrollore.
Se non si conosce questa sequenza di 8 byte, non è
possibile effettuare nessuna operazione.
Questa funzione è attiva solo ed esclusivamente sui
microcontrollori della serie (9)08.
È possibile riconoscere un processore protetto in seguito
ad un operazione di lettura, infatti nel buffer verranno
riportati tutti i byte al valore AD

Programmers & Devices – 2010 148


UPA – Program modified only

Questa funzione permette la riprogrammazione a settori


della sola parte modificata
Una volta attivata, tutte le modifiche al buffer verranno
riportate in rosso

Programmers & Devices – 2010 149


UPA – Program modified only

Programmers & Devices – 2010 150


UPA – Connection

Questa schermata è il cuore della riprogrammazione


con UPA.
In questa sezione vengono visualizzati i pin di
collegamento con il microcontrollore e lo stato delle
connessioni.
Nel caso di disturbi causati dal circuito, viene
segnalato il PIN da sollevare.

Programmers & Devices – 2010 151


UPA – Connection

Tensione
settata con J1 Tensioni e
pin
assegnati

Programmers & Devices – 2010 152


UPA – Connection

Programmers & Devices – 2010 153


UPA – Sintesi

Riassumendo, le fasi fondamentali per la LETTURA di un


dispositivo con programmatore UPA sono:
• Identificazione del dispositivo e connessione con cavo in
dotazione
• Scelta del dispositivo (Select Device)
• Scelta della frequenza di clock (Frequency o Baud
Rate) – solo per processori –
• Lettura (Read) – in caso di esito negativo consultare
sezione “CONNECTION” –
• Verifica (Verify) – per n volte!!! –
• Esportazione del buffer su file (Save as …)

Programmers & Devices – 2010 154


UPA – Sintesi

Invece, le fasi fondamentali per la SCRITTURA di un


dispositivo con programmatore UPA sono:
• Identificazione del dispositivo e connessione con cavo in
dotazione
• Importazione del buffer da file (Load)
• Scelta del dispositivo (Select Device)
• Scelta della frequenza di clock (Frequency o Baud
Rate) – solo per processori –
• Programmazione (Program) – in caso di esito negativo
consultare sezione “CONNECTION” –
• Verifica (Verify) – per n volte!!! –

Programmers & Devices – 2010 155

Potrebbero piacerti anche