Programmer le RS232

cs_nlend Messages postés 3 Date d'inscription vendredi 31 octobre 2008 Statut Membre Dernière intervention 25 novembre 2008 - 21 nov. 2008 à 12:47
cs_nlend Messages postés 3 Date d'inscription vendredi 31 octobre 2008 Statut Membre Dernière intervention 25 novembre 2008 - 25 nov. 2008 à 07:51
Bonjour,

Je voudrais mettre en place un petit logiciel de chat en C pour 2 PC(client-client)
le pb est que, je ne sais pas transmetre ni recevoir le données atravers la liaison serie(RS232)
voudriez-vous m’aider avec:
soit par cours ?
soit par codes sources simples me permettant de comprendre puis d'atteindre mon but?

note: j'ai de connaissance en c
nlend_m@so-na-ra.com
michenlend@yahoo.fr

Je vous remercie !

6 réponses

uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
21 nov. 2008 à 13:17
Euh... de mémoire :
- câble 9 ou 25 broches
- broche 1 : masse
- broche 2 : émission ou réception (suivant si c'est branché sur le DTE ou DCE)
- broche 3 : réception ou émission (suivant si c'est branché sur le DTE ou DCE)
- broche 7 : masse
Après euh... je ne sais plus.
Si tu n'as toujours pas de réponse d'ici là, j'expliquerais plus en détail (si je ne suis pas HS).

Cordialement, uaip.
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
21 nov. 2008 à 14:19
Salut,

Une recherche sur le site
et hop

http://www.cppfrance.com/codes/COMMUNICATION-RS232-VIA-PORT-COM_42942.aspx

C'est pas compliqué ;-)
0
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
21 nov. 2008 à 17:14
D'après les commentaires, la source a l'air plutôt "foireuse".

Cordialement, uaip.
0
cs_nlend Messages postés 3 Date d'inscription vendredi 31 octobre 2008 Statut Membre Dernière intervention 25 novembre 2008
24 nov. 2008 à 11:14
salut uaip!
tu a l'air de trop bien t'y connaitre.
veux-tu m'aider ? surtout je voudrais bien me faire comprendre me but est de comprendre pour pouvoir réaliser moi-meme d'autres codes communiquant aves le port serie RS232 puis apres le usb.  

je suis suspendu à ta reponse!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
uaip Messages postés 1466 Date d'inscription mardi 20 février 2007 Statut Membre Dernière intervention 7 février 2011
24 nov. 2008 à 20:19
Euh... "trop bien" m'y connaître, c'est vite dit ^^
Je connais juste les bases de cette liaison, et encore c'est plutôt le protocole RS232-C (mais d'après mes recherches " In common, modern usage, there is no difference between RS-232 and RS-232C, protocol.")
Donc allons-y !
On va admettre que tu connais les normes de ce protocole (tensions entre -15 et 15V, logique négative, etc). Tu dois utiliser un connecteur DB9 (9broches) ou DB25 (25 broches).

En gros, tu as 4 classes de signaux :
- PG et SG : masse de protection et point de référence des tensions, obligatoire
- TD : émission série
- RD : réception série
- DTR, DSR, RTS, CTS, DCD : signaux de contrôle de la liaison série

Ensuite, le protocole à respecter est celui-ci :
- validation de la mise sous tension (DTE émetteur, DCE récepteur)
- validation de la communication (signaux de contrôle confirmés (en gros, ils détectent qu'il n'y a pas d'erreur))
- échange de données (suivant l'horloge de transmission sur TD et RD)

Maintenant, je reviens à ce que je disais la dernière fois, mais cette fois-ci je m'aide de mes petits schémas chéris

Le protocole envisage un "Montage à cable droit", c'est le schéma de cablage par défaut, mais apparament (je ne veux pas dire de connerie) il n'est pas possible de le mettre en pratique (remarque, c'est logique...)
DTE (émetteur)                  DCE (récepteur)
1 ---------- Masse ------- 1
TD 2 --------------------> 2 RD
RD 3 <------------------- 3 TD
RTS 4 ------------------> 4 CTS
CTS 5 <------------------ 5 RTS
DSR 6 <----------------- 6 DTR
7 ----- PG (Masse) ------ 7
DCD 8 <----------------- 8 DCD
DTR 20 -----------------> 20 DSR

Comme tu le vois, les branchements vont par paire.
Dans ton cas, (c'est là où je nage un peu), à ta place je regarderais les docs de tes PC pour voir s'ils sont DTE ou DCE (mais euh.. je pense bien qu'un PC est toujours DTE).
Au cas ou, pour vérifier, il suffit de regarder la broche TD. C'est toujours la broche 2 chez un DTE et la broche 3 chez un DCE.
SI c'est bien 2 DTE, il faut alors permuter certains branchements. Par exemple :
TD 2 -----------|---------> 2 TD
RD 3 <---------|---------- 3 RD
Le schéma est très moche, mais en gros, les câbles se croisent

Bon, je m'arrête là pour les généralités, parce-que si j'ai bien compris ce n'est pas le cable que tu veux faire, mais le programme qui permet d'envoyer les signaux.
Je m'apprétais à expliquer un peu, mais j'avoue que la source mentionnée par nhervagault est assez explicative. C'est du C++ mais bon, mise à part les connecteurs d'entrée/sortie standard, le principe reste le même.
D'après la source :
GetCommState();//Initialisation du port

WriteFile();//Pour écrire sur le port
ClearCommError();//Lecture du nombre de caractères
ReadFile();//Lecture des octets
etc...

Tout ça, je ne connais pas (mais tu m'as donné envie d'essayer, tiens).
Tout est indiqué (et bien commenté) dans la source.

J'espère ne pas avoir fait un commentaire trop inutile ou trop vague...
Bonne chance

Cordialement, uaip.
0
cs_nlend Messages postés 3 Date d'inscription vendredi 31 octobre 2008 Statut Membre Dernière intervention 25 novembre 2008
25 nov. 2008 à 07:51
bonjour,
et surtout grand merçi à vous deux je n'ai plus qu'à me lancer!

cordialement!
0
Rejoignez-nous