Programmation.c : Port série
Posté par lem__mel () le 26 juin 2006
0
Bonjour,un petit branchement me permet de recevoir signal sur une des broches d'un port série, et le but du jeu est de déterminer quand il y a changement d'état sur cette broche.
J'ai donc réalisé un petit programme qui lit l'état de cette broche (sur code est inspiré de celui de statserial), et tout fonctionne bien lorsque le signal est lent, mais pas lorsqu'il est rapide.
J'ai fait différents essais (code release, réglage du port sur 115000 bauds, nice) mais rien n'y fait je ne vois pas tous les signaux.
Quelqu'un a-t-il une idée ?
PS :
- je suis sûr des signaux car ceux-ci sont générés par un générateur de signal
- pour mes tests de lecture, cela échoue à la valeur de 1280 tests par seconde, alors que j'aurai besoin au final de plus de test !
> Lire le message (16 commentaires, moyenne: 1,6).
Vous avez demandé le commentaire #727544.


Linux temps reel
Je me demande si linux est bien indiqué pour ce genre de traitement. A mon avis, un OS temps réel se comportera mieux (au hasard, QNX).
Au siecle dernier, j'echantillonais à plus de 20000KHZ un convertisseur analogique/numerique sur une carte dédié ISA d'un P200, et pas sous interruption (uniquement en poll), mais sous QNX.
A priori, 1300Hz c'est une fréquence tellement basse que rien ne devrait pouvoir t'empecher d'echantilloner une ligne du port série. A moins que l'UART ait un débit limité, c'est a dire qu'elle ne renvois pas le signal qu'elle recoit en entrée.
Tu peux aussi jouer sur les valeurs de quatum de temps du noyau, pour faire en sorte que les taches utilisateurs aient moins de temps a consacrer, mais plus rapidement.
Les dalles brillantes c'est pourri
[ Répondre ]
[^]Re: Linux temps reel
Et sur le port parallele, cela ne serait pas plus simple ? (les 8 bits de données sont directements accessibles sur un port, d'apres mes vagues souvenirs de ma Bible Du PC)
Les dalles brillantes c'est pourri
[ Répondre ]
[^]Re: Linux temps reel
cette carte était une carte d'acquisition ? Auquel cas, tu aurais déjà là un périphérique dédié à ce genre de chose ce qui changerait la donne, non ?
Le temps "réel" est une solution qui est envisageable, mais n'est-ce pas un peu lourd juste pour avoir des "bips" ? (c'est vrai quoi :-) quand on pense que l'on a des PC qui va vont à des Mhz ou Ghz, ne pas pouvoir suivre des signaux à quelques kilos Hz c'est triste ...)
[ Répondre ]
[^]Re: Linux temps reel
Il me semble qu'en utilisant un autre port tu pourrais aisément grimper en fréquence.
Par exemple, GNURadio (http://www.gnu.org/software/gnuradio/index.html) permet de capter des signaux comme la HDTV (plusieurs Ghz) mais moyennant l'utilisation du PCI / usb2 ...
Peut être l'utilisation de l'usb serait-elle avisée dans ton cas ?
[ Répondre ]
[^]Re: Linux temps reel
Peut être l'utilisation de l'usb serait-elle avisée dans ton cas ?
je ne sais pas si c'est plus adéquat (surtout qu'il faut se débrouiller pour que cela arrive sur le port USB), mais c'est toujours une piste :-), merci.
[ Répondre ]