Protocole série rs232

cmoilastar Messages postés 48 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 24 mars 2005 - 19 avril 2004 à 15:30
 cs_za3za3 - 22 mai 2005 à 12:11
Voila, j'ai un gros probleme, je suis en stage et je dispose d'unbanc de mesure relié à un ordinateur. Ils communiquent entre eux par l'intermédiaire d'un logiciel fait par le constructeur. Moi je dois faire un autre logiciel plus simple. Mais pour cela, il me faut le protocole de communication utilisé et comme le logiciel est fait par la meme boite que le banc, il est impossible d'avoir des infos.
J'ai déja fait plusieurs mesures, et j'ai finalement dénudé les cables de ma liaison série pour visualiser la trame de ce qui est envoyé par le banc à l'oscillo. seulement, la je ne sais plus quoi faire, est-ce qaue quelqu'unpourait m'aider et me dire comment faire pour determiner le protocole de communication à l'aide de la trame, ou si quelqu'un a d'autres idées, je vous serais vraiment reconnaissant de me les faire parvenir....
SVP aidez moi !!!!
Merci d'avance

30 réponses

cs_liquide Messages postés 1016 Date d'inscription samedi 22 mars 2003 Statut Membre Dernière intervention 24 juin 2008
20 avril 2004 à 00:24
Bin alors !!! c'est toi la star ou pas !!! ;-)

le RS232 n'utilise qu'en grande priorité 2fils, le "receive" et le "send" pour le reste je ne peux pas te dire mais ca correspond a des données dites fixes comme les caractères.

pour des valeurs évoluant, je ne peux pas te dire. Par contre peut etre peux tu faire un début de soft avec l'activex MSComm ou tu va capturer tes evenements de ton port série, ensuite ca sera a toi de les analyser pour les rendre compréhensibles dans ton soft. Dans la mesure ou je ne sais pas ce que tu recupère comme info c'est difficile de t'en dire plus, par contre pour une base de travail peut etre peux tu jeter un coup d'oeil à :
http://www.vbfrance.com/code.aspx?ID=20532

en principe les numéros de broches de chaque coté de ton cable son identiques (ie le 2 avec le 2, le 4 avec le 4 etc).
le schéma de cablage que j'ai, est relié comme ceci :

TD----->RD 2-2 (cesont les num des fils)
RD----->TD 4-4
RTS----->CTS 3-3
CTS----->RTS 6-6(0volt)
0V ------>0V 5-5
5V------->5V 1-1

(faut le lire comme ceci: coté machine ------>Coté PC) mais c'estle branchement des machines que j'utilise , pour toi ca peut différer si le constructeur a voulu semer la zizanie

bonne prog et surtout bon courage :-)
liquide
0
ultraxa Messages postés 127 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 janvier 2007
20 avril 2004 à 00:30
salut !!!si c'est un port serie logiquement ça doit etre un protocole rs232 (je pense que si c'est une simple connection entre un pc et banc , il vont pas se faire chier a utiliser d'autre chose, bon toutefois c'est mon avis) . ba deja cherche sur le net "protocole rs232" a mon avis tu va trouver qqchose qui va t'aider et puis c'est assez simple le rs232 tu as un fil tx(transmission) et un fil rx(reception), une masse , et puis le rzeste des fils ce sont des flux de controle genre l'emeteur(pc) envoie une donnée au recpteur(banc). lui le banc pourrait par ex lui repondre par le flux de controle : "eh stop mr pc arrete d'envoyer tes données !!!! j'ai pas 4 bras!!!! (voila mais le mieux c'est de se documenter a fond sur le net).par ecrit c'est difficile)
sinon si tu veux envoyer tes données a partir d'uyne appli vb , il ya un controle "mscomm" qui sera amplement suffisant.
dernier point , si tu sais vraiment pas ce qu'il faut envoyer pr piloter le banc et ben.....:soit tu prend un analyseur logique et tu analyse des données trame par trame ou soit ....ben t'abandonne !!!(je plaisante ) , ou soit tu te document sur le banc

sinon derniere petite question qui me vient a l'esprit : c'est quoi ton banc de mesure ? vois tu les données arrivé par ex sur un afficheur genre CR LF ...?
0
cmoilastar Messages postés 48 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 24 mars 2005
20 avril 2004 à 09:19
en faitn , c'est un banc qui mesure les cernes (la largeur des différents rayons) sur des bois et il envoie des données a l'ordi. La trame que j'ai pu voir à l'oscillo, c une suite de 34 ou35 bits qui serépetent indefiniment et qui changent quand on déplace le capteur. Ce qui me parait vraiment bizarre, c'est la longueur de la trame, vous ne trouvez pas ? en fin voila, si cela vous permet de me donner de plus amples informations, je vous remercie d'avance.
PS: la marque du banc, c RINNTECH et le constructeur veut rien donner (FTC ou trucs du genre) et ya rien non plus sur le net...
0
ultraxa Messages postés 127 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 janvier 2007
20 avril 2004 à 11:54
35 bits c'est pas bcp !!! il doit avoir 3 ou 4 octet!! et c'est vrai que sur un oscillo ça va vite !!! as tu le moyen de te procurer un analyseur de spectre ? sinon ce que tu fait tu recupere ces bits sur le port serie de ton pc avec une petite appli vb ou bien tu prend l'hypzer terminal windows , par contre il faut absolument que tu connaisse le bit/s (avec l'osccilo ça peut se calculer) et apres il faut que tu analyse une trame pour savoir si c'est du 8bit,n,1stop ou autre (j'espere que tu t'es documenté sur le rs232) , moi je pense que c'est une des solutions si tu as n'as pas de doc du banc , sinon peut on piuloter le banc par le pc?
0

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

Posez votre question
ultraxa Messages postés 127 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 janvier 2007
20 avril 2004 à 11:56
rrectification: je voulais dire analyseur logique
0
cs_nr Messages postés 164 Date d'inscription mardi 16 décembre 2003 Statut Membre Dernière intervention 11 juillet 2005
20 avril 2004 à 12:18
Oui c'est mieux avec un analyseur logique.

33 ou 36 bits correspond à 3 octets (1start, probablement 8 de donnés, 1parité et 1 ou 2 stop) le tout * 3. A ta place comme tu à charcuté le cordon série, je ferai une dérivation de la masse du tx et rx, et ces datas du les branche à un autre pc. Tu ouvre l'hyperterminal, tu met une com en 9600,8,N,1. Sur l'hyperterminal de windows XP tu as une adaptation de la vitesse en mode auto, donc déja tu n'as pas à la chercher. Avec cet espion série essaye de trouver les trames. Après l'outil mscomm sous vb fonctionne parfaitement.

@+
0
cmoilastar Messages postés 48 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 24 mars 2005
20 avril 2004 à 15:18
ca yé, j'ai enfin réussi a comprendre coment le banc parlait avec l'ordi, il envoie des trames bizarres et marche avec des retenues pour compter le deplacement, c bizarre, mais ca marche.
Maintenant, le plus gros du probleme ca va etre de faire un programme, pour commencer, j'aimerais bien savoir si l'un d'entre vous a une idée pour pouvoir récupérer un morceau de la trame avec un progz!!!! Parce que la j'ai réussi a voir comment il comptais avec l'oscillo, mais la trame est completement astandard et les logiciels standards comme l'hyperterminal ne marchent pas, je recois pleins de caracteres bizarres.... l'idéal serait de pouvoir avec un programme, directement récupérer la trame qui arrive sur la patte RX du port série de l'ordi et apres de l'analyser tranquilement, mais j'ai rien trouvé qui me permettait d'acquérir cette trame à l'ordi!!!! si vous avez des idées, n'ésitez pas ...
PS Merci à liquide, nr et ultraxa pour leurs conseils....
0
cmoilastar Messages postés 48 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 24 mars 2005
20 avril 2004 à 15:18
ca yé, j'ai enfin réussi a comprendre coment le banc parlait avec l'ordi, il envoie des trames bizarres et marche avec des retenues pour compter le deplacement, c bizarre, mais ca marche.
Maintenant, le plus gros du probleme ca va etre de faire un programme, pour commencer, j'aimerais bien savoir si l'un d'entre vous a une idée pour pouvoir récupérer un morceau de la trame avec un progz!!!! Parce que la j'ai réussi a voir comment il comptais avec l'oscillo, mais la trame est completement astandard et les logiciels standards comme l'hyperterminal ne marchent pas, je recois pleins de caracteres bizarres.... l'idéal serait de pouvoir avec un programme, directement récupérer la trame qui arrive sur la patte RX du port série de l'ordi et apres de l'analyser tranquilement, mais j'ai rien trouvé qui me permettait d'acquérir cette trame à l'ordi!!!! si vous avez des idées, n'ésitez pas ...
PS Merci à liquide, nr et ultraxa pour leurs conseils....
0
ultraxa Messages postés 127 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 janvier 2007
20 avril 2004 à 16:53
si ce sont des caracteres bzarre ça peut etre normal car ce que tu reçois sur l'hyperterminal ce sont des caracteres ascii par contre il se peut que la vitesse bit/sec ne soient pas la bonne ou bien le nbr de bit...ect..bon sinon en vb , avec l'ocx mscomm tu peux recuperer les données .tu fait une recherche sur ce site sur le port serie , hyperterminal , rs2323 mscommm et tu va bien trouvé quelque chose ,sinon voici un lien d'une source d'un hyperterminal http://www.vbfrance.com/code.aspx?ID=2634
0
cmoilastar Messages postés 48 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 24 mars 2005
21 avril 2004 à 10:18
Normalement, d'apres ce que j'ai pu voir, le banc doit envoyer des trames qui font 1 bit de start, 7 de donnés, et 1 bit de stop. Le tout pour une vitesse avoisinnant les 1000 bit/s.
Le probleme, c'est que quand je me sers d'un hyperterminal, d'une part, avec mscomm, je ne peux pas mettre la vitesse à 1000 donc je la met à 1200 ce qui fait que toutes mes valeurs sont brouillés, et je ne retrouve pas du tout ce que je peux voir à l'oscillo, je trouve cela franchement bizarre et si quelqu'un a une idée, il est le bienvenu...
0
ultraxa Messages postés 127 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 janvier 2007
21 avril 2004 à 11:46
moi je trouve plutot bizarre que ça soit a 1000b/s !!!ça doit etre plutot 1200b/s!!! es tu sur des 1bit start , 7bit, 1stop?? sinon sais tu ce que tu doit recevoir? sur 7bit tu va peut recevoir des valeur de 0 à 127 (255pr 8bit) es si tu regarde un tableau ascii , tu va t'apercevoir qu'il ya bcp de caracteres bizarre voir meme illisible pour hyperterminal ,
0
cmoilastar Messages postés 48 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 24 mars 2005
21 avril 2004 à 13:59
Je suis sur du 1000 bit/s, c'est bien ca le probleme je crois que le banc envoie quatres paquets différents les uns a la suite des autres, indefiniment. J'ai essayé plusieurs format (8 bits 7, 6 etc ) et le seul qui fait que les quatres paquets sont bien envoyés c 7 bits, 1 start et un stop... Si yen a plus, il ya un décalage dans la trame à chaque fois et les valeurs arretent pas de changer!!!! Je pense vraiment que c un probleme de vitesse, tu connaitrais pas le moyen de recevoir qqch à 1000bit/s ?
0
cmoilastar Messages postés 48 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 24 mars 2005
22 avril 2004 à 09:34
En fait, je crois que le plus simple si je veux etre compris,se serait de vous montrer la trame que je recois pour que vous me disiez ce que vous en pensez... je l'ai reproduite sous paint, donc si ca interesse qqn, kil me donne son mail, et je l'envairais...
Merci d'avance.
0
cs_nr Messages postés 164 Date d'inscription mardi 16 décembre 2003 Statut Membre Dernière intervention 11 juillet 2005
22 avril 2004 à 10:11
Salut,
C'est bizarre du 1000 b/s mais avec mscomm tu peux générer ce genre de truc. Tout d'abord il faut que tu ajoutes la librairie microsoftcomcontrol (je fais ca de tête donc qqchose qui resemble). Ensuite tu mets l'objet mscomm sur ta face avant (il reste transparent qd tu lances ton soft). Dans le form principal tu mets :
mscomm1.portcom = 1
mscomm1.settings = 1000,7,n,1 par exemple au fait vérifie si tu n'a pas de pb de parité, car du 1200 b/s avec la bonne parité peut fonctionner.
mscomm1.portopen = true

et qd tu quittes ton prog : mscomm1.portopen = false.

Voila je ne suis pas très sur du .portcom mais c qqchose comme ca, et le reste c bon.

Bonne prog @+
0
cs_nr Messages postés 164 Date d'inscription mardi 16 décembre 2003 Statut Membre Dernière intervention 11 juillet 2005
22 avril 2004 à 10:13
Au faite j'ai oublié, dans les propriétés du mscomm désactive le control de flux matériel si tu fonctionne avec tx rx et la masse seulement.

@+
0
cmoilastar Messages postés 48 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 24 mars 2005
22 avril 2004 à 10:15
j'ai déja essayé avec mscomm mais il ve pas entendre parler du 1000 bit/s, il me dit ke c pas bon!!!! mais, je vais essayer avec une parité, ya ptete de ca, je vous tiens au courant, et si ca interesse qqn de voir la trame que je recois a l'oscillo, ma proposition tiens toujours ;-)
0
cs_nr Messages postés 164 Date d'inscription mardi 16 décembre 2003 Statut Membre Dernière intervention 11 juillet 2005
22 avril 2004 à 11:02
Mets un 1200 bauds et joue avec les autres param, franchement je ne crois pas que ce sois du 1000 bauds car je crois que les uart des pc ne peuvent pas le générer (division de l'horloge impossible).

Tiens moi au courant.
@+
0
cmoilastar Messages postés 48 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 24 mars 2005
22 avril 2004 à 11:28
Jsuis daccord, je pense pas non plus que c du 1000 bauds, mais ce qui est vraiment bizarre, c'est ce qu'il me sort (ce que je vois à l'ascillo), il doit envoyer trois ou quatre paquets différents et je ne vois pas comment faire pour les recuperer a lordi, c'est vraiment une trame que je n'ai jamais vue auparavent, si qqn est intéréssé pour la voir, il me laisse son mail...;
voila, c tout merci @+
0
cmoilastar Messages postés 48 Date d'inscription mardi 13 avril 2004 Statut Membre Dernière intervention 24 mars 2005
23 avril 2004 à 10:59
Bon, ben j'ai pas mal demystifié le truc en fait, le banc envoie quatres paquets en hexadecimal et maintenant, il faut que je me débrouille pour r"cupérer ces paquets, ya pas qqn qui sait comment capter des infos en hexadecimal avec vb6 je veux bien....
Merci beaucoup pour tout vos conseils et gespere que vous allez encore pouvoir m'aider....
TCHUS
0
ultraxa Messages postés 127 Date d'inscription mardi 7 janvier 2003 Statut Membre Dernière intervention 21 janvier 2007
23 avril 2004 à 11:46
ba tjrs de la meme façon avec mscomm , et avec mscomm tu recupere des caracteres ascii si tu stockje ca ds une varaible string, mais apres tt est une question de conversion
ex
chr(65) renvoie le caractere en ASCII A
hex(10) renvoie en HEXA A
0
Rejoignez-nous