Pr Latifa HAMAMI-MITICHE
Série de TD n°2 (séance 1) avec résumé de cours sur l’adressage des circuits d’E/S
Exercice 1 :
Soit à concevoir un système bâti autour du microprocesseur 68000. Ce système comporte une RAM de
64Ko débutant à l’adresse 600000h, une EPROM de 32Ko débutant en 00h, une interface parallèle
(PIT ayant cinq entrées de sélection de registres : RS0 à RS4 et une entrée de sélection de boîtier : CS)
et une interface série (ACIA possédant une entrée de sélection de registre : RS et trois entrées de
sélection de boitier : CS0, CS1 et CS2).
Sachant que la RAM possède quatre entrées Chip Select : CS0, CS1 CS2 et CS3) et l’
EPROM ne possède qu’une seule entrée CS active à l’état bas).
1. Donnez le tableau d’adressage de ce système ainsi que sa configuration mémoire (Memory
Map).
2. Combien d’adresses registres possèdent l’interface parallèle et l’interface série ?
3. Donnez le schéma d’adressage de ce système.
Exercice 2 :
I- Soit à concevoir un système bâti autour du microprocesseur 68000. Ce système comporte
une RAM de 64Ko débutant à l’adresse 400000h, une EPROM de 32Ko débutant en 00h,
deux interfaces parallèles (PIA ayant deux entrées de sélection de registres : RS0 et RS1 et
trois entrées de sélection de boîtier : CS0, CS1 et CS2) et une interface série (ACIA possédant
une entrée de sélection de registre : RS et trois entrées de sélection de boitier : CS0, CS1 et
CS2).
Sachant que nous ne possédons que des boîtiers RAM de 16Ko (ayant quatre entrées Chip Select :
CS0, CS1 CS2 et CS3) et des boîtiers EPROM de 16Ko (possédant une seule entrée CS active à l’état
bas).
1. Donnez le tableau d’adressage de ce système ainsi que sa Memory Map.
2. Donnez son schéma d’adressage.
II- Le premier PIA est utilisé pour l’acquisition d’une donnée analogique à partir d’un capteur
puis son affichage, après conversion A/N, sur deux afficheurs 7 segments ayant des décodeurs
BCD/7segments intégrés. Donnez le schéma ainsi que le programme permettant l’acquisition
et l’affichage de cette donnée.
III- Le deuxième PIA es utilisé pour la gestion d’une imprimante. Donnez alors le schéma
ainsi que le programme qui permet sa gestion et l’impression d’une ligne de caractères
terminée par un retour chariot (dont le code ASCII est 0D H) ; les données à afficher sont à
l’adresse 610000h.
Les signaux d’interface vers l’imprimante sont les suivants : 8 bits de données D0-D7 et trois
signaux de contrôle, respectivement :
BUSY : signal transmis par l’imprimante et indiquant au microprocesseur que
l’imprimante est prête (actif à l’état bas).
STROBE : signal envoyé par le microprocesseur à l’imprimante et indiquant qu’une
donnée à imprimer est présente sur l’interface (actif à l’état bas).
ACK : signal envoyé par l’imprimante au microprocesseur pour lui indiquer qu’elle a
pris en considération la donnée à imprimer (actif à l’état bas).
La séquence des signaux est la suivante : le microprocesseur met les données sur l’interface
puis envoie STROBE à l’état bas. L’imprimante en recevant STROBE lit la donnée et met le
signal ACK à l’état bas. Le microprocesseur met STROBE haut. L’imprimante met ACK à
l’état haut et le microprocesseur supprime les données présentes sur l’interface.
Exercice 3 :
I- Soit un système bâti autour du microprocesseur 68000. Ce système comporte une RAM de
32Ko débutant à l’adresse 600000h, une ROM de 64Ko débutant en 00h, une interface
parallèle (PIA ayant deux entrées de sélection de registres : RS0 et RS1 et trois entrées de
sélection de boîtier : CS0, CS1 et CS2) et une interface série (ACIA possédant une entrée de
sélection de registre : RS et trois entrées de sélection de boitier : CS0, CS1 et CS2.
Sachant que nous ne possédons que des boîtiers RAM de 16Ko (ayant trois entrées Chip
Select : CS0, CS1 et CS2) et des boîtiers ROM de 32K x 4bits (possédant une seule entrée CS
active à l’état bas).
1. Donnez le tableau d’adressage de ce système ainsi que sa Memory Map.
2. Donnez son schéma d’adressage en représentant les bus d’adresse et de données.
3. Donnez les adresses des différents registres d’interfaces.
Exercice 4 :
Soit à concevoir un système bâti autour du microprocesseur 68000. Ce système comporte une RAM de
128Ko débutant à l’adresse 400000h, une EPROM de 64Ko débutant en 00h, une interface parallèle
(PIT ayant cinq entrées de sélection de registres : A1 à A5 et une entrée de sélection de boîtier : CS) et
une interface série (possédant une entrée de sélection de registre : RS et trois entrées de sélection de
boitier : CS0, CS1 et CS2).
I- Sachant que nous ne possédons que des boîtiers RAM de 32Ko (ayant quatre entrées Chip
Select : CS0, CS1 CS2 et CS3) et des boîtiers EPROM de 16Ko (possédant une seule
entrée CS active à l’état bas).
1. Donnez le tableau d’adressage de ce système ainsi que sa configuration mémoire (Memory
Map).
2. Combien d’adresses registres possèdent l’interface parallèle et l’interface série ?
3. Donnez le schéma d’adressage de ce système.
II- Ce système devra acquérir une donnée analogique à partir d’un capteur puis l’afficher,
après conversion A/N, sur deux afficheurs 7 segments ayant des décodeurs
BCD/7segments intégrés. Donnez le schéma ainsi que le programme permettant
l’acquisition et l’affichage de cette donnée.
Remarque:
Le CA/N est relié au PIT par des lignes de donnée (8 bits) et par deux signaux de dialogue qui sont:
- demande de conversion (actif à l'état bas) du PIT vers le CA/N et
- conversion terminée (actif à l'état haut) du CA/N vers le PIT.
Exercice 5 :
8 Leds sont connectées au port B du PIT. Ecrire un programme qui permet d’allumer les Leds une à
une de la première à la dernière (une seule à la fois). La durée d’allumage de chaque Led est de 1
seconde environ (on considère la fréquence d’horloge du µprocesseur égale à 10Mhz)
Résumé de cours sur l’adressage des circuits d’E/S
L’adressage des circuits d’E/S constitue la première étape dans la conception d’un système à
microprocesseur. Elle doit permettre au µprocesseur d’accéder aux différentes adresses des mémoires
et des registres d’interfaces sans qu’il y ait de confusions (de chevauchements) entre les différentes
adresses des circuits d’E/S (Mémoires et interfaces). Cette étape est constituée de deux sous-étapes qui
sont :
a) Adressage des positions mémoires et des registres d’interfaces : On utilisera pour cela les
lignes d’adresse de faibles poids.
Adressage des positions mémoires : une mémoire de n lignes d’adresses adressera 2 n
positions mémoire.
Considérons une mémoire de 1Koctets, celle-ci utilisera 10 lignes d’adresses (2 10=
1Ko). Une mémoire de 2Ko utilisera 11 lignes d’adresse (2 11) et une mémoire de
64Ko possédera 16 lignes d’adresse (2 16). Nous utiliserons pour le dernier cas les 16
lignes d’adresse de poids faible du µprocesseur (A1 à A16 dans le cas du 68000) que
l’on reliera aux 16 lignes d’adresse de la mémoire (A0 à A15)
Adressage des registres d’interfaces : chaque interface possède un certain nombre de
registres d’interfaces qui sont sélectionnés par des lignes de sélection de registres
(RS)
Considérons une interface possédant 2 lignes RS (RS0 et RS1), elle disposera donc de
4 adresses (22=4) pour sélectionner ses différents registres. Nous allons relier dans ce
cas RS0 à la ligne d’adresse A1 et RS1 à la ligne A2.
Les concepteurs d’interfaces utilisent parfois d’autres lignes de commandes pour
pouvoir adresser plus de registres qu’il n’y a d’adresses disponibles.
b) Adressage des boitiers mémoires et interfaces : On utilisera pour cela les lignes d’adresse de
poids forts.
Chaque mémoire et interface possède un certain nombre de lignes de sélection de boitier (CS
pour Chip Select) qui sont actives soit à l’état haut soit à l’état bas. Ces lignes seront relièes
aux lignes d’adresse de poids forts.
Exemple : Soit à adresser, par le MC 68000, une RAM de 64 Ko, une ROM de 128 Ko et une
interface possédant 2 lignes de sélection de Registres (RS0 et RS1) ainsi que 3 lignes de
sélection de boitiers (CS0, CS1 et CS2).
Circuits d’E/S A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1
ROM 0 0 x x x x x x x x x x x x x x x x x
0 x x x x x x x x x x x x x x x x x x
RAM 0 1 x x x x x x x x x x x x x x x x
1 0 x x x x x x x x x x x x x x x x
Interface 1 1 x x
1 1 x x
Sélection des positions mémoires et des registres d’interface :
La ROM de 128 Ko (2 17 octets) utilisera 17 lignes d’adresses (A1 à A17) pour adresser les différentes
positions mémoire ROM.
La RAM de 64 Ko (216 octets) utilisera 16 lignes d’adresses (A1 à A16) pour adresser les différentes
positions mémoire RAM.
L’interface possédant 2 lignes RS utilisera 2 lignes d’adresses (A1 et A2). RS0 sera reliée à A1 et RS1
à A2.
Note : cette partie est universelle, elle ne peut être différente d’un concepteur à un autre.
Sélection des boitiers mémoires et interface :
Nous utiliserons pour cela les lignes d’adresse de poids forts. Nous avons trois circuits, il nous
faut donc deux lignes d’adresse A23 et A22 (donnant 4 combinaisons 00, 01, 10 et 11) qui
permettrons de différencier entre 4 circuits. Prenons par exemple 00 pour la ROM et 01 pour
la RAM il restera les deux combinaisons 10 et 11, nous en choisirons une pour l’interface par
exemple 11.
Mais il aurait été préférable d’utiliser 0x pour la ROM, 10 pour la RAM et 11 pour l’interface
ce qui permettrait d’utiliser une mémoire plus grande en étendant celle de la ROM par
utilisation de la ligne A22 qui est devenu X (c’est-à-dire 0 ou 1). (Voir cette deuxième version
en rouge sur le tableau)
Note : cette partie n’est plus universelle comme vous le constatez et que nous verrons plus en détail
par la suite.
Correction des exercices
Le µprocesseur 68000 utilise la structure E/S par instruction mémoire ; c’est-à-dire qu’il
considère les adresses des registres d’interfaces comme des positions mémoires et donc une
adresse de registre d’interface doit être différente d’une adresse de position mémoire. Les
signaux de lecture et écriture mémoire sont les mêmes que les signaux de lecture et écriture
périphérique.
La ligne d’adresse A0 est interne au 68000.
La ligne VMA (Validation Adresse Mémoire) active à l’état bas est utilisée dans la fonction
logique CS (Chip Select ou sélection de boitier)
Correction de l’exercice 1 :
La RAM de 64Ko (216) utilise 16 lignes d’adresse A1 à A16. Elle débute à l’adresse
600000h donc A23=1 et A22=1.
L’EPROM de 32Ko (215) utilise 15 lignes d’adresse A1 à A15. Elle débute à l’adresse
00h donc A23=0 et il est préférable de garder A22=X (0 ou 1) pour une éventuelle
extension.
Le PIT dispose de cinq lignes de sélection de registres RS0 à RS4 que nous relierons
aux lignes d’adresse A1 à A5 du 68000.
L’ACIA dispose d’une seule ligne de sélection de registre RS reliée à A1.
Nous utiliserons la configuration restante (c’est-à-dire 10) pour la sélection des
circuits d’interfaces (PIT et ACIA) que nous différencierons par utilisation de la
sélection linéaire qui consiste à utiliser un bit exclusif pour chaque interface, nous
utiliserons pour cela les bits de poids faibles disponibles : dans notre cas, nous
utiliserons A6 pour le PIT et A7 pour l’ACIA.
D’où le tableau d’adressage suivant :
Circuits d’E/S A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1
EPROM 0 x x x x x x x x x x x x x x x x
RAM 1 1 x x x x x x x x x x x x x x x x
PIT 1 0 0 1 x x x x x
ACIA 1 0 1 0 . . . . x
Nous déduisons de ce tableau les différentes fonctions logiques des adresses CS des circuits d’E/S
(que nous utiliserons dans le schéma d’adressage) :
« Adresse CS EPROM » = [Link]
« Adresse CS RAM » = [Link]
« Adresse CS PIT » = [Link]
« Adresse CS ACIA » = [Link]
Configuration mémoire (ou Memory Map) :
Circuits d’E/S A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1
EPROM 0 x x x x x x x x x x x x x x x x
Première adresse de l’EPROM (A23=0 et A1-A15=0) donc 000000h
Dernière adresse de l’EPROM (A23=0 et A1-A15=1) donc 007FFFh
Nous ferons de même pour les autres circuits d’E/S :
Circuits d’E/S A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1
RAM 1 1 x x x x x x x x x x x x x x x x
Première adresse de la RAM (A23=1, A22=1 et A1-A16=0) donc 600000h
Dernière adresse de la RAM (A23=1, A22=1 et A1-A16=1) donc 60FFFFh
Circuits d’E/S A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1
PIT 1 0 0 1 x x x x x
Première adresse du PIT (A23=1, A22=0, A6=1 et A5-A1=0) donc 400020h
Dernière adresse du PIT (A23=1, A22=0, A6=1 et A5-A1=1) donc 40003Fh
Circuits d’E/S A23 A22 A21 A20 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1
ACIA 1 0 1 0 . . . . x
Première adresse de l’ACIA (A23=1, A22=0, A7=1 et A1=0) donc 400040h
Dernière adresse de l’ACIA (A23=1, A22=0, A7=1 et A1 =1) donc 400041h
D’où la représentation suivante de la carte mémoire :
000000h
EPROM 007FFFh
008000h
000000h
Non 40001Fh
Utilisée 400020h
(N-U)
Le PIT contient
40003Fh25 adresses de registres (400020h à 40003Fh)
PIT 400040h
L’ACIA contient
400041h 21 adresses de registres (400040h et 400041h)
ACIA 400042h
400040h
5FFFFFh
N-U 600000h
60FFFFh
RAM 610000h
7FFFFFh
N-U
Schéma d’adressage :
Circuit avec * : AND ; Circuit avec + : OR ; Circuit avec n+ : NOR
R/W
Microprocesseur MC 68000
VMA
U
R R/W
VMA EPROM A0
A1-A15 S A1-A5 (RS0-RS4)
PIT
(32Ko) A14
A23 CS
CS D’ A1
A1 A23 A6 *
A1
+ A A22
*
A1 n+
D
R/W A1 R/W
R RS
RAM (64Ko) A1-A16 A1
ACIA
CS0 CS1 CS2 CS3 E CS0 CS1 CS2
A1 A1 A1 A1 A1 A1
A23
S +
A23 A22
A1
A7
A1
A1 A1
S
A22
E A1