Interfaces d'entrée/sortie
  Sommaire
  Ports série/parallèle
Les ports d'entrée-sortie sont des éléments matériels de
l'ordinateur, permettant au système de communiquer avec des éléments
extérieurs, c'est-à-dire d'échanger des données, doù l'appelation
d'interface d'entrée-sortie (notée parfois interface d'E/S).
Les ports série représentent les premières interfaces ayant permis
aux ordinateurs d'échanger des informations avec le "monde extérieur".
Le terme série désigne un envoi de données via un fil unique:
les bits sont envoyés les uns à la suite des autres
(reportez-vous à la section transmission de données
pour un cours théorique sur les modes de transmission).
A l'origine les ports série permettait uniquement d'envoyer des données, mais pas
d'en recevoir, c'est pourquoi des ports bidirectionnels ont été mis au point (ceux qui équipent
les ordinateurs actuels le sont); les ports séries bidirectionnels ont donc besoin de deux
fils pour effectuer la communication.
La communication série se fait de façon asynchrone,
cela signifie qu'aucun signal de synchronisation (appelé horloge) n'est nécessaire: les données
peuvent être envoyées à intervalle de temps arbitraire. En contrepartie,
le périphérique doit être capable de distinguer les caractères (un
caractère a une longueur de 8 bits) parmi la suite de bits qui lui est envoyée...
C'est la raison pour laquelle dans ce type de transmission, chaque caractère est précédé
d'un bit de début (appelé bit START) et d'un bit de fin (bit STOP).
Ces bits de contrôle, nécessaires pour une transmission série, gaspillent
20% de la bande passante (pour 8 bits envoyés, 2 servent à assurer la réception).
Les ports série sont généralement intégrés à la carte-mère,
c'est pourquoi des connecteurs présents à l'arrière du boitier, et reliés à
la carte-mère par un nappe de fils, permettent de connecter un élément extérieur.
Les connecteurs séries possèdent généralement 9 ou 25 broches et se présentent
sous la forme suivante (respectivement connecteurs DB9 et DB25):
Un ordinateur personnel possède généralement entre deux et quatre ports séries
(certains de ces ports possèdent des connecteurs DB9, d'autres des connecteurs DB25).
La transmission de données en parallèle
consiste à envoyer des données simultanément sur plusieurs canaux (fils). Les ports
parallèle présents sur les ordinateurs personnels permettent d'envoyer simultanément
8 bits (un octet) par l'intermédiaire de 8 fils.
Les premiers ports parallèles bidirectionnels permettaient d'atteindre des débits
de l'ordre de 2.4Mb/s. Toutefois des ports parallèles améliorés ont été
mis au point afin d'obtenir des débits plus élevés:
- Le port EPP (Enhanced Parralel Port, port parallèle amélioré)
a permis d'atteindre des débits de l'ordre de 8 à 16 Mbps
- Le port ECP (Enhanced Capabilities Port, port à capacités améliorées),
mis au point par Hewlett Packard et Microsoft. Il reprend les caractéristiques
du port EPP en lui ajoutant un support Plug and Play, c'est-à-dire la possibilité
pour l'ordinateur de reconnaître les périphériques branchés
Les ports parallèle sont, comme les ports série, intégrés à la carte-mère.
Les connecteurs DB25 permettent de connecter un élément extérieur (une imprimante par exemple).
  Port USB
Les ports USB (Universal Serial Bus, ports séries universels) sont, comme leur
nom l'indique, basés sur une architecture de type série.
Il s'agit toutefois d'une interface entrée-sortie beaucoup plus rapide que les ports série standards.
L'architecture qui a été retenue pour ce type de port est en série pour deux raisons principales:
- L'architecture série permet d'utiliser une cadence d'horloge beaucoup plus élevée qu'une interface
parallèle, car celle-ci ne supporte pas des fréquences trop élevées (dans une architecture
à haut débit, les bits circulant sur chaque fil arrivent avec des décalages, provocant des erreurs)
- Les câbles séries coûtent beaucoup moins chers que des câbles parallèles
Ainsi, dès 1995, le standard USB a été élaboré. Il propose deux modes de communication (12 Mbps en mode haute vitesse et 1.5 Mbps à basse vitesse)
pour la connexion d’une grande variété de périphériques. L’architecture USB a pour caractéristique de fournir l’alimentation électrique aux périphériques
qu’elle relie. Elle utilise pour cela un câble composé de quatre fils (la masse GND, l’alimentation VBUS et deux fils de données appelés D- et D+).
La norme USB permet le chaînage des périphériques, en utilisant une topologie en bus ou en étoile. Les périphériques peuvent alors être
soit connectés les uns à la suite des autres, soit ramifiés.
La ramification se fait à l’aide de boîtiers appelés hubs (ou concentrateurs), comportant une seule entrée et plusieurs
sorties. Certains sont actifs (fournissant de l’énergie électrique), d’autres passifs.
La communication entre l’hôte (l’ordinateur) et les périphériques se fait selon un protocole (langage de communication) basé sur le principe de l’anneau à jeton (token ring). Cela signifie que la
bande passante est partagée temporellement entre tous les périphériques connectés. L’hôte émet un signal de début de séquence chaque milliseconde (ms), intervalle de temps
pendant lequel il va donner simultanément la « parole » à chacun d’entre-eux. Lorsque l’hôte désire communiquer avec un périphérique, il émet un jeton (un paquet de données,
contenant l’adresse du périphérique, codé sur 7 bits) désignant un périphérique. Si ce dernier reconnaît son adresse dans le jeton, il envoie un paquet de données en réponse.
Sinon, il fait suivre le paquet aux autres périphériques connectés à lui. Puisque l’adresse est codée sur 7 bits, 128 périphériques (2^7) peuvent être connectés simultanément à un port de ce type.
Il convient en réalité de ramener ce chiffre à 127 car l’adresse 0 est une adresse réservée. (cf plus loin). A raison de 5m de câble maximum entre deux périphériques, il est possible de créer une chaîne longue de 636m !
Les ports USB supportent le Hot plug and play. Ainsi, il est possible de brancher les périphériques sans éteindre l’ordinateur (branchement à chaud). Lors de la connexion du périphérique à l’hôte, ce dernier détecte l’ajout
du nouvel élément grâce au changement de la tension entre les fils D+ et D-. A ce moment, l’ordinateur envoie un signal d’initialisation au périphérique pendant 10 ms, puis lui fournit du courant grâce aux fils GND et VBUS (jusqu’à 100mA).
Le périphérique est alors alimenté en courant électrique et récupère temporairement l’adresse par défaut (l’adresse 0). L’étape suivante consiste à lui fournir son adresse définitive (c’est la procédure d’énumération).
Pour cela, l’ordinateur interroge les périphériques déjà branchés pour connaître la leur et en attribue une au nouveau, qui en retour s’identifie. L’hôte, disposant de toutes les caractéristiques nécessaires est alors en mesure de
charger le pilote approprié...
  Port FireWire
Afin de fournir un système d’interconnexion permettant de faire circuler des données à haute vitesse en temps réel,
le bus FireWire (appelé IEEE 1394, nom de la norme à laquelle il fait référence) a été mis au point à la fin de l’année 1995.
Le bus IEEE 1394 suit à peu près la même structure que le bus USB.
si ce n’est qu’il utilise un câble composé de six fils (deux paires pour les données et pour l’horloge, et deux fils pour l’alimentation électrique) lui permettant
d’obtenir un débit de 400 Mbps (il devrait atteindre prochainement 1Gbps). Ainsi, les deux fils dédiés à une horloge montrent
la différence majeure qui existe entre le bus USB et le bus IEEE 1394 : ce dernier peut fonctionner selon deux modes de transfert :
- le mode de transfert asynchrone
- le mode isochrone
Le mode de transfert asynchrone est basé sur une transmission de paquets à intervalles de temps variables.
Cela signifie que l’hôte envoie un paquet de données et attend de recevoir un accusé de réception du périphérique. Si l’hôte reçoit un accusé de réception,
il envoie le paquet de données suivant, sinon le paquet est à nouveau réexpédié au bout d’un temps d’attente.
Le mode de transfert isochrone permet l’envoi de paquets de données de taille fixe à intervalle de temps régulier (cadencé grâce aux deux fils d’horloge).
De cette façon aucun accusé de réception n’est nécessaire, on a donc un débit fixe et donc une bande passante garantie.
De plus, étant donné qu’aucun accusé n’est nécessaire, l’adressage des périphériques est simplifié et la bande passante
économisée permet de gagner en vitesse de transfert.
Autre innovation du standard IEEE 1394 : la possibilité d’utiliser des ponts, systèmes permettant de relier plusieurs bus entre-eux.
En effet, l’adressage des périphériques se fait grâce à un identificateur de nœud (c’est-à-dire de périphérique) codé sur 16 bits.
Cet identificateur est scindé en deux champs : un champ de 10 bits permettant de désigner le pont et un champ de 6 bits spécifiant
le nœud. Il est donc possible de relier 1023 ponts, sur chacun desquels il peut y avoir 63 nœuds, il est ainsi possible d’adresser
65535 périphériques ! Le standard IEEE 1394 permet aussi le Hot plug’n play, mais alors que les ports USB sont réservés à l’utilisation
de périphériques peu gourmands en ressources (souris ou clavier par exemple), la bande passante de l’IEEE 1394 la destine à des
utilisations multimédias sans précédents (acquisition vidéo, …).
  Interface SCSI
Le standard SCSI (Small Computer System Interface) est une interface permettant la connexion
de plusieurs périphériques de types différents sur un ordinateur par l’intermédiaire d’une carte, appelée adaptateur SCSI.
Le nombre de périphériques pouvant être branchés dépend de la largeur du bus SCSI : avec un bus 8 bits il est possible
de connecter 8 unités physiques, 16 pour un bus 16 bits. L’adapteur SCSI représentant déjà une unité physique, le bus accepte 7 (8-1) ou 15 (16-1) périphériques .
L’adressage des périphériques se fait grâce à des numéros d’identification. Le premier numéro est l’ID,
il s’agit d’un numéro permettant de désigner le contrôleur intégré au périphérique (celui-ci est défini grâce à des cavaliers
à positionner sur chaque périphérique SCSI). En effet, le périphérique peut avoir jusqu’à 8 unités logiques
(par exemple un lecteur de CD-ROM comportant plusieurs tiroirs). Les unités logiques sont repérés par un identificateur
appelé LUN (Logical Unit Number). Enfin, un ordinateur peut comporter plusieurs cartes SCSI, c’est pourquoi un numéro de carte est
assigné à chacune d’entre-elles.
De cette façon, pour communiquer avec un périphérique, l’ordinateur doit donner une adresse de la forme « numéro de carte - ID - LUN ».
Deux types de bus SCSI existent :
- le bus asymétrique (le plus utilisé sur PC) basé sur une architecture parallèle dans laquelle chaque canal circule sur un fil,
ce qui le rend sensible aux interférences
- le bus différentiel permet le transport des signaux sur une paire de fils, ainsi, l’information étant codée par différence entre les deux fils, les perturbations seront compensées
Les connecteurs des deux catégories de périphériques sont les mêmes, mais les signaux électriques ne le sont pas, il faut donc veiller à identifier
les périphériques (grâce aux symboles prévus à cet effet) afin de ne pas les détériorer!
Les normes SCSI définissent les paramètres électriques des interfaces d’entrées-sorties.
Le standard SCSI-1 date de 1986, il définissait des commandes standard permettant le contrôle des périphériques SCSI.
Toutefois un grand nombre de ces commandes étaient optionnelles, c’est pourquoi en 1994 la norme SCSI-2 a été adoptée.
Elle définit 18 commandes appelées CCS (Common Command Set). La norme SCSI standard permet des débits de l’ordre
de 5Mo/s. Toutefois, des versions du standard ont été définies. La version Wide SCSI-2 est basé sur un bus de largeur 16 bits (au lieu de 8)
et passe le SCSI standard a 10Mo/s. Le standard SCSI-2 permet aussi un mode synchrone rapide appelé Fast SCSI (passant de 5 à 10 Mo/s
le SCSI standard, et de 10 à 20 le Wide SCSI-2). Les modes Fast-20 et Fast-40 permettent respectivement de doubler et quadrupler ces débits.
La norme SCSI-3, émergeant actuellement, intègre de nouvelles commandes, et permet le chaînage de 32 périphériques.
|