Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : liaison série 9 bit (rs232) [ Système / Périphérique ] (Francois F)

mardi 12 février 2008 à 18:13:19 | liaison série 9 bit (rs232)

Francois F

Bonjour à tous,

Je voudrais savoir s'il y en a qui ont déjà utilisé une liaison série avec un protocole 9 bit.

Pour l'instant j'utilise l'API de windows à partir de delphi. Ca marche très bien avec 8 bit.

Il existe bien le paramètre ByteSize mais il est limité à 8 bit.

BYTE ByteSize;             // number of bits/byte, 4-8

Le "protocole" 9 bit est simplement un bit supplémentaire que l'on ajoute au 8 bit du byte. Je m'en sers pour faire une communication sur un bus multiprocesseurs (carte à microcontrolleur). Le 9ième bit sert à indiquer si on envoie une donnée ou une adresse, ce qui permet, au niveau des cartes esclaves de travailler sur interruption lorsqu'on reçoit une adresse (9ième bit ou bit 8 = 1) (bit 8 car le 1er bit est le bit 0à) et de ne pas être interrompu par les données (bit 8 = 0), ce qui simplifie fortement le programme.

Donc je me demande s'il y a une astuce pour le faire avec l'api de windows ou s'il existe un composant à ajouter qui permettrait de le faire.


D'avance, merci
François F.

mardi 12 février 2008 à 19:30:32 | Re : liaison série 9 bit (rs232)

lo_63

serial data format


voici une trame serie donc si la parité est up donc tu as 9 bits


j'espere que ca pourra d'aider


mercredi 13 février 2008 à 04:12:40 | Re : liaison série 9 bit (rs232)

f0xi

Membre Club Administrateur CodeS-SourceS

stock dans un word ...

word -> valeur and $01FF => 9bits



deefsign.gif

mercredi 13 février 2008 à 09:00:36 | Re : liaison série 9 bit (rs232)

Francois F


lo_63, j'ai pensé aussi au bit de parité, en utilisant une parité mark ou space.

Le problème c'est qu'il faudrait, chaque fois passer par le Setcomstate et de changer le type de parité à chaque fois que l'on désire changer le bit 8.
càd:


    if GetCommState (hPort,dcbCom) then
    begin
      dcbCom.Baudrate:=baudrate; //baudrate
      dcbCom.ByteSize:=8;
      dcbCom.Parity:=Byte(Parity);
      dcbCom.Flags:=0;
      SetCommState (hPort, dcbCom);
    end;


Ce qui me gène c'est que je ne sais pas si c'est le plus efficace (est-ce que le changement peut fonctionner suffisamment rapidement ou y a-t-il un delai qui correspond au temps d'émission de plusieurs byte,
 qu'est-ce qui se passe si je fais le changement et que le buffer est plein?

Je pensais qu'il y avait moyen de passer par la EscapeCommFunction, pour changer la parité, comme on le fait pour lire ou écrire les lignes d'entrée - sortie du port.

command:=SETDTR;

if (EscapeCommFunction (form1.hPort,command)=false) then
MessageDlg ('Error changing signal : '+#13+#10+SysErrorMessage(GetLastError), mtError,[mbOk],0);



A tester pour voir si ça fonctionne.


f0xi, je suppose que tu veux dire envoyer 2 bytes et de n'utiliser qu'un bit pour le 2ième.  Si c'est ça, le problème est que la structure n'est pas correcte (elle n'est pas changée, toujours start bit + 8 bit + 1 bit de stop.
De plus je ne maitrise pas l'analyse des données au niveaux des cartes esclaves à microcontrolleurs car l'usart (dispositif qui s'occupe de la liaison série) est en hardware, ce qui signifie que je ne sais rien changer moi même puisque graver dans le silicium.

Merci pour vos réponses



vendredi 15 février 2008 à 15:06:02 | Re : liaison série 9 bit (rs232)

lo_63

bonjour

Pour ce qui est des interface serie j'utilise plutot un composant le 'TComPort'
ou tu peux changer a la volée les parametres.
[ Lien ]

En plus dans ce source tu as plusieurs exemple qui sont simple.

Pour le buffer il faudrai faire une vérification avant de changer d'etat.

Comme je connais pas le hardware que tu utilise ni l'application ca etre difficile pour moi pour te donner un mode operatoire pour ton source.

voila
Mick








Cette discussion est classé dans : série, byte, rs232, liaison, bit


Répondre à ce message

Sujets en rapport avec ce message

Capture PORT RS232 [ par LaurentGrob ] Je cherche un soft ou mieux une source permettant d'éffectuer la capture des données arrivant sur un port RS-232 et qui les mettent dans un fichierJe Liaison série [ par Quinten ] Je veux savoir comment créer une application en Delphi pour communique avec des circuits électroniques via le port série de l'ordinateur.Merci d'avanc Convertir des caractères recus sur port série [ par JoSyl ] Bonjour,J'ai fais des recherches, mais je n'ai pas trouvé ce que je voulais alors voici ma question :Je recois une série de caratères sur un port séri delphi liaison entre 2 tdblookupcombobox [ par towtue ] bonjour, Je voudrais savoir comment faire une liaison entre 2 tdblookupcombobox. Car j'ai fait un programme en delphi sur une base de donnée de progra rs232 delphi sauvegarde [ par youss31 ] please,please c urgentslt ts le monde je veut savoir comment configure (programmer) en delphi afin de recuperer des donner(valeur) par le  rs232 et le Son wave avec nombre de bit par échantillon = 16 [ par airefrais ] Bonjour à tous,ça fait un long moment que j'essaye de produire produire un fichier wave qui a 16 pour nombre de bit par échantillon et puis de lire ce liaison Serveur COM/OLE <-----> ASP [ par Mircasi ] Salut,J'ai un probleme de liason entre mon serveur COM/OLE et ma page ASP. En fait, j'arrive a recevoir des variables envoyer en html (en POST ou GET) les supers heaxadecimal [ par Shadow ] J'ai deux variable de type byte, et j'aimerais en faire qu'un chiffre en hexadecimal;ex : c1 : byte; c2 : byte; c1 := 4; c2 := F; j Communication port série [ par KissCool ] Je recherche des infos sur le composant 'TApdComPort'; émission et réception de données par l'intermédiaire du port série. Je souhaite communiquer ave fichier offset byte ??? [ par ELECTRORESiSTiK ] Salut,Je cherche à lire un fichier et à en afficher chaque byte et offset correspondant, c'est-à-dire par exemple :0DE6E6h EBh0DE6E7h 18hetc..Merci d'


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,123 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.