cours electronique numérique

Upload: koukihamed

Post on 06-Jul-2018

226 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/17/2019 COURS Electronique Numérique

    1/16

     

    Electronique numérique

    1ère Année

    Bertrand MEGEMONT

  • 8/17/2019 COURS Electronique Numérique

    2/16

    SOMMAIRE

    1 Les opérateurs logiques ...................................................................................................... 31.1 Opérateur NON (NOT) .............................................................................................. 31.2 Opérateur ET (AND).................................................................................................. 3

    1.3 Opérateur OU (OR).................................................................................................... 31.4 Opérateur NON-ET (NAND)..................................................................................... 31.5 Opérateur NON-OU (NOR) ....................................................................................... 31.6 Opérateur OU EXCLUSIF (XOR)............................................................................ 41.7 Théorème de Morgan ................................................................................................. 4

    2 Les systèmes de numération............................................................................................... 42.1 La numération décimale ............................................................................................. 42.2 La numération binaire ................................................................................................ 52.3 La numération hexadécimale. .................................................................................... 5

    3 Les microcontrôleurs .......................................................................................................... 53.1 Structure interne d’un système micro programmé ..................................................... 5

    3.1.1 L’ALU (Unité Arithmétique et logique) ............................................................ 53.1.2 Les mémoires ..................................................................................................... 63.1.3 Le microprocesseur ............................................................................................ 73.1.4 Les bus................................................................................................................ 83.1.5 Les périphériques ............................................................................................... 93.1.6 Schéma global des systèmes micro programmés ............................................... 9

    3.2 Les différents niveaux de langage ............................................................................ 103.2.1 Langage machine.............................................................................................. 103.2.2 Langage assembleur ......................................................................................... 103.2.3 Langage évolué ................................................................................................ 10

    3.2.4 Langage graphique ........................................................................................... 113.3 Les microcontrôleurs ................................................................................................ 113.4 Utilisation des ports d’entrée-sortie .........................................................................11

    3.4.1 Qu’est-ce qu’un port d’entrée-sortie ? ............................................................. 113.4.2 Utilisation des ports d’entrée-sortie des microcontrôleur ATMEL® ............... 113.4.3 Exemple d’utilisation : ..................................................................................... 12

    4 Les transmissions numériques.......................................................................................... 134.1 Les types de transmissions ....................................................................................... 134.2 Etude d’une liaison série : la liaison RS232............................................................. 14

    5 Annexes ............................................................................................................................ 16

    2

  • 8/17/2019 COURS Electronique Numérique

    3/16

     

    1 Les opérateurs logiques

    1.1 Opérateur NON (NOT)

    Table de vérité Equation : S=a  

    A S Symbole

    0 1

    1 0

    1.2 Opérateur ET (AND)

    Table de vérité

    A b S

    Equation : S=a.b

    0 0 0 Symbole

    0 1 0

    1 0 0

    1 1 1

    1.3 Opérateur OU (OR)

    Table de vérité

    A b SEquation : S=a+b

    0 0 0 Symbole0 1 1

    1 0 1

    1 1 1

    1.4 Opérateur NON-ET (NAND)

    Table de vérité

    A b SEquation : S= b.a  

    0 0 1 Symbole

    0 1 11 0 1

    1 1 0

    1.5 Opérateur NON-OU (NOR)

    Table de vérité

    A b SEquation : S= a b+  

    0 0 1 Symbole

    0 1 0

    1 0 01 1 0

    3

  • 8/17/2019 COURS Electronique Numérique

    4/16

    1.6 Opérateur OU EXCLUSIF (XOR)

    Table de vérité

    A b SEquation : S = a⊕ b ou S = bab .. +a  

    0 0 0 Symbole0 1 1

    1 0 1

    1 1 0

    1.7 Théorème de Morgan

    Il permet de transformer des mintermes (équations formées par des relations de ET ou de NON-ET) en maxtermes (équations formées par des relations de OU ou de NON-OU) etinversement :

    baba .=+   baba +=.  

    2 Les systèmes de numération

    Le bit est l’unité de base pour coder des informations sous forme binaire. Il permet de coderune information sur l’état d’un processus binaire, par exemple connaître l’état d’un appareil(0 : appareil éteint, 1 : appareil actif) mais peut être également utilisé pour commander un

     processus (0 : Extinction d’un appareil, 1 : Mise en marche).

     Néanmoins, tous les signaux rencontrés ne sont pas aussi simples et on peut avoir besoin de

    coder plus d’informations. Lorsqu’on désire coder de la musique ou de la vidéo, on utilise pour coder la valeur de chaque échantillon, des nombres formés par le regroupement de plusieurs bits (Le CD est codé sur 16 bits). Dans ces cas, on utilise la numération binaire.

     Nous allons voir comment est organisé le système décimal pour comprendre les systèmes binaire et hexadécimal.

    2.1 La numération décimale

    Le système décimal permet d’écrire tous les nombres possibles en utilisant un alphabet de 10caractères, les chiffres (0, 1, 2, 3, 4, 5, 6, 7, 8 et 9).

    La place occupée par un chiffre est primordiale et permet de représenter des nombres élevés etd’autres très petits. (9000 est très supérieur à 0009 même si ces nombres sont formés par lesmêmes chiffres !)

    On peut décomposer la formation d’un nombre en appliquant un coefficient multiplicateur àchaque chiffre en fonction de la place qu’il occupe dans le nombre.

     Exemple :

    9402 = 9000 + 400 + +2= 9*103 + 4*102 + 0*101 + 2*100 

    On voit que le coefficient appliqué est égal à 10n, n étant le rang sur lequel se situe le chiffre

    concerné. Le rang correspondant à l’unité est le rang 0.Ce coefficient est une puissance de 10 car on est dans le système décimal.

    4

  • 8/17/2019 COURS Electronique Numérique

    5/16

    2.2 La numération binaire

    Le système binaire est formé de la même manière à la différence du nombre de chiffresdisponibles dans l’alphabet. Alors que le système décimal en utilise 10, le système binairen’en utilise que 2 : le 0 et le 1.

    Pour connaître la valeur d’un nombre binaire, il suffit de le décomposer de la même manièrequ’on l’a fait avec les nombre décimaux.

     Exemple :

    01001011 = 0*27 + 1*26 + 0*25 + 0*24 + 1*23 + 0*22 + 1*21 + 1*20 Il suffit alors de calculer les puissances de 2 et de remplacer :01001011 = 0*128 + 1*64 + 0*32 + 0*16 + 1*8 + 0*4 + 1*2 + 1*1

    = 64+8+2+1soit 01001011 = 75 en décimal.

    2.3 La numération hexadécimale.L’alphabet est désormais de 16 caractères : 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E et F.Décomposition d’un nombre en hexadécimal : Le coefficient sera une puissance de 16.

     Exemple :

    $263 = 2*162 + 6*161 + 3*160 En utilisant les puissances de 16 : $263 = 2*256 + 6*16 + 3*1Soit : $263 = 611.

    On utilise l’hexadécimal pour simplifier l’écriture des nombres en binaire. En effet, on peutfacilement coder un octet (un nombre de 8 bits) avec 2 caractères en hexadécimal. Ce codagea beaucoup été utilisé au début de l’informatique lorsque les utilisateurs devaient directementécrire leurs programmes par des suites de 0 et de 1. Il était beaucoup plus simple de lire une

     page de nombres hexadécimaux plutôt qu’une page de 0 et de 1 difficilement implémentablesans faire d’erreurs.

    3 Les microcontrôleurs

    3.1 Structure interne d’un système micro programmé

    3.1.1 L’ALU (Unité Arithmétique et logique)

    Un microprocesseur réalise des opérations avec des nombres binaires. Ces opérations peuventêtre de type différent :

    - Opérations arithmétiques (Additions, multiplications …)- Opérations logiques ou combinatoires (Fonctions logiques, opérations bits à bit…)

    L’ALU (Arithmétic and Logic Unit) est l’organe permettant de réaliser les opérationsarithmétiques et logiques. Il représente donc le maillon essentiel de la chaîne de calcul.

    Analysons ce qui se passe lorsqu’on réalise une opération mathématique : Ex : Soit l’opération 21 + 13 = 34

    5

  • 8/17/2019 COURS Electronique Numérique

    6/16

    • Les nombres 21 et 13 sont des opérandes. Ce sont les données qui sont présentées etsur lesquelles aura lieu l’opération.

    • Le symbole « + » permet d’identifier l’opération à effectuer, une addition dans notrecas.

    • Enfin, 34 est le résultat de l’opération en fonction des opérandes proposées.

     Nous pouvons voir que l’ALU est uncomposant électronique permettant deréaliser les opérations mathématiqueset logiques de base.

     N’importe quelle opération pluscomplexe pourra se décomposer en unesuite de calculs faisant intervenir cesopérations de base.

    On voit que l’ALU permet d’utiliser

    deux opérandes en entrée, que lerésultat du calcul est disponible ensortie et que l’opération peut êtresélectionnée directement par

     programmation (en entrant un nombre binaire, généralement un octet).

    Le microprocesseur va d’abord lire le mot de programmation de fonction. Il va doncconnaître la nature de la fonction à réaliser. Selon la fonction, il va avoir besoind’opérandes. Si c’est le cas, il va les chercher en mémoire. Il peut ensuite effectuerl’opération à réaliser. Le résultat sera soit utilisé directement soit stocké en mémoire.

    3.1.2 Les mémoires

    Une mémoire est un dispositif permettant le stockage d’informations.Les informations sont appelées données. Ces données sont des grandeurs binaires de taillesvariables (8bits, 16bits...).

    3.1.2.1 Les Mémoires mortesAppelées également ROM : Read Only Memory (Mémoire à lecture seule). Ces mémoiresne s’écrivent qu’une fois. On peut lire les informations contenues mais on ne peut pas lesmodifier.Exemples :

    ROM, PROM, CD-ROM, DVD-ROM

    3.1.2.1.1- ROM La programmation est en fait réalisée par masque par le fabriquant, son contenu ne

     peut pas être modifié. La structure de la ROM est réalisée par une matrice de diodes.La présence ou l’absence de diodes va permettre de stocker un 0 ou un 1.

    3.1.2.1.2- PROM (Programmable ROM) Elle est livrée non enregistrée par le fabriquant. Une fois programmée, on ne peut plusmodifier son contenu. La structure interne de cette mémoire est réalisée autour d’unematrice de diode + fusible. L’utilisateur peut décider de garder ou non la diode enclaquant ou non les fusibles.

    6

  • 8/17/2019 COURS Electronique Numérique

    7/16

    3.1.2.1.3- EPROM (Erasable Programmable ROM)C’est une PROM qui pourra être effacée par un rayonnement ultraviolet.La structure de l’EPROM est réalisée autour d’un transistor FAMOS. La mémorisationest réalisée par injection ou non d’électrons dans la grille du transistor. Cette grillen’étant par reliée électriquement au reste du circuit, l’information est mémorisée.

    L’effacement est réalisé par un rayonnement d’ultraviolets pendant une duréed’environ 15 minutes.

    3.1.2.1.4- EEPROM ou E²PROM ( Electrically Erasable Programmable ROM)Ces PROM sont programmables et effaçables électriquement par l’utilisateur.Le transistor utilisé permet d’évacuer la charge stockée dans la grille par uneimpulsion électrique. La mémoire peut donc être effacée directement et plusrapidement qu’avec une PROM. L’effacement peut être réalisé mot par mot (on n’est

     pas obligé d’effacer la totalité de la mémoire).

    3.1.2.1.5- Mémoire Flash

    Il s’agit d’un type de mémoire ayant les fonctionnalités d’une E²PROM avec la densitéd’intégration d’une EPROM. Ce type de mémoire remplace peu à peu les ROMstockant le BIOS sur un ordinateur PC. L’effacement ne peut être réalisé que demanière générale.

    3.1.2.2 Les mémoires vivesCes mémoires peuvent être lues mais on peut également enregistrer des informations.Ces mémoires permettent de stocker des informations volatiles, c’est à dire que cesinformations seront perdues lorsque la mémoire ne sera plus alimentée.

    Par abus de langage, ces mémoires sont communément appelées RAM par opposition auxROM. En réalité, l’acronyme RAM signifie Random Acces Memory (Mémoire à accèsaléatoire) : Chaque information stockée dans ce type de mémoire peut être accédédirectement contrairement aux mémoires à accès séquentiel pour lesquelles, on n’accède

     pas directement au mot recherché. (Par exemple, sur une cassette audio, on doit fairedéfiler la bande pour pouvoir écouter un morceau situé au milieu de la cassette).

    3.1.2.2.1- RAM statiquesElles sont constituées par des bascules. De ce fait ce sont des mémoires très rapides (letemps d’accès à ces mémoires est de l’ordre de la nanoseconde) mais elles ne peuventstocker qu’une faible densité d’informations.

    Elles sont utilisées en mémoire cache : Zone de mémoire rapide (et donc chère) oùsont stockées les données les plus fréquemment utilisées par l’ordinateur afind’accélérer le fonctionnement de celui-ci.

    3.1.2.2.2- RAM dynamiquesChaque point mémoire est réalisé autour d’un condensateur et d’un ensemble detransistors. Pour éviter la perte d’information lors de la décharge du condensateur, lesmémoires dynamiques doivent être rafraîchies périodiquement : Le système va lire leniveau de tension aux bornes du condensateur et va éventuellement recharger celui-ci.

    3.1.3 Le microprocesseur

    C'est un circuit complexe abritant plusieurs millions de transistors dans un volume dequelques mm3.

    7

  • 8/17/2019 COURS Electronique Numérique

    8/16

    Ce composant est le cerveau du système micro-programmé. Il est chargé de réaliser toutesles opérations de calculs.

    Il regroupe dans un même circuit:- Une ALU (cf. § 3.1.1 )

    - De la mémoire (registres de calculs, de résultat, mémoire cache permettant d'accélérer lescalculs en évitant les accès à la mémoire externe)- Des dispositifs de contrôle du système et de gestion des tâches (compteur de programme

     permettant de séquencer le système afin de réaliser dans l'ordre toutes les opérations d'un programme).

    Le µP est cadencé par un oscillateur à quartz. Toutes les opérations sont donc rythmées enfonction de la fréquence du quartz (de l'ordre du GHz).

    Exécution d'un instruction:1. Lecture de l'instruction en mémoire programme. Le compteur de programme

     permet de pointer la case mémoire contenant le code de l'instruction à réaliser.2. L'instruction est décodée, c'est à dire que le microprocesseur détermine la nature de

    l'opération à réaliser.3. Le microprocesseur va ensuite chercher d'éventuelles opérandes en mémoire4. Le microprocesseur exécute l'instruction demandée.5. Le résultat est placé en mémoire.

    On voit que le système est très centralisé: Le microprocesseur est le composant qui gère lereste du système.

     Néanmoins, la tendance actuelle est de décharger le microprocesseur de certaines tâchesfastidieuses. C'est notamment le cas du "chipset" qui va être employé en tant que sous-traitant par le microprocesseur. On assiste ainsi à l'émergence de sous-systèmes qui sonteux-mêmes des systèmes à microprocesseurs et qui travaillent à une tâche spécifique (casdes DSP présents sur les cartes audios ou vidéos et qui sont construits spécifiquement pourrépondre aux besoins en calculs propres à ces signaux électroniques).

    3.1.4 Les bus

    Les bus sont des liaisons permettant de relier entre eux les différents organes du système.Concrètement, ce sont des ensembles de fils électriques qui permettent de transmettre lessignaux aux composants du système.

    On distingue trois sortes de bus :

    Le Bus de donnéesIl permet de transférer les données, c’est à dire les informations traitées par le

    microprocesseur. Ces données sont de type binaire et peuvent transiter en entrée ou en sortie(du point de vue du microprocesseur).

    Le Bus d’adresse Il permet d’établir la liaison proprement dite entre le microprocesseur et un composant.

    Chaque composant réagit dans un domaine d’adresse précise (de la même manière quelorsque quelqu’un vous téléphone, c’est votre appareil qui sonne et non pas celui de votre

    voisin). Le bus d’adresse est unidirectionnel : C’est le microprocesseur qui va activer ou noncertains composants. Les informations transitent donc du microprocesseur vers les autres

    8

  • 8/17/2019 COURS Electronique Numérique

    9/16

    composants. Tous ces composants reçoivent l’adresse envoyée par le microprocesseur. Lecomposant dont le domaine d’adresse comprend l’adresse envoyé sera le seul à réagir àl’appel du microprocesseur.

    Le Bus de contrôle 

    Il n’est pas représenté sur le schéma général (afin de simplifier celui-ci).Son rôle est d’informer le microprocesseur sur l’état du système et de le prévenir en cas

    de dysfonctionnement. Les informations transitant sur ce bus sont des information d’état decertains matériels, des ordres d’initialisation, etc…

    3.1.5 Les périphériques

    Ce sont des organes qui permettent d'échanger des informations avec l'extérieur.

    Certains périphériques échangent des informations uniquement dans un seul sens (la

    transmission est alors appelée liaison simplex). On aura des périphériques d'entrée (clavier,souris, webcam ...) ou des périphériques de sortie (écran, imprimante ...)

    D'autres périphériques échangent des informations dans les deux sens (en entrée ou ensortie). Si le transfert d'information peut s'effectuer dans les deux sens en simultané, laliaison est dite full duplex.Parmi ces périphériques, on peut citer: les modems, cartes réseau, cartes son...

    Quelques fois, les signaux issus du microprocesseur doivent subir un traitement pour êtrecompatibles avec les organes commandés par un périphérique. C'est le rôle de l'interface.On peut par exemple rencontrer une interface de puissance pour commander un organe

    nécessitant beaucoup d'énergie (commande de moteurs, de vérins hydrauliques...)

    3.1.6 Schéma global des systèmes micro programmés

    Mémoires

        R    O    M

        R    A    M

        P .    I .    A .

        I   n    t   e   r    f   a   c   e

        I   n    t   e   r    f   a   c   e

    Ecran

    Clavier 

    BUS DE DONNEES

    BUS D'ADRESSES

    Périphériques

        I   n    t   e   r    f   a   c   e

        I   n    t   e   r    f   a   c   e

    Microprocesseur

    Modem

    (Capteurs,

    acquisition...)

    Entrées

    Sorties

    (Commande de

    moteurs, vérins...)

     

    9

  • 8/17/2019 COURS Electronique Numérique

    10/16

    3.2 Les différents niveaux de langage

    Il s’agit d’un classement hiérarchique des différents langages de programmation par rapportau rapprochement entre le langage (software) et le matériel utilisé (hardware).

    3.2.1 Langage machine

    C’est le seul langage compréhensible par le microprocesseur (ou le microcontrôleur).Il s’agit en fait d’une suite d’octets traduisant le programme à réaliser. Généralement, cettesuite d’octets peut se représenter sous la forme :

    Instruction opérande1 opérande2 Exemple de programme :

    1000 0110 0010 0111 1100 0110 0011 0010 0001 1011On voit tout de suite que ce langage n’est pas explicite du tout. De fait, il n’est jamais utilisétel quel. En revanche, si l’on lisait le contenu d’une mémoire contenant un programme, onaurait quelque chose de similaire.Pour simplifier un peu l’écriture de tels programme (et éviter les erreurs), on le représente

    généralement en notation hexadécimale : $86 $27 $C6 $32 $1B pour notre exemple.

    3.2.2 Langage assembleur

    Pour augmenter la lisibilité du langage machine, on utilise l’assembleur.On utilisera des mnémoniques, c’est à dire des mots de 3 ou 4 lettres dont le contenu estsuffisamment explicite pour se représenter une instruction.

     Exemple : pour le 68HC11 (Motorola®), LDAA : LoaD Accumulator A Chaque instruction possible par le composant utilisé possède un mnémonique qui luicorrespond. Le programme sera beaucoup plus lisible car on verra tout de suite les différentes

    instructions et les opérandes.Chaque composant (ou chaque famille de composant) possède son propre langage assembleur.En étant très proche du composant, il est très efficace. Le code opération est optimisé.

     Néanmoins, ce langage est délicat à mettre en œuvre car la programmation est longue et les programmes ainsi réalisés ne sont pas très lisibles.Le langage assembleur est utilisé lorsque l’on a besoin d’optimiser les temps

    d’exécutions de parties de programmes ou la taille des programmes réalisés.

    3.2.3 Langage évolué

    Parmi les langages évolués les plus connus, on peut citer le basic, le turbo pascal, le C. Cesont des langages indépendants du composant à programmer.Les instructions sont d’usage beaucoup plus général qu’en assembleur.Par exemple, on écrit très facilement une chaîne de caractères à l’écran par une simple lignede programme. En assembleur, on devrait décomposer chaque partie à réaliser et le

     programme correspondant pourrait atteindre facilement une cinquantaine de lignes.Lorsque le programme est écrit, il est ensuite compilé et traduit en code machine (puisquec’est le seul code compris par le microprocesseur)En revanche, le code résultant n’est pas optimisé.

    Habituellement, on programme la structure générale du programme en langage évoluéet l’on insère des parties de programme en assembleur lorsque cela est nécessaire

    (lorsqu’on veut gagner en vitesse d’exécution).

    10

  • 8/17/2019 COURS Electronique Numérique

    11/16

    3.2.4 Langage graphique

    Il s’agit de langages où l’on peut disposer toutes sortes d’objets graphiques (par exemple des boutons, des listes déroulantes…) et où l’on programmera les actions à réaliser lorsque desévènements auront lieu sur ces objets (par exemple, clic de souris sur l’un des boutons).Le langage graphique est principalement utilisé sur des micro-ordinateurs ou des stations de

    travail. C’est un langage éloigné du matériel et pour ces raisons, il est très peu utilisé enélectronique.

    3.3 Les microcontrôleurs

    Un microcontrôleur est un composant électronique qui regroupe dans un même boîtier :

    • Un microprocesseur

    • De la mémoire pour stocker les programmes (ROM, EPROM,E²PROM) et de la RAM pour stocker les données temporaires.

    • Des composants périphériques Ports d’entrée/sortie :

    Timer : Organe permettant de générer des signaux de durées définies. UART : Organe permettant de réaliser des liaisons série avec l’extérieur du

    composant. CAN : Convertisseurs analogiques/numériques Comparateurs analogiques

    3.4 Utilisation des ports d’entrée-sortie

    3.4.1 Qu’est-ce qu’un port d’entrée-sortie ?

    Un port est traditionnellement une interface entre deux milieux différents (mer/terre pour un port maritime ou terre/air pour un aéroport).De la même manière, les ports d’entrée/sortie vont permettre de réaliser l’interface entrel’intérieur et l’extérieur du microcontrôleur

    Les ports du µC vont donc permettre de

    • Réaliser l’acquisition de signaux numériques à l’extérieur du µC.

    • Sortir des données du µC pour une utilisation extérieure.

    Exemples :

    • Si l’on désire afficher un nombre sur un afficheur 7 segments, on va utiliser certains bits

    d’un port pour transmettre les données à afficher (sorties du point de vue du µC).• Si on veut lire l’état d’un clavier pour savoir si une touche a été enfoncée, on utilisera les

     bits concernés du port en entrée.

    Dans tous les cas, la notion d’entrée ou sortie est définie du point de vue dumicrocontrôleur

    Utilisation des ports d’entrée-sortie des microcontrôleur ATMEL® 3.4.2 

    L’utilisation des ports est réalisée en utilisant 3 registres. Un registre est un espace de

    mémoire permettant de sauvegarder une configuration. Dans le cas des microcontrôleurATMEL®, les registres sont de 8 bits.

    11

  • 8/17/2019 COURS Electronique Numérique

    12/16

     Les trois registres sont :

    • Registre de direction : Permet de configurer chaque bit du port en entrée ou en sortie.

    • Registre de donnée : Permet de mémoriser les données que l’on va sortir du µC.

    • Registre d’entrée : Permet de lire les niveaux logiques présents sur les entrées du µC.

    On prendra comme exemple l’utilisation du port B. Si on utilise un autre port, il suffit de

    changer la dernière lettre pour obtenir les noms des registres (Ex : pour le port A, les

    registres sont DDRA, PORTA et PINA).

    Registre de direction 

    DDRB DDRB.7 DDRB.6 DDRB.5 DDRB.4 DDRB.3 DDRB.2 DDRB.1 DDRB.0

    Registre de donnée

    PORTB PORTB.7 PORTB.6 PORTB.5 PORTB.4 PORTB.3 PORTB.2 PORTB.1 PORTB.0  

    Registre d’entrée (en lecture seule)

    PINB PINB.7 PINB.6 PINB.5 PINB.4 PINB.3 PINB.2 PINB.1 PINB.0

    Utilisation: La première étape est de savoir quels sont les bits qui seront en entrée et quels sont les bitsen sortie. On pourra alors configurer le registre DDRB. Il suffit d’écrire un 0 si l’on veut quele bit soit considéré comme une entrée ou un 1 si c’est une sortie. Cette étape sera réalisée

     pour chaque bit du port.

     Ensuite l’utilisation va différer selon qu’on ait choisi une entrée ou une sortie :Entrée Sortie

    Dans ce cas, la seule utilisation est de lire lesdonnées présentes sur les bits concernés.

    Ce sera réalisé en lisant le contenu du registred’entrée PINB.

    Si on veut réaliser une sortie, on va placer surles bits du registre de donnée les valeurs

     binaires que l’on désire : Il suffit d’écrire leregistre PORTB.

    DDRBn PORTBn Fonction Remarque

    0 0 Utilisation en haute impédance (Tri State)

    0 1ENTREE

    Activation résistance de Pull-up

    1 0 Niveau logique 0

    1 1SORTIE

     Niveau logique 1

    3.4.3 Exemple d’utilisation :

    Admettons qu’on désire utiliser le port D du µC.On va utiliser le bit n°5 du port A en entrée pour réaliser la lecture d’un bouton poussoir (si le

     poussoir est appuyé, le niveau sera 0, s’il n’est pas appuyé, le niveau est 1).On va utiliser les bits n° 0, 1, 2 et 3 en sortie pour envoyer une information en binaire sur unafficheur 7 segments. On veut afficher la valeur 7 soit 0111 en binaire.

    Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0 Première étape : On va voir ce qui esten entrée ou en sortie. X X E X S S S S

     Notation : E : entrée, S : sortie, X : indifférent

    Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

    X X 0 X 1 1 1 1

    Connaissant le sens d’utilisation, on va

    regarder ce qu’il faut mettre sur chaque bit de DDRD. 0 : Entrée, 1 : sortie

    12

  • 8/17/2019 COURS Electronique Numérique

    13/16

    Instruction à écrire : DDRD = 0b00001111 ;

     NB :

    Les bits inutilisés (X) peuvent être mis indifféremment à 1 ou à 0.On peut également utiliser au choix la notation hexadécimale (DDRD=0x0F;) ou décimale

    (DDRD=15 ;)

     Lecture des entrées :

    • A=PIND.5 ; (lecture du bit n°5 du PORTD et affectation dans la variable A).

    • On peut également effectuer la lecture complète du port et analyser séparément chaque bit : B=PIND ; (lecture du port entier) puis A= 0b00100000 & B ; (Réalisation d’un ET bit à bit entre le registre et la valeur 32 : Lecture du bit 5).

      Ecriture des sorties :

    Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0On va écrire la valeur 7 : 0111 sur les bits0 à 3. X X X X 0 1 1 1

    Instruction : PORTD=0b00000111 ;

    4 Les transmissions numériques

    Les transmissions d’informations constituent un domaine très important de l’électronique.Tous les systèmes électroniques doivent pouvoir d’une manière ou d’une autre échanger desinformations avec l’environnement extérieur (dialogue avec l’utilisateur de l’appareil par le

     biais de consoles, de voyants ou d’informations sonores, transmissions et stockage de donnéesafin de constituer l’historique sur l’état d’un processus...)

    D’après la nature des phénomènes mis en jeu, les transmissions électroniques ont

    historiquement été dans un premier temps réalisées analogiquement. Le monde se décrit defaçon analogique et il suffisait alors d’adapter les signaux à traiter de manière à les rendrecompatibles avec le canal de transmission.Les transmissions analogiques les plus connues sont les transmissions par ondesélectromagnétiques (radio, TV…) ou par câble (téléphone filaire).

     Néanmoins, avec le développement de l’électronique numérique et des réseaux decommunication, le besoin de transmission numérique s’est fait ressentir de manière plusimportante.

    4.1 Les types de transmissions

    On distingue deux types de liaison numérique :

    La liaison parallèle :Tous les bits de la donnée à transmettre sont envoyés simultanément.Les équipements à relier comportent autant de fils de donnée que de bits à transmettre.Un ou plusieurs fils de contrôle cadencent la transmission.

    La liaison série :Les bits de la donnée à transmettre sont envoyés les uns après les autres. A l’émission, undispositif est chargé de les émettre au rythme d’une horloge. Le récepteur doit de son coté

    reconstituer la donnée initiale.Les équipements à relier ne comportent qu’un seul fil pour la transmission des données.

    13

  • 8/17/2019 COURS Electronique Numérique

    14/16

    L’information d’horloge peut être câblée entre l’émetteur et le récepteur. Dans ce cas, laliaison est dite synchrone.Dans le cas contraire, la liaison est dite asynchrone.

    Avantages et inconvénients des liaisons série et parallèle :

    Série Parallèle

     Nécessité de 2 fils. Nécessité d’un grand nombre de fils (aumoins autant que de bits à transmettre).

    Débit de transmission plus faible car chaque bit est transmis l’un après l’autre. De plus ontransmet également des bits de contrôle pouréviter les erreurs de transmission.

    Débit de transmission plus rapide puisqu’ontransmet simultanément tous les bits.

    Transmission d’informations sur de longuesdistances.

    Atténuation importante et perturbationsinduites par les différents fils les uns parrapport aux autres.

    Généralement la liaison parallèle est utilisée sur de courtes distances (quelques mètres) du faitde l’atténuation importante dont elle est le siège. La liaison série est utilisée pour transmettredes informations sur de longues distances.

    4.2 Etude d’une liaison série : la liaison RS232

    La liaison RS232 est une liaison série asynchrone. De ce fait, les informations circulent sur 2fils et l’horloge n’est pas transmise.

    L’émetteur et le récepteur doivent donc au préalable s’entendre sur la vitesse de transmission

    (le débit des informations transmises). L’unité utilisée pour caractériser la vitesse est le baud.Elle désigne le nombre de bits transmis par seconde. Attention, ce nombre est différent dunombre de bits d’information transmis par secondes. En effet, on voit que pour transmettre unoctet d’information, il faut en fait envoyer 11 bits : 1 bit de start , 8 bits d’informations, 1 bitde  parité  et un bit de  stop  (cf protocle). Les vitesses de transmissions sont normalisées, lesvaleurs courantes sont 1200, 2400, 4800, 9600, 14400, 28800 bds et 56Kbds.

    Le bit de start  permet au récepteur de détecter le début de communication. Il sait qu’ensuite ladonnée sera transmise à la cadence programmée et avec le protocole convenu.

    Le bit de parité permet de détecter certaines erreurs de transmission.Il est positionné pour que le nombre de bits à 1 de la donnée et du bit de parité soit pair dansle cas d’une parité paire et impair si on choisit d’utiliser la parité impaire.S’il y a une erreur de transmission qui n’affecte qu’un seul bit de la trame transmise, ondétectera ce changement car le nombre de bits à 1 aura été modifié. Le récepteur pourra alorsdemander à l’émetteur de lui renvoyer une nouvelle fois la trame jusqu'à ce qu’elle soitcorrectement réceptionnée.Toutefois, ce principe de détection d’erreur est rudimentaire et ne permet pas de détecter deserreurs affectant plusieurs bits simultanément.

    L’information « fin de message » est signalée par 1, 1.5 ou 2 bits de stop (niveau haut).

    Immédiatement après, une nouvelle transmission peut avoir lieu ou bien la ligne peut rester àl’état de repos (niveau haut).

    14

  • 8/17/2019 COURS Electronique Numérique

    15/16

     

    Protocole de transmission : L’état de la ligne au repos est un niveau haut. La transmission d’une donnée commencera par un bit de start  (ligne au niveau bas). On envoie ensuite la donnée sur 5, 6, 7 ou 8 bits. Cette donnée est envoyée en commençant

     par les bits de poids faibles (LSB en premier puis tous les bits jusqu’au MSB). On peut si on le désire envoyer un bit de parité. Cette parité peut être paire ou impaire. L’information de fin de transmission est transmise par le bit de stop (niveau haut).

    La figure ci-dessous montre la trame transmise pour l’envoi de la donnée $69 (soit l’octet01101001) en utilisant un bit de stop et un bit de parité paire.

    Niveaux de transmission :La norme RS232 fixe les niveaux de transmission comme suit :

    L’intérêt de ce codage réside dans la grandeimmunité aux bruits qu’il procure : Mêmeen cas de fort affaiblissement, on pourra

    toujours différencier un niveau haut d’unniveau bas.

    Etat logique Tensioncorrespondante

     Niveau bas 0 +3V < V < +25V

     Niveau haut 1 -3V > V > -25V

    De plus, on peut détecter une coupure de la ligne si l’on obtient un 0V puisque normalement,cette tension ne doit pas apparaître.La figure ci-dessous montre le signal présent sur la ligne pour la même donnée que

     précédemment ($69)

    Configuration de la liaison :L’émetteur et le récepteur doivent être configurés de la même façon. On doit donc régler demanière identique :

    • La vitesse de transmission.

    • Le nombre de bits de donnée.

    • Si on utilise ou non la parité et dans le cas positif si on utilise une parité paire ou impaire.

    • Le nombre de bits de stop.

    15

  • 8/17/2019 COURS Electronique Numérique

    16/16

     

    5 Annexes

    Le tableau ci-dessous permet de traduire

    directement un nombre de 8 bits en hexadécimalet vice versa.

    Exemple :$9E : On lit la traduction de chaque caractère eton affecte la puissance de 16 correspondant à la

     position de chaque chiffre.$9E = 9 *16 + 14 soit (9E)16 = (158)10 

    Si l’on veut trouver la traduction binaire de $9E,il suffit de lire sur le tableau l’équivalent binaire

    de chaque chiffre et de les placer dans le bonordre (poids fort à gauche et poids faible à droite)(9)16 = (1001)2 et (E)16 = (1110)2 (9E)16  = (10011110)2 

    On peut traduire le nombre binaire trouvé endécimal pour vérifier :(10011110)2 = 2

    7+24+23+22+21 = 128+16+8+4+2soit (10011110)2 = (158)10 

    Décimal Binaire Hexadécimal

    0 0000 0

    1 0001 1

    2 0010 2

    3 0011 3

    4 0100 4

    5 0101 5

    6 0110 6

    7 0111 7

    8 1000 8

    9 1001 910 1010 A

    11 1011 B

    12 1100 C

    13 1101 D

    14 1110 E

    15 1111 F

    Poids faibleBin 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111

      Bin Hex 0 1 2 3 4 5 6 7 8 9 A B C D E F

    0000 0 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F

     0001 1 10 11 12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F

     0010 2 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F

    P 0011 3 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F

    o 0100 4 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F

    i 0101 5 50 51 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F

    d0110

    6 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6Fs 0111 7 70 71 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F

      1000 8 80 81 82 83 84 85 86 87 88 89 8A 8B 8C 8D 8E 8F

    f 1001 9 90 91 92 93 94 95 96 97 98 99 9A 9B 9C 9D 9E 9F

    o 1010 A A0 A1 A2 A3 A4 A5 A6 A7 A8 A9 AA AB AC AD AE AF

    r 1011 B B0 B1 B2 B3 B4 B5 B6 B7 B8 B9 BA BB BC BD BE BF

    t 1100 C C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 CA CB CC CD CE CF

      1101 D D0 D1 D2 D3 D4 D5 D6 D7 D8 D9 DA DB DC DD DE DF

      1110 E E0 E1 E2 E3 E4 E5 E6 E7 E8 E9 EA EB EC ED EE EF

      1111 F F0 F1 F2 F3 F4 F5 F6 F7 F8 F9 FA FB FC FE FD FF

     

    16