L’interface périphérique programmable (PPI) Intel 8255 était un composant clé pour relier les microprocesseurs aux périphériques externes aux premiers jours des systèmes numériques. Avec des ports d’E/S polyvalents, plusieurs modes de fonctionnement et une facilité de programmation, le 8255 a permis une communication fiable avec les écrans, les capteurs et les contrôleurs, ce qui le rend utile à la fois dans l’éducation et dans l’industrie.

Présentation de l’interface périphérique programmable (PPI) 8255
La puce Intel 8255 PPI est une puce d’E/S largement utilisée conçue pour connecter des microprocesseurs à des périphériques externes. Il agit comme un pont de communication pour les périphériques tels que les ADC, les DAC, les claviers et les écrans. Prenant en charge les E/S directes et les interruptions, il offre une flexibilité dans la conception du système. Avec trois ports bidirectionnels 8 bits (A, B, C), il fournit 24 lignes d’E/S configurables. Sa rentabilité et sa compatibilité avec des processeurs tels que l’Intel 8085/8086 en ont fait un incontournable des premiers systèmes informatiques, des kits de formation et des contrôleurs industriels.
Caractéristiques de la puce 8255 PPI
• Interface programmable – Configurable via des instructions logicielles pour s’adapter à des appareils tels que des écrans, des capteurs et des modules d’entrée.
• Trois ports 8 bits : les ports A, B et C fournissent 24 lignes qui peuvent fonctionner comme entrée ou sortie.
• Plusieurs modes de fonctionnement –
Mode 0 : Entrée/sortie simple sans poignée de main.
Mode 1 : E/S stroboscopiques avec signaux de poignée de main pour une communication synchronisée.
Mode 2 : Transfert de données bidirectionnel avec établissement de liaison (uniquement sur le port A).
• Bit Set/Reset (BSR) – Les bits du port C peuvent être réglés ou effacés individuellement pour les applications de contrôle/état.
• Regroupement flexible : les ports peuvent être divisés en groupes de 8 bits ou de 4 bits.
• Compatibilité TTL – Intégration facile avec les circuits intégrés numériques standard.
• Registres de contrôle indépendants – Chaque port peut fonctionner séparément, dans différents modes ou directions.
Brochage de la puce 8255 PPI

| N° d’épingle | Groupe | Signal | Descriptif |
|---|---|---|---|
| 1 à 8 | Port A | PA0 à PA7 | Port d’E/S 8 bits à usage général |
| 9 à 16 | Port C | PC0 à PC7 | Divisé en PC0–PC3 (en bas) et PC4–PC7 (en haut) ; utilisé comme lignes d’E/S ou d’établissement de liaison |
| 17 à 24 | Orifice B | PB0 à PB7 | Port d’E/S 8 bits à usage général |
| 25 | Contrôle | CS' | Sélection de puce (active faible) |
| 26 | Puissance | Vcc | Alimentation +5 V |
| 27 | Contrôle | RD' | Activation de la lecture |
| 28 | Contrôle | WR' | Activation de l’écriture |
| 29 | Contrôle | RÉINITIALISER | Réinitialise tous les ports à l’état d’entrée |
| 30 à 37 | Bus de données | D0 à D7 | Transfert de données/commandes entre le processeur et le 8255 |
| 38 à 39 | Épingles d’adresse | A0, A1 | Sélectionnez les registres/ports internes : 00=Port A, 01=Port B, 10=Port C, 11=Contrôle |
| 40 | Sol | GND | Référence au sol |
Architecture de la puce 8255 PPI

| Bloc fonctionnel | Descriptif |
|---|---|
| Tampon de bus de données | Agit comme une interface entre le bus de données bidirectionnel du processeur (D7–D0) et le bus de données 8 bits interne du 8255. Il stocke et transfère temporairement des données entre le processeur et les registres ou ports internes. |
| Logique de contrôle en lecture/écriture | Gère toutes les communications entre le processeur et le 8255. Il interprète les signaux de commande tels que RD, WR, A0, A1, CS et RESET pour déterminer le type d’opération (lecture, écriture ou contrôle) et sélectionne le port ou le registre de contrôle correct. |
| Logique de contrôle (décodeur) | Décode le mot de contrôle envoyé par le processeur pour configurer les ports dans différents modes (Mode 0, 1 ou 2) ou en mode Bit Set/Reset (BSR). Il détermine le fonctionnement de chaque port, en entrée, en sortie ou en liaison. |
| Groupe de contrôle A | Contrôle le port A (8 bits : PA7–PA0) et le port supérieur C (4 bits : PC7–PC4). Il prend en charge les modes 0, 1 et 2, permettant des E/S simples, des E/S de poignée de main et un transfert de données bidirectionnel |
| Groupe B Contrôle | Contrôle le port B (8 bits : PB7–PB0) et le port inférieur C (4 bits : PC3–PC0). Il prend en charge les modes 0 et 1, permettant des opérations d’entrée/sortie de base ou des opérations contrôlées par poignée de main. |
| Port A | Un port d’E/S 8 bits qui peut fonctionner comme entrée ou sortie selon la configuration du mode. Prend en charge les modes 0 à 2 sous le contrôle du groupe A. |
| Orifice B | Un autre port d’E/S 8 bits pour le transfert de données. Fonctionne sous le contrôle du groupe B et prend en charge les modes 0 et 1. |
| Port C | Un port 8 bits divisé en deux groupes de 4 bits : Supérieur (PC7–PC4) et Inférieur (PC3–PC0). Ceux-ci peuvent agir comme des ports d’E/S indépendants, des lignes de contrôle ou des signaux d’établissement de la main. Il est également possible de contrôler des embouts individuels à l’aide du mode BSR (Bit Set/Reset (BSR). |
| Bus de données interne (8 bits) | Connecte tous les blocs internes du 8255, transférant les données et les informations de contrôle entre le processeur, la logique de contrôle et les ports. |
| Alimentation électrique | La puce fonctionne avec une alimentation +5V DC et une connexion GND pour alimenter l’ensemble du circuit. |
Modes de fonctionnement et principe de fonctionnement de la puce 8255 PPI
L’Intel 8255 sert d’interface programmable entre le processeur et les périphériques, traduisant les opérations de bus en transferts de données parallèles. Son fonctionnement est régi par des étapes d’initialisation et des modes sélectionnables :
État de réinitialisation
Lors de la mise sous tension ou de la réinitialisation, tous les ports (A, B et C) passent par défaut en mode d’entrée pour éviter d’endommager les périphériques avec des sorties involontaires.
Initialisation
Le processeur doit envoyer un mot de contrôle qui configure chaque port en entrée/sortie et sélectionne l’un des quatre modes de fonctionnement. Tant que cela n’est pas fait, les ports restent inactifs.
Modes de fonctionnement
Mode de réglage/réinitialisation de 5,3 bits (BSR)
• S’applique uniquement au port C.
• Permet de régler ou d’effacer des bits individuels pour les tâches de contrôle/état.
Mode 0 – E/S simples
• Entrée/sortie de base sans établissement de contact.
• Utilisé pour des transferts simples tels que des LED, des commutateurs et des écrans.
Mode 1 – E/S strobodées
• Ajoute des signaux de poignée de main (STB, ACK, IBF, OBF) via le port C.
• Assure le transfert synchronisé des données périphériques du processeur ↔.
Mode 2 – E/S bidirectionnelles
• Disponible uniquement sur le port A.
• Prend en charge le transfert bidirectionnel avec contrôle de la poignée de main, utile pour les appareils à grande vitesse ou asynchrones.
Opérations de lecture/écriture
• Écriture : le processeur place les données sur le bus système et le 8255 décode les lignes d’adresse (A0, A1) pour les diriger vers le loquet de sortie du port correct.
• Lecture : les périphériques externes placent les données sur les lignes de port, que le 8255 verrouille et met à la disposition du processeur lors d’une commande de lecture.
Synchronisation
• En mode 0, les transferts de données se font directement sans poignée de main.
• Dans les modes 1 et 2, les signaux d’établissement de liaison du port C coordonnent la préparation et l’acceptation, évitant ainsi la perte de données lors de transferts à haut débit ou asynchrones.
Considérations d’interfaçage de la puce 8255 PPI
Lors de la conception de systèmes avec le 8255, un interfaçage minutieux garantit la fiabilité et évite d’endommager la puce et les périphériques externes :
• État d’entrée par défaut – Lors de la réinitialisation, tous les ports sont des entrées par défaut. Cela permet d’éviter les conflits, mais aussi de laisser les sorties inactives jusqu’à ce qu’elles soient configurées. Le processeur doit toujours envoyer un mot de contrôle pour définir correctement la direction et le mode avant de tenter une communication.
• Limites du lecteur de sortie – Les ports du 8255 ne peuvent émettre ou absorber qu’un courant limité (quelques milliampères). Il n’est pas sûr de piloter directement de lourdes charges telles que des lampes, des solénoïdes ou des relais. Au lieu de cela, des circuits intégrés de tampon ou de pilote tels que le ULN2803 (matrice Darlington) ou des portes à collecteur ouvert comme 7406 sont couramment utilisés. Ceux-ci offrent une capacité de courant plus élevée et protègent le PPI.
• Contrôle du moteur – Pour les moteurs à courant continu ou les moteurs pas à pas, les ports 8255 ne doivent pas se connecter directement. Au lieu de cela, les sorties doivent être acheminées via des étages de transistors ou des circuits de commande en H-bridge. Cette disposition permet un flux de courant bidirectionnel tout en isolant le PPI des pics de tension inductifs.
• Commutation de charge CA – L’interfaçage avec les appareils CA nécessite une isolation pour des raisons de sécurité. Des relais mécaniques ou des relais statiques (SSR) pilotés par des étages tampons garantissent que le 8255 ne gère que les signaux de commande, tandis que la charge haute tension réelle est commutée en toute sécurité à l’extérieur.
• Restrictions du port C – Les bits du port C ne sont pas toujours librement utilisables en tant qu’E/S générales. Dans les modes 1 et 2, plusieurs broches (par exemple, STB, ACK, IBF, OBF) sont automatiquement réservées pour le contrôle de l’établissement d’une liaison. Vous devez tenir compte de ces lignes réservées pour éviter les conflits lors du mélange d’E/S générales et d’établissement de liaison
Avantages de la puce 8255 PPI
• Compatibilité avec le processeur – Le 8255 fonctionne de manière transparente avec des processeurs tels que les Intel 8085, 8086 et leurs compatibles. Sa conception correspond aux protocoles de bus standard, ce qui rend l’intégration simple sans logique de colle supplémentaire.
• Configuration flexible des ports – Avec trois ports 8 bits (A, B, C), les utilisateurs peuvent les configurer en tant qu’entrée, sortie ou mixage en fonction de l’application. La possibilité de basculer entre une communication simple d’E/S (mode 0) et une communication pilotée par une poignée de main (modes 1 et 2) permet à la même puce de gérer une grande variété de tâches.
• Fonctionnement à alimentation unique – Fonctionnant à partir d’une alimentation standard de +5 V, le 8255 est facile à alimenter dans les systèmes basés sur TTL. Aucun régulateur spécial ou plusieurs niveaux de tension ne sont nécessaires, ce qui simplifie la conception de la carte.
• Transfert de données parallèle fiable – La puce fournit une communication parallèle 8 bits stable et prévisible, réduisant ainsi les incertitudes temporelles. Cette fiabilité le rend adapté à la conduite d’écrans, à la lecture de capteurs et à la gestion des signaux de commande dans des systèmes réels.
• Valeur éducative – Parce qu’il est bien documenté et largement disponible, le 8255 est un outil d’enseignement clé dans les laboratoires de microprocesseurs et les kits de formation. Vous pouvez rapidement comprendre les concepts d’interface d’E/S grâce à des expériences pratiques avec cet appareil.
Applications de la puce 8255 PPI
• Systèmes éducatifs – Les kits de formation et les cartes de laboratoire incluent souvent le 8255 pour démontrer les concepts d’interfaçage périphérique. Vous pouvez vous entraîner à programmer différents modes et observer l’interaction réelle avec des appareils externes.
• Contrôle de l’affichage – La puce pilote des dispositifs de sortie visuelle tels que des LED à sept segments, des modules LCD et des panneaux alphanumériques. Avec ses multiples lignes d’E/S, il peut actualiser les affichages ou envoyer des commandes de contrôle aux circuits intégrés de pilotage.
• Interface clavier – Les claviers matriciels des premiers terminaux et ordinateurs personnels étaient souvent scannés à l’aide du 8255. En configurant certaines lignes comme pilotes de ligne et d’autres comme capteurs de colonne, il détectait efficacement les pressions sur les touches.
• Contrôle du moteur – Les moteurs pas à pas et les moteurs à courant continu peuvent être contrôlés lorsque le 8255 est associé à des étages de transistors, des réseaux Darlington ou des ponts en H. Cela l’a rendu utile dans la robotique, les systèmes de positionnement et les projets d’automatisation.
• Acquisition de données – Lorsqu’il est connecté à des convertisseurs analogiques-numériques (ADC) et des convertisseurs numériques-analogiques (DAC), le 8255 fournit une interface complète pour les tâches de mesure et de contrôle. Cela a permis aux microprocesseurs de traiter les signaux dans les équipements scientifiques et industriels.
• Automatisation industrielle – Le 8255 a été utilisé dans le contrôle des feux de circulation, de la logique d’ascenseur et des panneaux de surveillance de processus. Sa capacité à gérer de manière fiable plusieurs entrées et sorties en a fait une solution à faible coût pour les systèmes de contrôle embarqués.
• Rétro-informatique – Les machines classiques comme les ordinateurs IBM PC/XT et MSX utilisaient le 8255 pour l’interfaçage des périphériques. Il a également été utilisé dans les imprimantes et les cartes d’extension, cimentant sa place dans l’histoire de l’ordinateur personnel.
Comparaison de la puce 8255 PPI avec d’autres PPI
8255 contre 8155

L’Intel 8155 combine plusieurs fonctions dans un seul boîtier : il offre un petit bloc de RAM statique, une minuterie programmable et des ports d’E/S à usage général. Il convient donc aux systèmes compacts où la mémoire et le contrôle de la synchronisation sont nécessaires. En revanche, le 8255 se concentre entièrement sur les E/S programmables, sans mémoire ni synchronisation intégrées. Sa conception plus simple la rendait moins chère et plus facile à programmer lorsque l’application ne nécessitait pas de RAM intégrée ou de minuteries.
9,2 8255 contre 8259

Le contrôleur d’interruptions programmables 8259 a un objectif très différent : gérer les interruptions matérielles pour aider le processeur à réagir rapidement aux événements externes. Alors que le 8255 gère le transfert de données d’E/S parallèles, les coordonnées 8259 interrompent les signaux. Dans de nombreux systèmes basés sur des microprocesseurs, les deux puces étaient utilisées ensemble, la 8255 pour l’interfaçage avec des périphériques tels que les claviers et les écrans, et la 8259 pour la gestion des demandes d’interruption générées par ces périphériques.
8255 par rapport aux expandeurs GPIO modernes

Les systèmes d’aujourd’hui utilisent souvent des expandeurs GPIO basés sur I²C ou SPI (tels que MCP23017 ou PCF8574). Ces périphériques fournissent des broches d’E/S supplémentaires avec moins de connexions, ce qui permet d’économiser de l’espace sur la carte et de réduire le nombre de broches sur le processeur. Cependant, ils fonctionnent en série, ce qui peut être plus lent par rapport à l’accès parallèle direct du 8255. Bien que le 8255 nécessite plus de lignes de bus, sa structure parallèle permet des transferts plus rapides et le rend très précieux dans les environnements éducatifs, où le contrôle direct des broches individuelles et la compréhension de la synchronisation du bus sont importants pour l’apprentissage.
Dépannage et problèmes courants
Travailler avec le 8255 peut parfois entraîner des défaillances du système si les règles de conception ne sont pas scrupuleusement suivies. Les problèmes courants et les recours comprennent :
• Ports non initialisés – Après la réinitialisation, tous les ports passent par défaut en mode d’entrée. Si le processeur n’envoie pas un mot de contrôle approprié, les sorties restent inactives ou se comportent de manière imprévisible. Programmez toujours le registre de contrôle avant d’essayer de lire ou d’écrire des données.
• Mots de contrôle incorrects – Des mots de contrôle mal configurés peuvent attribuer des directions ou des modes incorrects aux ports, verrouillant ainsi les signaux attendus. Vérifiez les valeurs des mots de contrôle avec les tables de la feuille de données pour vous assurer que les paramètres de bits sont corrects.
• Échecs de l’établissement de la liaison – Dans les modes 1 et 2, le port C fournit les signaux de poignée de main nécessaires (STB, ACK, IBF, OBF). Les connexions manquantes, mal câblées ou mal interprétées entraînent des transferts bloqués ou perdus. Vérifiez soigneusement le câblage et les attentes en matière de niveau logique des appareils connectés.
• Surcharge des sorties – Chaque broche de port ne peut gérer que de petits courants. Il est possible de piloter directement des LED avec des résistances, mais les moteurs, les relais et les lampes nécessitent des étages tampons externes tels que des réseaux de transistors ou des circuits intégrés de commande. Ignorer cette limite risque d’endommager définitivement la puce.
• Conflits de bus – Si plusieurs appareils tentent de piloter le bus système en même temps, des données peuvent être corrompues ou endommagées au matériel. Un arbitrage de bus approprié et l’utilisation de signaux d’activation (RD', WR', CS') évitent ce problème.
• Outils de débogage – Lorsque les problèmes persistent, l’équipement de test permet d’isoler les défauts. Les analyseurs logiques peuvent confirmer les signaux de synchronisation et de contrôle, tandis que les oscilloscopes peuvent vérifier si le problème provient d’un câblage matériel bruyant ou d’une initialisation logicielle incorrecte.
En conclusion
L’Intel 8255 PPI reste une pierre angulaire de l’interfaçage des microprocesseurs. Bien qu’il ait été largement remplacé par des expandeurs GPIO modernes et des E/S de microcontrôleur intégrées, il continue de servir d’outil d’enseignement actif. Sa clarté dans la démonstration du transfert de données parallèle, de la configuration des ports et de l’établissement de liaison le rend inestimable pour tout le monde.
Foire aux questions [FAQ]
Qu’est-ce que le mot de contrôle dans 8255 et pourquoi est-il important ?
Le mot de contrôle est une instruction de 8 bits envoyée par le processeur pour configurer les ports et les modes du 8255. Sans lui, tous les ports restent dans leur état d’entrée par défaut. Il définit si chaque port agit comme une entrée ou une sortie et sélectionne entre les modes 0, 1, 2 ou Bit Set/Reset.
Le 8255 peut-il piloter directement des moteurs ou des relais ?
Non. Les sorties du 8255 ne peuvent sourcer ou absorber que quelques milliampères, ce qui est insuffisant pour les moteurs ou les relais. Des circuits de commande externes, tels que des réseaux de transistors ou des ponts en H, doivent être utilisés pour gérer en toute sécurité des courants plus élevés.
Pourquoi le 8255 est-il encore utilisé dans l’éducation aujourd’hui ?
Le 8255 offre un moyen clair et pratique d’en savoir plus sur les E/S du microprocesseur, les mots de contrôle et le transfert de données en parallèle. Son architecture simple aide les étudiants à comprendre les concepts de base avant de passer aux microcontrôleurs modernes.
Que se passe-t-il si vous utilisez le port C en mode d’établissement de liaison ?
Dans les modes 1 et 2, certaines lignes du port C sont réservées aux signaux de poignée de main (comme STB, ACK, IBF, OBF). Ces broches ne peuvent pas être utilisées comme E/S à usage général pendant ces modes, ce dont vous devez tenir compte pour éviter les conflits.
En quoi le 8255 diffère-t-il des expandeurs GPIO modernes ?
Contrairement aux expandeurs I²C/SPI qui utilisent la communication série, le 8255 fonctionne avec un bus parallèle, ce qui permet des transferts plus rapides mais nécessite plus de broches. Cela rend le 8255 moins encombrant, mais précieux pour le contrôle réel et l’apprentissage de la synchronisation du bus.