![]() |
![]() |
||||
|
|
![]() |
|
||
![]() |
![]() |
||||
Vous êtes ici : Home > Fiches Techniques > Fonctionnement du bus ISA |
FONCTIONNEMENT DU BUS ISA
Un des meilleurs calculateurs à l'heure actuelle est le PC. Pour les robots, mais aussi pour d'autre applications domotiques, ils sont extrémement performants. Seulement, pour les interfacer avec l'extérieur, ce n'est pas toujours si simple : les ports séries ou parallèles sont lents et ont un nombre de bits limités. C'est pour cette raison que nous allons ici expliquer le fonctionnement d'un bus ISA, et son interfaçage. Il est possible d'intefacer les Bus ISA AT en 16 bits. Mais nous réaliserons ici l'interfaçage en 8 bits qui est nettement plus simple, et généralement suffisant. Cette fiche technique est valable pour les bus ISA, ISA AT des PC classiques, mais aussi pour les bus PC104. |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
oFonctionnement
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pour interfacer le bus ISA, nous allons nous interresser principalement aux donnés suivantes :
Le bus d'adresse permet de différencier les cartes qui sont mise sur le bus. Le bus de donnés transporte les informations à communiquer à la carte. Le bit AEN permet d'autoriser la lecture/ecriture sur le port. Et enfin -IOR et -IOW servent à différencier la lecture de l'écriture. Prenons l'exemple suivant : nous possédons deux cartes : une carte d'entrée à l'adresse 0x100 et une carte de sortie à l'adresse 0x101. Exemple 1 : la lecture Nous souhaitons lire une information à l'adresse 0x100. En C l'instruction appropriée est : Val = inp (0x100); Cette seule instruction va permettre de renvoyer la valeur contenue à l'adresse 0x100 dans la variable entière Val. Voici comment l'instruction va être interprété par le PC : AEN va tomber au niveau bas, l'adresse 0x100 va être appliquée sur le bus d'adresse, quand IOR va passer à l'état bas, la valeure appliquée sur le bus de données sera lu par le PC. La carte qui sera interfaçé sur le PC devra garantir de renvoyer la valeur adéquate sur le bus de donnée chaque fois que les conditions suivantes seront réunis :
La carte devra appliquer l'état haute impédance le reste du temps afin de garantir qu'il n'y aura pas de conflit avec la mémoire et les autres cartes. Exemple 2 : l'écriture Nous souhaitons écrire une information à l'adresse 0x101. En C l'instruction appropriée est : outp (0x100, Val); Cette seule instruction va permettre d'envoyer le contenu de la variable Val dans la carte située à l'adresse 0x101. Voici comment l'instruction va être interprété par le PC : AEN va tomber au niveau bas, l'adresse 0x101 va être appliquée sur le bus d'adresse, et la donnée Val sera appliquée sur le bus de données. Quand IOW va passer à zéro, la carte qui sera interfaçée sur le PC devra lire la valeur sur le bus de données. Chaque fois que les conditions suivantes seront réunies, la carte devra lire le bus de données :
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
oImplantation
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
oQuelques
liens
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
oContact
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Pour toutes questions envoyer moi un mail: Sinclair | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|