web-dev-qa-db-fra.com

Quelle est la différence entre "COM", "USB", "Serial Port"?

Je suis confus au sujet de ces 3 concepts.

Ma compréhension est, Serial Port signifie généralement un port compatible RS-232 (RS = Standard recommandé). USB signifie Universal Serial Bus. Son nom contient donc un port série, prend-il en charge RS-232? Que signifie le Universal?

Et que signifie le port COM?

AJOUTER 1

Une certaine compréhension de la réponse de Hans:

Pour réduire l'effort, les fabricants d'appareils font généralement que leur appareil peut également se comporter comme un appareil à port série. Cela repose sur le fait que de nombreuses bibliothèques de systèmes d'exploitation et de langues ont déjà pris en charge la communication par port série. Bien qu'un tel support ne soit pas comparable à un pilote de périphérique correspondant réel.

AJOUTER 2

Un bon document de référence sur Serial Port HOW-TO .

Et btw, le projet de document Linux est vraiment utile.

23
smwikipedia

Serial port est un type de périphérique qui utilise une puce UART, un émetteur-récepteur asynchrone universel. L'une des deux façons de base d'interfacer un ordinateur dans le passé, les ports parallèles étaient dans l'autre sens. Le port série est simple à raccorder, il n'a pas besoin de beaucoup de fils. Le parallèle était utile si vous vouliez aller vite, taper 8 fois plus vite que le port série, mais les câbles et les connecteurs étaient chers. Les E/S parallèles ont complètement disparu de l'ordinateur conceptions, rattrapé par les énormes progrès dans les émetteurs-récepteurs de bus, le genre de puce qui peut transmettre un signal électrique sur un fil.

COM vient de MS-Dos, c'est un nom du périphérique. Abréviation de "port de communication". Dans les années 80, les ordinateurs avaient généralement deux ports série, étiquetés COM1 et COM2 à l'arrière de la machine. Ce nom a été reporté dans Windows, la plupart des pilotes qui simulent un port série créeront un périphérique avec "COM" dans son nom. LPT était le nom du périphérique pour les ports parallèles, abréviation de "Line PrinTer".

RS-232 était une norme de signalisation électrique pour les ports série. C'est le plus simple avec de très faibles exigences sur l'appareil, ne prenant en charge qu'une connexion point à point. Les RS-422 et RS-485 n'étaient pas rares, utilisant une paire torsadée pour chaque signal, offrant une immunité au bruit beaucoup plus élevée et permettant à plusieurs appareils connectés les uns aux autres.

USB signifie Universal Serial Bus. Grâce à la capacité d'intégrer un microprocesseur dans des appareils de quelques millimètres et qui coûtent quelques centimes. Il a remplacé les anciens appareils dans les dernières années 1990. Il est universel car il peut prendre en charge de nombreux types d'appareils, des réchauds à café aux lecteurs de disque en passant par les adaptateurs wifi et la lecture audio. Il est en série, il ne nécessite que 4 fils. Et c'est un Bus, vous pouvez brancher un périphérique USB sur un port arbitraire. Il rivalisait avec FireWire, une approche très similaire et défendue par Apple, mais gagnée par un glissement de terrain.

La seule raison pour laquelle les ports série sont toujours pertinents sous Windows ces jours-ci est qu'un périphérique USB nécessite un pilote de périphérique personnalisé. Les fabricants d'appareils pas aiment écrire et prendre en charge les pilotes, ils prennent souvent un raccourci dans leur pilote qui le fait émuler un périphérique de port série hérité. Les programmeurs peuvent donc utiliser la prise en charge héritée des ports série intégrés au système d'exploitation et à propos de n'importe quelle bibliothèque d'exécution de langue. Support plutôt imparfait entre eux, ces émulateurs ne supportent jamais bien le plug-and-play. Il est très difficile de découvrir le port série spécifique à ouvrir. Et ces pilotes se conduisent souvent de manière impossible à diagnostiquer lorsque vous secouez un périphérique USB pendant que votre programme l'utilise.

35
Hans Passant

Support USB pour Universal Serial Bus pas Port . Le terme "port série" signifie simplement que les données sont transférées un bit à la fois sur un seul chemin de signal - en ce sens, même Ethernet est série dans la nature. Le mot série dans les deux termes n'implique aucune relation autre que la largeur du chemin de données.

Vous avez raison en ce que le terme port série dans le contexte d'un PC signifie normalement un port RS-232, mais il existe d'autres normes de port série telles comme RS-422 et RS-485 souvent utilisés dans les applications industrielles. Ce qu'ils ont en commun, c'est qu'ils sont mis en œuvre à l'aide d'un UART ( récepteur/émetteur asynchrone universel ).

Le terme Universel en USB reflète simplement le fait qu'il ne s'agit pas d'une interface de périphérique spécifique comme les ports de souris ou de clavier dédiés trouvés sur du matériel plus ancien. De même, un port série basé sur UART n'est pas spécifique au périphérique, reflété par le U dans UART.

L'USB diffère considérablement du RS-232 de plusieurs façons; il s'agit d'un maître/esclave (ou hôte/périphérique dans la terminologie USB), plutôt que d'égal à égal, le périphérique USB ne peut pas initier de communication, il doit être interrogé par l'hôte. L'USB comprend une alimentation basse tension pour permettre aux appareils ayant des besoins d'alimentation modérés d'être alimentés par le bus - c'est aussi pourquoi les ports USB peuvent être utilisés pour charger des appareils alimentés par batterie. L'USB est beaucoup plus complexe que RS-232 qui ne définit que la couche physique (matérielle) tandis que l'USB nécessite une pile de protocoles logiciels complète.

Le terme COM n'est qu'un préfixe de nom de périphérique utilisé dans Windows (et précédemment MS-DOS) pour un port série (UART). Abréviation de "communications", vous pouvez par exemple ouvrir un port COM en tant que périphérique d'E/S de flux avec par exemple FILE* port = fopen( "COM1", "wr" ) ;.

8
Clifford