Pour le robot nous utilisions une carte mère
embarquée, à laquelle il a fallu ajouter une carte d'interface
d'où l'idée d'en faire une maison.
Cela ne pose pas beaucoup de problème car le bus ISA du PC est
assez simple contrairement au bus PCI. De plus la bande passante du bus est suffisamment grande.
Le principe de la carte est l'interfaçage du monde extérieur et du PC par le bus ISA.
Cette carte nous a permis de concentrer l'ensemble des interfaces entre
le robot et la carte mère. Celle-ci s'est avèrée très
robuste et simple à gérer logiciellement.
La carte possède un décodeur d'adresses réalisé
à partir d'un PAL 22V10, reprogrammable électriquement. Ensuite
nous avons deux types de circuits :
- Un timer 82c54
- Un PIO 82c55
Le principe de la carte, repose sur l'interface ISA avec des circuits
esclaves. Le domaine d'adressage est compris entre 0x300 et 0x31f qui est réservé
aux cartes d'expérimentation.(voir une doc IBM pour plus d'info)
Pour les deux circuits, 8 adresses sont nécessaires :
- Domaine pour le 82c55 de 0x300 à 0x303 (trois adresses pour
les registres de sortie et une pour le registre de control)
- Domaine pour le 82c54 de 0x304 à 0x307 (trois registres pour
les trois timers, et une pour le registre de control).
Pour information, sur la carte nous avons branché un afficheur
LCD 2*16 caractères en mode 4 bits, la carte IR, une carte relais
de commande et sur la partie timers, les variateurs des moteurs. Il nous restait
un timer de libre.
La programmation du pal a été faite en fonction du choix
d'adressage, voici ci-dessous les équations suivantes :
- CS8255= AEN+/(A9*A8*/A7*/A6*/A5*/A4*/A3*/A2) pour la zone de 0x300 à 0x303
- CS8254= AEN+/(A9*A8*/A7*/A6*/A5*/A4*/A3*/A2) pour la zone de 0x304 à 0x307
La deuxième année nous avons rajouté un circuit
8255, pour avoir 24 I/O supplémentaires (il y a de l'inflation dans
l'air : les informaticiens ont toujours besoin de plus d'informations et donc de capteurs...).
La zone d'adressage pour les cartes d'expérimentations va jusqu'à
0X31F.
On peut donc mettre deux cartes en paralléles, mais à condition de reprogrammer le
pal de la deuxième carte.
Pour la programmation des circuits, il faut se reporter au datasheet des circuits.
En langage C on utilise les commandes IN pour lire sur le port, et OUT pour écrire sur le port.
Le cout de la carte est raisonnable.
Ci-dessous le schéma de principe:
On retrouve le décodeur d'adresse basé sur un PAL 22V10 ( reprogrammable électriquement).
Un 8254 pour le timer, et un 8255 pour les entrées sorties numériques.
Attention les entrées sorties ne sont pas protégées.
Ci-dessous on retrouve le typon. La carte est de taille inférieure
à une carte standard ISA, ceci dans un soucis d'économie
de place. Il est nécessaire d'utiliser un circuit double face pour cette carte.
Ci-dessous les doc des deux circuits de chez INTEL au format pdf. Pour
information Motorola fabrique aussi des PIO pour les µc 68x :
Fichier au format eagle 2.5 pour le routage :
Une version avec 2 PIO ( 8255 a été réalisé
pour la compétion de 1999). On avait connecté 16 capteurs
de ligne 1écran, etc...
|