title: Circuit PIO
text: # Circuit PIO
  
  Les circuits PIO ("Programmed Input/Output") sont des circuits d'interface Entrées/Sorties parallèles qui permettent de raccorder un périphérique particulier au bus informatique d'un ordinateur ou d'un système embarqué.
  
  Comme un microprocesseur est censé gérer plusieurs périphériques à la fois, il reçoit une multitude de signaux d'interruption, mais ne peut jamais en traiter qu’un seul à la fois. Il faut donc convenir d'une discipline de priorité. Pour cela, le périphérique envoyant un signal d’interruption doit donc envoyer au microprocesseur l'instant où il « prendra la main », et signaler qu'il en a terminé. Par la gestion d'une file de priorité (Daisy-Chain) sur les connexions (Interrupt Enable Input/Interrupt Enable Output), il devient possible de subordonner plusieurs entrées-sorties parallèles les unes aux autres.
  
  * IEI (= Interrupt-Enable In): le PIO obtient l'autorisation d'émettre un vecteur d'interruption /INT au CPU, à condition qu'aucune requête de priorité supérieure soit émise.
  * IEO (= Interrupt-Enable Out): l'interruption est en cours de traitement, les PIO de priorité moindre doivent attendre.
  
  ## Exemples de circuits PIO
  
  * le Z8420/Z84C20 de Zilog pour le Z80 ; il existait avec ce circuit quatre modes de commande:
     * Mode 0: sortie par octet
     * Mode 1: entrée par octet
     * Mode 2: mode bidirectionnel en entrée/sortie
     * Mode 3: commande bit à bit (pour l'émission de bits d'interruption en parallèle)
  * le 8255A fabriqué par Intel.
  