Port COM. Couplage d'appareils avec un PC. La programmation

Parfois, vous devez résoudre le problème de la connexion d'un appareil électronique à un ordinateur, qu'il s'agisse simplement d'un échange de données ou d'une télécommande. Cet article décrit comment cela peut être implémenté à l'aide d'un port série. Son principal avantage est que le logiciel standard Interface Windows(API) permet un contrôle direct des lignes de sortie, en donnant un contrôle direct sur elles, et a pour fonction d'attendre un événement associé au port COM. De plus, la norme RS-232, selon laquelle sont réalisés les ports COM, permet de connecter et de déconnecter les câbles pendant le fonctionnement des appareils (hot plug).

Description

Port COM (port série)– interface bidirectionnelle qui transmet les données sous forme série (bit par bit) via le protocole RS-232. Il s'agit d'un protocole assez courant utilisé pour connecter un appareil (par exemple un ordinateur) à d'autres via des fils allant jusqu'à 30 m de long. Les niveaux de signaux logiques diffèrent ici des niveaux standard : le niveau logique un est de +5 à +15 V, le niveau zéro logique est de -5 à -15 V, ce qui nécessite des transformations de circuit supplémentaires, mais offre une bonne immunité au bruit.

Considérons un connecteur à 9 broches (DB-9M). Ci-dessous son brochage :

N° de broche. Nom Caractère du signal Signal
1 DCD Saisir Détection du support de données
2 RxD Jour de congé Transmettre des données
3 TxD Saisir Recevoir des données
4 DTR Jour de congé Terminal de données prêt
5 GND - Sol
6 DSR Saisir Ensemble de données prêt
7 RTS Jour de congé Demande d'envoi
8 CTS Saisir Effacer pour envoyer
9 R.I. Saisir Indicateur de sonnerie

Nous nous intéresserons surtout aux broches 2 (transmission de données), 3 (réception de données) et 5 (masse). Il s'agit de l'ensemble minimum pour une communication bidirectionnelle entre les appareils.

Je ne m'étendrai pas sur la description du protocole en détail. Pour cela, il existe des GOST, etc. Par conséquent, nous irons plus loin et parlerons de la façon de contrôler cette bête.

Application

Comme déjà mentionné, les niveaux LAN RS-232 sont différents de niveaux standards TTL. Par conséquent, nous devons d’une manière ou d’une autre convertir les valeurs de tension. Ceux. faire du 5V à partir de +15V et du 0V à partir de -15V (et vice versa). Une solution (et probablement la plus simple) consiste à utiliser une puce spéciale MAX232. Il est facile à comprendre et peut convertir simultanément deux signaux logiques.

Vous trouverez ci-dessous un schéma de son inclusion :


Je pense qu'il ne devrait y avoir aucune difficulté. C'est l'une des options d'utilisation de cette puce : transférer des données d'un microcontrôleur vers un ordinateur et vice versa. Le signal transmis va aux broches T X IN d'un côté et sur R X DANS de l'autre. Signaux d'entrée supprimé de T X SORTIE et R X OUT respectivement.

La programmation

Parlons d’abord de la programmation des ports à bas niveau. Ce sera plus correct. J'ai passé beaucoup de nerfs à comprendre cette interface jusqu'à ce que je commence à approfondir le principe de son fonctionnement à un niveau inférieur à la simple transmission de caractères. Si cela devient clair, cela signifie la même chose avec les langues haut niveau il n'y aura aucun problème.

Vous trouverez ci-dessous les adresses des ports COM avec lesquels nous devrons travailler :

Nom du port Adresse IRQ
COM1 3F8h 4
COM2 2F8h 3
COM3 3E8h 4
COM4 2E8h 3

Ils peuvent varier. Vous pouvez définir les valeurs dans les paramètres du BIOS. Ce adresses de base. Les adresses des registres chargés du fonctionnement des ports en dépendront :

Adresse DLAB Lire écrire Abréviation Nom du registre
+ 0 =0 Écrire Tampon de maintien de l'émetteur
=0 Lire Tampon du récepteur
=1 Lire écrire Diviseur Verrouillage Octet faible
+ 1 =0 Lire écrire IER Registre d'activation d'interruption
=1 Lire écrire Diviseur Verrouillage Octet haut
+ 2 - Lire IIR Registre d'identification des interruptions
- Écrire RCF Registre de contrôle FIFO
+ 3 - Lire écrire LCR Registre de contrôle de ligne
+ 4 - Lire écrire MCR Registre de contrôle du modem
+ 5 - Lire LSR Registre d'état de ligne
+ 6 - Lire MSR Registre d'état du modem
+ 7 - Lire écrire Registre à gratter

La première colonne est l'adresse du registre par rapport à celui de base. Par exemple, pour COM1 : l'adresse du registre LCR sera 3F8h+3=3FB. La deuxième colonne est le bit DLAB (Divisor Latch Access Bit), qui définit différents objectifs pour le même registre. il vous permet d'exploiter 12 registres en utilisant seulement 8 adresses. Par exemple, si DLAB=1, alors en accédant à l'adresse 3F8h nous fixerons la valeur de l'octet de poids faible du diviseur de fréquence du générateur d'horloge. Si DLAB = 0, alors lors de l'accès à la même adresse, l'octet transmis ou reçu sera écrit dans ce registre.

Registre « zéro »

Il correspond aux registres de réception/transmission des données et de réglage du coefficient diviseur de fréquence du générateur. Comme mentionné ci-dessus, si DLAB = 0, alors le registre est utilisé pour enregistrer les données reçues/transmises, mais s'il est égal à 1, alors la valeur de l'octet de poids faible du diviseur de fréquence du générateur d'horloge est définie. La vitesse de transmission des données dépend de la valeur de cette fréquence. L'octet de poids fort du diviseur est écrit dans la cellule mémoire suivante (c'est-à-dire que pour le port COM1, ce sera 3F9h). Vous trouverez ci-dessous la dépendance du taux de transfert de données sur le coefficient diviseur :

Registre d'activation d'interruption (IER)

Si DLAB=0, alors il est utilisé comme registre pour contrôler les interruptions d'un adaptateur asynchrone ; si DLAB=1, alors l'octet de poids fort du diviseur de fréquence du générateur d'horloge y est défini.

Registre d'identification des interruptions (IIR)

Une interruption est un événement qui arrête l'exécution du programme principal et commence l'exécution de la routine d'interruption. Ce registre détermine le type d'interruption survenue.

Registre de contrôle de ligne (LCR)

C'est le registre de contrôle.

Bit 7 1 Divisor Latch Access Bit – réglage du taux d’échange de données
0 Mode normal (contrôle d'interruption, réception/transmission de données)
Bit 6 Simuler un saut de ligne (envoie une séquence de plusieurs zéros)
Bits 3 à 5 Bit 5 Bit 4 Bit 3 Sélection de parité
X X 0 Pas de parité
0 0 1 Parité impaire
0 1 1 Même parité
1 0 1 Parité élevée (collante)
1 1 1 Faible parité (collante)
Bit 2 Nombre de bits d'arrêt
0 1 bit d'arrêt
1 2 bits d'arrêt pour 6,7 ou 8 bits de données ou 1,5 bits d'arrêt pour 5 bits de données.
Bits 0 et 1 Bit 1 Bit 0 Nombre de bits de données
0 0 5 bits
0 1 6 bits
1 0 7 bits
1 1 8 bits

Le contrôle de parité implique la transmission d'un bit supplémentaire : le bit de parité. Sa valeur est définie de telle sorte que le nombre total de uns (ou de zéros) dans un paquet de bits soit pair ou impair, selon le réglage des registres de port. Ce bit est utilisé pour détecter les erreurs pouvant survenir lors de la transmission des données en raison d'interférences sur la ligne. L'appareil récepteur recalcule la parité des données et compare le résultat avec le bit de parité reçu. Si la parité ne correspond pas, on considère que les données ont été transmises avec une erreur.

Le bit d'arrêt indique la fin de la transmission des données.

Registre de contrôle du modem (MCR)

Registre de contrôle du modem.

Peu Signification
0 ligne DTR
1 Ligne RTS.
2 Ligne OUT1 (de rechange)
3 Ligne OUT2 (de rechange)
4 Exécution de diagnostics lorsque l'entrée d'un adaptateur asynchrone est court-circuitée vers sa sortie.
5-7 Égal à 0

Registre d'état de ligne (LSR)

Un registre qui détermine l'état de la ligne.

Peu Signification
0 Données reçues et prêtes à être lues, automatiquement réinitialisées lorsque les données sont lues.
1 Erreur de débordement. Un nouvel octet de données a été reçu, mais le précédent n'a pas encore été lu par le programme. L'octet précédent est perdu.
2 Erreur de parité, effacée après lecture de l'état de la ligne.
3 Erreur de synchronisation.
4 Une demande d'interruption de la transmission "BREAK" a été détectée - une longue chaîne de zéros.
5 Le registre de maintien de l'émetteur est vide et un nouvel octet peut y être écrit pour la transmission.
6 Le registre à décalage de l'émetteur est vide. Ce registre reçoit les données du registre de détention et les sérialise pour la transmission.
7 Timeout (l'appareil n'est pas connecté à l'ordinateur).

Registre d'état du modem (MSR)

Registre d'état du modem.

OK, c'est fini maintenant. En faisant fonctionner ces registres, vous pouvez communiquer directement avec le port COM et contrôler la transmission et la réception des données. Si vous ne voulez pas bricoler avec la mémoire, vous pouvez utiliser des composants prêts à l'emploi pour différents environnements de programmation : C++, VB, Delphi, Pascal, etc. Ils sont intuitifs, je pense donc qu’il n’est pas nécessaire de s’y attarder ici.

Avec le port parallèle, le port COM, ou port série, est l'un des ports d'entrée/sortie informatiques traditionnels, utilisés dans les premiers PC. Bien que dans ordinateurs modernes Le port COM a utilisation limitée, cependant, les informations à ce sujet peuvent être utiles à de nombreux utilisateurs.

Port série, comme le parallèle, est apparu bien avant l'apparition Ordinateur personnel Architecture PC IBM. Dans les premiers ordinateurs personnels, le port COM était utilisé pour connecter périphériques. Cependant, le champ d'application de son application était quelque peu différent de celui de port parallèle. Si le port parallèle était principalement utilisé pour connecter des imprimantes, alors le port COM (d'ailleurs, le préfixe COM n'est qu'une abréviation du mot communication) était généralement utilisé pour fonctionner avec des appareils de télécommunications, tels que des modems. Cependant, vous pouvez vous connecter au port, par exemple, une souris, ainsi que d'autres périphériques.

Port COM, principaux domaines d'application :

  1. Bornes de connexion
  2. ~ modems externes
  3. ~ imprimantes et traceurs
  4. ~ des souris
  5. Connexion directe entre deux ordinateurs

Actuellement, le champ d'application du port COM a été considérablement réduit en raison de l'introduction d'un port plus rapide et plus compact, et d'ailleurs également séquentiel, interface USB. Presque hors d'usage modems externes, conçu pour la connexion à un port, ainsi que les souris « COM ». Et il est rare que quiconque connecte désormais deux ordinateurs à l’aide d’un câble null modem.

Cependant, un certain nombre d'appareils spécialisés utilisent encore le port série. Vous pouvez le trouver sur de nombreuses cartes mères. Le fait est que par rapport à l'USB, le port COM présente un avantage important - selon la norme transmission série Données RS-232, il peut fonctionner avec des appareils à une distance de plusieurs dizaines de mètres, tandis que la plage de fonctionnement cable USB, en règle générale, limité à 5 mètres.

Le principe de fonctionnement d'un port série et sa différence avec un port parallèle

Contrairement à un port parallèle (LPT), un port série transmet les données bit par bit sur une seule ligne plutôt que sur plusieurs lignes à la fois. Les séquences de bits sont regroupées en séries de données, commençant par un bit de départ et se terminant par un bit d'arrêt, ainsi que des bits de parité utilisés pour le contrôle des erreurs. C'est de là que vient une autre chose nom anglais, qui possède un port série – Serial Port.

Le port série comporte deux lignes à travers lesquelles les données elles-mêmes sont transmises - ce sont des lignes permettant de transférer des données du terminal (PC) vers le périphérique de communication et inversement. De plus, il existe plusieurs autres lignes de contrôle. Le port série est desservi par une puce UART spéciale, capable de prendre en charge un taux de transfert de données relativement élevé, atteignant 115 000 bauds (octets/s). Il est vrai qu'il convient de noter que vitesse réelle l’échange d’informations dépend des deux appareils de communication. De plus, les fonctions du contrôleur UART incluent la conversion du code parallèle en code série et vice versa.

Le port utilise des signaux électriques à tension relativement élevée - jusqu'à +15 V et -15 V. Le niveau zéro logique du port série est de +12 V et le niveau logique un est de -12 V. Une chute de tension aussi importante nous permet de garantie haut degré immunité au bruit des données transmises. En revanche, ceux utilisés en port série haute tension nécessitent des solutions de circuits complexes. Cette circonstance a également contribué au déclin de la popularité du port.

Interface série RS-232

Le fonctionnement du port série sur un PC est basé sur la norme de transfert de données pour les périphériques série RS-232. Cette norme décrit le processus d'échange de données entre un appareil de télécommunication, tel qu'un modem, et un terminal informatique. La norme RS-232 définit Caractéristiques électriques signaux, leur objectif, leur durée, ainsi que les tailles des connecteurs et leurs schémas de brochage. En même temps, RS-232 décrit uniquement couche physique processus de transfert de données et n’affecte pas les données utilisées dans ce cas protocoles de transport, qui peut varier en fonction de l'équipement de communication et des logiciels utilisés.

La norme RS-232 a été créée en 1969 et son dernière version, TIA 232, est sorti en 1997. Le RS-232 est désormais considéré comme obsolète, mais la plupart des systèmes d'exploitation le prennent toujours en charge.

Sur les ordinateurs modernes, le connecteur du port série est un connecteur mâle DB-9 à 9 broches, bien que la norme RS-232 décrive également un connecteur DB-25 à 25 broches, souvent utilisé sur les ordinateurs plus anciens. Le connecteur DB-9 est généralement situé sur carte système PC, bien que sur les ordinateurs plus anciens, cela puisse se trouver sur une multicarte spéciale insérée dans le connecteur d'extension.

Prise DB-9 à 9 broches sur carte mère

Connecteur DB-9 sur le câble de l'appareil connecté au port

Contrairement à un port parallèle, les connecteurs des deux côtés d'un câble série bidirectionnel sont identiques. En plus des lignes de transmission des données elles-mêmes, le port contient plusieurs lignes de service par lesquelles les données peuvent être transmises entre le terminal (ordinateur) et l'appareil de télécommunication (modem). informations de contrôle. Bien qu'en théorie, seuls trois canaux soient nécessaires au fonctionnement d'un port série - réception de données, transmission de données et masse, la pratique a montré que la présence de lignes de service rend la communication plus efficace, plus fiable et, par conséquent, plus rapide.

Objectif des lignes du connecteur DB-9 du port série selon RS-232 et leur correspondance avec les contacts du connecteur DB-25 :

Contacter DB-9 nom anglais nom russe Contacter DB-25
1 Détection du support de données Porteur détecté 8
2 Transmettre des données Données transmises 2
3 Recevoir des données Données reçues 3
4 Prêt pour le terminal de données Préparation du terminal 20
5 Sol Terre 7
6 Ensemble de données prêt Disponibilité de l'émetteur 6
7 Demande d'envoi Demande d'envoi de données 4
8 Effacer pour envoyer Transfert de données autorisé 5
9 Indicateur de sonnerie Indicateur de sonnerie 22

Configuration et interruptions

Puisqu'un ordinateur peut avoir plusieurs ports série (jusqu'à 4), le système leur alloue deux interruptions matérielles - IRQ 3 (COM 2 et 4) et IRQ 4 (COM 1 et 3) et plusieurs interruptions du BIOS. De nombreux programmes de communication, ainsi que des modems intégrés, utilisent des interruptions et l'espace d'adressage des ports COM pour leur travail. Dans ce cas, ce ne sont généralement pas des ports réels qui sont utilisés, mais des ports dits virtuels, qui sont émulés par le système d'exploitation lui-même.

Comme pour de nombreux autres composants de la carte mère, les paramètres du port COM, en particulier les valeurs d'interruption du BIOS correspondant aux interruptions matérielles, peuvent être configurés via l'interface. Configuration du BIOS. À cette fin, les éléments suivants sont utilisés Options du BIOS, tels que le port COM, le port série intégré, l'adresse du port série, etc.

Conclusion

Le port série du PC n'est pas actuellement un moyen d'entrée/sortie largement utilisé. Cependant, puisqu'il y a un grand nombre deéquipement, principalement à des fins de télécommunications, conçu pour fonctionner avec un port série, ainsi qu'en raison de certains avantages du protocole de transfert de données série RS-232, l'interface série ne doit pas encore être considérée comme un rudiment complètement obsolète de l'architecture d'un ordinateur personnel .

Oh, c'est quoi ce truc ? Pourquoi est-ce nécessaire ? Est-ce que je peux le toucher avec mon doigt ? Quoi? Vaut mieux pas? Très bien, je ne le ferai pas. Mais c'est tellement intéressant pour moi : il y a un connecteur dans l'ordinateur, mais pour une raison quelconque, personne n'y connecte rien. Comment ça s’appelle ? Port? Ouah! Classe! Et c'est quoi?..

Ce port est aussi appelé en série (Port série), bien que la réduction "COM" signifie en fait "communication" - port de communication(conçu à l'origine pour le mouvement de données bidirectionnel - véritable communication). Et encore plus souvent on l'appelle cohérent, puisqu'il transmet les bits strictement les uns après les autres.

En plus du port série, les ordinateurs disposent également d'un port parallèle, destiné principalement à connecter des imprimantes. On l'appelle souvent ainsi : imprimante. Là, le transfert de données est théoriquement unidirectionnel (mais seulement nominalement).

Il est fort possible que votre ordinateur dispose également d'un port COM. Il s'agit très probablement d'une douille légèrement oblongue avec neuf contacts répartis sur deux rangées, cinq et quatre chacune, et également filetée pour les boulons aux extrémités. Il est livré avec un câble avec un connecteur, respectivement, avec neuf prises situées dans la même configuration.

Le connecteur est inséré dans la prise avec des contacts et vissé avec les boulons ci-dessus afin de ne pas tomber. De cette façon, vous pouvez, par exemple, connecter directement deux ordinateurs à l'aide d'un câble null modem. C’est ce qui se faisait auparavant, à l’époque des premiers PC.

De nos jours, les récepteurs satellite, les appareils de divers systèmes de sécurité et les systèmes de contrôle sont connectés de cette manière. processus de production et d'autres appareils intelligents.

Il existe probablement un tel port sur votre ordinateur portable (bien sûr, si vous en avez un chez vous). Il est utilisé, par exemple, pour se synchroniser avec un ordinateur de bureau. Certes, dans la pratique, une telle connexion n'est pas très souvent utilisée de nos jours - personne ne veut se tromper avec des câbles, car d'autres technologies plus modernes et plus efficaces peuvent être utilisées.

De nos jours, pour communiquer avec différents appareils Le port USB est de plus en plus utilisé (d'ailleurs, il est aussi en réalité série). Modems mobiles, imprimantes, adaptateurs Wi-Fi - tout grande quantité les appareils sont connectés via USB.

De plus, avec la disponibilité de technologies telles qu'Ethernet et FireWire (pour Apple), connecter des ordinateurs avec des fils via les ports COM n'est pas si pratique. Eh bien, si vous vous souvenez du Bluetooth (qui se traduit par « dent bleue »), vous pouvez même envoyer le port série au musée.

Cependant, le système d'exploitation Windows nomme toujours ses canaux de transmission d'informations COM1, COM2, etc.

Pourquoi? Parce que les pilotes, par exemple pour Bluetooth, peuvent apparaître au système exactement comme des ports COM. Par exemple, nous y sommes, s'il vous plaît, aimez et favorisez, veuillez nous attribuer des canaux pour l'échange de données. Et si nous ne sommes pas tout à fait réels ? Vous devrez quand même nous servir.

Unix (et ses variantes comme Linux) présente également quelques particularités concernant l'attitude envers les appareils connectés. Puisqu'Unix considère tout ce qui l'entoure comme des fichiers (même le matériel !), il conserve ses ports série sous la forme de ceux-ci avec des noms comme ttyS0, ttyS1, ttyS2 (s'il s'agit de Linux) ou ttyu0, ttyu1, ttyu2 (sous FreeBSD).

Si vous êtes simple utilisateur et vous n'avez pas besoin de travailler avec des appareils spécifiques, récepteurs satellites et d'autres appareils délicats, il n'est alors absolument pas nécessaire de courir dans les magasins d'informatique et de chercher un câble pour le port COM.

Les données d'un ordinateur à un autre peuvent être transférées de nombreuses autres manières, y compris sans aucun fil. En dernier recours, transférez-le sur une clé USB si le réseau local ne fonctionne pas pour une raison quelconque.

En bref, même si un port COM continue d'exister du point de vue système opérateur et est même utilisé virtuellement comme canal de communication ; dans la pratique, la plupart des utilisateurs peuvent l'oublier en toute bonne conscience.

Il est vrai que la curiosité est toujours louable. Alors demandez, soyez intéressé, étudiez. Mais il vaut mieux ne pas y toucher avec les mains sans autorisation.

Publications précédentes :

Initialement, lorsqu'ils sont apparus Ordinateur personnel, avec eux sont venus plusieurs pas si sophistiqués, mais fonctionnant avec succès en combinaison avec tous les autres remplissages, ports ou interfaces de circuit. Le mot port désigne la méthode de transfert de données. C'est comme une cellule mémoire. Seulement dans RAM les informations sont enregistrées et restent là aussi longtemps qu'un programme en a besoin, jusqu'à ce que le programme les traite (ou que le programme lui-même soit encore nécessaire à quelqu'un sur l'ordinateur).

Port et mémoire

Autrement dit, le programme lira les données de la mémoire dans le processeur, en fera quelque chose, et recevra peut-être de nouvelles données à partir de ces informations, qu'il écrira dans un autre emplacement. Ou bien le donné lui-même sera simplement réécrit ailleurs. Dans tous les cas, en mémoire, les informations une fois enregistrées peuvent être soit lues, soit effacées. La cellule ressemble à un coffre adossé au mur. Et toute mémoire est constituée d'une cellule, chaque cellule a sa propre adresse. Tout comme les coffres alignés contre le mur dans la cave d’un chevalier radin.

Eh bien, vous pouvez aussi imaginer un port comme une cellule. Seulement une telle cellule au fond, il y a une fenêtre qui mène quelque part derrière le mur. Vous pouvez y écrire des informations, et les informations les prendront et s'envoleront par la fenêtre, même si pendant un certain temps elles resteront dans la cellule de la même manière que dans une cellule ordinaire mémoire vive.

Ou vice versa, les informations peuvent « voler » dans la cellule portuaire depuis la fenêtre. Le processeur verra cela et lira ces nouvelles informations qui apparaissent. Et il le mettra en œuvre - il le réécrira quelque part, le recalculera avec d'autres données. Il peut même l'écrire dans une autre cellule. Ou vers un autre port cellulaire, alors ces informations reçues via le premier port peuvent « s'envoler » dans la fenêtre du deuxième port - eh bien, c'est ainsi que le processeur décide. Plus précisément, le programme qui commande à ce moment le processeur et traite les données enregistrées en mémoire et provenant des ports.

Simple et beau. Ces ports ont été immédiatement appelés ports d'entrée-sortie. Grâce à certains d’entre eux, les données sont envoyées quelque part, à travers d’autres, elles sont reçues de quelque part.

Eh bien, le mouvement commence en cercle. Il y a un appareil et il y en a un autre. Et maintenant, il existe une chaîne de caractères, chacun étant constitué de bits binaires individuels, et cette chaîne doit être transmise. Comment transférer ? Vous pouvez immédiatement transmettre un caractère entier sur une ligne de 8 fils - un fil = un bit, puis le code d'un autre, puis un troisième, et ainsi de suite jusqu'à transmettre toute la chaîne.

Et il était possible de dérouler chaque bit non pas dans l'espace (via des fils), mais dans le temps : transmettre d'abord un bit du symbole, puis le second, et ainsi de suite huit fois. Il est clair que dans le second cas, des moyens supplémentaires sont nécessaires pour déployer ainsi les symboles dans le temps.

Parallèle et série

Et la vitesse de transmission sera différente :

Il s’avère que chaque option a ses avantages, mais aussi ses inconvénients.

  1. Il est plus rapide de transmettre huit bits à la fois (c'est-à-dire octet par octet), mais vous avez besoin de huit fois plus de fils
  2. La transmission d'un bit à la fois ne nécessite qu'une seule transmission d'informations, mais elle sera 8 fois plus lente.

Ainsi, dans le premier cas, ils ont appelé la transmission parallèle et dans le second cas, en série.

Interface portuaire

Et tout le système d'une telle transmission - dans un cas comme ceci, dans un autre - comme ça, appelée interface. Une interface est parallèle, l'autre est série. Presque la même chose, les ports, l'un parallèle, l'autre série.

En quoi la notion de port diffère-t-elle de la notion d’« interface » ? DANS technologie moderne les mots non seulement apparaissent, mais ils grandissent et reçoivent une « éducation ». Et comme les gens, ils peuvent devenir spécialistes restreints, ou ils peuvent devenir des « amateurs ». C'est un mot amateur typique - "interface". Parce que c’est « un bouchon pour chaque trou ». Les interfaces sont :

Et le sens du mot est quelque chose entre quelque chose. Entre - entre, visage - visage. Le résultat est magnifique, c’est pourquoi il est utilisé partout. Par exemple, interface utilisateur Systèmes Windows est la face à l'écran du système, conçue pour communiquer avec une personne.

Et il se compose d'une image dessinée à l'écran + de règles pour le fonctionnement de chaque élément de l'image (par exemple, cliquez sur un bouton de l'écran avec la souris - il sera enfoncé) + de règles pour la réponse de chaque élément et l'ensemble du système dans son ensemble + tout le matériel participant au dialogue (souris, clavier, écran) + tous les programmes qui assurent le dialogue à la fois du côté de l'ensemble du système et du côté des appareils individuels (pilotes).

Ils n'ont pas mentionné la personne, mais comme elle fait aussi partie de l'interaction, elle doit avoir des connaissances et des compétences pour travailler dans le système, et pour cela il existe des programmes de formation, des systèmes d'aide... Et de tout cela une belle et un mot volumineux apparaît : interface.

Dans notre thème, l'interface signifie les choses un peu plus simples.

Ce sont du matériel + logiciel transmission + règles de transmission. Matériel - compréhensible. Mais les logiciels sur les ordinateurs et dans moyens modernes les connexions sont présentes toujours et partout. Cela arrive même : d'abord, quelque chose de fonctionnel est créé sur une base matérielle, qui n'est pas exécuté immédiatement, mais en utilisant des programmes spécialement écrits. Et les programmes sont tous personnalisables.

Et progressivement, au fur et à mesure que vous travaillez nouvelle fonctionnalité(ou bloc fonctionnel), les programmes qui « le font » - et ils diffèrent du matériel en ce sens qu'ils peuvent être facilement personnalisés - sont amenés à un certain état réglages optimaux. Qu'il n'y a plus besoin de configurer. Et puis le programme dans nouvelle version Le bloc fonctionnel peut être remplacé par un substitut matériel à la partie logicielle. Par exemple, « recoudez » un vêtement qui fonctionne de manière optimale. programme bien adapté à mémoire permanente . Ou proposez un circuit logique spécial qui fera exactement la même chose qu'un programme configuré de manière optimale - sans reculer et parfois en oubliant tous ses paramètres utiles.

C'est pourquoi l'interface est souvent appelée ainsi - logiciel et matériel.

Des règles de transmission sont nécessaires pour garantir que les mêmes choses sont comprises (et traitées) de la même manière aux deux extrémités de l’interaction. Parlons-nous de transmission d’impulsions ? Cela signifie que les impulsions doivent être strictement identiques.

Par exemple, pour qu'un bit se présente sous la forme d'une chute de tension de +12 ou +15 volts par rapport à zéro. Et pour qu'il ait la forme d'un rectangle, ou d'un éclat brusque - dont le pic ne doit pas être inférieur à, enfin, + 5 volts, et il n'est pas vraiment nécessaire d'introduire une limite supérieure, par exemple. En effet, lors de la transmission d’impulsions sur une certaine distance, les signaux électriques ont tendance à s’affaiblir et à « s’étaler ».

Si strictement 12 volts sont envoyés d'une extrémité, alors 3 volts peuvent atteindre l'autre, et cela peut être interprété par le système récepteur simplement comme du bruit sur la ligne, et les informations transmises seront perdues.

La signification des impulsions doit également être comprise de la même manière. Et les impulsions peuvent être informatives, service, synchronisation. Et en général, par exemple, pas des impulsions, mais simplement pression constante. Qui peut être utilisé à l’autre extrémité pour alimenter un petit appareil.

Et les fils eux-mêmes, dont nous avons parlé au tout début, doivent également être compris de la même manière. Ici, il faut dire tout de suite qu'il n'arrive jamais qu'il n'y ait qu'un seul fil. Même le téléphone a deux fils dans le câble, mais normalement le câble est censé en avoir quatre. Et les interfaces de données ont toujours plusieurs conducteurs. Certains d'entre eux sont informatifs, d'autres sont des services. Et c’est ce qui devrait être reconnu de manière égale des deux côtés de l’interaction. Et les fils sont reconnus comme? Par couleur, si dans le câble et par emplacement, si dans les contacts de connexion.

Port est un mot simple et pas tout à fait sans ambiguïté. Mais le sens est similaire : quelque chose est chargé sur quelque chose et envoyé quelque part. Ou vice versa, quelque chose qui accepte quelque chose et en décharge quelque chose. La signification est presque la même que celle de l’interface matériel-logiciel, mais en quelque sorte plus concise. Et plus strict, comme dans la marine (« Ils vous diront – ne discutez pas... mais nous ne discutons pas... »). Seuls nos signaux ne transitent pas par mer, mais par câble.

Brochage des connecteurs du port COM

Le brochage n'a aucune connexion avec la crucifixion, bien que, comme les fils circulant librement dans une gaine de câble, ils soient démontés en côtés et soudés dur à leurs broches, comme dans le cas de la crucifixion. Pin, en anglais « pin », pin, donc pinout, le mot est déjà un jargon informatique « pro-anglais ». Cela signifie câbler les fils aux broches du connecteur.

La forme du connecteur, l'ordre du câblage (broches), le but de chaque broche, ainsi que les tensions nominales et la signification des signaux dans chacune - cela fait partie de l'interface. Généralement, toutes ces informations sont compilées dans un document distinct appelé spécification de port. Un panneau d'une page si simple et clair. Dans d’autres types d’interfaces, quelque chose comme ceci pourrait être appelé un « protocole ». Et ici, ils l'appellent simplement "pinout".

Ports COM série

Les ports COM d'un ordinateur sont la connexion d'un complexe informatique " longue portée" Contrairement aux ports et câbles parallèles qui conduisaient à des appareils « lourds » - imprimantes, scanners, ports Com connectaient des unités « légères » à l'ordinateur - une souris, un modem. Les premières interfaces ordinateur à ordinateur (via un « null modem »). Plus loin, quand se sont-ils propagés réseaux locaux , et les souris ont commencé à être connectées via le même connecteur que le clavier - port ps/2 (pe-es-in half) - le port com a été en quelque sorte oublié.

La Renaissance est venue avec l'avènement interface série USB. Il s’est donc avéré qu’il s’agissait d’un mouvement en cercle. Désormais sur USB, vous pouvez trouver, en plus des clés USB, des souris et des claviers USB. Imprimantes, scanners, modems, tous les périphériques sont désormais sur USB, j'ai déjà oublié les câbles LTP parallèles épais et solides, qu'il fallait visser de chaque côté avec 2 boulons. Et il y a deux fils de signal dans ces USB (en fait, il y a un canal, un signal direct, l'autre identique - inverse) et deux - l'alimentation et le boîtier.

Il y avait plusieurs ports COM série précédents. Le plus petit - et le plus populaire Un port 9 broches (D9), auquel étaient connectés la plupart des appareils : souris, modems, câbles null-modem. Les contacts étaient disposés en deux rangées, 5 et 4 d'affilée, créant un trapèze. D'où le nom D9. Sur la « mère » la numérotation allait de gauche à droite et de haut en bas :

1 2 3 4 5

Câblage du port COM, port RS232, 9 broches.

Désignation Taper Description
1 DCD Entrée Niveau élevé du modem lorsqu'il reçoit le partenaire modem opérateur
2 RxD Entrée Impulsions de données entrantes
3 TxD Sortie Impulsions de données sortantes
4 DTR Sortie Un niveau élevé (+12 V) indique que l'ordinateur est prêt à recevoir des données. La souris connectée a utilisé cette broche comme source d'alimentation
5 GND Général Terre
6 DSR Entrée L'appareil est prêt à transmettre des données
7 RTS Sortie Disponibilité de réponse de l'appareil partenaire
8 CTS Entrée Disponibilité à recevoir des données d'un partenaire
9 R.I. Entrée Signal informant l'ordinateur de appel entrant, reçu par le modem depuis la ligne de communication

Une particularité de ce port par rapport aux autres technologies « série » est le fait qu'il n'y a aucune exigence de synchronisation entre 2 octets. Il existe des exigences de synchronisation uniquement entre les bits d'un octet (y compris le démarrage, l'arrêt et la parité), l'inverse de la pause temporelle entre les bits d'un octet est appelé débit en bauds - le débit en bauds. De plus, dans cette technologie, il n'y a pas de concept de « package ».

D'autres technologies « série », telles que X.25, USB ou Ethernet, ont un concept « paquet » et imposent des exigences strictes de synchronisation entre tous les bits d'un même paquet.

Pour cette raison, dans la terminologie Cisco IOS, ce port était appelé asynchrone - par opposition au port série synchrone, c'est-à-dire X.25. Pour la même raison, le module Windows qui implémente PPP sur ce port s'appelle AsyncMac.sys (le standard PPP décrit séparément l'implémentation de PPP, qui utilise le concept de « paquet », sur un port série qui n'a pas ce concept) .

Certains protocoles de communications industrielles imposent des exigences strictes de synchronisation entre les octets du port série. De tels protocoles sont extrêmement difficiles à mettre en œuvre dans des systèmes d'exploitation multitâches avec une faible prise en charge du temps réel, comme Windows, et nécessitent donc souvent MS-DOS et des logiciels obsolètes d'il y a près de 20 ans sur l'ordinateur de contrôle.

But

La norme la plus couramment utilisée pour le port série des ordinateurs personnels est le RS-232C. Auparavant, le port série servait à connecter un terminal, plus tard pour un modem ou une souris. Il est désormais utilisé pour se connecter et communiquer avec du matériel destiné au développement de systèmes informatiques embarqués, de récepteurs satellite, de caisses enregistreuses, ainsi qu'avec les dispositifs des systèmes de sécurité des installations.

À l'aide d'un port COM, vous pouvez connecter deux ordinateurs à l'aide d'un « câble null modem » (voir ci-dessous). Il est utilisé depuis l'époque de MS-DOS pour transférer des fichiers d'un ordinateur à un autre, sous UNIX pour l'accès du terminal à une autre machine et sous Windows (même les plus modernes) pour un débogueur au niveau du noyau.

L’avantage de la technologie est l’extrême simplicité de l’équipement. L'inconvénient est faible vitesse, de grandes tailles de connecteurs, ainsi que des exigences souvent élevées en matière de temps de réponse du système d'exploitation et du pilote et un nombre élevé d'interruptions (une pour la moitié de la file d'attente matérielle, soit 8 octets).

Connecteurs

Sur les cartes mères des principaux fabricants (par exemple Intel) ou systèmes prêts à l'emploi(par exemple, IBM, Hewlett-Packard, Fujitsu Siemens Computers), le symbole suivant est utilisé pour le port série :

Les connecteurs en forme de D les plus couramment utilisés, normalisés en 1969, sont à 9 et 25 broches (DB-9 et DB-25, respectivement). Auparavant, le DB-31 et le DIN-8 rond à huit broches étaient également utilisés. Vitesse maximum la transmission, dans la version normale du port, est de 115 200 bauds.

Pertinence

Il existe des normes pour émuler un port série via USB et via Bluetooth (cette technologie a été largement conçue comme un « port série sans fil »).

Néanmoins, l’émulation logicielle de ce port est encore largement utilisée aujourd’hui. Par exemple, presque tous les téléphones mobiles émulent un port COM classique et un modem pour mettre en œuvre le partage de connexion - accès de l'ordinateur à Internet via l'équipement GPRS/EGDE/3G du téléphone. De plus, pour connexion physique USB, Bluetooth ou Wi-Fi sont utilisés pour se connecter à l'ordinateur.

De plus, une émulation logicielle de ce port est fournie aux « invités » machines virtuelles VMWare et Microsoft Hyper-V, l'objectif principal est de connecter un débogueur de niveau Noyaux Windowsà "l'invité".

Équipement

Le connecteur a des contacts :

DTR (Data Terminal Ready - disponibilité à recevoir des données) - sortie sur l'ordinateur, entrée sur le modem. Indique que l'ordinateur est prêt à utiliser le modem. La réinitialisation de cette ligne provoque presque redémarrage complet modem à son état d'origine, incl. raccrocher (certains registres de contrôle survivent à une telle réinitialisation). Sous UNIX, cela se produit lorsque toutes les applications ont fermé des fichiers sur le pilote du port série. La souris utilise ce fil pour recevoir de l'énergie.

DSR (Data Set Ready - préparation au transfert de données) - entrée sur l'ordinateur, sortie sur le modem. Indique que le modem est prêt. Si cette ligne est à zéro, alors dans certains systèmes d'exploitation, il devient impossible d'ouvrir le port sous forme de fichier.

RxD (Receive Data) - entrée sur l'ordinateur, sortie sur le modem. Flux de données entrant dans un ordinateur.

TxD (Transmit Data) - sortie sur l'ordinateur, entrée sur le modem. Un flux de données provenant d'un ordinateur.

CTS (Clear to Send - préparation à l'envoi) - entrée sur l'ordinateur, sortie sur le modem. L'ordinateur doit suspendre la transmission des données jusqu'à ce que ce fil soit réglé sur un. Utilisé dans le protocole de contrôle de flux matériel pour éviter les débordements dans le modem.

RTS (Request to Send - demande d'envoi) - sortie sur l'ordinateur, entrée sur le modem. Le modem doit suspendre la transmission des données jusqu'à ce que ce fil soit réglé sur un. Utilisé dans le protocole de contrôle de flux matériel pour éviter les débordements de matériel et de pilotes.

DCD (Carrier Detect - présence de porteur) - entrée sur l'ordinateur, sortie sur le modem. Mis à un par le modem après avoir établi une connexion avec le modem de l'autre côté, remis à zéro lorsque la connexion est interrompue. Le matériel informatique peut émettre une interruption lorsqu'un tel événement se produit.

RI (Ring Indicator - signal de sonnerie) - entrée sur l'ordinateur, sortie sur le modem. Réglé par le modem sur un après détection d'une sonnerie appel téléphonique. Le matériel informatique peut émettre une interruption lorsqu'un tel événement se produit.

SG (Signal Ground) - fil de signal commun du port, ce n'est pas une terre commune, en règle générale, isolé du boîtier de l'ordinateur ou du modem.

DANS câble nul modem deux paires croisées sont utilisées : TXD/RXD et RTS/CTS.

Le matériel de port standard (depuis le PC IBM d'origine) s'appelle UART 16550 (actuellement inclus dans la puce SuperIO de la carte mère avec un certain nombre d'autres périphériques). Depuis l'époque du PC IBM, une file d'attente d'octets matériels y est apparue, ce qui réduit considérablement le nombre d'interruptions émises par l'appareil.

Accès par programmation au port COM

UNIX

Il existe une section de registre pour chaque port. Ces sections portent les noms suivants :

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Serial\Parameters\Serial10000

où la dernière valeur « Serial10000 » est un numéro unique pour chaque nouveau port COM ajouté au système, pour le second – « Serial10001 », etc.

Pour communiquer avec des appareils prenant en charge Bluetooth, certains programmes (par exemple, ces programmes incluent : un programme qui synchronise votre liste de contacts avec téléphone mobile; programme qui extrait Les coordonnées GPSà partir d'un récepteur GPS), un port COM est requis sur l'ordinateur de l'utilisateur.

Programmes qui utilisent des ports COM pour prendre en charge la communication à l'aide de la technologie sans fil Connexions Bluetooth directement développés par Microsoft comprennent :

  • HotSync utilisé dans les ordinateurs de poche
  • ActiveSync, utilisé dans les Pocket PC

OS/2

Le pilote COM.SYS existant ne prend en charge que 4 ports COM, chacun devant avoir sa propre ligne d'interruption. Pour desservir les ports COM avec une ligne d'interruption commune, vous devez utiliser le pilote SIO.

Câble nul modem

Article principal : Câble nul modem

Dans certains cas, il est possible d'utiliser une version simplifiée du câble, dans laquelle seules les broches 2, 3 et 5 sont utilisées.

voir également

  • Signaux du port série

Remarques

Liens

  • Traduction du guide de programmation du port COM dans les systèmes d'exploitation POSIX
  • Programmation du port en Java - vous permet de travailler depuis Windows, contrairement aux packages officiels de Sun.
  • Programmation d'un port COM en C++ pour Windows. Bibliothèque prête à l'emploi, codes sources, exemples de programmes.
  • Yachkardine V.L. Port série. Programmation d'un port COM sous Windows et MS-DOS. SoftElectro (2009). Archivé de l'original le 8 février 2012.