ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS PHYSIQUES Adaptation, Conditionnement Conversion Analogique Numérique Traitement des données Numériques Mémorisation Visualisation Commandes Actionneurs Conversion Numérique Analogique
LE SYSTEME MINIMUM Mémoire Mémoire Non Vive Volatile (RAM) Programme Données Mémoire Non Volatile EPROM, EEPROM Mémoire Vive (RAM) MICROPROCESSEUR CS A0 à An D0 à Dn CS A0 à An D0 à Dn Bus d’adresse Bus de données Interface d’entrée/Sortie Décodage d’adresse
Le Microprocesseur: Architecture interne Bus de données Registres de travail Accumulateurs Registres d’adressage PC, Index, pointeur De piles Registre d’état BUS ADRESSE UAL Registres D’instructions Circuits séquencement Interne et contrôle de commande Quartz Circuit d’horloge Les lignes de commandes
LES BUS : GENERALITES L’information est disponible en parallèle: DEFINITION: Ensemble de lignes destinées au transport d’informations binaires dont le format correspond au nombre de fils du bus. Exemple : bus de données 8 bits D0 à D7 L’information est disponible en parallèle: Chaque bit du mot binaire est disponible au simultanément . 1 Mot binaire transporté : 4C(hexa) D7 D6 D5 D4 D3 D2 D1 D0 1
Les bus du microprocesseur Le bus des données: permet d’échanger des informations binaires entre le microprocesseur et les circuits périphériques Lecture Écriture
Les bus du microprocesseur 2 Le bus des adresses: permet de choisir la case mémoire du circuit périphérique qui contient l’information que le microprocesseur veut lire ou modifier Capacité d’adressage de la mémoire: 213 adresses (8Ko) Le microprocesseur impose l’adresse Capacité d’adressage du microprocesseur: 216 adresses (64Ko)
Les bus du microprocesseur 3 Le bus de commande: ensemble de signaux permettant au système (microprocesseur et périphériques) de fonctionner Signaux de commandes entrants depuis les périphériques Signaux de commandes sortants vers les périphériques
Le µp 6809 : structure « logicielle » Les différents registres et leur format b 7 b0 b7 b 0 A B Accumulateurs A et B 8 bits b15 D b 0 ou D registre de 16 bits 15 X 0 Registre d’index X de 16 bits 15 Y 0 Registre d’index Y de 16 bits 15 U 0 Pointeur de pile utilisateur 15 S 0 Pointeur de pile système 7 DP 0 Registre d’adresse de page 15 PC 0 compteur programme 7 CCR 0 Registre d’état
Le µp 6809 : le jeu d’instruction
Instruction : Format et caractéristiques Pour chaque microprocesseur le code définissant l’instruction à un format spécifié. Pour le 6809, deux champs obligatoires : code opération et opérande PREMIER CHAMP DEUXIEME CHAMP CODE OPERATION OPERANDE 1 Octet 1 ou 2 octets Exemple : LDA $C007 Les deux caractéristiques essentielles sont la durée en nombre de cycles machines et la taille en octets
Instruction : Mécanisme d’exécution 1ère étape PC B0 B16 Le PC contient l’adresse de l’instruction à exécuter.
Instruction : Mécanisme d’exécution 2ème étape La donnée contenu dans la case mémoire dont l’adresse était pointé par le PC est transférée dans le registre d’instruction pour y être décodée Registre d’instruction b7 b0
Instruction : Mécanisme d’exécution 3ème étape Microprocesseur A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 U? 6809 X1 39 EX2 38 RESET 37 NMI 2 HALT 40 IRQ 3 FIRQ 4 MRDY 36 DMA/B 33 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 31 30 29 28 27 26 25 24 E 34 Q 35 BA 6 BS 5 R/W 32 L’instruction est exécutée avec positionnement des bus adresses, données et signaux de commande, le PC contient alors l’adresse de la prochaine instruction à exécuter .
Les modes d’adressages n°1 Inhérent : un seul octet, le code opération Exemple : NOP Immédiat : code opération Adresse de L’Eprom ex:C007 Contenu mémoire programme B7 B0 Exemple : LDA #$C9 Opérande Adresse suivante Mémoire 96 Instruction 42 Accumulateur A 7F LDA < $42 7F D342 Registre DP D3 Direct : Exemple : LDA <$42
Les modes d’adressages n°2 Etendu : code opération Adresse de L’Eprom ex:C007 Contenu mémoire programme B7 B0 Contient les poids forts de l’adresse de l’opérande: C9 Contient les poids faibles de l’adresse de l’opérande: 08 Exemple : LDA $C908 b7 b0 Opérande Adresse $C908 Cette adresse peut être dans n’importe quel circuit périphériques, l’adressage étendu permet de travailler sur toute la plae d’adressage du microprocesseur
Les modes d’adressages n°3 Indexé : PC $2001 PC $2003 X $D230 X $D230 ACCU A XX ACCU A $45 Mémoire programme Mémoire programme $2000 $2000 $2001 $A6 ($D230) $2001 $A6 $2002 05 =05 +PC $2002 05 $2003 PC = $D235 $2003 Mémoire des données Mémoire des données $D235 $D235 $45 $D236 $D236 $47 Exemple : LDA ,X +
Les sous programmes Programme principal Sous programme Appel SPG Retour Un sous programme est une partie répétitive de programme qui peut être appelée plusieurs fois dans le programme principal
Mécanisme d’appel à sous programme Contenu de la pile Temps 1 Temps 2 Temps 3 Temps 4 $103 $103 $103 $303 Programme principal $100 Appel SPG1 $103 retour SPG1 1 SPG1 $280 SPG2 $300 Appel SPG2 2 $900 $303 retour SPG2 4 retour 3 retour
Les interruptions But : interrompre le déroulement du programme pour traiter par le déroulement d’un programme d’interruption spécifique une tâche devenant prioritaire Le vecteur d’interruption est l’adresse fixée par le constructeur dont le contenu sera chargé dans le PC lors du déclenchement de l’interruption, ce contenu doit être l’adresse de début du programme d’interruption Mémoire Microprocesseur BUS E/S E/S IRQ IRQ IRQ Ligne d’interruption sur le bus de commande
Le décodage d’adresse Tous les périphériques étant reliés sur le même bus de données, lorsque le microprocesseur accède en lecture sur l’un d’eux, un conflit de bus peut se produire
Réalisation pratique du décodage Microprocesseur Mémoire EPROM Mémoire Programme A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 A14 A15 D0 D1 D2 D3 D4 D5 D6 D7 CS1/ CS2/ U? 6809 X1 39 EX2 38 RESET 37 NMI 2 HALT 40 IRQ 3 FIRQ 4 MRDY 36 DMA/B 33 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 31 30 29 28 27 26 25 24 E 34 Q 35 BA 6 BS 5 R/W 32 2764 7 CE OE PGM VPP 1 O0 O1 O2 O3 O4 O5 O6 O7 6116 WE 74LS138 BIN/OCT EN & Décodeur, une seule sortie à 0 à la fois Sorties actives pour A15=A14=A13=1 Sorties à haute impédance (« déconnectées »)
Le microcontrôleur : architecture interne SCILLATEUR R SCIN SCOUT ESET ROM M ÉMOIRE P ROGRAMME Ou EPROM RAM EEPROM M ÉMOIRE D E ONNÉE M ICROPROCESSEUR INT C HIEN DE G ARDE B US DONNÉES - CONTRÔLE ADRESSES TIMER S T IMER 1 2 C.A.N I NTERFACE P ARALLÈLE ORT A B C I NTERFACE S ÉRIE OUT CLK IN
Le Pic 16F877 : architecture interne
Les registres de la partie microprocesseur 1ère partie Programme counter (13 bits) UAL 8bits Pile 8 niveaux (13 bits) Registre W (accumulateur 8 bits) Registre FSR (adressage indirect) Registre d’état (status register)
Les registres de la partie microprocesseur 2ème partie Registre d’instruction Timing génération (circuit d’horloge) Registre de contrôle et décodage de l’instruction Multiplexeur données et adresse
Généralités sur les circuits mémoires n°1 Structure interne Décodeur Lignes 1 parmi m PLAN MEMOIRE Matrice de points mémoire P.M(ij) m lignes p colonnes m fois p cellules Logique de commande Décodeur colonnes 1 parmi p Circuits d’entrée Circuits de lecture / écriture de sortie Circuit adresse ligne colonne BUS ADRESSES Bus donnée vers décodeur Al0 lignes Al0/ Al1 Al1/ vers décodeur Ac0 colonnes Ac0/ Ac1 Ac1/
Généralités sur les circuits mémoires n°2 Les différents types de mémoire R.A.M : ramdom access mémory Mémoire volatile ou l’on peut lire et écrire dans n’importe quelle case mémoire sans ordre précis R.O.M : read only mémory Mémoire non volatile , avec accès en lecture uniquement et programmée par le constructeur de façon définitive P.R.O.M : Programmable read only mémory Mémoire non volatile , avec accès en lecture uniquement et programmée par l’utilisateur de façon définitive E.P.R.O.M : Erasable Programmable read only mémory Mémoire non volatile , avec accès en lecture uniquement , programmée par l’utilisateur, elle peut être effacée par rayonnement ultra violet et reprogrammée un certain nombre de fois(quelques centaines) par un matériel spécifique E.E.P.R.O.M : Electrical erasable Programmable read only mémory Mémoire non volatile , avec accès en lecture uniquement , programmée par l’utilisateur, elle peut être effacée électriquement et reprogrammée un certain nombre de fois. (106) sans matériel spécifique et à partir de son alimentation (c’est presque une RAM non volatile)
Généralités sur les circuits mémoires n°3 Les caractéristiques essentielles d’une mémoire sont: - le temps d’accès qui est le temps entre l’instant où l’adresse est positionnée sur le bus d’adresse et l’instant où la donnée est disponible en sortie MEMOIRE Bus adresses Bus données Adresse valide Temps d’accès Donnée valide t
Généralités sur les circuits mémoires n°3 bis - la capacité et le format des données Capacité = 2n mots où n est le nombre de fils du bus adresse Format du mot = nombre de fils du bus de données nombre de bit = Format du mot x 2n
Les périphériques du microcontrôleur: la mémoire programme De type Flash EEPROM Flash : accès rapide en écriture, la programmation est faite directement sur la carte d’émulation : programmation « in situ » Organisation: mémory map ou plan mémoire Accès : utilise des bus spécifiques séparés de la mémoire des données
Les périphériques du microcontrôleur: la mémoire des données Scindée en deux parties: une RAM et une EEPROM 0h 7Fh Bank 0 Bank 1 Bank 2 Bank 3 Data EEPROM 256 octets 80h FFh 100h 17Fh 180h 1FFh 368 octets
Accès à chaque bank par les bits RP0 et RP1 du registre STATUS La RAM data Organisée en «banks» elle contient les registres de gestion des circuits périphériques et les registres spécifiques Accès à chaque bank par les bits RP0 et RP1 du registre STATUS
Accès logiciel à la mémoire Programme
Accès logiciel à EEPROM DATA
Les registres gérant l’accès aux EEPROM data et programme
Les périphériques du microcontrôleur: les ports d’entrée/sortie Certaines lignes de port en plus de pouvoir être configurées en entrée ou en sortie , ont la particularité de pouvoir remplir d’autres fonctions comme sortie PWM, ligne usart, ligne I2C, lignes SPI…
Le port A: Structure électrique
Le port A: configuration Les registres de configuration du port A Exemple de programme d’initialisation
Les fonctions du port A
Le port B: Structure électrique
Le port B: configuration et fonctions Les registres de configuration du port B Les fonctions de chaque ligne
Le port C: Structure électrique
Le port C: configuration et fonctions Les registres de configuration du port C Les fonctions de chaque ligne
Le port D: Structure électrique
Le port D: configuration et fonctions Les registres de configuration du port D Les fonctions de chaque ligne
Le port E: Structure électrique
Le port E: configuration et fonctions Les registres de configuration du port E Les fonctions de chaque ligne
le convertisseur analogique numérique: généralités et définitions Rôle : convertir une tension analogique en une combinaison numérique sur n bits Principe et généralité : CONVERTISSEUR ANALOGIQUE NUMERIQUE (C.A.N.) / format N bits Les tensions de référence fixant la dynamique du signal d’entrée à convertir sont des données constructeur (Vref+ et Vref-) La valeur de quantification ou « QUANTUM » est déterminé par le nombre n de bits du convertisseur. q= (Vref+ - Vref-)1/2n
le convertisseur analogique numérique du microcontrôleur PIC16F877: structure
le convertisseur analogique numérique du microcontrôleur PIC16F877: configuration ,sélection de l’entrée
le convertisseur analogique numérique du microcontrôleur PIC16F877: configuration d’entrée et de vref+ et vref-
Le résultat est obtenu sur un format de 10 bits le convertisseur analogique numérique du microcontrôleur PIC16F877: résultat de conversion Le résultat est obtenu sur un format de 10 bits
Les timers : généralités Les Timer permettent de réaliser les fonctions suivantes : w Génération d’un signal périodique modulé ou non en largeur d’impulsion, w Génération d’une impulsion calibrée, w Temporisation, w Comptage d'événements. Plusieurs registres associés aux Timers permettent de configurer les différents modes décrits précédemment.
Le timer 0 du pic 16F877 : structure et fonctionnalités Compteur 8 bits Avec possibilité de générer une interruption au passage de FFh à 0h Possède un prédiviseur interne
Le timer 0 du pic 16F877 : configuration et registres associés
Le timer1 du pic 16F877 : structure et fonctionnalités Compteur 16 bits Avec possibilité de fonctionner en compteur ou mesure de durée Possède un prédiviseur interne
Le timer 1 du pic 16F877 : configuration et registres associés
Le timer 2 du pic 16F877 : structure et fonctionnalités Compteur 8 bits Possède un prédiviseur et un postdiviseur interne
Le timer 2 du pic 16F877 : configuration et registres associés
Le module CCP (comparaison, capture, PWM) : mode capture Dans le mode capture les registres CCPR1H et L « retiennent » le contenu du timer1 par rapport à un front détecté sur RC2
Le module CCP (comparaison, capture, PWM) : mode comparaison Dans le mode comparaison les registres CCPR1H et L sont comparés en permanence avec le contenu du timer1. A l’égalité, un front est généré sur RC2.
Le module CCP (comparaison, capture, PWM) : mode PWM PWM duty cycle =(CCPR1L:CCP1CON<5:4>) •TOSC • (TMR2 prescale value) Le mode PWM permet de générer un signal modulé en largeur d’impulsion sur la sortie RC2
Le module CCP (comparaison, capture, PWM) :les registres de configuration
Le module CCP (comparaison, capture, PWM) :les registres associés
Les liaisons séries synchrones du microcontrôleur:généralités Dans ce dispositif la transmission est synchronisé par un signal d’horloge émis par l’unité maître. U NITÉ M AÎTRE ESCLAVE Sout Sin Sclk t S CLK IN ou OUT D7 D6 D5 D4 D3 D2 D1 D0
Les liaisons séries synchrones du microcontrôleur:module MSSP Le PIC16F877 permet par son module MASTER SYNCHRONOUS SERIAL PORT De communiquer suivant deux protocoles : • Serial Peripheral Interface (SPI) • Inter-Integrated Circuit (I2C) Pour chacun de ces protocoles existent deux modes, le mode MASTER et le mode SLAVE.. En mode Master c’est le microcontrôleur qui gère la ligne SCK, alors qu’en mode SLAVE, cette horloge est piloté par un maître externe et de ce fait le microcontrôleur ne pilote pas la transmission mais la subit.
Les liaisons séries synchrones du microcontrôleur:module MSSP les registres de configuration
module MSSP les registres de configuration sspcon
module MSSP les registres de configuration sspcon2
Les liaisons séries synchrones du microcontrôleur:la SPI
Les registres associé à la liaison SPI
La liaison I2C : généralités n°1 Maître Esclave n°1 Esclave n°2 SDA SCL Masse Emetteur : c’est le composant qui envoie des données sur le bus Récepteur : c’est le composant dont l’adresse correspond à celle contenue dans le message Maître: c’est le composant qui initialise le transfert, qui délivre l’horloge et qui termine le transfert Esclave: c’est le composant adressé par un maître SDA :ligne des données SCL : ligne d’horloge
La liaison I2C : généralités n°2 La liaison I2C : généralités n°2 +Vcc R R résistances de rappels SDA SCL (écriture) (écriture) Données Horloge (Lecture) (Lecture) SCL SDA START SDA valide SDA change STOP
La liaison I2C : exemple de lecture Start DEVICE SELECT R/W BYTE ADRESS Start Ack 1 1 0 1 0 0 0 0 1 A 1 0 0 1 0 1 1 1 1 1 0 1 0 0 0 0 0 A 0 0 0 0 1 0 0 0 Start DEVICE SELECT R/W DATA OUT No ACK Stop
Les liaisons séries synchrones du microcontrôleur:l’I2C
Les liaisons séries synchrones du microcontrôleur:l’I2C emission
Les liaisons séries synchrones du microcontrôleur:l’I2C réception
Les registres associé à la liaison I2C
La liaison série asynchrone du microcontrôleur:généralités Ce dispositif ne possède pas de signal d’horloge de synchronisation. Les unités en liaison possèdent chacune une horloge interne cadencée à la même fréquence. Lorsqu’une unité veut émettre un mot binaire, elle génère un front descendant sur sa ligne émettrice. A la fin de l’émission de ce mot, la ligne repasse au niveau haut. La donnée à transmettre peut contenir un bit supplémentaire appelé “parité” et servant à la correction d’erreurs. Paramètres rentrant en jeu pour la norme RS232 : w Longueur des mots : 7 bits (ex : caractère ascii) ou 8 bits w La vitesse de transmission : elle est défini en bits par seconde ou bauds. Elle peut prendre des valeurs allant de 110 à 115 200 bds. w Parité : le mot transmis peut être suivi ou non d'un bit de parité qui sert à détecter les erreurs éventuelles de transmission. w Bit de start : la ligne au repos est à l'état logique 1 pour indiquer qu'un mot va être transmis la ligne passe à l'état bas avant de commencer le transfert. Ce bit permet de synchroniser l'horloge du récepteur. w Bit de stop : après la transmission, la ligne est positionnée au repos pendant 1, 2 ou 1,5 périodes d'horloge selon le nombre de bits de stop. w Niveau de tension : Un “0” logique est matérialisé par une tension comprise entre 3 et 25V, un “1” par une tension comprise entre -25 et -3 V. Des circuits spécialisés comme le MAX 232 réalise la conversion à partir de niveau TTL.
La liaison série asynchrone du microcontrôleur:généralités Bit de parité Bit de start Bit de stop T XD R U NITÉ M AÎTRE U NITÉ ESCLAVE t T TRAMES D0 D5 D4 D3 D2 D1 D6 P Txd ou Rxd
La liaison série asynchrone du microcontrôleur : l’USART
La liaison série asynchrone: chronogramme d’émission et de réception
La liaison série asynchrone: les registres de configuration
La liaison série asynchrone: les registres de configuration 2
La liaison série asynchrone: les registres de configuration 3
Spécificité du pic 16F877: mot de configuration
Spécificité du pic 16F877: circuit d’horloge
Spécificité du pic 16F877: reset Il existe différentes situation pouvant entraîner un reset du circuit : · Power on reset : la tension d’alimentation descend en dessous du seuil de 1,2 à 1,7v. · Brown on reset : la tension d’alimentation reste vers un niveau de 4 v pendant un temps assez long · Watchdog reset : action du chien de garde · MCLR/ activé : action sur l’entrée MCLR
Spécificité du pic 16F877: le chien de garde « watchdog » Permet de relancer le microcontrôleur en générant un reset lorsque le programme ne se déroule pas normalement
Spécificité du pic 16F877: Les interruptions
Le jeu d’instructions
Exemple de programme Initialisations des lignes de port ;*************************************************************** DEBUT MOVLW H'FF' BSF STATUS,RP0 ; Definition du sens des ports sélection bank1 MOVLW B'00100001' ; MOVWF TRISC ; port RC en sortie sauf RC5, RC0 BCF PORTC,ACCL ; accés afficheur BSF PORTC,VTCH1 ; dévalidation clavier BSF PORTC,VTCH2 MOVLW B'11111111' ; MOVWF TRISB ; port RB en entrée MOVLW B'00001110' ; entrée RA0 en analogique MOVWF ADCON1 ; MOVLW B'11111111' ; port A en entrée MOVWF TRISA ; MOVLW B'11111000' ; port E en sortie MOVWF TRISE MOVLW B'00000000' ; port D en Sortie MOVWF TRISD BCF STATUS,RP0 ; fin de Definition du sens des ports sélection bank0 ; ; Initialisation de la conversion A/N BANKSEL ADCON1 ; sélection bank MOVLW B'00001110' ; config RA0 en ana vref=vdd -vref=vss MOVWF TRISA ; port A en entrée