Ligne
Carte de communication pour IBM PC & Compatibles
Ligne

AvertissementVERTISSEMENT

Le contenu sur ce site ne peut en aucun cas être utilisé à des fins lucratives. 
Dans ce cas  je ne serais pas tenu pour responsable en cas d'accident ou autres dommages corporels ou matériels.



MainsLa carte encastrable d'écrite ici permet une réalisation rapide et facile de nombreux montages de communication extérieurs avec un IBM-PC ou d'un compatible.


 
Titre Schema Implantation

Il vous est sans doute déjà arrivé de penser à doter votre PC de nouvelles possibilités , carte de génération de divers signaux , de commande de relais , de ....

Aujourd'hui je vous propose une carte d'un grand nom "PIA" Périphérie Interface Adaptateur , d'une simplicité enfantine .

Il y a ensuite le problème de l'interface à utiliser et de celle qui reste disponible . A y regarder de près , on a vite fait de les toutes  les occuper. Une souris, un modem il n'en faut pas plus pour ne plus disposer d'interface série de libre ; une imprimante et l'affaire est terminée du côté de la transmission par le port parallèle .

L'approche logique est alors inévitablement de doter l'ordinateur d'une carte additionnelle , si tant est que l'on dispose encore de l'un ou l'autre connecteur d'extension de libre ... car là aussi les perspectives sont  sombres sur certains ordinateurs . Seule solution dans ce cas-là , .. changer d'ordinateur.

Figure 1
Commentaire Le schéma
Il n'y a vraiment que très peu de choses à dire en ce qui concerne le schéma qui ne comporte rien de plus que les autres .
L'oeil exercé de notre lecteur n'aura pas manqué de découvrir immédiatement le décodage d'adresses .

De gauche à droite et du bas vers le haut  , sur la figure 1 , on reconnaît le connecteur  de la carte  qui viendra s'en ficher dans l'un des connecteurs d'extension libres de  la carte mère de l'ordinateur .

Nous sommes ici contentés d'un connecteur 8 bits , mais rien n'interdit de placer une telle carte dans un connecteur 16 bits .
Le second connecteur quand à lui  il est du type canon 25 broches de la même famille que ceux  " série et parallèle " .

En ce qui concerne du reste , passons sur les détailles .

On retrouve le traditionnel  " quattro " de buffers de ligne pour nous servir , bien entendu aussi le maître d'oeuvre du nom de  " PIA " et de sa soeur le décodage d'adresses
Pour en finir quelques kilo de cuivre , d'etein et d'isolant .

Mais pour l'instant c'est le schéma électronique qui nous intéresse suivant  figure 2 .
De la gauche à droite , on aperçoit l'irrésistible connecteur IBM  avec son brochage à la figure 3 suivi du " quattro " de buffers détaillé à la figure 4A et figure 4B .


 
Titre Schema Implantation
Figure 2

Click sur l'icône pour télécharger le fichier qui te convient.
                    Le 74LS245 au format .
Le Intel 8255 au format . Le 74LS08 au format . Le 74LS32 au format .
                    Le 74LS688 au format . Le Intel 8253 au format . Le 74LS540 au format .



Figure 3

Nous vous proposons à la figure 3 la norme du connecteur d'extension (8bits) de l' IBM-PC (& Compatibles) .
Un mot concernant les signaux disponibles et intéressants :

OSC (B30) désigne une ligne qui véhicule la fréquence d'horloge du bus d'E/S .
Les fréquences normalisées sont de 4.77 MHz pour un PC du type XT et de 14.318 MHz pour un PC du type AT .
CLR (B20) est le signal d'horloge système et dans le cas du PC standard correspond au tiers de la fréquence de l'oscillateur (4.77=1.59MHz) .
On notera que les  PC modernes " tournent " à des fréquences de loin supérieures de sorte que leurs fréquences OSC et CLK sont bien plus élevées .
RESET (B02) sert  à une initialisation du système  à la mise sous tension , lors d'une disparition de l'alimentation ou tout simplement d'un " plantage " bête et méchant .
IOWR (B14) est commandé par le contrôleur de bus, le 8285 sert à l'écriture de données en mémoire .
IORD (B13) arrive du contrôleur de bus, 8285 sert  à la lecture des données présentes en mémoire .
Figure 4A
MEMRD (MEMory ReaD , B12) sert à un processus de lecture par le processeur ou le contrôleur de DMA .

MEMWR (MEMory WRite , B11) elle indique que l'on peut écrire la donnée , disponible sur le bus correspondant , dans la case mémoire adressée par les lignes d'adresses A0 à A19 .

Revenons a notre bon schéma ..! et continuons notre tourné pour y découvrir un fleurissant et sympathique " PIA " , le 8255 d' INTEL est  renommé dans tout le monde comme le loup blanc .
Ce mille pattes des familles nous propose une batterie d'accessoires , comme par exemple trois ports de dialogue extérieurs , un bus de donnée et la circuiterie traditionnelle.
Figure 4B

Pour ceux qui s'intéressent à la figure 5 , nous trouvons le brochage du 8255.



Figure 5
Il n'y a plus de dessin à vous faire , vous avez reconnu le savant  circuit de décodage d'adresse si célèbre de la famille des TTL .
Sur un bref coup d'oeil  , ce n'est pas la peine de s'abîmer la vue ,  car ce circuit ce passe de commentaires .
Du reste , quelques portes logiques semées sur le flanc de la feuille nous donnerons largement satisfaction .
Comme il faut conserver les bonnes traditions du grand père , on fait  appel à la " cavalerie " de condensateurs de découplage .
Pour s'attarder un peu , vous disposer de la représentation connectique de la canon DB25 en figure 6 .
Figure 6

Numéro de Broches Repère de la Prise
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
PB7
PB5
PB3
PA6
PA4
PA2
PA0
PB1
PC3
PC1
PC4
PC6
MASSE
PB6
PB4
PA7
PA5
PA3
PA1
PB2
PB0
PC2
PC0
PC5
PC7
constructionLa platine

Elle se compose en quatre sections :

     -le circuit de tampons de lignes d'adresses et de données ;

     -le circuit de décodage et sa périphérie
     -l'interface que j'ai nommé le "PIA"
     -la connectique des familles


Le circuit de tampons de lignes d'adresses et de données se trouvent à proximité immédiate du connecteur type IBM que comporte la carte .
On notera que les liaisons entre certaines pistes du connecteur et les sorties de lignes d'adresses A1 à A16 sont dotées d'une possibilité d'interruption .
Il n'arrive que très exceptionnellement que l'on ait besoin de toutes ces lignes d'adresses .
L'interruption des lignes inutilisées permet de réutiliser les tampons ainsi libérés pour une autre fonction.

Figure 8A
Pour le circuit de décodage , on a fait appel  à une solution classique , le 74LS688 associé et un octuple interrupteur switch DIL grâce auquel on définit l'adresse requise .
Pour plus de complément sur l'espace adressable d'un IBM-PC ou Compatibles, une cartographie des adresses se trouve figure 7 .

Sur le sujet du " PIA " ou 8255 , c'est circuit programmable d'entrées ou de sorties d'emploi général , spécialement développé pour être utilisé avec les microprocesseurs de la famille 80XX ; il est doté de 24 broches d'entrées ou de sorties qui peuvent être programmées individuellement en deux groupes de 12 et utilisées dans trois modes différents .

Ne reste plus que la connectique , équiper d'une canon ou modèle Sub-D à 25 broches .

Pour en finir sur le sujet , il vous reste à la figure 8A et figure 8B , les deux circuits imprimés, face cuivre côté cuivre et face cuivre côté composants .

Figure 8B

Click sur l'icône pour télécharger le fichier qui te convient.
        - Le circuit imprimé au format 
PCB 386.V1.



Figure 7
A la figure 9 , il vous est donner la nomenclature du matériel de cette éminente carte .
Rien de précis à ajouter pour cette nomenclature , tout les composants sont classiques .
Je pense que vous avez remarqué que la carte est doté de circuits intégrés , de la famille TTL sortant de la série LS .
Cette série est très bien adapté pour les PC du type XT , car leur vitesse est relativement lente .
Pour faire fonctionner correctement cette carte sur un PC du type AT , il est vivement conseiller d'utiliser pour la famille TTL ,une série HCT

 
Titre Nomenclature 1

resistance bloc Condo Film Circuit Intégré Connecteur Inter quartz
R01     220
R02     10M
C1     100nF   
C2     100nF   
C3     100nF   
C4     100nF   
C5      82pF
C6      330pF
U1     74LS245 
U2      8255    
U3      8253    
U4      74LS688 
U5      74LS541 
U6      74LS32  
U7      74LS00
JP2     DB 25
JP3     DB 15
SW1    SW DIP-3
SW2    SW DIP-3
SW3    SW DIP-3
SW4    SW DIP-3
SW5    SW DIP-3
SW6    SW DIP-3
SW7    SW DIP-3
SW8    SW DIP-3
X1    1MhZ
    

Figure 9

Après plusieurs essais sur diverses machines , on a constaté que certain PC surtout du type XT , que le bios ou hard du processeur refouler systématiquement le driver ou buffer bidirectionnel du bus de données .
Dans ce cas , il est fort conseiller de le supprimer .
Pour ceux que cela intéressent , le circuit intégré porte le nom de 74LS245 pour un XT et 74HCT245 pour un AT.
Ne vous alarmer pas , sans ce circuit intégré , la carte fonctionnera aussi bien , car le 8255 est déjà équipé d'un driver dans son bus de données .

Avant tout chose , surtout avant la mise en place et en fonctionnement  de la carte dans votre ordinateur ,il est conseiller de régler le décodage d'adresses .
Pour cela ; en vous  rappelant que l'adressage des cartes prototypes sur un PC est de 300 à 31F en héxadécimale donc en binaire 1100000000.

Pour les personnes concernées ,il faut savoir qu'un chiffre hexadécimale se code sous les formes suivantes .

0=0000
1=0001
2=0010
3=0011
4=0100
5=0101
6=0110
7=0111
8=1000
9=1001
A=1010
B=1011
C=1100
D=1101
E=1110
F=1111

Pour clore le débat sur la manière ou la méthode de conversion , on dispose de limites ( minimale et maximale ) qui évolue entre "0" en hexadécimale jusqu'à la valeur "FFF". Par contre en décimale ses valeurs deviennent "0" à "4095".

Il vous est peut venu à l'idée de savoir pourquoi il y a t'il un décodage d'adresse. C'est une bonne question ?... Il faut savoir qu'un ordinateur est basé sur un séquentiel qui est cadencée par une horloge appelée Oscillateur. La plus part du temps, cette horloge est fait à partir d'un Quartz. Le Quartz un élément oscillateur donc sa fréquence est relativement stable et précise. Ce séquentiel qui est une suite d'opérations correspondant à l'exécution d'une suite d'instructions. Ces instructions viennent la plus part du temps d'un programme source, soit écrit par l'utilisateur ou tout simplement par le constructeur. Dans ce séquentiel logique viennent s'ajouter séquentiellement et ordonnée toutes les périphéries du processeur. Le processeur est le coeur du système, par contre le décodeur d'adresses est  lui le chef d'orchestre. Pour conclure cette aparté, il faut savoir que pour faire fonctionner la carte, vous aurez systématiquement besoin d'un programme.


CommentaireLe 8255 est un circuit d'interfaçage de périphérie programmable. Son rôle est d'opérer des transferts entre le bus système du processeur et un ou plusieurs périphéries. Le fonctionnement du 8255 étant régi par la programmation qui en est faite, il ne nécessite pas de circuit particulier pour la mise ne oeuvre.


La configuration de fonctionnement  de chaque port est déterminée par le programme qui régit le système. La CPU envoie un mot de commande au 8255. Ce mot contient des informations telles que le mode les « bit set » ou « bit reset » , etc ... qui initialisent la configuration de fonctionnement du 8255.

Chaque bloc de contrôle ( groupe A ou B ) accepte des commandes de la logique de lecture/écriture, reçoit des mots de commande par le bus interne et génère ses propres commandes pour les ports qui lui sont associés.                                                                            
                                                                                                                    
Contrôle du groupe A : port  A et le haut du port C ( C7 - C4 )        
                                                                                                             
Contrôle du groupe B : port B et le bas du port C ( C3 - C0 )           
                                                                                                         
Il n'est possible que d'écrire dans le registre de contrôle, aucune opération de lecture de ce registre n'est autorisée .  


Port A , B et C 
                       

Le 8255 contient trois ports de 8 bits chacun ( A , B et C ). Ils peuvent tous être configurés de différentes façons, mais chacun d'eux a une « personnalité » c'est - à - dire un mode de fonctionnement qui convient mieux à sa conception, ce qui permet de simplifier considérablement leur mise en oeuvre.

Port A                 
Une sortie de 8 bits amplifiée et verrouillée ( latched  ) et une entrée de 8bits verrouillée.                 

Port B                                            
Une sortie de 8 bits amplifiée et verrouillée ( latched  ) et une entrée de 8 bits verrouillée.

Port C
Une sortie de 8 bits amplifiée verrouillée et une entrée de 8 bits amplifiée ( pas de verrouillage en entrée ). Ce port peut être divisé en deux ports de 4 bits en mode de contrôle. Chaque port de 4 bits comporte un verrou de 4 bits et peut être utilisé pour des sorties de signaux de contrôle et des entrées de signaux de status en liaisons avec les ports A et B.

Il y a trois modes de fonctionnement accessibles par le programme :
Mode 0 : Entrée / sortie simple .
Mode 1 : Entrée / sortie synchronisées .
Mode 2 : Bus bidirectionnel .



Figure 12

Après la fin du reset, le 8255 peut rester dans ce mode sans autre opération d'initialisation. Pendant l'exécution du programme n'importe quel autre mode peut être sélectionné par l'envoie d'une simple instruction. Cette faculté permet au 8255 d'être employé dans de multiples applications en modifiant uniquement sa programmation.

A la figure 12, vous trouverez une définition élémentaire des modes de fonctionnement du 8255 .









Figure 13
Les modes de fonctionnement des ports A et B peuvent être définis séparément et les deux moitiés du port C configurées suivant les besoins respectifs des port A et B. Tous les registres de sorties y compris les bascules de status sont réinitialisés lors d'un changement de mode.
Les différents modes peuvent être combinés pour optimiser l'utilisation du 8255. Par exemple, le groupe B peut être programmé en mode 0 pour piloter des fermetures de contacts ( relais ) ou de l'affichage de données ( afficheurs ); pendant que le groupe A est programmé en mode 1 pour fonctionner avec un clavier.



A la figure 13 ce trouve un tableau des opérations élémentaires de fonctionnement du 8255 .

Vous doutez bien que le registre de contrôle défini le mode de fonctionnement des trois ports. Comme suite à la figure 14, vous disposez du format du mot de contrôle .

Les définitions de mode et les différentes combinaisons possibles peuvent sembler complexes au premier abord , mais après avoir revu le fonctionnement du circuit, la meilleure approche pour l'application d'entrées / sorties étudiée est assez évidente. La conception du 8255 a tenu compte de son implantation sur un circuit imprimé ce qui permet d'optimiser facilement ce dernier .

Possibilité de bit de set et reset

Chacun des 8 bits du port C peut être positionné ( set  ) ou remis à zéro ( reset  ) en utilisant uniquement une instruction de sortie. Cette possibilité simplifie les contraintes sur le programme dans les opérations de contrôle.
Quand le port C est utilisé en contrôle et status des ports A ou B, ces bits peuvent être positionnés ou remis à zéro en utilisant simplement les opérations sur le bit de set / reset comme s'il s'agissait de données envoyées sur un port.

Figure 14
Fonctions de contrôle des interruptions

Quand le 8255 est programmé en mode 1 ou 2, des signaux de contrôles sont fournis. Il est possible de les utiliser comme des demandes d'interruptions générés par le port C. Ils peuvent être validés ou invalidés en positionnant ou en remettant à zéro la bascule INTE qui leur est associée, par l'intermédiaire du bit de set / reset relatif au port C.
Cette fonctionnalité permet au programmeur d'autoriser ou d'interdire à une périphérie d'entrée / sortie donné de créer une interruption CPU sans que cela n'affecte aucune autre périphérie.

Définition de la bascule INTE
( bit-set )  INTE est positionné à un  l'interruption est autorisée.
( bit-reset ) INTE est remis à zéro, l'interruption est interdite.


Figure 15


Mode 0
Ce mode de base permet de faire des entrées / sorties simples ( sans handshaking ). Deux ports de 8 bits et 2 ports de 4 bits peuvent être programmés individuellement en entrée ou sortie ( 16 configurations possibles ). Les sorties sont latchées et les entrées ne le sont pas.

Mode 1 ( port en entrée )
Dans ce mode, les échanges de données entre le 8255 et la périphérie nécessitent des signaux de dialogue. Trois lignes du port C sont utilisées comme lignes de dialogue pour chaque port.

Rôle des lignes  :    
A0 - PA7 : échange des données ( en entrée )
    lignes de dialogue
    PC4          : STBA ( entrée ) et validation de INTRA
    PC5          : IBFA ( sortie )
    PC3          : INTRA ( sortie )
   
PB0 - PB7 : échange des données ( en entrée )
    lignes de dialogue   
    PC2          : STBB ( entrée ) et validation de INTRB
    PC1          : IBFB ( sortie )
    PC0          : INTRB ( sortie )
   
PC6 PC7   : échange de données ( E / S )

Mode 1 ( port en sortie )
Dans ce mode, les échanges de données entre le 8255 et la périphérie nécessitent des signaux de dialogue. Trois lignes du port C sont utilisées comme lignes de dialogue pour chaque port.

Rôle des lignes  :    
PA0 - PA7 : échange des données ( en sortie)
    lignes de dialogue
    PC7          : OBFA ( sortie )
    PC6          : ACKA ( entrée ) et validation INTRA
    PC3          : INTRA ( sortie )
   
PB0 - PB7 : échange des données ( en sortie )
    lignes de dialogue
    PC1          : OBFB ( sorties )
    PC2          : ACKB ( entrée ) et validation de INTRB
    PC0          : INTRB ( sortie )
   
PC4 PC5  : échange de données ( E / S )

mode 2
Dans ce mode, les échanges de données entre le 8255 et la périphérique pourront être bidirectionnels et le sens des échanges sera indiqué par les signaux de dialogue. Ce mode ne permet d'utiliser que le port A qui nécessite 5 lignes de dialogue. En conséquence les bits 5 , 4 , 3 du mot de commande ne servent à rien. Certains bits du port C pourront être positionnés par le mot de bit SET / RESET. La lecture du port C permettra de connaître l'état des lignes de handshaking. Simultanément le port B peut fonctionner en mode 1 ou 0.

Rôle des lignes  :    
PA0 - PA7 : échange des données
    lignes de dialogue
    PC7          : OBFA ( sortie )
    PC6          : ACKA ( entrée ) et INTE1
    PC5          : ABFA ( sortie )
    PC4          : STBA ( entrée ) et INTE2
    PC3          : INTRa ( sortie )

PC0 PC2  : échange de données ( E / S )

Nous avons maintenant pratiquement épuiser le sujet sur cette carte et de son adaptateur de périphérie. Il ne vous reste plus que de le programmer et de montrer vos talents de programmeur .
Pour les débutants dans le domaine de la programmation, vous trouverez à la figure 16 un programme écrit en Quick Basic. Ce petit programme à pour but de ce familiarisé avec la programmation de registres. Le fonctionnement est du type " clignoteur ", les sorties  passent de l'état  " un " à l'état " zéro " pendant un certain temps .


Figure 16
CLS
WIDTH 80

    “Déclaration du décodage d”adresses
    port = &H300
  
    “Transfert de la valeur vers le registre de contrôle
    OUT port + 3, &H80
  
    “Boucle pour faire clignoter les sorties
    DO UNTIL INKEY$ = CHR$(27)
        x = 10
        pas = pas + 1
  

        IF pas > x AND pas < (x * 2) THEN

            “Mise a l”etat 1 de toutes les sorties
            OUT port + 0, &HFF
            OUT port + 1, &HFF
            OUT port + 2, &HFF
          
            “Message a l”ecran
            LOCATE 1, 1: COLOR 14, 0: PRINT «Diodes Allumées»
        END IF

        IF pas > (x * 3) AND pas < (x * 4) THEN

            “Mise a l”etat 0 de toutes les sorties
            OUT port + 0, &H0
            OUT port + 1, &H0
            OUT port + 2, &H0
          
            “Message a l”ecran
            LOCATE 1, 1: COLOR 14, 0: PRINT «Diodes Eteintes»
        END IF

        IF pas > (x * 4) THEN pas = 0
    LOOP
    END

    “Fin de Programme

Titre Montage Photo
photo


Menu Remarque
ConclusionPour le typon il suffit de sauvegarder l'image du circuit et de la remettre à la bonne dimension. Le circuit à comme dimension 133mm x 100mm.

Ligne
Valid HTML 4.01 Transitional ALL RIGHTS RESERVED
Copyright © 2005
HUMBERT Stéphane
Construction http://www.apache.org/ Dernière mise à jour :
Email