Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Liaison RS232

2 réponses
Avatar
TouTi
Bonjour

Je me lance dans la liaison PC ==> appareil numérique.
L'ordre qui doit être envoyé est composée d'une trame de bits (0 ou 1)
Par exemple avec deux octets de commandes :
1111111111 0 AAAAAAAA 0 CCCCCCCC 0 CCCCCCCC 0 EEEEEEEE 1
Les A, C et E peuvent être à 0 ou 1.

J'ai bien vu sur le net que l'on pouvait utiliser soit le contrôle MSCOMM ou
une dll (port.dll ou RScom.dll) mais le soucis se pose sur la création de la
durée du bit.

* Un bit 1 est composé d'une tension dans un sens durant 52 à 64 us
(microseconde) (Il y a un million de us dans une seconde) puis d'une tension
inverse (donc dans l'autre sens durant le même temps). Cette répétition
simplifie les décodeurs car les locomotives peuvent être placées dans les 2
sens.
* Un bit 0 est composé d'une tension dans un sens durant 90 à 10000 us. Puis
d'une tension inverse durant 90 à 10000 us. Ces 2 parties n'ont pas besoin
de durer le même temps pour un 0, alors que c'est impératif pour un 1.
http://www.morop.org/fr/normes/nem670_f.pdf

Comment programmer ces alternances et durées??? je n'ai pas trouvé grand
chose dessus :-(

Merci de vos conseils (un peu de code m'aiderait bien ^^ )

--
Touti

2 réponses

Avatar
Jean-marc
TouTi wrote:
Bonjour



Hello,

Je me lance dans la liaison PC ==> appareil numérique.



C'est très bien, il n'y a rien de plsu amusant :-)

L'ordre qui doit être envoyé est composée d'une trame de bits (0 ou 1)
Par exemple avec deux octets de commandes :
1111111111 0 AAAAAAAA 0 CCCCCCCC 0 CCCCCCCC 0 EEEEEEEE 1
Les A, C et E peuvent être à 0 ou 1.



OK.

J'ai bien vu sur le net que l'on pouvait utiliser soit le contrôle
MSCOMM ou une dll (port.dll ou RScom.dll) mais le soucis se pose sur
la création de la durée du bit.



Oui, MSComm est extrèmement pratique.

<snip>

Comment programmer ces alternances et durées??? je n'ai pas trouvé
grand chose dessus :-(



Tu n'as heureusement pas à te soucier de tout ça :-) C'est pour ça qu'on
a créé RS232, pour affranchir le programmeur de la couche bassement
matérielle!

Tout ce que tu as à fair, c'est configurer correctement ton MsComm
(typiquement Vitesse, parité, bits de données, bits de stop), du genre
9600,N,8,1 par exemple (voir à ce sujet la doc de ton matériel).

Ensuite, tu n'as quà envoyer tes trames de commandes (bytes, texte selon
le périphérique). C'est le protocole RS232 associé à un petit composant de
ton PC (l'UART, en général un 8250 ou assimilé) qui fait le travail
hardware, et heureusement pas les programmeurs :-)

J'ai trouvé un petit article intéressant ici si tu t'intérèsses
au hardware :
http://pdfserv.maxim-ic.com/fr/ej/EJ30.pdf

Il ne te reste plus qu'à aller lire la doc (copieuse mais très bien faite)
de MsComm, pour commencer :
http://msdn2.microsoft.com/en-us/library/aa259393(VS.60).aspx

En Googlant un PC, tu trouveras du code en pagaille pour des applis VB
utilisant ce composant.

Bon amusement, car RS232 en VB, c'est un des trucs les plus sympas qui
soit à faire :-)

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Avatar
tout
> Bon amusement, car RS232 en VB, c'est un des trucs les plus sympas qui
soit à faire :-)



OuuuuuHHH si c'est comme ca c'est merveilleux :-))

Merci jean marc, tu es tjs d'un grand secours


TouTi