Recupération données rs232 en C sous linux

Résolu/Fermé
ebousquie Messages postés 40 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 28 avril 2009 - 3 mars 2009 à 13:55
 loupius - 4 mars 2009 à 14:21
Bonjour,

Je cherche à récupérer les données provenant d'un port rs232 sous linux, en langage C/C++.
Quelqu'un aurait-il une idée de bibliothèque existante pour ce genre d'application?

Merci d'avance pour vos réponses!
A voir également:

2 réponses

Il n'y a pas besoin de bibliothèque particulière.
Le port 'Com' est un périphérique, et, dans la philosophie Unix, un périphérique est rattaché au système de fichier; ce périphérique a donc un entrée correspondante dans le système: '/dev/ttyS0' pour 'Com1', '/dev/ttyS1' pour 'Com2', ...
On va donc pourvoir l'utiliser comme n'importe quel autre fichier: un descripteur de fichier et les fonctions open, read, write, close.
La seule différence sera pour le paramétrage; celui-ci se fera par l'intermédiaire d'une structure 'termios' (fais un 'man termios' pour en savoir plus). Un petit point de détail: en général il faut avoir certains droits pour pouvoir modifier cette structure.
Voilà donc pour les grandes lignes.
4
ebousquie Messages postés 40 Date d'inscription lundi 12 mai 2008 Statut Membre Dernière intervention 28 avril 2009
4 mars 2009 à 10:47
Ok, merci pour ces explications...
J'ai vu qu'il pouvait exister un danger de surtension pour la carte mère... y a-t-il des précautions à prendre si l'on veut effectuer des manipulations sur le port série?
0
C'est sûr qu'il y a quelques précautions à prendre.
Normalement, une mauvaise manip ne doit pas détruire la carte mère (sauf peut-être à injecter directement du 220V), mais seulement rendre le port Com inutilisable.Matériellement; il y a deux choses à savoir:
- Les tensions sont +12V ("0" logique) et -12V ("1" logique),
- Les pins sont soit IN, soit OUT.
A partir de là il faut faire attention à ne pas relier deux 'OUT' car, en général, ça ne se termine pas très bien (Jadis les anciens drivers (MC1488) 'tenaient' le court-circuit pendant environ 1 seconde.... c'est court!).
Il faut donc repérer les tensions; avec un multimètre c'est assez facile; il y a des normes et il suffit de savoir si on est en présence d'une configuration 'émetteur' ou 'récepteur'. Pour cela, il faut trouver le pin 'TX' qui au repos est à -12V (à 3 volt près), à partir de là (pour un connecteur 9 broches):
- si 3 -> configuration 'émetteur', c'est normalement celle d'un PC,
- si 2 -> configuration 'récepteur', c'est parfois celle de périphérique.
De là on en déduit les autres 'pins'; ce qui n'exclut pas de les vérifier.
0