Menu Général                                            URL: http://www.ens-lyon.fr/~bkuhlmey/nik/ci.html
Retour à la page d'initiation à l'électronique amateur                          Retour au sommaire

Les Bus

Quand de nombreuses unitées distinctes (circuits de fonctions ou de localisations différentes) doivent pouvoir communiquer entre elles, il est souvent indispensable de centraliser le cablage entre celles-ci. Tous les signaux intéressants sont alors disponibles sur quelques conducteurs qui forment un 'bus' ; chaque unitée y a accès en lecture (toutes les unitées voient ce qui se passe sur le bus) mais une seule peut y ecrire à la fois.

L'exemple de l'ordinateur

Prenons l'exemple d'un ordinateur:
Le microprocesseur (CPU) doit pouvoir communiquer avec, entre autres: Il serait impossible de relier par autant de cables que de bits de données chaque périphérique au CPU. A la place, tous les péripheriques sont reliés aux mêmes cables (dans ce cas plutôt des pistes du circuit imprimé). Ce sont certains signaux (dits signaux d'adresse) de ces cables qui préciserons avec quel periphérique le CPU veut échanger des données. D'autres cables seront alors porteurs des données. On en vient donc à distinguer naturellement le bus de données et le bus d'adresses.

Dans le cas de l'ordinateur:
Le bus d'adresses est constitué de 16, 24 ou 32 conducteurs dans la plupart des cas, véhiculant autant de bits d'adresses (le CPU peut donc adresser 2^16=64k,2^24=16M ou 2^32=4G péripheriques ou adresses mémoire ; rarement plus de 24 en électronique amateur).
Le bus de données peut comporter jusqu'à 128 conducteurs (donc 128 bits de données, 64 étant bien plus courant et 16 étant en pratique le maximum accessible en électronique amateur).
Le périphérique d'adresse n peut accéder en permanence aux données sur le bus, mais il n'en tient compte que quand le bus d'adresse porte l'adesse n.
En réalité, bus de données et bus d'adresses sont insuffisant. Il faut en effet également préciser au périphérique si le CPU veut lire ou écrire (dans une mémoire par exemple), préciser si l'adresse du bus est valide, indiquer l'état du bus (actif, inactif etc.). Des fonctions plus complexes de BUS, telles les interruptions, le controle d'un périphérique par un autre etc., conduisent à un nombre important de conducteurs ne portant ni adresses ni données. Ils sont parfois regroupés sous le terme de bus de signaux ou bus de contrôle.
A un bus materiel est associé un protocole de bus. Il faut en effet définir précisémét comment les périphériques doivent réagir à tel ou tel signal, pour éviter la cacophonie d'une part, mais aussi parce que deux périphériques actifs simultanément peuvent produire un court-circuit fatal à l'un des deux.
Dans le cadre de l'électronique amateur, deux cas se présentent:

Quelques points de vocabulaire

Maitre de bus
C'est le circuit connecté au bus qui définit l'adresse et les signaux de contrôle. Il controle donc logiquement le bus et tous les autres dispositifs connectés sur le bus (les esclaves). Sur les bus de conception ancienne, il n'y avait qu'un seul maitre immuable. Maintenant, en particulier pour le bus PCI, la fonction de maitre est allouée dynamiquement, ie. si un dispositif demande a être maitre de bus, il peut le devenir.
Esclave
Tout dispositif connecté au bus ne faisant qu'obéir aux commandes fournies par un maitre. Meme sur des bus permettant plusieurs maitres, la plupart des extensions ne sont conçues que pour être esclave. L'esclave a cependant une certaine marge d'initiative personelle par les interuptions.
Les interuptions
Il n'est ici question que des interuptions materielles. Une interuption est un signal déclenché par un esclave, qui interrompt le maitre dans ses operations habituelles, et lui signalant que "quelquechose se passe" (souvent l'interruption n'en dit vraiment pas plus). Le maitre est alors libre de verifier ce qui se passe ou d'ignorer l'interruption, selon la priorité de celle-ci et le logiciel controlant le maitre.

Les différents types de bus

Nous avons vu dans l'exemple de l'ordinateur un bus bien spécifique: il était numérique et parallèle (à chaque bit d'adresse, de donnée ou de signal correspond un conducteur). Il existe aussi des bus sériels et des bus analogiques:
Le bus parallèle
A chaque bit d'adresse, de donnée, de signal correspond un conducteur. Utilisé quand l'encombrement ne pose pas de problème, c'est la forme de bus la plus rapide et une des plus facile à mettre en oeuvre. On distingue ici encore les bus synchrones des bus asynchrones, Pour l'amateur, le problème est souvent de pouvoir caser toutes les pistes (ex: 24 d'adresses, 8 de données et 8 de sigal = 40 pistes) sur le circuit imprimé. Exemples: Bus ISA, PCI, bus local de microprocesseurs etc.
Le bus série
Le bus série est composé de 2 ou 3 fils conducteurs en général. Les données et adresses sont véhiculées sur le même cable, les bits sont envoyés l'un après l'autre. Par son mode de fonctionnement ce type de bus est plus lent que les bus parallèles, et la mise en place d'interruptions, la gestion de différents maitres est plutôt compliquée en ce qui concerne le logiciel (cas de réseaux d'ordinateurs). Il est employé surtout quand les différentes parties du circuit sont distantes les unes des autres (ex: domotique, alarmes) ou que le nombre de conducteurs doit être limité pour des raisons d'encombrement/de coût (cas de certains ordinateurs massivement parallèles). Pour l'amateur, il est assez embétant de définir sa propre norme de bus sériel et surtout de la mettre en place: il faudrait un circuit décodant l'information pour chaque extension, ce qui implique un microcontrolleur sur chaque extension (solution lourde et couteuse). L'amateur peut recourir à des bus sériels existants, pour lesquels il existe des composants électronique prenant en charge le décodage et une fonction particulière (ex. convertisseur analogique/numérique que l'on peut brancher directement sur le bus). C'est notament le cas pour les applications domotiques, ou le bus 'I□C' est très répendu. (d'autres bus, notament CAN pour les automobiles, sont également répendus).
Bus analogiques
Certains bus véhiculent aussi des données analogiques (bus audio, video ou autre, regardez les cables du labo de langues). Cependant, un bus servant souvent à distribuer des données sur des distances assez importantes, les bus sont de plus en plus souvent entièement numériques. En effet un bruit de 20% ne déteriore pas les données numériques mais rend quasi inutilisable les données analogiques.

Retour à la page d'initiation à l'électronique amateur

Retour au sommaire

Suggestions, commentaires, questions ? mailme!
Page conçue par Boris Kuhlmey, 1997.