Informatique Industrielle - ?· L'informatique Industrielle L'informatique industrielle est une branche…

  • Published on
    12-Sep-2018

  • View
    213

  • Download
    0

Embed Size (px)

Transcript

<ul><li><p>Informatique Industrielle</p><p>Note de cours : Mastre professionnelle</p></li><li><p>Sommaire Introduction</p><p> Les diffrents systmes programmables</p><p> Le microcontrleur, lments de choix Le microcontrleur, lments de choix</p><p> La programmation en assembleur</p><p> Les systmes embarqus</p><p> Transmission numrique</p></li><li><p>L'informatique IndustrielleL'informatique industrielle est une branche de l'informatique applique qui couvre l'ensemble des techniques de conception et de programmation, de systmes informatiss vocation industrielle, qui ne sont pas des ordinateurs. </p><p> Domaines d'applications :</p><p>Alarme, automobile, aviation, instrumentation, mdicale, tlphonie mobile, terminaux de paiement pour carte bancaire ...</p><p> Applications : Automates, robotique,</p><p> Mesures de grandeurs physiques,</p><p> Systmes temps-rel,</p><p> Systmes embarqus.</p><p>3Informatique IndustrielleInformatique Industrielle</p></li><li><p>Les diffrents systmes programmables (1)</p><p> Les circuits spcialiss ou ASIC (Application Specific Integrated Circuit) : sont des circuits spcialiss ds leur conception pour une application donne.</p><p>Exemples : DSP (Digital Signal Processing), co-processeur arithmtique, processeur 3-D, contrleur de bus, ...</p><p>4Informatique IndustrielleInformatique Industrielle</p><p>Avantages : Trs rapide Consommation moindre Optimis pour une application</p><p>Inconvnients : Faible modularit Possibilit d'volution limit</p></li><li><p>Les diffrents systmes programmables (2)</p><p> Les systmes en logique programme (PLD Programmable Logic Device, circuit logique programmable)</p><p> FPGA (Field Programmable Gate Array, rseau de portes programmables), PAL (Programmable Array Logic, rseau logique programmable), etc.</p><p>Avantages : Forte modularit Rapidit</p><p>Inconvnients : Mise en uvre plus complexe Cots de dveloppement lev</p><p>Un circuit logique programmable est un circuit intgr logique qui peut tre reprogramm aprs sa fabrication. Il est compos de nombreuses cellules logiques lmentaires pouvant tre librement assembler.</p><p>5Informatique IndustrielleInformatique Industrielle</p></li><li><p>Les diffrents systmes programmables (3)</p><p> Les systmes micro-programms : Les microcontrleurs sont typiquement des systmes micro-programms.</p><p>Avantages : Mise en oeuvre simple Cots de dveloppement rduits</p><p>Inconvnients : Plus lent Utilisation sous optimale</p><p>6Informatique IndustrielleInformatique Industrielle</p><p>Un microcontrleur est un : Circuit intgr comprenant essentiellement un microprocesseur, des mmoires, et des lments personnaliss selon l'application. </p></li><li><p>Structure des systmes microprogramm</p><p>Bus de donnesUnit centrale</p><p>Bus dadresses</p><p>Mmoire contenant instructions et donnes</p><p>Structure de Von Neumann</p><p>Structure de Harvard</p><p>7Informatique IndustrielleInformatique Industrielle</p><p>Bus de donnesinstructions</p><p>Bus dadressesinstructions</p><p>Mmoire de programme contenant uniquement des Instructions</p><p>Mmoire contenant uniquement des donnes</p><p>Bus de donnes</p><p>Bus dadresses</p><p>Unit centrale</p><p>Structure de Harvard</p><p>Diffrence: Sparation ou non des mmoires programmes et donnes. La structure de Harvard permet de transfrer donnes et instruction simultanment, ce qui permet un gain de performances.</p></li><li><p>Deux types de processeurs (1)</p><p> CISC : Complex Instruction Set Computer: Architecture jeu dinstructions complexe</p><p> Type de processeur le plus rpandu</p><p> Plusieurs modes dadressages mmoires possible;</p><p> Grand nombre dinstructions; Grand nombre dinstructions;</p><p> Codage des instructions variables : le nombre doctets ncessaire pour le codage des instructions est variable;</p><p> La taille du code est en gnral plus rduite que dans le cas des RISC (code density);</p><p> Exemples : X86, AMD, etc.</p><p>8Informatique IndustrielleInformatique Industrielle</p></li><li><p> RISC (Reduced instruction set computer): Architecture jeu dinstruction rduit, structure simple</p><p> Nombre d'instructions rduit (slection des instructions pour une excution plus rapide)</p><p> Dcodage des instructions plus rapide</p><p>Deux types de processeurs (2)</p><p> Dcodage des instructions plus rapide</p><p> Seul deux instructions accdent la mmoire load/store;</p><p> Format rgulier;</p><p> Grand nombre de registres;</p><p> Structure hardware simplifi = espace silicium libre;</p><p> Exemple : Arm, UltraSparc, ..</p><p>9Informatique IndustrielleInformatique Industrielle</p></li><li><p>volution et Loi de Moore</p><p>10Informatique IndustrielleInformatique Industrielle</p></li><li><p>Les diffrents bus des systmes microprogramms (1)</p><p> Un bus est un jeu de lignes partages pour lchange de mots numriques. </p><p>Dfinition : Un bus permet de faire transiter (liaison srie/parallle) des informations codes en binaire entre deux points. Typiquement les informations sont regroups en </p><p>mots : Octet (8 bits), Word (16 bits) ou double Word (32 bits).</p><p>11Informatique IndustrielleInformatique Industrielle</p><p>Caractristiques dun bus : </p><p> nombre de lignes,</p><p> frquence de transfert.</p><p>mots : Octet (8 bits), Word (16 bits) ou double Word (32 bits).</p></li><li><p>Les diffrents bus des systmes microprogramms (2)</p><p>12Informatique IndustrielleInformatique Industrielle</p></li><li><p>Les diffrents bus des systmes microprogramms (2)</p><p>Il existe 3 Types de bus :</p><p> Bus de donnes : permet de transfrer entre composants des donnes, Exemple : rsultat d'une opration, valeur d'une variable, etc.</p><p> Bus d'adresses : permet de transfrer entre composants des adresses, Exemple : adresse d'une case mmoire, etc.Exemple : adresse d'une case mmoire, etc.</p><p> Bus de contrle : permet l'change entre les composants d'informations de contrle (bus rarement reprsent sur les schmas). </p><p>Exemple : priphrique prt/occup, erreur/excution russit, etc.</p><p>Dfinition : Une adresse est un nombre binaire qui indique un emplacement dans une </p><p>zone mmoire</p><p>13Informatique IndustrielleInformatique Industrielle</p></li><li><p>Le microcontrleur : Prsentation des Le microcontrleur : Prsentation des diffrents lments, lments de choix</p></li><li><p>Prsentation du microcontrleur (1/4)</p><p>15Informatique IndustrielleInformatique Industrielle</p></li><li><p>Prsentation du microcontrleur (2/4) </p><p>16Informatique IndustrielleInformatique Industrielle</p></li><li><p>Prsentation du microcontrleur (3/4)</p><p>17Informatique IndustrielleInformatique Industrielle</p></li><li><p>Prsentation du microcontrleur (4/4)</p><p>18Informatique IndustrielleInformatique Industrielle</p></li><li><p>Les lments de choix (1) Architecture :</p><p> ALU (8, 16, 32, 64 bits)</p><p> Structure du processeur (Harvard, Von Neumann)</p><p> Type de processeur (RISC, CISC)</p><p> Taille des mmoires programme et donnes</p><p> Nombre de ports dentre/sortie</p><p>19Informatique IndustrielleInformatique Industrielle</p><p> Fonctionnalits : Fonctions analogiques : CAN, CNA, Comparateur, ... Fonctions de timing : Timer, Watchdog, ... Fonctions de communication : UART (Communication srie), USB, I2C, ... Facilit de programmation : In-Circuit Serial</p><p> Programming, Self Programming, </p></li><li><p>Les lments de choix (2)</p><p> Mise en uvre, maintenance :</p><p> Cot de dveloppement : outils de dveloppement, formation, ...</p><p> Suivie du microcontrleur : production suivie, disponibilit, </p><p> Caractristiques lectriques :</p><p> Frquence dhorlogeFrquence dhorloge</p><p> Tensions dalimentation</p><p> Consommation dnergie, modes </p><p>faible consommation dnergie, ...</p><p> Caractristiques physiques :</p><p> Type de botier : DIL, PLCC, ...</p><p>20Informatique IndustrielleInformatique Industrielle</p></li><li><p>Structure des ports dentres/sorties Un port dentres/sorties est par dfinition un port bidirectionnel. Il ncessaire de configurer la direction du port (in ou out). Dans le microcontrleur, </p><p>des registres spcifiques sont ddis la gestion de ces ports</p><p>21Informatique IndustrielleInformatique Industrielle</p><p>Extrait de la documentation technique du PIC18F4520 de Microchip</p></li><li><p>Les registres</p><p>Un registre 8 bits est synonyme d'un ensemble </p><p>de 8 case mmoire. De nombreux registres sont </p><p>utiliss pour grer le microcontrleur.</p><p> Le registre W (accumulateur)</p><p> Le compteur programme (PC)</p><p> Le registre dtat (Flags)</p><p>22Informatique IndustrielleInformatique Industrielle</p><p> Le registre dtat (Flags)</p><p> Les registres de configuration :</p><p>les registres de directions pour les ports </p><p>dentres/sorties (TRIS, SFR), les</p><p>registres de gestion des interruptions, de</p><p>gestion de la mmoire (BSR, GPR, etc.)</p></li><li><p>Par exemple le registre dtatLe registre d'tat (Status Register) contient des bits d'informations sur les oprations</p><p>arithmtiques menes par l'ALU (ex., le dpassement de format aprs avoir demander</p><p>l'addition de deux valeurs 8 bits).</p><p>23Informatique IndustrielleInformatique Industrielle</p></li><li><p>Phases de dmarrage dun microcontrleur</p><p>Suite une opration de remise zro (RESET), le microcontrleur effectue une phase de dmarrage :</p><p>1. RESET : il peut tre dclench par la mise sous tension du microcontrleur, la rception dun signal sur la broche RESET du microcontrleur, une instruction de RESET, ...</p><p>2. Initialisation du microcontrleur : le microcontrleur effectue une temporisation 2. Initialisation du microcontrleur : le microcontrleur effectue une temporisation afin de garantir la stabilit des signaux dhorloge.</p><p>3. Effacement des registres : le microcontrleur efface le contenu des registres (variable en fonction du mode de RESET que vous effectuez)</p><p>4. Lecture du vecteur RESET: Le microcontrleur lit ladresse du programme principal dans la mmoire programme.</p><p>5. Dbut de lexcution du programme principal</p><p>24Informatique IndustrielleInformatique Industrielle</p></li><li><p>Les instructions (1)</p><p> Un jeu dinstruction est un ensemble doprations directement ralisables </p><p>sur un systme micro-programm donn</p><p> Par exemple : le PIC18F4520 (RISC) possde un jeu dinstructions </p><p>compos de 75 instructions. </p><p> Lexcution dune instruction peut ncessiter un ou plusieurs cycles </p><p>dhorloges suivant la complexit de l'instruction</p><p>Note: Un cycle dhorloge correspond une priode de lhorloge (signal de rfrence temporel). La frquence dhorloge est le nombre de cycles effectus par une horloge en une seconde</p><p>25Informatique IndustrielleInformatique Industrielle</p></li><li><p>Les instructions (2)</p><p>Une instruction est compose au minimum de deux parties:</p><p>OPCODE (Opration CODE) : partie dune instruction qui prcise quelle opration doit tre ralise</p><p>Instruction = OPCODE + oprande(s)</p><p>26Informatique IndustrielleInformatique Industrielle</p><p>OPCODE k (literal) MOVLW 7Fh</p><p>K=8-bit immediate value</p><p>15 8 7 0</p><p>Literal operations</p></li><li><p>Les instructions (3)</p><p> Les 5 principales tapes de l'excution d'une instruction: </p><p> Extraction de linstruction (Instruction Fetch)</p><p> Dcodage de linstruction (Instruction Decode)</p><p> Excution (Execute)</p><p> Accs mmoire (Memory) Accs mmoire (Memory)</p><p> Retour vers les registres (Write Back)</p><p> A ltape dExcution les adresses sont calcules lorsqu'une instruction doit accder la mmoire</p><p> Le registre PC pointe sur la prochaine instruction excuter. Il est utilis lors de ltape d'extraction d'une instruction.</p><p>27Informatique IndustrielleInformatique Industrielle</p></li><li><p>Pipeline et flot dinstructions</p><p>Exemple de pipeline comprenant 3 tapes pour l'excution d'une instruction :(1) Lecture de linstruction</p><p>(2) Dcodage de linstruction</p><p>(3) Excution de linstruction</p><p>1 2 3 Temps</p><p>Cration dun pipeline permet une excution plus rapide des instructions</p><p>28Informatique IndustrielleInformatique Industrielle</p><p>1 2 3 Temps</p><p>1 2 3</p><p>1 2 3</p><p>1 2 3 Temps 1 2 3</p><p>1 2 3</p></li><li><p>Les diffrents modes dadressages </p><p> La nature et le nombre doprandes qui constituent une instruction dterminent le mode dadressage de linstruction. </p><p>On distingue 4 modes dadressage principaux :</p><p>1. Ladressage inhrent : il ny a pas doprande. Exemple : NOP, RESET, CLRWDT ;</p><p>2. Ladressage immdiat : loprande est une valeur. Exemple : MOVLW 5Ah ;2. Ladressage immdiat : loprande est une valeur. Exemple : MOVLW 5Ah ;</p><p>3. Ladressage direct (tendu) : loprande est ladresse (bits de poids faibles de l'adresse complte) de la donne dans la page mmoire active. Exemple : ADDWF 000Fh, </p><p>4. Ladressage indirect (index) : loprande est ladresse dun registre qui contient ladresse de la donne.</p><p>NOTE : Il existe de nombreux autres modes dadressage (exemple: implicite, inhrent, relatif) : leur nombre varie en fonction du constructeur et du microcontrleur !</p><p>29Informatique IndustrielleInformatique Industrielle</p></li><li><p>Organisation de la mmoire programme</p><p>30Informatique IndustrielleInformatique Industrielle</p><p>Remarque : Un pointeur est une variable contenant une adresse mmoire</p></li><li><p>Organisation de la mmoire donnes</p><p>31Informatique IndustrielleInformatique Industrielle</p></li><li><p>Pagination de la mmoire</p><p>La pagination de la mmoire consiste diviser la mmoire en blocs (pages) de longueur fixe. </p><p>Une adresse mmoire est alors divise en deux parties :</p><p>Partie haute Partie basse</p><p>Dans le cas dune instruction avec adressage direct, on transmet seulement la partie basse de ladresse. Le microcontrleur utilise le registre BSR pour complter ladresse.</p><p>En adressage direct, on doit sassurer que lon travaille dans la bonne page mmoire.</p><p>32Informatique IndustrielleInformatique Industrielle</p></li><li><p>Excution dune instruction (1)Adressage direct (tendu)Linstruction comporte une oprande qui indique ladresse mmoire sur laquelle seffectue </p><p>lopration.</p><p>Exemples : CLRF (direct), MOVFF (tendu)</p><p>Droulement:(1) Lecture de linstruction dans la mmoire programme l'adresse pointe par le </p><p>33Informatique IndustrielleInformatique Industrielle</p><p>(1) Lecture de linstruction dans la mmoire programme l'adresse pointe par le </p><p>compteur programme.</p><p>(2) Lecture de linstruction et dcodage. </p><p>(3) Pour ladressage direct, loprande constitue la partie basse de ladresse mmoire sur </p><p>laquelle seffectue lopration, la partie haute est complte avec le registre BSR. </p><p>(3) Pour ladressage tendu, loprande est ladresse complte de la case mmoire sur </p><p>laquelle seffectue lopration. </p><p>(4) Finalement linstruction est excute sur la case mmoire pointe.</p></li><li><p>Excution dune instruction (2)Adressage inhrentLinstruction ne comporte pas doprande et agit implicitement sur un registre.</p><p>Exemples : SLEEP, RESET, NOP</p><p>Adressage immdiatLinstruction comporte une oprande et agit explicitement sur un registre</p><p>Exemples : ADDLW, MOVL</p><p>34Informatique IndustrielleInformatique Industrielle</p><p>Exemples : ADDLW, MOVL</p><p>Droulement:(1) Le compteur programme indique ladresse de linstruction suivante dans la mmoire </p><p>programme. </p><p>(2) Linstruction est lue et stocke dans le registre dinstruction. </p><p>(3) Puis elle est dcode par le module de dcodage et de contrle des instructions. </p><p>(4) Finalement elle est excute.</p></li><li><p>Excution dune instruction (3)Adressage indirect (index)Linstruction comporte une oprande indiquant un pointeur, c..d. une adresse de la case </p><p>mmoire sur laquelle seffectue lopration.</p><p>Exemples : ADDWF, INDF1, 1</p><p>Droulement:(1) Lecture de linstruction dans la mmoire programme l'adresse pointe par le </p><p>35Informatique IndustrielleInformatique Industrielle</p><p>(1) Lecture de linstruction dans la mmoire programme l'adresse pointe par le </p><p>compteur programme. </p><p>(2) Lecture de linstruction et dcodage. </p><p>(3) La valeur de loprande indique le pointeur utiliser. </p><p>(4) La valeur pointe est lue (avec un ventuel dcalage en mmoire).</p><p>(5) Finalement linstruction est excute sur la valeur pointe.</p></li><li><p>Conception dun microcontrleur (1)</p><p>Formellement, la conception d'un systme embarqu bas sur un microcontrleur peut tre dcompose en 3 tapes distinctes.</p><p>(1) Le dveloppement matriel s'appuie sur un cahier des charges, c..d. la dfinition des fonctionnalits et des performances du systme. Cette tape doit </p><p>permettre de spcifier : les caractristiques du microcontrleur, ses priphriques et de l'lectronique associe.</p><p>(2) Le dveloppement logiciel s'appuie sur l'tape prcdente pour construire un algorigramme, puis le code q...</p></li></ul>