HARDWAREMONTAGES ★ INFORMATIQUE AMUSANTE : Une interface série universelle ★

Informatique Amusante - Une interface serie universelle|Science&Vie)Hardware Montages

Jusqu'à présent les interfaces principales que nous vous avons proposé de réaliser prélevaient directement les données sur le "bus" du micro-processeur puis transmettaient un octet sur huit fils différents ; un par bit. Cependant ces interfaces restaient d'un emploi spécifique à un type de micro-processeur.

Actuellement de plus en plus de micro-ordinateurs ne comportent, pour entrée-sortie, qu'une fiche fournissant une transmission en série des données.

Pour nous, le fonctionnement en parallèle (un fil par bit) permettait pourtant de simplifier grandement l'électronique des montages à commander ou fournissant des informations.

Afin de pouvoir utiliser les appareils récents pour piloter nos réalisations, nous vous proposons de réaliser une interface série. Sa mission sera d'effectuer la transformation série-parallèle, pour sa sortie et parallèle-série pour son entrée. Les octets transmis seront alors de nouveau présentés sur huit fils et notre interface sera donc compatible avec celles précédemment présentées.

Toutes nos réalisations pourront donc lui être raccordées sans modification. De plus notre interface pourra être utilisée en tant que “port série” sur un micro-ordinateur dépourvu de cette option, à condition toutefois qu'il soit équipé de l'une de nos précédentes interfaces. Cependant avant de passer à sa réalisation, examinons ce mois-ci le principe de fonctionnement d'une liaison série ainsi que ses avantages et ses lacunes.

En mode parallèle, si l'on désire établir une liaison il faut donc disposer de huit fils pour les données transmises, de huit autres fils pour les données reçues et de deux fils complémentaires avertissant les dispositifs de transmission de l'arrivée de nouvelles données. Soit au total 18 fils. Notons qu'il est éventuellement possible de diviser leur nombre par deux en multiplexant l'échange des données ; c'est-à-dire en transmettant sur les mêmes fils tantôt des données dans une direction tantôt dans l'autre. Cependant 9 fils au moins restent nécessaires... et le cuivre coûte cher. C'est pour cette raison que les industriels se sont intéressés à la sérialisation des octets pour leur transmission. Dans ce cas, les huit bits ne sont plus transmis simultanément mais les uns après les autres. Dès lors quatre fils suffisent pour assurer une transmission: deux pour les données transmises, deux pour les données reçues.

Mais recueillir une série de bits à la queue leu leu, dont le nombre peut être élevé si plusieurs octets sont transmis successivement, et les remettre dans le bon ordre ne va pas sans poser quelques problèmes. Tant qu'à étudier le problème de près, les industriels décidèrent de créer une norme à laquelle chaque appareil devra se soumettre : le RS232C.

Divers critères très stricts définissent ce type de liaison, et le non-respect d'un seul d'entre eux conduit à l'incompatibilité totale de l'interface. Afin de mieux comprendre les contraintes du RS 232 C, et surtout pour être en mesure de régler correctement notre interface, passons-les en revue.

Tarions, en premier lieu, du format de transmission. Comme nous l'avons dit un grand nombre d'octets peut être transmis successivement et de façon ininterrompue ; il faut donc que le système de transmission soit en mesure de “repérer” le début et la fin de chaque octet. Pour cela les bits à transmettre seront entourés de bits complémentaires de contrôle. La transmission commencera donc, pour chaque octet, par un bit de départ (start bit), l'octet sera transmis, puis suivra un bit de contrôle de parité (nous reviendrons plus loin sur son utilité) et se terminera par un — ou deux, suivant le mode de transmission choisi — bit de fin (stop bit).

La durée des start bits et des stop bits est telle qu'ils ne peuvent en aucun cas être confondus avec l'un des autres bits. Leur présence permet donc au système de transmission de s'autoresynchroniser régulièrement.

Comme nos liaisons s'effectuent sur des conducteurs électriques, il fallait également normaliser leurs tensions et courant. Ici trois possibilités : les modes TTL, V24 ou boucle de courant.

En mode TTL , ce sont directement les tensions issues des circuits intégrés logiques qui sont appliquées à la ligne. Un 1 se caractérise donc par la présence de + 5 volts, un 0 par son absence. Mais étant donné leur faible amplitude, les signaux TTL sont relativement sensibles aux parasites électriques. Pour conserver une bonne qualité de transmission ce mode sera donc réservé aux courtes distances, en théorie moins d'une dizaine de mètres. Il conviendra donc parfaitement pour le raccordement d'une imprimante, par exemple.

Pour des distances supérieures, on emploiera le V24. Son principe de fonctionnement est très proche de celui du mode TTL. La seule différence est que le 1 est représenté par l'envoi d'une tension de + 12 volts sur la ligne, et le 0 par une tension de - 12 volts, soit au total 24 volts d'où le nom du procédé. En liaison V24 il est possible d'effectuer des transmissions sur des lignes de plusieurs centaines de mètres.

Cependant ce procédé ne donnait pas entière satisfaction, soit pour des liaisons plus longues, de l'ordre du kilomètre, soit lorsque l'environnement était riche en parasites électriques (robotique industrielle par exemple). Dans ces cas le fonctionnement en boucle de courant est préférable. Comme son nom le suggère, on ne parle plus ici de tensions mais de courant. Un 1 provoque l'envoi d'un courant de 20 milliampères sur la ligne ; l'arrivée d'un 0 l'interrompt. Ceci permet d'équiper les têtes de lignes de coupleurs optiques très peu sensibles aux parasites. De même, étant donné qu'il n'est plus nécessaire de disposer d'une référence de tension, la ligne pourra être flottante, donc peu sensible aux perturbations électriques.

Reste maintenant à régler le problème de la cadence de transmission des bits. Pour que la liaison puisse s'effectuer, il faut que le récepteur sache à quelle vitesse l'émetteur les envoie, notamment pour être en mesure de reconnaître la durée des start bits et des stop bits.

Ici encore une normalisation existe et la vitesse de transmission est exprimée en bauds, cette appellation correspondant au nombre de bits transmis par seconde. Les vitesses standard sont retrouvées en multipliant chaque fois la cadence précédente par 2 à partir de 75 bauds. Nous trouverons donc dans l'ordre: 75, 150, 300, 600, 1200, 2400, etc. jusqu'à 19200, voire plus dans certaines applications. Il faut noter que plus la vitesse de transmission est élevée, plus elle est sensible aux parasites. Un paramètre, donc, à manier avec précaution.

Nous avons toujours parlé, jusqu'à présent, de la transmission d'un octet complet, mais dans certains cas seuls 7 bits sont utiles au transfert des données, il est même parfois interdit d'utiliser le huitième bit. Pourquoi donc ralentir le débit de la transmission par l'envoi d'un bit inutile ? Ainsi la transmission pourra s'effectuer soit sous 7 soit sous 8 bits. Il faudra tenir compte de cette particularité.

Enfin, comme pour toute transmission, il est utile de vérifier que la donnée a été correctement reçue. C'est pourquoi un bit de contrôle de parité est employé : il permet de savoir si le nombre de 1 que comportait l'octet, ou le mot de 7 bits, transmis était pair ou impair. Ce point met immédiatement en évidence la majorité des erreurs de transmission et permet donc au système d'engager une procédure de correction, par exemple par un nouvel envoi dè la donnée erronée.

Là encore deux choix sont offerts pour le contrôle de parité. Dans le premier mode, dit contrôle de parité paire (even parity), le bit de contrôle passe en 1 si le nombre de bits en 1 de l'octet est pair. Dans le second, dit parité impaire (odd parity), il passe en 1 si le nombre de bits est impair. Un point quelque peu tarabiscoté du protocole mais dont il faudra tenir compte.

Comme on peut le constater, le RS 232 comporte de nombreuses contraintes et surtout de nombreuses possibilités de réglage du protocole de transmission. Cependant malgré ces quelques lourdeurs il présente l'avantage d'être extrêmement répandu. Partant, nous tenterons donc de réaliser le mois prochain une interface aussi universelle que possible.

Henri-Pierre PENEL , Science&Vie n°858

★ EDITEUR: Science&Vie
★ LICENCE: ???
★ ANNÉE: 1989
★ AUTEUR: Henri-Pierre PENEL
★ INFO: En réponse à un abondant courrier, nous vous rappelons que l'interface principale pour Z 80 a été publiée dans notre n° 824 de mai 86 et sa mise à jour dans le n° 834 de mars 87. Pour l'interface MO 5, les schémas ont été publiés dans le n° 831 de décembre 86.

CPCrulez[Content Management System] v8.75-desktop/c
Page créée en 890 millisecondes et consultée 349 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.