Comment configurer et communiquer avec un port série ?

J'ai besoin d'envoyer et de recevoir des données via des connexions série (RS-232 et RS-422).

Comment configurer et communiquer avec une telle connexion ? Comment déterminer les paramètres de configuration (par exemple, le débit en bauds) et comment les définir ?

En particulier, je cherche à le faire en Java, C/C ou l'un des principaux shells Unix, mais j'ai également un certain intérêt pour la programmation série à l'aide de Windows/Hyperterminal.

请先 登录 后评论

4 réponses

Patrick

De l'autre côté, si vous voulez le faire en utilisant C

请先 登录 后评论
graham.reeds

Au travail, nous utilisons teraterm et realterm pour vérifier que les données série sont correctement formatées. Nous avons également un séparateur matériel avec un commutateur afin que nous puissions surveiller le trafic vers notre application via un câble vers un autre port.

Windows vous permet d'accéder au port série via CreateFile. Cela vous donne une poignée et à partir de là, vous pouvez configurer l'accès.

请先 登录 后评论
Lawrence Dol

Il y a quelque temps, j'ai écrit une application de taille décente pour acheminer les connexions d'une batterie de modems vers une adresse réseau TCP/IP.

Au départ, j'ai cherché une bibliothèque d'E/S série non encombrée (gratuite). J'ai essayé Sun, IBM et RxTx. Ils étaient parfaits pour le développement de l'application et lors des tests initiaux, mais en production, ils se sont tous révélés instables.

Enfin, j'ai payé le SerialPort de SerialIO. La conversion était littéralement un exercice de modification des importations, et la bibliothèque a été absolument solide comme le roc - je ne le recommanderai jamais assez. Mon application fonctionne sur le terrain 24h/24 et 7j/7 depuis quelques années maintenant, sans aucun problème rencontré par plusieurs clients.

Si vous commencez le développement en utilisant SerialPort, ils ont une meilleure API et je l'utiliserais.

Si vous avez besoin d'une prise en charge multiplateforme, Java avec SerialPort était le meilleur choix que j'ai pu trouver.

Enfin, leur licence est très raisonnable tant que vous ne préinstallez pas de logiciel sur l'équipement de votre ou vos clients.

请先 登录 后评论
Maciej Hehl

Selon l'appareil avec lequel vous essayez de communiquer, il peut y avoir plus de paramètres que le débit en bauds, le nombre de bits de données, le type de contrôle de parité et le nombre de bits d'arrêt à prendre en compte. Si je me souviens bien, les modems utilisent neuf lignes de l'interface RS-232C. Certains appareils comme, par exemple, les caisses enregistreuses, peuvent utiliser l'établissement de liaison matériel sur les lignes RTS/CTS ou sur les lignes DTR/STR.

En général, il est bon de savoir comment fonctionne l'interface. Vous ne pouvez pas communiquer si le débit en bauds ne correspond pas, mais un mauvais réglage d'autres paramètres peut fonctionner. Par exemple, vous pouvez facilement envoyer des données à l'appareil en attendant 1 bit d'arrêt avec 2 bits d'arrêt définis. Les problèmes commencent lorsque vous essayez de recevoir des données dans ce cas. Vous pouvez également utiliser le bit de parité défini de manière appropriée comme l'un des bits d'arrêt, etc.

请先 登录 后评论