CHAPITRE 2 :
ARCHITECTURE DU PIC
32MX
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
CONTENU
• Introduction
• Types d’architectures
• Notion de Mapping
• Architecture PIC32MX360F512L
➢Mémoire
➢Système d’horloge
➢Reset
➢Les ports entrés/sorties
➢Le port Maitre Parallèle
➢ADC
➢Interruption
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Introduction
La famille de microcontrôleurs PIC32 a été développée pour des performances élevées et à usage général.
La famille offre des performances de 80 MIPS avec une large gamme de périphériques sur puce, de grandes
mémoires de données et de programmes, un grand nombre de ports d'E/S et une architecture conçu pour les
applications en temps réel à grande vitesse.
Les microcontrôleurs PIC32 peuvent être utilisés en temps réel applications nécessitant un débit élevé.
Certains des domaines d'application sont le traitement numérique du signal, contrôle automatique numérique,
jeux en temps réel et communication rapide. La puce employée en l'industrie est le noyau M4K MIPS32
standard de MIPS Technologies Inc. La famille PIC32 offre la programmation interface similaire aux autres
familles de microcontrôleurs PIC, ce qui facilite la programmation tâche si le programmeur est déjà
familiarisé avec l'architecture de base du microcontrôleur PIC. PIC32 Les microcontrôleurs sont compatibles
broche à broche avec la plupart des membres de la famille PIC24 de microcontrôleurs 16 bits ; ainsi, la
migration d'un fonctionnement 16 bits vers un fonctionnement 32 bits devrait être relativement facile.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Types d’architectures
• 2 types principaux point de vue structural: Harvard et von
Neumann
- Architectures d’accès mémoire et de bus
- Affectent la taille des mots et le minutage
• 2 types principaux point de vue fonctionnement: CISC et RISC
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture Harvard
- Mémoire instructions et mémoire de données n’ont pas besoin
d’être de même taille (bits)
- CPU peut lire une instruction et accéder a la mémoire en même
temps
- Adresses mémoire et données différentes
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture Harvard
• 2 espaces d’adressage séparés
pour le programme et les
données.
• Conséquences
❖Augmentation de l'espace
d'adressage.
❖Protection de l’espace
programme contre les
destructions accidentelles.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture Harvard modifiée
• Séparation entre données et instructions moins stricte
• Cache données et mémoire séparés, mais avec adressage commun
(commun ARM et x86.
• Chemin d’accès entre instructions et CPU pour avoir des instructions
traitées comme données accès (commun Atmel AVR) : permet a
des données, comme strings ou tables de fonctions, d’être lues
directement sans copier en mémoire ; nécessite des instructions
spéciales.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture VON NEUMANN
• Bus mémoire et données partagées : limite la vitesse
• CPU maintenant beaucoup plus rapide que bus : architecture
peu utilisée maintenant
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture VON NEUMANN
• 1 seul espace d’adressage
pour le programme et les
données.
• Conséquence
❖Réduction de l'espace
d'adressage.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture CISC : Complex Instruction Set
Computer
Une architecture CISC propose
de nombreux modes d'adressage,
dont certains sont souvent
complexes. Le jeu d'instructions
comporte souvent de nombreuses
instructions complexes qui
seront réalisées en plusieurs
cycles. Taille d’instruction
variable
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture RISC : Reduced Instruction Set
Computer
Une architecture RISC propose un jeu d'instructions relativement réduit.
Chacune de ces instructions est censée être exécutée en un seul cycle et
a une Taille d’instruction fixe. Les modes d'adressage sont plus
simples que dans une architecture CISC. Nombre d’instructions du jeu
réduit. L'architecture propose en général un nombre important de
registres généraux. Ces caractéristiques favorisent une utilisation
optimale du mode pipeline au niveau de la microarchitecture.
Elle Simplifie les instructions d’un microprocesseur pour obtenir une
meilleure performance.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture RISC : Reduced Instruction Set
Computer
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
NOTION DE MAPPING
• Il est possible de connecter plusieurs boîtiers mémoire sur un même
bus grâce à CS.
• Le pin CS du circuit sélectionné devient actif (état bas) et les broches
de données des circuits exclus passent à l'état de haute impédance.
• Le boîtier à sélectionner est celui dont la zone mémoire comprend
l’adresse en cours.
• Problème : Quelle zone mémoire pour quel boîtier?
• On peut gérer un mapping a l’ aide d’un décodeur ou pas.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
NOTION DE MAPPING
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
NOTION DE MAPPING
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
le cœur du microcontrôleur est un processeur
central M4K MIPS32 32 bits qui se connecte au
reste de la puce via une matrice de bus et un bus
périphérique.
- La matrice de bus tourne à la même vitesse que
le processeur central et connecte divers
modules haute vitesse tels que USB, DMA,
mémoire, ports, etc.
- Le bus périphérique peut être programmé pour
fonctionner à des vitesses plus lentes, et il se
connecte à des modules plus lents tels que
convertisseur A/D, UART, SPI, horloge et
calendrier en temps réel (RTCC), etc.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
Le PIC32MX360F512L est un
microcontrôleur PIC32 typique,
appartenant à la famille
PIC32MX3XX/4XX.
Ce microcontrôleur possède les
caractéristiques suivantes :
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
• Un boîtier 100 broches (TQFP) • 16 × canaux A/N (10 bits)
• Jusqu'à 80 MHz de fréquence d'horloge • 2 × modules comparateurs
• Mémoire de programme flash de 512 k (+ mémoire flash de • Interface JTAG à quatre fils
démarrage de 12 k)
• Mémoire de données 32k
• 5 horloges/compteurs 16 bits
• 5 entrées de capture
• 5 sorties de comparaison/PWM
• Quatre canaux DMA programmables
• 2 UART (prenant en charge RS232, RS485, bus LIN et iRDA)
• 2 modules de bus SPI
• 2 modules de bus I2C
• Module RTCC
• Horloges internes 8 MHz et 32 kHz
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
➢Mémoire
La mémoire possède deux espaces d'adressage sont implémentés : virtuel et physique.
- Tous les ressources matérielles, telles que la mémoire de données, la mémoire de programme et les
transferts DMA, sont gérées par les adresses physiques. Si nous souhaitons accéder à la mémoire
indépendamment du CPU (comme le cas en DMA), alors il faut utiliser les adresses physiques.
- Les adresses virtuelles sont importantes car elles sont utilisées exclusivement par le CPU pour
récupérer et exécuter les instructions.
En programmation normale, nous ne nous intéressons qu'à la mémoire virtuelle adresse. Ces
adresses sont traduites en adresses physiques à l'intérieur du processeur.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
➢Système d’horloge
Il existe cinq sources d'horloge : deux d'entres elles utilisent des oscillateurs internes et trois nécessitent
des cristaux ou circuits oscillateurs . Trois sorties d'horloge sont disponibles : horloge système CPU, USB
horloge et horloge périphérique.
On peut citer comme sources d’horloges :
• FRC est un oscillateur interne ne nécessitant aucun composant externe. La fréquence d'horloge est 8 MHz
et est conçu pour les opérations à vitesse moyenne et à faible puissance. L'horloge est précise à environ ± 2%
après étalonnage.
• LPRC est un oscillateur interne à basse fréquence et à faible puissance avec une fréquence de 32 kHz, ne
nécessitant aucun composant externe.
• POSC est le principal oscillateur haute vitesse, nécessitant un cristal externe jusqu'à 20 MHz.
Le cristal est connecté directement aux entrées OSCI et OSCO avec deux condensateurs.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
• L'oscillateur secondaire (SOSC) est l'oscillateur secondaire à faible
vitesse et haute précision, conçu pour fonctionner avec un cristal de 32,
768 Hz. Cet oscillateur peut être utilisé pour la minuterie et modules
d'horloge en temps réel, ou en tant qu'oscillateur CPU principal à faible
vitesse.
• EC est la source d'horloge externe, ne nécessitant aucun cristal externe.
Un signal carré est appliquée à cette entrée à la fréquence requise.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
Les trois sorties d'horloge peuvent être sélectionnées dans diverses configurations . On peut
citer comme sorties d’horloges :
• Horloge USB: Le fonctionnement USB nécessite une horloge exacte de 48 MHz. Cette horloge peut être
dérivée de plusieurs différentes façons . La plus fréquente est celle utilisant une horloge primaire externe
pilotée par cristal (POSC) de 8 MHz, divisée par 2 (à l'aide de PLLDIV), puis multiplié par 24 pour donner
96 MHz. Cette fréquence peut alors être divisée par 2 pour donner l'horloge de 48 MHz requise.
• Horloge du processeur: L'horloge système principale peut être choisie parmi une variété de sources
indiquées comme suit:
❖ Horloge primaire (POSC) sélectionnée directement en sortie.
❖ Horloge primaire sélectionnée via les diviseurs d'entrée et de sortie PLL et le multiplicateur PLL. Par
exemple, si nous utilisons un cristal de 8 MHz, divisez par 2 (en utilisant FPLLIDIV), multipliez par 16
(en utilisant PLLMULT), et diviser par 2 (en utilisant PLLODIV), nous obtenons une fréquence d'horloge
de 32 MHz.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
❖L'horloge interne 8 MHz (FRC) peut être sélectionnée directement à la sortie pour donner 8 MHz.
❖L'horloge interne 8 MHz (FRC) peut être sélectionnée avec la PLL. Par exemple, cette horloge peut être
divisé par 2 pour donner 4 MHz à l'entrée de la PLL (rappelez-vous, l'horloge d'entrée de la PLL doit être
comprise entre 4 et 5 MHz) ; il peut être multiplié par 16, puis divisé par 2 pour donner 32 MHz en sortie.
❖L'horloge 32 kHz (LPRC) peut être sélectionnée directement en sortie.
❖L'horloge 32,768 Hz (SOSC) peut être sélectionnée directement en sortie.
• Horloge périphérique: L'horloge périphérique (PBCLK) est dérivée de l'horloge système de la CPU en la
faisant passer par un postscaler. Le taux de postscaler peut être sélectionné comme 1, 2, 4 ou 8. Ainsi,
par exemple, si le CPU l'horloge système est choisie à 80 MHz, alors l'horloge périphérique peut être à
80, 40, 20 ou 10 MHz.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
➢Reset
Plusieurs sources peuvent provoquer la réinitialisation du microcontrôleur.
Voici une liste de ces sources :
• Réinitialisation externe (MCLR)
• Réinitialisation logicielle (SWR)
• Réinitialisation du temporisateur de chien de garde (WDTR)
• Réinitialisation des incompatibilités de configuration (CMR)
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
➢Les ports entrés/sorties
Les ports d'E/S à usage général sont très importants dans de nombreuses applications car ils permettent
microcontrôleur pour surveiller et contrôler les appareils qui y sont connectés. Bien que les ports d'E/S de
les microcontrôleurs PIC32 présentent certaines similitudes avec les appareils 8 et 16 bits, PIC32 les
microcontrôleurs offrent une plus grande fonctionnalité et de nouvelles fonctionnalités ajoutées.
Un port d'E/S est contrôlé avec les registres SFR suivants :
• TRISx : registre de contrôle de la direction des données pour le port x
• PORTx : registre de port pour le port x
• LATx : registre de verrouillage pour le port x
• ODCx : registre de contrôle à drain ouvert pour le port x
• CNCON : registre de contrôle d'interruption sur modification
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
➢Le port Maitre Parallèle
Le PMP est un port d'E/S parallèle 8/16 bits qui peut être utilisé pour communiquer
avec une variété de périphériques parallèles tels que les microcontrôleurs, les
périphériques externes, les écrans LCD ,etc. La plupart des applications basées
sur des microcontrôleurs nécessitent des lignes d'adresse et de données ,et une
sélection de puce lignes de contrôle. Le PMP fournit jusqu'à 16 lignes d'adresse
et de données, et jusqu'à 2 lignes de sélection de puce. Les adresses peuvent être
auto-incrémentées et auto-décrémentées
pour une plus grande flexibilité
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
➢ADC
Le microcontrôleur PIC32MX460F512L contient des convertisseurs A/N 10 bits multiplexés à 16 canaux.
Ces convertisseurs ont les caractéristiques suivantes :
• Vitesse de conversion de 500 ksps (kilo échantillons par seconde)
• Amplificateur échantillonneur-bloqueur (SHA)
• Divers formats de résultats de conversion (entier, signé, non signé, sortie 16 ou 32 bits)
• Références de tension externes
Le module convertisseur ADC est contrôlé par les registres SFR suivants :
➢ AD1CON1(Ce registre contrôle le mode de fonctionnement ADC)
➢ AD1CON2 (Ce registre contrôle la sélection de référence de tension et sélection du mode
d'échantillonnage d'entrée alternative)
➢ AD1CON3 (Ce registre contrôle la sélection de l'horloge ADC)
➢ AD1CHS (Ce registre sélectionne les canaux d'entrée pour les multiplexeurs )
➢ AD1PCFG (Ce registre sélectionne les ports d'entrée comme analogiques ou numériques.)
➢ AD1CSSL (Ce registre contrôle le balayage d'entrée ADC )
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
➢Interruption
Le contrôle des interruptions est l'une des parties les plus complexes des microcontrôleurs PIC32. Il y a 96
sources d'interruption avec jusqu'à 64 vecteurs d'interruption et un grand nombre de commandes
d'interruption registres. Les caractéristiques de base du module contrôleur d'interruption PIC32 sont les sui-
vantes :
• Jusqu'à 96 sources d'interruption
• Jusqu'à 64 vecteurs d'interruption
• Modes d'interruption à vecteur unique et multiple
• Sept niveaux de priorité sélectionnables par l'utilisateur pour chaque interruption
• Quatre niveaux de sous-priorité sélectionnables par l'utilisateur dans chaque priorité
• Emplacement et espacement de la table des vecteurs d'interruption configurables par l'utilisateur.
Le module de contrôle des interruptions possède les registres SFR suivants :
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
➢ INTCON
➢ INSTAT
➢ IPTMR
➢ IFS0, IFS1
➢ CEI0, CEI1
➢ IPC0–IPC11
De plus, tous les registres ci-dessus ont des registres de manipulation de bits supplémentaires, par
exemple, INTCONCLR, INTCONSET et INTCONINV.
Les microcontrôleurs PIC32 prennent en charge sept niveaux de priorité d'interruption (ipl1–ipl7). Si plus d’une
interruption se produit en même temps, puis celle avec la priorité la plus élevée est traitée en premier. Si lors du
traitement d'une interruption, une interruption de priorité inférieure se produit, alors elle sera ignorée par le
processeur. En plus des niveaux de priorité d'interruption standard, les microcontrôleurs PIC32 prennent en charge
quatre niveaux de sous-priorités.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
Ainsi, si deux interruptions au même niveau de priorité interrompent en même temps, celui avec le niveau de
sous-priorité le plus élevé sera desservi en premier. A la réinitialisation ou mise sous tension, toutes les
interruptions sont désactivées et réglées sur le niveau de priorité ipl0.
En plus des bits de configuration d'interruption générale, chaque source d'interruption est associée bits
de contrôle dans les registres SFR, et ces bits doivent être configurés correctement pour un interruption
à accepter par le CPU. Certains des bits de contrôle de source d'interruption importants sont les suivants:
❖ Chaque source d'interruption a un bit d'activation d'interruption (désigné par le suffixe -IE) dans l'appareil
Fiche technique. Ce bit doit être mis à 1 pour qu'une interruption soit acceptée de cette source (à
réinitialisation ou mise sous tension, tous les bits d'activation d'interruption sont effacés).
❖ Chaque source d'interruption a un indicateur d'interruption (indiqué par -IF) dans la fiche technique de
l'appareil. Ce bit est défini automatiquement lorsqu'une interruption se produit et doit être effacé dans le
logiciel avant que d'autres interruptions puissent être acceptées à partir de la même source.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien
Architecture PIC32MX360F512L
❖ Chaque source d'interruption a un niveau de priorité de 1 à 7 (le niveau de priorité 0 a
désactivé le interruption), et des niveaux de sous-priorité de 0 à 3. Les niveaux de priorité sont
désignés par le suffixe -IP, et les niveaux de sous-priorité par le suffixe -IS.
Cours de Microcontrôleurs , Architecture et langage Ing. Karl Monka / Roboticien -Mécatronicien