Вы находитесь на странице: 1из 33

Chapitre 1

Architecture des systmes


embarqus

Introduction
Un systme embarqu dispose dune architecture semblable celle
des ordinateurs standards
On y retrouve les mmes composants :
Un processeur
De la mmoire
Des dispositifs dentre/sortie
Ces lments sont interconnects entre eux travers des bus
Processe
ur

Mmoire

Bus

Vue simplifie

E/S

E/S

Les mmoires
Dans un systme embarqu on y retrouve plusieurs types de mmoires
quon peut classer selon diffrents critres
Les mmoires non volatiles
ROM
PROM
EPROM
EEPROM
FLASH
Les mmoires volatiles
SRAM
DRAM
SDRAM
DDR-SDRAM
Toutes ces mmoires sont accs alatoire.

Les mmoires non volatiles


ROM (Read Only Memory)

Elle existe en gnral sous une petite taille dans un systme embarqu.
Elle contient le programme de dmarrage du systme (bootstrap) et
ventuellement quelques donnes initiales
Le rle principal de ce programme est de charger lapplication (ou
un autre programme de dmarrage plus sophistiqu) depuis une
source bien dtermine. (en gnral depuis la mmoire flash dans
unLasystme
embarqu)

ROM nest
accessible quen lecture seule et son temps daccs
est plus lent que les RAM
PROM (Programmable Read Only Memory)
Cest des ROM vierges quon peut programmer une seule fois
Une fois programmes, il nest plus possible de les reprogrammer
EPROM (Erasable Programmable Read Only Memory)
Utilises souvent durant les phases de dveloppement des
Ces mmoires peuvent tre effaces et rcrites en utilisant des
bootstrap

dispositifs
Lecriturespcifiques
peut se faire sur une ligne spcifique de lEPROM (en
appliquand une tension spcifique (+12 V). Leffacement se fait sur
toute la mmoire (en lexposant aux rayons ultraviolets)
Leffacement rpt finit par endommager la mmoire. Elle nest pas
donc conseille dans les systmes finaux.

Les mmoires non volatiles

ROM (Electrically Erasable Programmable Read-Only Memory)


Ce sont des mmoires non volatiles quon peut crire et effacer en
appliquant des tensions lectriques
Elles existent sur les systmes embarqus en de trs petites tailles
(plus petite que la ROM)
Elles contiennent en gnral des donnes qui peuvent changer au fil
du temps mais qui doivent rester aprs extinction du systme
Adresse de la carte rseau
Paramtres de configuration
Numro de srie,
Lcriture et leffacement ne ncessite pas de dispositif spcifique
comme ce qui est de lEPROM et peut se faire sur une ligne spcifique
Leffacement rpt nendommage pas lEEPROM

Les mmoires non volatiles


Les mmoires Flash
Les mmoires Flash fournissent une grande densit de sauvegarde
compares aux EEPROM avec un temps daccs quivalent aux
RAMs lentes (DRAM par exemple)
Elles sont utilises pour sauvegarder le logiciel (le Firmware) du
systme
embarqu
En pratique,
ce logiciel est charg de la mmoire Flash vers la
RAM pour lexcuter (par le bootstrap se trouvant fig dans la ROM)
Lcriture et leffacement ne ncessite pas de dispositifs
supplmentaire
Leffacement se fait par secteur et pas par ligne (la taille dun
secteur varie entre 16ko et 64ko)
Il existe deux types de mmoires Flash
La NAND-FLASH : grande densit de sauvegarde mais lente
La NOR-FLASH : petite densit de sauvegarde mais rapide
Lcriture rpte altre la mmoire Flash mais des mcanismes
appropris permettent disoler les secteurs dfectueux

LES RAMs

es RAMs sont des mmoires volatiles accs alatoire en lecture et en criture


Il existe deux types de RAMs:

Les SRAM (Static RAM)


Trs rapides
Petite densit de sauvegarde et coute cher (6 transistors par bit mmoi
Utilises surtout dans les mmoires cache et Scratchpad
pour excuter des portions de code les plus frquentes ou les
plus critiques (vecteurs dinterruption, piles et Heap, etc)
Les DRAM (Dynamic RAM)
Trs grande densit de sauvegarde ( 1 transistor par bit mmoire)
Moins rapide
Ncessite des dispositifs supplmentaires (pour le
rafraichissent entre autres)
Contient le programme en excution et ses donnes de
travail

La mmoire SRAM
Slection du
mot

La mmoire est adressable par


mot (en lecture et en criture)
Elle peut donc tre facilement
connecte au bus du processeur

Bit

Bit

Lecture

Structure dun bit mmoire

1. Mettre la ligne de slection du mot 1


2. Lire les niveaux des lignes Bit et Bit
Ecriture
1. Mettre les lignes Bit et Bit aux niveaux appropris (ex: pour un 1,
Bit = 1, Bit =0)
2. Mettre la ligne de slection 1

La mmoire DRAM
Colonne

La DRAM est organise sous une


forme matricielle

ligne

Chaque cellule mmoire est


compose dun transistor et dune
capacit
Linformation est sauvegarde dans
la0 capacit
capacit dcharge
1 capacit charge
bit
Les capacits se dchargent rapidement (au bout
de quelques millisecondes). Un dispositif de
rafraichissement est ncessaire
SDRAM et DDR-SDRAM sont des amliorations des
DRAM
Les DRAMs ne sont pas interfaables directement avec le bus du
processeur. Un contrleur mmoire est ncessaire

Les priphriques
dentres/sorties
Tout comme les
ordinateurs conventionnels, les systmes
embarqus disposent dun ensemble de priphriques
dentres/sorties permettant au processeur de dialoguer avec
lenvironnement
extrieur

Les priphriques
des systmes embarqus sont plus nombreux
et plus varis que les ordinateurs classiques
Les priphriques dialoguent avec le processeur laide
dintrfaces dentres/sortie
On y retrouve gnralement comme interface
Des contrleurs audio, vido, rseau, etc
Des ports dentres sortie usage gnral pour interfacer des
dispositifs
Des portsexternes
srie pour interfacer les quipements en mode srie,
UART, USB, SSP, I2C, etc
Des convertisseurs analogiques/ numriques (CANs) intrfaant
des
capteurs
Des
Timers/compteurs pour des applications temps rel

Dispositifs dentres/sorties
Les priphriques dentres/sorties sont trs varis et fonctionnent de
manire diffrentes
Les processeurs, par contre, peuvent uniquement crire sur le bus
ou
lire rduire
du bus cet cart, on utilise des dispositifs dentres/sorties pour
Pour
relier le priphrique au processeur
Le dispositif dentres/sortie est une interface entre le priphrique et le
processeur
Il interprte les commandes du processeur et les transforme en
commandes spcifiques du priphrique
Chaque priphrique ncessite en gnral un dispositif particulier
dentres/sorties
Un dispositif dentres/sorties peut sadapter plusieurs priphriques
diffrents
Un mme dispositif dentres/sorties peut connecter la fois plusieurs
priphriques diffrents

Structure gnrale dun dispositif


dentres/sorties
Les dispositifs dentres
sorties se ressemblent.

sont connects au bus du processeur dun cot, et au priphrique interfac de

Le registre de donnes

A laide de ce registre, le processeur fournit une donne au


priphrique ou rcupre une valeur de ce dernier (le car crire
pourde
un commande
cran par exemple)
Les registre
et dtat
Fournissent la commande excuter sur le dispositif et rcuprent
ltat dexcution de cette commande (effectue, erreur, attente,
etc) de contrle
La logique
Peut tre un autre processeur spcifique. Il lit la donne et la
commande, il excute la commande puis renvoie ltat dexcution
de lade
commande
La logique
dinterfaage
Se charge de gnrer les signaux adapts aux priphriques
interfacs

Les bus

ous les lments dun systme embarqu sont interconnects travers des bus
Un bus est une collection de fils vhiculant des informations entre le
processeur, la mmoire et les priphriques
On distingue en gnral trois bus:
Le bus de donnes
Vhiculant les donnes
bidirectionnel
Le bus dadresses
Vhiculant ladresse de la location mmoire ou du priphrique
Unidirectionnel
Le bus de commande
Vhiculant la commande effectuer (lecture, ecriture)
Fournit dautres informations de contrle
Horloge
Taille de linformation (octet, demi-mot, mot)
.

Interconnexion processeur-mmoire
En prsence de multiples banc mmoire (ROM, SRAM, DRAM, etc),
une logique de rpartition de lespace dadressage est ncessaire
Cette rpartition (dite aussi mappage) est ralise en utilisant des
lignes du bus dadresses et ventuellement un dcodeur
Le bus de donnes, quand lui est reli aux bus de donnes de
tous les bancs
Exemple
Soit un microcontrleur avec un bus de donnes de 8 bits et un bus
dadresse de 16 bits. On souhaite lui connecter un module ROM de 2 KO
et 2 modules RAM de 4 KO chacun. la taille du bus de donnes des RAM
est 8Proposez
bits
un mappage adquat en mettant la ROM dans lespace
des adresses basses
Taille du bus de donnes des mmoire = 8 bits
Taille du bus dadresse de la ROM = 11 bits car 211 = 2K
Taille du bus dadresse de chaque RAM = 12 bits car 212 = 4K

Interconnexion processeur-mmoire
Exemple
Modul
e

Bus dadresse
A15
A14

A13
A12

0
ROM

A11

A10 A9 A8 A7 A6 A5 A4 A3 A2
A1 A0

Taille

0 0 0
0 0

1 1 1
1 1

0 0 0
0 0

1 1 1
1 1

0 0 0
0 0

0 0

0
0
0

0
0

0
Rserv

1 1 1
0

0 0

1
0
0

0
0

0
RAM1

1
0

1
0

1 1 1
0

1
0

1
1

1 1 1
1 1
0 0 0

0x080
0
2K
0x0FF
F

0 0
4K

1
0

0x000
0
(2K)
0x07F
F

1
0

1 1 1
0

0 0

Interconnexion processeur-mmoire
Exemple

On utilisera les bits dadresses de poids forts pour crer des lignes de slection
0xFFFF

A15 A14 A13 A12 A11

Rserv,
52K

0x3000
0x2FFF

CS

RAM2, 4K
0x2000

CSRAM2

0x1FFF

CS

RAM1, 4K
0x1000

CSRAM1
Rserv, 2K
CSROM

CS

ROM, 2K

0x0FFF
0x0800
0x07FF
0x0000

Des espaces non mapps peuvent rsulter dun mappage


particulier. Ces espaces peuvent tre utilises pour des extensions
mmoires ou des mappages dentres/sorties

Interconnexion processeurEntres/Sorties
Il existe deux technologies dinterfaage des entres/sorties
Les entres/sorties isoles
Le processeur dispose de deux bus
-- Un bus pour la mmoire
-- Un autre bus pour les entres/sorties

RAM

ROM

E/S
E/S

Bus E/S

Processe
ur

Bus mmoire

E/S
Le processeur dispose dinstructions spcifiques pour chaque accs
-- Load et Store pour laccs la mmoire
-- IN et OUT pour laccs aux entres/sorties
RAM
ROM

Les entres/sorties mappes en mmoire


Processe
Un seul bus partag par la
ur
mmoire et les entres/sorties
Les mmes instruction (Load et Store) sont
utilises pour laccs aux E/S

Bus mmoire
E/S

E/S

Mappage des entres/sorties en


mmoire
Dans les systmes embarqus,
on prfre utiliser les
entres/sorties mappes pour plusieurs avantages
Gain en espace et en nergie car on nutilise

quun
seul bus
Simplicit
dutilisation car on accde aux entres/sorties comme on
accde de
la mappage
mmoire
Exemple
Soit un contrleur daffichage pouvant interfacer un cran pour
afficher du texte. Ce contrleur dispose dun ensemble de registres
Un registre DATA pour fournir le caractre afficher
Un registre POS pour fournir la position de lcran o afficher le caractre
Un registre de commande (Ecriture ou effacement)
Adresse
Registre
Un registre dtat
A1 A0
A0
A1
CS

Contrle
ur
dafficha
ge

Interfa
ce
cran

DATA

POS

1
0
Command
Bus de
e
donn
1
1
Etat
es
Donner un schma de mappage du contrleur vers les adresses les plus haut
Donnez les adresse des 4 registres en fonction de ce mappage
Ecrire un programme ARM permettant dafficher le caractre A la positio

Mappage des entres/sorties en


mmoire
Exemple de mappage
A0
A1
A15
A14
A4
A3
A2

A0
A1

CS

Contrleu
r
dafficha
ge

RDATA
equ 0xFFFC ; adresse du registre DATA
RPOS equ 0xFFFD ; adresse du registre POS
RCOMequ 0xFFFE ; adresse du registre commande
RETAT
equ 0xFFFF ; adresse du registre tat

; afficher un A la position 0
; crire le code du car dans le registre DATA
ldr R0, =RDATA
mov R1, code_ascii_A
str R1, [R0]
; donner la position du car dans le registre POS
ldr R0, =POS
mov R1, #0
str R1, [R0]
ldr R0, =RCOM
; commande dcriture
mov R1, #Code_de_la_commande_daffichage
str R1, [R0]

Zone
mmoire
du
contrleu
r

0xFFFF

0xFFFC

Autre
espace
mmoire

0x0000

Environnements multi-bus

Les priphriques dentres/sorties sont gnralement plus lents que le


processeur et la mmoire
Les interfacer directement au bus processeur-mmoire rduit les

performances
dules
systme
Pour maintenir
performances du processeur tout en interfaant des
priphriques lents, on peut utiliser plusieurs bus.
Un bus systme pour le processeur et la mmoire
Un bus externe pour les priphriques
Pour relier les deux bus, on utilise un circuit spcial dit Bridge qui
adapte les signaux des deux bus
Le processeur accde aux priphriques de la mme faon quavant.
Le Bridge lui adapte les signaux, mmorise les info et insre des cycles
dattente
Mmoir
E/S
E/S
e
Processe
ur

Bus systme

Bridge

Bus
priphriques

On peut retrouver des configurations plus sophistiques o le


processeur dispose dun bus pour la mmoire cache, un bus pour la
mmoire et un ou plusieurs bus pour priphriques

Accs direct la
Certains priphriques
manipulent de grands volumes dinformation
mmoire(DMA)
(comme les priphriques, vidos, audio, rseau, disques durs, etc)
Si le processeur doit grer lui-mme ces transferts, il passera beaucoup
de temps effectuer des lectures/critures entre la mmoire et les
priphriques
Le transfert dun bloc de 100 KO ncessite 25600 instructions de
lecture et 25600 instructions dcriture
Pour palier cela, la technique daccs direct la mmoire est utilise
Un circuit spcifique dit DMAC (DMA Contrller) est ajout au systme
Ce circuit remplace le processeur dans les oprations transfert de
donnes dune source la destination
Les oprations quun contrleur DMA peut effectuer sont :
Transfert dune zone mmoire vers un priphrique
Transfert dun priphrique vers une zone mmoire
Transfert dune zone mmoire vers une autre
Transfert dun priphrique vers un autre
Pendant que le DMAC effectue le transfert, il doit prendre le contrle du
bus. Le processeur doit donc librer le bus en le mettant en haute
impdance
Pendant le transfert DMA, le processeur na pas accs la mmoire. Ceci
ne pose pas de grands problmes dans la mesure ou la plupart du temps il
en a pas besoin (les instructions sont dans le cache et les donnes dans les
registres)

Accs direct la
mmoire(DMA)

Fonctionnement du contrleur DMA

1. Le processeur prpare le circuit DMA en spcifiant:


Le type de transfert
Ladresse dbut des donnes
La quantit de donne transfrer
2. Le priphrique demande un transfert DMA laide de DREQ
3. Le DMAC demande au processeur de librer le bus avec un signal
HOLD
4. Le processeur libre le bus et informe le DMAC avec le signal HDLA
5. Le DMAC effectue le transfert et signale la fin du transfert au
processeurHOLD
laide de INT et au priphrique laide de DACK
DREQ
Mmoir
HLDA
DMAC
E/S
DACK
e
INT
Processe
ur
Bus

Environnement multiEn prsence dun circuit masters


DMAC, le processeur nest plus le seul
lment qui contrle le bus un moment donn.
Certains contrleurs (vido, ethernet, etc) disposent de leur propre
circuit DMA intgr qui peuvent chacun prendre le contrle du bus
On peut distinguer dans ce cas deux entits
Le maitre (Master)
Cest lquipement qui prends le contrle du bus et qui initie une
transaction(mettre la donne et ladresse dans le bus, fournir la
commande de lecture/ecriture)
Lesclave
(Slave) DMA, Contrleur vido, etc
Processeur,
La mmoire ou le priphrique sur lequel la transaction est lance
Un master dans une transaction peut tre slave dans une autre
Le processeur joue toujours le rle du master
Avant de prendre le contrle du bus, un master doit donc sassurer
quaucun autre master na pris le contrle de ce dernier. Une logique
darbitrage
donc necessaire

Un nouvelest
lment
rentre en jeu. Cet lment est dit arbitre du bus
Larbitre du bus reoit toutes les demandes HOLD des master (mme
celle du processeur quand il veut accder la mmoire) et rserve le bus
pour un dentre eux en fonction de la politique darbitrage utilise

Normes de bus

n bus nest pas quune collection de fil mais il est dfinit par plusieurs caractris
Le nombre de bits du bus dadresse
Le nombre de bits du bus de donnes
Le nombre de bits du bus de commande
Rgles dacomplissement des transactions, Rgles darbitrage
Synchrone ou asynchrone
Dbit, Vitesse, etc.

Plusieurs normes de bus existent ayant chacune leurs propres caractristiques


ISA
PCI
AMBA
etc
Tous les lments (dont le processeur) doivent tre compatibles avec la
norme du bus

AMBA (Advanced Microcontroller Bus


Architecture)
AMBA est une norme de bus ouverte destines aux systmes
embarqus bass sur les processeurs ARM

Grce cette norme, les constructeurs peuvent raliser toutes


sortes dquipement pouvant sinterfacer facilement avec les
processeurs
ARM sur une structure multi-bus et multi-masters
La norme
AMBA repose
Dans la norme AMBA on distingue trois bus

AHB (Advanced High Performance Bus)


Cest le bus systme
Cest un bus multi-master
Relie le processeur la mmoire et ventuellement
dautres masters
APB (Advanced
Peripheral Bus)
Connecte les priphriques lents aux systme
Connect au bus systme via un bridge
FAB (Fast Access BUS)
Un autre bus pour les priphriques plus rapides
Connect au bus systme via un bridge

AMBA (exemples)

ARBITER
ARM7TDMI

DECODER
RADIO
I/F

SMC
TIC

AHB

DMA

APB

POWER &
CLOCK
CONTROL

SHARED
MEMORY
CONTROLLER

GPIO

PIC

SPEECH
I/F

LMC

SHARED
MEMORY

PLL
CLOCKS

WATCH
DOG

BRIDGE

text
TIMERS

UART

ADC

DAP I/F

UART

ACI USB

System On Chip
Un systme On Chip ou SoC est un circuit intgr contenant un
ensemble dlements (processeurs, mmoires, entres/sorties)
interconnects pour raliser une fonction (ou un type de fonctions)
spcifique
Cest un circuit plus spcialis quun microcontrleur classique
Puce tlphonique
Systme dacquisition intgr
Systme intgr pour ordinateur de bord,
etc.
Un Systme On Chip peut tre conu de faon personnalise en
utilisant les technologies dintgration actuelles
ASIC
FPGA
etc
Les lments dun SoC peuvent galement tre conus et interfacs de
faon personnaliss. Ils sont dits IP (Intellectual Property)
Les exemples de la diapositive prcdente sont en ralit des SoC

LPC32x0
Les SoCs de la famille LPC32x0 sont des SoCs de haute performance et

consommation rduite
onus par la socit NXP pour embarquer des applications complexes
Adapts un systme dexploitation embarqu
comme
Ils sontLinux
bas sur le processeur ARM926EJ-S

ayant les caractristiques suivantes


Architecture de type Harvard
Pipeline 5 tages
32Ko de cache instruction
32KO de cache de donnes
Vitesse de 266MHZ
Support matriel pour le calcul flottant et lexcution java byte code
Ils disposent de mmoire SRAM interne allant jusqu 256KO et dun
contrleur mmoire externe pour une ventuelle extension mmoire
Ils disposent dun grand nombre de priphriques externes pour
sadapter
aux :besoins
Applications
Mdicales
Industrielles
Rseaux
spcifiques

Composants du LPC32x0

M de 16kO contenant le bootstrap


AM interne
ntrleur mmoire externe pouvant interfacer des mmoire SRAM, SDRAM et DDR
ntrleur pour mmoire Flash (NAND Flash et NOR Flash)
ntrleur DMA 8 canaux
ntrleur clavier 64 touches
ntrleur etherne 10/100
nterfaces srie UART
nterfaces srie SSP
nterfaces srie I2C
nterfaces srie I2S
nterfaces srie SPI
nterface USB
ntrleur LCD
ntrleur pour carte SD
O (12 GPI, 24 GPO, 51 GPIO)
onvertisseur analogique/numrique qui peut oprer comme clavier tactile
Timers

Structure du LPC32x0

System On Module (SoM)


Un SoM est une association dun SoC et dun ensemble dlments
supplmentaires comme une extension de mmoire, dautres
priphriques, des connecteurs pour les priphriques internes du SoC,
etc
Le SoC et ses extensions ne sont pas implmets sur puce mais sont
implments sur circuit imprim (PCB)
On peut le considrer comme la carte mre dun systme embarqu
Le SoM est gnralement de taille rduite (10 cm x 10cm) et dispose
de connecteurs facilitant son dploiement
Un SoM est un systme autonome et ne ncessite quun minimum
dajout pour fonctionner (Une alimentation et ventuellement des
connexions au systme externe)

PCM-040 (LPC3250 SoM)

Vue de dessus

Le SoM LPC3250 est conu par la socit


PyTec (filiale de Philips) et runis dans le
mme PCB les lments suivants:
Un SoC LPC3250
Son dispositif dalimentation (dont
support pour batterie)
64MO de SDRAM externe
64MO de mmoire Flash NAND
2MO de mmoire Flash NOR
32KO de mmoire EEPROM
2 interfaces RS-232
Un Interface USB
Une interface Ethernet

Vue de dessous

Mappage mmoire du LPC3250 SOM