 les entrées sorties sur le port parallele les entrees sorties sur le port parallele le port ieee 1284 dit aussi parallèle ou imprimante ou centronic est présent sur la plupart des microordinateurs de type compatible ibmpc il peut facilement être détourné de son rôle d impression et être utilisé comme port d entrées sorties universel le connecteur est un db25 femelle au niveau du bios ce port peut être configurer dans 3 modes spp standard parrallel port epp enhanced parrallel port ecp extended capabilities port seul sera traité ici le mode spp généralement sur les bios modernes les deux autres modes basculent automatiquement en spp quand ils reçoivent une commande destinée à un port spp donc tout va bien pour nous l aspect matériel dans le plan d adressage du pc l ensemble des signaux présents sur le connecteur occupe 3 adresses généralement c est les adresses pour lpt0 0x378 port appelé data utilisable en sortie sur 8 lignes 0x379 port appelé etat utilisable en entrée sur 5 lignes 0x37a port appelé cont utilisable en sortie sur 4 lignes des informations sur ce port et tous les ports en général peuvent être obtenues en visitant proc interrupts et proc ioports voilà la liste des 25 lignes présentes sur le connecteur db25 1 sortie cont 0 logique négative 2 sortie data 0 logique positive 3 sortie data 1 logique positive 4 sortie data 2 logique positive 5 sortie data 3 logique positive 6 sortie data 4 logique positive 7 sortie data 5 logique positive 8 sortie data 6 logique positive 9 sortie data 7 logique positive 10 entrée etat 6 logique positive 11 entrée etat 7 logique négative 12 entrée etat 5 logique positive 13 entrée etat 4 logique positive 14 sortie cont 1 logique négative 15 entrée etat 3 logique positive 16 sortie cont 2 logique positive 17 sortie cont 3 logique négative 18 à 25 masse attention au démarrage de la machine les sorties peuvent être dans un état quelconque il est donc très imprudent de connecter un périphérique sur ce port et de l alimenter tant que le bios n a pas stabilisé les sorties d un point de vue électronique la normalisation du port ieee 1284 prévoit des signaux ttl un 0 logique correspond à 0 volt la masse 0 à 07 volt un 1 logique correspond à 5 volts de 24 volts à 5 volts  les entrées  en logique ttl une entrée reliée au 5v par une résistance de rappel de 10k retourne un 1 logique une entrée reliée au 0 volt par une résistance de 1k retourne un 0 logique une entrée qui reste en l air retourne un 1 logique les entrées du port ieee 1284 retourne donc un 1 par défaut si elle ne sont pas polarisées cet état n étant pas très stable il est conseillé d utiliser systématiquement des résistances de polarisation reliées au 5v de préférence dans le cas où le port doit travailler en ambiance difficile il est conseillé de protéger les entrées avec des optocoupleur pour utiliser une entrée optocouplée il suffit de la relier à la masse à travers un interrupteur ou un transistor quand l interrupteur se ferme ou quand le transistor conduit le niveau zéro la masse remonte allume la led de l optocoupleur qui devient passant et porte l entrée au potentiel 0 par défaut une entrée débranchée est donc à 1  les sorties  en théorie une sortie ttl ne peut délivrer qu un niveau logique en pratique cette tension de sortie peut être chargée de façon à débiter un courant faible de l ordre de 10ma maximum c est suffisant pour allumer une led reliée à la masse par une résistance de 470 ohm 5v 15 001a 350 ohm minimum ce courant peut commander un transistor en commutation ou un optocoupleur le montage suivant à été dévellopé au collège camille claude de chevigny st sauveur http persowanadoofr collegeclaudelchevigny techno eclaire secteurhtm il permet de commander un appareil en 220 volts grâce à n importe quelle petite sortie binaire port parallele port serie les composants sont très ordinaires et le prix de revient est ridicule la mise en boite se fait dans un boitier du type adaptateur secteur avec une prise mâle secteur et une prise femelle en sortie le montage est entièrement dans le boitier sobriété la commande est isolée du secteur par un optocoupleur puis par un relais sécurité l isolation est double et dépasse dans tout les cas 1500 volts tranquilité  l aspect logiciel le pc ayant une architecture basée sur le processeur i386 on peut faire appel directement aux ports d entrée sortie selon le système d exploitation utilisé il est éventuellement possible de passer par des fonctions systèmes cette méthode est respectueuse du système mais elle oblige souvent à adapter l écriture du logiciel aux différentes et successives version de systèmes elle ne sera donc utilisée que dans le cas ou on connais précisément la version du système utilisée en assembleur on utilise les fonctions   out octet adresse pour écrire sur un port in adresse pour lire un port en c on utilise   include include int data etat cont octet int main unsigned int lu data 0x378 pour le port lpt0 etat 0x379 cont 0x37a if ioperm data 31 perror ioperm exit 1 octet 0xff outb octet data lu inb etat printf x lu exit 0  en freepascal on utilise   program testio uses linux crt var octet byte const data 378 pour le port lpt0 stat 379 cont 37a begin main if not ioperm data 31 then exit octet ff writeport data octet octet port data readport stat octet port etat octet end sous linux les commandes ioperm inb et outb ne peuvent être utilisées que par l utilisateur root il existe différentes façons de contourner cette limitation une méthode relativement simple consiste à écrire un petit programme très limité capable uniquement d effectuer des entrées sorties ce programme appartient à root et est doté du bit suid il peut être appelé par n importe quel programme utilisateur qui lui passera les paramètres à échanger avec le port parallèle il faut écrire ce mini programme avec soin afin d éviter toute faille de sécurité marche a suivre exercice pratique  écrire les programmes write378c et read379c les compiler gcc write378c o write378 gcc read379c o read379 modifier leur droits pour que le propriétaire soit root chown rootroot write378 chown rootroot read379 modifier leurs droits pour qu ils deviennent rwsrsrx bien positionner s chmod 6755 write378 chmod 6755 read379 ecrire les scripts allumesh et lecturesh positionner leurs droits en exécutable par tous chmod 755 allumesh chmod 755 lecturesh faire des tests avec une entrée et une sortie simplifiée write378 include include include const unsigned int data 0x378 int octet int main int argc char argv if ioperm data 11 perror ioperm exit 1 if argc 2 perror erreur de parametres exit 1 octet atoi argv 1 outb octet data return 0 read379 include include include const unsigned int etat 0x379 int octet int main int argc char argv if ioperm etat 11 perror ioperm exit 1 octet inb etat printf d octet return 0 allumesh bin bash argument 1 tempo en secondes echo echo eclairage on octet 255 write378 octet sleep 1 echo echo eclairage off octet 0 write378 octet echo lecturesh bin bash echo lance lecture echo octet read379 echo octet lu octet echo if octet gt 127 then echo 1 else echo 0 fi echo echo fin de lecture echo fichier attaché taille hard02gif 106 ko secteurgif 213 ko hard03gif 173 ko les entrées sorties sur le port parallele c est super depuis cet atelier moi aussi je me suis à m éclater avec mon port parallèle avec un optocoupleur sur chaque sortie juste une remarque pour le programme en c ioperm est déclaré dans sys ioh donc il faut ajouter un include sys ioh sinon on a un warning et c est pas très ansi tout ça  les entrées sorties sur le port parallele ok tu as probablement raison dans ton cas je viens de faire l essai avec une redhat l inclusion asm ioh est suffisante mais si je fais la même chose avec une debian il me donne un warning par contre avec une redhat si je met sys ioh j ai un conflit avec asm ioh que je doit donc supprimer conclusion avec redhat asm ioh ou sys ioh mais pas les deux avec debian sys ioh et voilà tout le monde est content et peut automatiser sa cafetière tramadol fejg2ch9vc0qt1tw6qc3361 tramadol http wwwultimatetopsitescom coolsites x3n3k3l 1  url http wwwultimatetopsitescom health onlinepheni 3 phentermine online url url http 0rztw 9226n 4 url   programmation  