Notre magasin

Rue Albert 1er, 7

B-6810 Pin - Chiny

Route Arlon - Florenville

Le cours HARDWARE 1 d'YBET Informatique

FORMATIONS Le MAGASIN YBET PRODUITS et SERVICES
Définitions des termes informatiques   Plan d'accès à Pin  
Dépannage informatique Rayon d'action    
Le magasin YBET Formation Internet  

12. Les périphériques PC internes: interruption, adresse mémoire et DMA

12.1. Introduction - 12.2. Interruptions, adresses de base dans un PC - 12.3. Port parallèle - 12.4. Ports série - 12.5. USB 1.1 - 12.6. USB 2.0. - 12.7. USB 3.0 - 12.8. Le port firewire 1394 et 1394B

Depuis les premiers PC, la connexion avec des périphériques extérieurs s'est relevé obligatoire (modem et transmission série, imprimantes, …). Intéressons-nous d'abord à la manière dont le PC peut gérer les cartes de communication en interne.

Une chance, le 8088 ne gère pas les ports de communication externes comme des plages d'adresses mémoires, mais  comme une zone d'entrée / sortie distincte via un décodage d'adresse spécifique. Pour cela, deux broches I/O (Input / Output) actives bas sont connectées sur le processeur: IOR en lecture (Read) et IOW en écriture (WRITE) et utilisée dans l'adressage des périphériques (les plages mémoires sont gérées par MEMR et MEMW). Dès le départ, certaines adresses ont été normalisées par IBM (horloge, clavier, ports de communication séries et parallèles, …). Chaque périphérique a une adresse distincte (généralement une plage). Elle ne peut être partagée.

Pour avoir étudié le fonctionnement d'un système de base utilisant un microprocesseur, nous savons qu'un périphérique peut utiliser une demande d'interruption. Ceci signale au processeur que des données sont en attente (données arrivées sur le port ou données à envoyer). En recevant ce signal d'interruption, le microprocesseur termine l'instruction en cours, sauve l'adresse mémoire utilisée (appelé pointeur de programme) et le contenu de ses registres internes (mémoires).

Chaque interruption est associée à une adresse mémoire bien définie contenant un programme, le processeur va juste exécuter les instructions associées. A part pour une interruption spécifique appelée Non Masquable, toutes les interruptions peuvent être complètement ignorées par une commande en assembleur (le langage interne d'un processeur). Dans les ordinateurs actuels, aucune interruption n'est masquée. L'interruption non masquable (NMI) est utilisée dans les anciens XT lors d'une erreur de parité de la mémoire RAM et provoquait un redémarrage de la machine). Dans ce cas aussi, IBM a définit des numéros d'interruptions normalisées dans les XT à base de processeurs 8088, la majorité sont encore utilisées.

La troisième méthode pour gérer les entrées / sorties, mais surtout l'accès mémoire utilise le DMA (Direct Memory Access). Dans le cas d'une demande de DMA, le microprocesseur se déconnecte des bus de données, adresses et contrôle. Le périphérique utilise les bus pour les transfert direct des données (sans utiliser le microprocesseur). Trois numéros sont utilisés dans les ordinateurs actuels, ils sont normalisés en partie.

Selon le type d'entrée/sortie, un PC utilise une ou plusieurs de ces 3 techniques. Pour configurer certains périphériques non normalisés, les BIOS actuels sont Plug & Play, ils définissent le numéro d'interruption automatiquement au démarrage (parfois la plage d'adresse). Les systèmes d'exploitation Windows (à partir de Win95) intègrent également cette fonction. Ca facilite le paramétrage et évite les conflits d'interruption ou de plages d'adresses.

Un périphérique est donc désigné en hardware par:

  1. une plage d'adresses

  2. un numéro d'interruption lié à une adresse de programme (sauf les Win modem, software)

  3. éventuellement (ce n'est pas obligatoire) un numéro d'accès mémoire direct (Direct Memory Access - DMA)

12.2. Interruptions – adresses de base.

Les processeurs Intel 8088-8086 utilisaient le contrôleur d'interruption 8259 qui gérait jusque 8 interruptions distinctes, donc 8 périphériques (IRQ0 à IRQ7). Les suivants jusqu'au 80486 utilisent deux contrôleurs 8259 connectés à la suite (IRQ0 à IRQ15), l'IRQ9 est réservée à la connexion des deux. Utilisant un nouveau contrôleur d'interruption, les Pentium et suivants acceptent cette interruption IRQ9, mais par compatibilité avec les anciens systèmes, elle est rarement utilisée par défaut. Les PC actuels acceptent via le chipset jusque 24 niveaux d'interruptions.

Le tableau donne les plages d'adresses et interruptions standards d'un PC actuel.

Fonction IRQ Adresse en hexadécimal Remarque
Horloge système 0   Non modifiable
Clavier 1  
Contrôleur d'IRQ programmable 2  
Com 2
Com 4
3 $ 2F8-2FF
$ 2E8 - 2EF
Peuvent être changés mais avec des problèmes pour certains logiciels possible
Com 1
Com 3
4 $ 3F8-3FF
$ 3E8-3EF
Libre 5   souvent utilisée par la carte audio, également le port parallèle LPT2 en 278
Contrôleur du lecteur de disquette 6   Modifiable dans certains cas (mais pas conseillé), peut également être récupérée en absence de lecteur.
Port parallèle LPT 1
et LPT 2
7 $ 378 -37F (3BC produits de marque)
$ 278 - 27F
Modifiable mais pas conseillé. LPT1 et LPT2 peuvent utiliser la même interruption, mais pas possible d'imprimer sur les deux imprimantes en même temps.
Horloge: date et heure 8   A partir des 286, Non modifiable
  9   Libre pour les Pentium et suivants, utilisé en parallèle avec IRQ2 dans ordinateurs à base de 286, 386 et 486. Souvent utilisée par les cartes audio
  10 (A)   Libre
  11 (B)   Libre (*)
  12 (C)   Libre (*)
Coprocesseur mathématique 13 (D)   Non modifiable
  14 (E)   Libre, normalement utilisé par IDE 1
  15 (F)   Libre, normalement utilisé par IDE 2

(*) L'interruption 12 est réservée au port souris PS2 mais est également le numéro d'interruption par défaut des ports USB. Avec une souris PS2 connectée, l'USB utilise le 11. Une souris PS2 doit donc être branchée avant de démarrer l'ordinateur.

Les interruptions utilisées et périphériques associés peuvent être affichés par la partie système - Gestionnaire de périphérique - du panneau de configuration. Dans certains cas elles sont affichées au démarrage de l'ordinateur.

En regardant ce tableau, si un ordinateur manque d'interruptions libres, il est possible d'en libérer en supprimant des ports de communication dans le setup. Si vous n'utilisez pas de ports série, vous pouvez désactiver (deseabled) COM 1 et Com 2 , récupérant les interruptions 3 et 4. C'est identique pour le port parallèle LPT1. Si vous utilisez 2 ports parallèles, vous pouvez utiliser l'interruption IRQ5 pour le port LPT2 (comme normalisé) ou partager en 7 avec LPT1, mais pas d'impression vers les deux ports en même temps et quelques problèmes à prévoir pour des anciens programmes. Si vous utilisez des disques SCSI, pourquoi pas désactiver les ports IDE 1 et IDE2 dans le BIOS et ainsi récupérer les interruptions 14 et 15, ...

Remarquez que les ports com 1 et com 3 utilisent la même interruption: vous ne pouvez pas utiliser une souris série en com 1 avec un modem en Com3.

Dernière remarque, les ordinateurs actuels n'utilisent plus de niveau d'interruption, comme on le voit ici en utilisant le gestionnaire de périphérique. Les parties "systèmes" comme le clavier, horloge, coprocesseur mathématique gardent les mêmes numéro pour compatibilité ascendante mais de nouvelles sont également utilisées. Ceci rend la partie ci-dessus obsolète.

12.3. Le port parallèle

Réservé à la connexion d'une imprimante, le port parallèle sert également pour des scanners, des tapes de sauvegardes et anciens modèles de lecteurs CD-ROM (graveurs) externes, ... remplacée par une connexion USB ou Firewire. Le port parallèle utilise 8 lignes de données (un octet par transfert). Le connecteur utilisé est de type Centronix, il utilise 2 X 8 fils (donnée - masse) + des signaux de contrôle soit 25 fils au total.

Différents modes sont possibles, des premières connexions uni-directionnelles jusqu'aux normes actuelles bi-directionnelles utilisant le DMA. Les connections actuelles sont aussi rapides que les USB mais utilisent beaucoup plus le processeur. Le taux de transfert maximum théorique est de 1 Mega byte par seconde,  600 kB par seconde. en pratique

Pour connecter une imprimante, la longueur du câble peut aller jusqu'à 10 m, 3 mètres maximum pour les autres périphériques.

12.3.1. Les adresses des ports parallèles.

2 adresses parallèles sont normalisées dans le PC

LPT1 utilise la plage d'adresse $378 à $37F ($3BC pour certains ordinateurs de marque),numéro d'interruption 7.

LPT2 utilise la plage d'adresse 278-27F, associée avec l'interruption 5 (même si on peut lui assigner l'interruption numéro 7 partagée avec LPT1. Ceci libère une interruption, mais provoque des incompatibilités logicielles avec les périphériques autres que les imprimantes. Dans ce cas, les deux ports ne peuvent pas être utilisés simultanément.

12.3.2. Le mode unidirectionnel SPP.

Utilisé avec les premiers PC, ce mode est unidirectionnel, de l'ordinateur vers le périphérique uniquement. Quelques signaux de contrôle permettent de gérer le transfert des données comme Paper Out (fin de papier) ou BUSY pour les imprimantes

Le taux de transfert maximum est de 150 KB / s. C'est ce mode activé par défaut dans le BIOS

12.3.3. Le type 1 bidirectionnel.

Cette connexion bi-directionnelle utilise une broche pour le sens de la communication. Introduit en 1987 par IBM, il n'est plus implanté dans les ordinateurs.

12.3.4. Type 3 DMA.

Utilisant le Direct Memory Access (DMA), cette connexion permet le transfert directe du (vers) le périphérique et la mémoire. Ce mode est aussi spécifique à IBM.

Brochage d'un port parallèle

12.3.5. Le mode EPP

Le port EPP (Enhanced Parallel Port) est la première connexion bidirectionnelle normalisée. Le taux de transfert permet jusque 2 MB par seconde maximum, soit plus qu'un port USB 1.1.

12.3.6. Le mode ECP

Développements d'Hewlett Packard et Microsoft, l'ECP (Extended Capabilities Ports) est similaire à l'EPP précédant, mais utilise le mode DMA. Tout comme le mode EPP, le transfert des informations bi-directionnel se fait au niveau hardware, ce qui entraîne des débits nettement supérieurs. Une autre caractéristique de ce type de liaison parallèle est la possibilité de compresser des données jusque 64 fois. Cette solution est utilisée par les scanners qui envoient des données souvent similaires lors d'un transfert d'images.

12.3.7. Les modes composites.

Dans le SETUP d'un PC, vous ne trouverez généralement pas la configuration en modes EPP et ECP mais bien des modes hybrides permettant d'utiliser deux normes. Le mode SPP (proposé par défaut dans le setup) ne permet plus la connexion de périphériques standards.

Le mode EPP/SPP utilise l'EPP ou SPP (unidirectionnel) suivant le périphérique connecté. Il peut être configuré en version 1.7 ou 1.9. Pour beaucoup de périphériques (notamment scanners), le 1.9 est obligatoire.

Le mode ECP/EPP bidirectionnel est le plus courant. Le canal DMA associé est généralement le 3.

12.3.8. les câbles LAPLink.

Ces câbles permettent de connecter deux ordinateurs en utilisant les ports parallèles pour transférer des données. Différents logiciels utilisent cette solution comme LapLink ou intégré à Windows 95 / 98. Deux connecteurs DB25 mâles connectent les deux ordinateurs. Les ports parallèles respectifs doivent être configurés en bi-directionnel.

12.4. Les ports série

Historiquement, les connexions séries étaient les plus utilisées, notamment avec la norme RS232. Actuellement, ce type de connexion n'est utilisé que pour des installations spéciales pour magasins et commerces (terminaux de vente).

Utilisant des tensions de +15V à +25V (valeur 1) et de –15V à –25V (valeur 0), cette connexion permet des transferts sur des longues distances en réduisant les parasites électromagnétiques lors du transfert. Les PC utilisent les mêmes signaux mais avec des tensions de +5 et 0 Volts, réduisant la distance maximale à une vingtaine de mètres, soit largement supérieure aux connexions USB et parallèles. Les connexions série sont totalement bi-directionnelles.

Deux types de connecteurs sont utilisés: DB9 et DB25 suivant le nombre de broches. Le DB25 inclus plus de signaux mais la majorité sont dédiés aux anciennes transmissions par modem réservés aux terminaux. L'utilisation actuelle est parfaitement identique.

Les connexions séries étaient utilisées pour la souris et le modem RTC, éventuellement pour des équipements professionnels comme des tables traçantes, des scanners pour code barre, .... Actuellement, la seule utilisation est celle des imprimantes spéciales utilisées notamment en restauration couplée à des POS (Point Of Sale - terminaux de vente) ou caisses enregistreuses. L'intérêt principal est la distance de connexion au détriment de la vitesse.

Version 9 broches (DB9)

Broche Signal
1 Carrier detect
2 Receive Data
3 Transmit data
4 Data terminal ready
5 Masse
6 Data Set ready
7 Requets to send
8 clear to send
9 Ring indication

Version 25 broches (DB 25)

1 Masse
2 Transmit data
3 Receive data
4 Request to send
5 clear to send
6 Data set ready
7 Ground
8 Carrier detect
9 Check modem
20 Data terminal ready
22 Ring indication

Tous les fils sont rarement raccordés. Le 2 (Receive Data, réception de données) et le 3 (transmit Data, émission) doivent être croisés dans certains cas. Dans les modems, c'est directement dans l'appareil.

12.4.1. L'UART 2.0

Un UART (Universal Asynchronous Receiver / Transmitter). convertit les signaux parallèles (interne à l'ordinateur) en signaux séries. L'UART 16.550 actuel autorise un taux de transfert de 33,6 kilo bit par seconde.

Les vitesses de transferts sont exprimés en bit /s (souvent désigné par Baud). Pour débuter le transfert, l'émetteur envoie un bit de départ et un bit de fin pour délimiter chaque byte, soit 8 bits (caractère). De plus, on utilise souvent un bit de parité pour contrôler les informations envoyées. Ceci amène à 11 bits pour un octet de donnée: 1 bit de start, 8 de données, 1 de parité et bit de1 stop. Pour une connexion à 33.6 Kb/s, le taux de transfert effectif est d'un peu plus de 3 Kilo byte par secondes.

12.4.2. Liaison RS232

La transmission est entourée d'un bit de départ (Start) et d'arrêt (Stop). Le contrôle utilise un bit de parité (qui n'est pas obligatoire). Il vaut 1 lorsque le nombre de bits à 1 dans le message est impaire (type de parité EVEN) et 0 si le nombre de bits de l'octet de données est paire. Par contre, en parité ODD, il est à 0 lorsque le nombre de 1 dans le message est impaire et inversement.

Start Bit D0 D1 D2 D3 D4 D5 D6 D7 Parité Stop bit

En RS232, la valeur 0 correspond à une tension entre - 5 à - 15V. La valeur 1 correspond à une tension de + 5 V à + 15 Volts. Les PC actuels utilisent ce mode de transmission mais avec des tensions de 0 à 5 volts. Les connecteurs sont parfaitement identiques.

RX: Broche de réception des données

TX: Broche d'émission des données

Le câblage en envoi – réception doit inverser la connexion au niveau des fils. inversement.

RTS: sortie active bas, sortie de l'ordinateur indiquant au périphérique que l'ordinateur est prêt à transmettre (et inversement)

DTR: actif bas, sortie indiquant au périphérique que l'ordinateur est prêt à communiquer.

CTS: sortie actif bas, entrée, signalant à l'ordinateur que le périphérique est prêt à transmettre.

DSR: entrée à l'ordinateur indiquant que le périphérique est prêt à communiquer.

Au départ, seul trois fils sont nécessaires: RX et TX pour la transmission des données et une masse.

12.4.3. Transmettre en mode série.

Une transmission en mode série nécessite une synchronisation entre les deux appareils en communications: vitesse, parité, bit de stop, protocole. Les deux paramétrages doivent être identiques.

Dans le cas d'une parité paire (EVEN), le nombre de bits à 1 du message, parité comprise, est paire. Dans le cas d'une parité impaire (ODD), le nombre de bits à 1 du message (parité comprise) est toujours impaire.

Exemple Paire

Start Bit D0 D1 D2 D3 D4 D5 D6 D7 Parité Stop bit
  1 0 0 0 0 0 0 1 0  

Exemple Impaire

Start Bit D0 D1 D2 D3 D4 D5 D6 D7 Parité Stop bit
  1 0 0 0 0 0 0 1 1  

12.4.2. Les liaisons infra-rouges.

Utilisant une diode photo-électrique, les liaisons infra-rouges utilisent également le mode série. Nous en reparlerons en deuxième, connexions sans fils, mais elles ne sont plus utilisées.

12.4.3. Le transfert d'informations.

Identique aux connexions parallèles lapLink, la connexion série permet également des transferts entre ordinateurs. Le câble est de type croisé RX - TX (on appelle ce type de connexion un NULL MODEM). Les modems et terminaux croisent le fils à l'intérieur et utilisent un câble droit.

12.4.4. Les connexions série dans un PC.

Quatre ports sont normalisés dans un ordinateur. Quelques cartes spécialisées permettent la connexion de plus de ports.

Com 1 et Com 3 utilisent l'interruption 4 et Com 2 - Com 4, la 3.

Ce partage d'interruption entre 2 périphériques informatiques différents ne permet pas de les utiliser simultanément. Par exemple, si vous connectez une souris série en Com 1 et un modem en Com3 (même interruption), la souris ne fonctionnera pas lors de la communication via un modem.

12.5. USB 1.1.

Le port USB (Universal Serial Bus) 1.1 date de 1995, c'est un port externe de type série également mais plus élaboré puisqu'il permet de raccorder plusieurs périphériques sur la même ligne de communication. Elle permet normalement de connecter sans redémarrer l'ordinateur une grande variété de périphériques (imprimante, scanner, clés de sauvegarde, appareil photo numérique, ...)  avec une vitesse supérieure aux ports série ou parallèle actuels. L'USB 1.1 n'est réellement compatible qu'à partir de Win98 et MacOS 8.5 (Win95OSR2 n'est pas réellement compatible). En plus de l'avantage de la connexion à chaud (Hot Plug), les logiciels ne communiquent plus avec les périphériques de manière spécifique, mais selon un protocole établi, unifié et invariable. L'USB est également compatible DMA.

Le câble USB comporte deux connecteurs différents (A et B) qui se connecte sur l'ordinateur (ou le HUB) du côté A et sur le périphérique (connecteur de type B). Il utilise 4 fils

Il peut être blindé ou non. Le mode basse vitesse à 1.5 Mbits/s accepte des tolérances supérieures aux perturbations électromagnétiques. Par contre, pour des longues distances en 12 Mbits/s (1,5 MB/s), un câble blindé est conseillé. La norme prévoit un câble de 5 mètres maximum. Des extensions sont possibles à 10 mètres en utilisant un câble spécial avec rectification des signaux (plutôt chère).

Le contrôleur fournit une alimentation de 5 Volts avec un courant 500 mA maximum par port (également les Hub alimentés par le réseau électrique via un transfo). Par contre, les anciens ordinateurs utilisent un seul contrôleur pour 2 ou 4 ports. Dans le cas d'un HUB non alimenté, les 4 ou 8 ports se partagent ces 500 milliampères.

Comme tous ports séries, la vitesse de transfert est faible: 12 Mb/s (1,5 MB/s) partagée entre les périphériques. Deux modes de fonctionnement sont disponibles:

L'USB accepte en théorie jusqu'à 127 périphériques par contrôleur. Néanmoins, à part en utilisant des hubs, le nombre est impossible. Ces modes de fonctionnement haute - basse réduit le nombre de périphériques simultanés à 8 et non à 127 comme dans la norme de départ.

La longueur maximum du câble est de 5 mètres pour un périphérique à pleine vitesse, 3 mètres pour les périphériques basse vitesse.

La méthode de communication est clairement délimitée dans la norme.

Actuellement, le port USB permet d'implanter des scanners, imprimantes, des souris et claviers, manettes de jeux, caméras digitales et appareils photo numériques, enceintes (! Pas de CD-audio), modems (surtout ADSL) et graveurs, WebCam, …

12.6. USB 2.0

Déjà prévues dans les spécifications de l´USB 1.1, les caractéristiques de la version 2.0 (courant 2002) reprend le même principe. Il est d'ailleurs compatible avec la version 1.1 (vous pouvez connecter un périphérique USB 2.0 sur un contrôleur USB 1.1 et vis et versa), cette version utilise une troisième vitesse de connexion entre le contrôleur maître et les périphériques USB 2.0.

En utilisant les mêmes câbles, vous pouvez maintenant atteindre en théorie 480 Mbits/s (60 MB/s). En pratique, le débit atteint 15 MB/s, soit quand même 12 fois plus rapide que la précédente (1,2 MB/s) - mais deux fois plus lent que le firewire en pratique. La tension des signaux sur le câble a été réduite, passant de 3,3 Volts à 0,4 Volts, permettant une vitesse supérieure mais augmentant les risques de parasites.

Les contrôleurs USB 2.0 acceptent des périphériques USB 1.1 mais en réduisant la vitesse globale. En théorie, jusqu'à 63 périphériques peuvent être raccordés à un même contrôleur. La longueur maximale du câble ne peut dépasser 4,5 mètres pour la pleine vitesse. Cette connexion permet de relier des disques durs externes, imprimantes, scanners et autres lecteurs. Elle est reprise dans Windows XP à partir de SP2 et 2000 avec le Service Pack SP4

12.7. USB 3.0

Réellement utilisé en 2011, l'USB 3.0 permet des vitesses nettement supérieures, de l'ordre de 5 GB bits par seconde (mais pour l'instant, c'est très théorique puisque les contrôleurs actuels plafonnent à 150 Mega Byte (1200 Mega bits) par seconde (c'est mieux que les 60 théorique d'un USB 2.0 mais quand même). Le contrôleur est donc spécifique mais le connecteur (et les câbles) sont identiques. Ceci va probablement amener la disparition du suivant (IEEE 1394), y compris pour les transferts de caméra vidéos.

12.8. Le port FireWire 1394 et firewire 1394B

Egalement port série, le FireWire (aussi appelé IEEE 1394) est dédié aux périphériques externes rapides (disques durs et caméras numériques principalement) avec une vitesse théorique maximum de 480 mb/s (30 MB/s en pratique) mais accepte en fait des vitesses de 100, 200 et 400 Mbits/s suivant les périphériques chaînés, y compris en modifiant la vitesse de transfert suivant le périphérique. Le connecteur utilise 4 câbles (2 fils initialement prévus par Sony pour l'alimentation ne sont plus repris).

Les connecteurs Firewire Les appareils se connectent à la suite des autres. Il n'est donc pas nécessaire d'utiliser des HUB comme en USB.

La version 1394B est une évolution du premier. Le taux de transfert passe de 400 Mb/s à 800 Mb/s. Les normes suivante devaient permettre 1,6 Gb/s puis 3,2 Gb/s sur une distance de 100 mètres en utilisant de la fibre optique plastique multimodes. Le firewire 1394B est compatible avec la version précédente en utilisant un double protocole de communication.

Cette connexion était principalement utilisé avec les caméras vidéo numériques, peu pour d'autres périphériques qui utilisent majoritairement l'USB 2.0 et l'USB 3.0 implanté sur toutes les cartes mères actuelles. Il est complètement abandonné à partir de 2012

Sur le sujet:

La suite du cours hardware 1 > 

12A Modems téléphoniques - 13. Les composants images

< 11. Lecteur disquette

Le cours hardware PC et périphériques. Le cours Hardware réseaux et serveurs

Revendeur Informatique: carignan, Sedan

Les compétences au service de la qualité.

Les activités du magasin YBET informatique