Négatif. Si c'est pour ajouter un PIC externe, autant acheter une
carte de contrôle existante.
Pour le ring0, sous XP heu, ça risque d'être chaud.
J'y connais rien. Pourquoi chaud ?
Négatif. Si c'est pour ajouter un PIC externe, autant acheter une
carte de contrôle existante.
Pour le ring0, sous XP heu, ça risque d'être chaud.
J'y connais rien. Pourquoi chaud ?
Négatif. Si c'est pour ajouter un PIC externe, autant acheter une
carte de contrôle existante.
Pour le ring0, sous XP heu, ça risque d'être chaud.
J'y connais rien. Pourquoi chaud ?
Vincent Burel :
>
> Je genre de chose se fait en faisant du streaming.
> On sort une quantité de donnée à un débit fixe, exemple 10 50 ou 100 Khz
> (comme dans l'audio),
> et on approvisionne le port par buffer (de 10 , 30, 50 ou meme 100ms).
> Ainsi controle t'on le flux complet, c'est ce qui a de plus précis.
Je suis pas sûr d'avoir compris. Empiler les trames dans un buffer
plutôt que les sortir directement sur le port, ça pose pas de problème.
Mais le vrai souci, c'est comment vider ensuite le buffer vers le port à
une fréquence donnée sans se faire préempter par le scheduler ?
Mon problème, c'est pas la fréquence, c'est d'éviter d'avoir des trous
dans la trame quand le scheduler préempte du temps CPU pendant quelques
millisecondes. J'ai alors une rupture de la continuité de la trame.
Si le truc c'est de mettre une horloge externe ou recomposer la trame
sur un chip externe, négatif. Le but est de connecter le port parallèle
directement à une carte standard qui n'est pas modifiée. Pas
d'intermédiaire.
Ou alors y'a un truc qui m'a échappé ? Désolé, je connais rien au
Vincent Burel :
>
> Je genre de chose se fait en faisant du streaming.
> On sort une quantité de donnée à un débit fixe, exemple 10 50 ou 100 Khz
> (comme dans l'audio),
> et on approvisionne le port par buffer (de 10 , 30, 50 ou meme 100ms).
> Ainsi controle t'on le flux complet, c'est ce qui a de plus précis.
Je suis pas sûr d'avoir compris. Empiler les trames dans un buffer
plutôt que les sortir directement sur le port, ça pose pas de problème.
Mais le vrai souci, c'est comment vider ensuite le buffer vers le port à
une fréquence donnée sans se faire préempter par le scheduler ?
Mon problème, c'est pas la fréquence, c'est d'éviter d'avoir des trous
dans la trame quand le scheduler préempte du temps CPU pendant quelques
millisecondes. J'ai alors une rupture de la continuité de la trame.
Si le truc c'est de mettre une horloge externe ou recomposer la trame
sur un chip externe, négatif. Le but est de connecter le port parallèle
directement à une carte standard qui n'est pas modifiée. Pas
d'intermédiaire.
Ou alors y'a un truc qui m'a échappé ? Désolé, je connais rien au
Vincent Burel :
>
> Je genre de chose se fait en faisant du streaming.
> On sort une quantité de donnée à un débit fixe, exemple 10 50 ou 100 Khz
> (comme dans l'audio),
> et on approvisionne le port par buffer (de 10 , 30, 50 ou meme 100ms).
> Ainsi controle t'on le flux complet, c'est ce qui a de plus précis.
Je suis pas sûr d'avoir compris. Empiler les trames dans un buffer
plutôt que les sortir directement sur le port, ça pose pas de problème.
Mais le vrai souci, c'est comment vider ensuite le buffer vers le port à
une fréquence donnée sans se faire préempter par le scheduler ?
Mon problème, c'est pas la fréquence, c'est d'éviter d'avoir des trous
dans la trame quand le scheduler préempte du temps CPU pendant quelques
millisecondes. J'ai alors une rupture de la continuité de la trame.
Si le truc c'est de mettre une horloge externe ou recomposer la trame
sur un chip externe, négatif. Le but est de connecter le port parallèle
directement à une carte standard qui n'est pas modifiée. Pas
d'intermédiaire.
Ou alors y'a un truc qui m'a échappé ? Désolé, je connais rien au
non, le principe du streaming , (si c'est possible avec le port
parallèle) c'est que c'est le port qui s'occupe de faire sortir les
données à débit constant. Le client (l'utilisateur : vous) n'a qu'à
fournir des buffer d'une taille fixe (appelé latence) qui vont
s'empiler dans la stack du port.
L'intéret est justement d'éviter d'avoir des coupures sur le flux,
puisqu'avec cette méthode il s'uffit d'envoyer quelque buffer par
seconde pour gérer des débit beaucoup plus gros. En audio, on peut
par exemple envoyer 10 buffer par seconde pour faire sortir 192 000
échantillons dans le même laps de temps. Evidemment il ne faut pas
perdre de temps dans l'envoi des buffer, mais 10 buffer par seconde
ca laisse 100 ms par buffer, et comme on s'arrange pour avoir au
moins un buffer d'avance (soit 200ms), ca fait un flux très difficile
à corrompre (même sous windows).
non, le principe du streaming , (si c'est possible avec le port
parallèle) c'est que c'est le port qui s'occupe de faire sortir les
données à débit constant. Le client (l'utilisateur : vous) n'a qu'à
fournir des buffer d'une taille fixe (appelé latence) qui vont
s'empiler dans la stack du port.
L'intéret est justement d'éviter d'avoir des coupures sur le flux,
puisqu'avec cette méthode il s'uffit d'envoyer quelque buffer par
seconde pour gérer des débit beaucoup plus gros. En audio, on peut
par exemple envoyer 10 buffer par seconde pour faire sortir 192 000
échantillons dans le même laps de temps. Evidemment il ne faut pas
perdre de temps dans l'envoi des buffer, mais 10 buffer par seconde
ca laisse 100 ms par buffer, et comme on s'arrange pour avoir au
moins un buffer d'avance (soit 200ms), ca fait un flux très difficile
à corrompre (même sous windows).
non, le principe du streaming , (si c'est possible avec le port
parallèle) c'est que c'est le port qui s'occupe de faire sortir les
données à débit constant. Le client (l'utilisateur : vous) n'a qu'à
fournir des buffer d'une taille fixe (appelé latence) qui vont
s'empiler dans la stack du port.
L'intéret est justement d'éviter d'avoir des coupures sur le flux,
puisqu'avec cette méthode il s'uffit d'envoyer quelque buffer par
seconde pour gérer des débit beaucoup plus gros. En audio, on peut
par exemple envoyer 10 buffer par seconde pour faire sortir 192 000
échantillons dans le même laps de temps. Evidemment il ne faut pas
perdre de temps dans l'envoi des buffer, mais 10 buffer par seconde
ca laisse 100 ms par buffer, et comme on s'arrange pour avoir au
moins un buffer d'avance (soit 200ms), ca fait un flux très difficile
à corrompre (même sous windows).
Arnold McDonald (AMcD) :
Peut-être te faudrait-il un matériel spécial ? Genre :
http://www.lextronic.fr/Comfile/golden.htm
Négatif. Si c'est pour ajouter un PIC externe, autant acheter une carte de
contrôle existante. Mais le but est d'attaquer directement une carte de
puissance pour moteurs pas-à-pas sans aucun intermédiaire. Ces cartes se
ressemblent toutes plus ou moins et ont en commun de demander pour chaque
moteur un signal Clock qui fait avancer d'un pas et un signal Direction
pour faire tourner dans un sens ou dans l'autre. Les deux sont du TTL donc
compatible port parallèle.
Arnold McDonald (AMcD) :
Peut-être te faudrait-il un matériel spécial ? Genre :
http://www.lextronic.fr/Comfile/golden.htm
Négatif. Si c'est pour ajouter un PIC externe, autant acheter une carte de
contrôle existante. Mais le but est d'attaquer directement une carte de
puissance pour moteurs pas-à-pas sans aucun intermédiaire. Ces cartes se
ressemblent toutes plus ou moins et ont en commun de demander pour chaque
moteur un signal Clock qui fait avancer d'un pas et un signal Direction
pour faire tourner dans un sens ou dans l'autre. Les deux sont du TTL donc
compatible port parallèle.
Arnold McDonald (AMcD) :
Peut-être te faudrait-il un matériel spécial ? Genre :
http://www.lextronic.fr/Comfile/golden.htm
Négatif. Si c'est pour ajouter un PIC externe, autant acheter une carte de
contrôle existante. Mais le but est d'attaquer directement une carte de
puissance pour moteurs pas-à-pas sans aucun intermédiaire. Ces cartes se
ressemblent toutes plus ou moins et ont en commun de demander pour chaque
moteur un signal Clock qui fait avancer d'un pas et un signal Direction
pour faire tourner dans un sens ou dans l'autre. Les deux sont du TTL donc
compatible port parallèle.
D'accord, mais tu dois réaliser qu'aucun OS généraliste (Windows, Linux,
etc....) n'est concu pour ce genre de choses, et que tu n'obitendras au
mieux que du bricolage. Entre autres choses, je m'interdirais formellement
de faire ce genre de pilotage directement par un PC si le moteur a un
équipement de sécurité (ou susceptible d'êter dangereux) derrière.
Sinon, AMcD t'a donné la bonne piste : un driver WDM, mais si tu ne connais
pas du tout l'environnement Windows, la courbe d'apprentissage pour réaliser
ce genre de projets risque d'être "rude".... Windows n'est tout simplement
pas conçu pour faire ce genre de choses...
D'accord, mais tu dois réaliser qu'aucun OS généraliste (Windows, Linux,
etc....) n'est concu pour ce genre de choses, et que tu n'obitendras au
mieux que du bricolage. Entre autres choses, je m'interdirais formellement
de faire ce genre de pilotage directement par un PC si le moteur a un
équipement de sécurité (ou susceptible d'êter dangereux) derrière.
Sinon, AMcD t'a donné la bonne piste : un driver WDM, mais si tu ne connais
pas du tout l'environnement Windows, la courbe d'apprentissage pour réaliser
ce genre de projets risque d'être "rude".... Windows n'est tout simplement
pas conçu pour faire ce genre de choses...
D'accord, mais tu dois réaliser qu'aucun OS généraliste (Windows, Linux,
etc....) n'est concu pour ce genre de choses, et que tu n'obitendras au
mieux que du bricolage. Entre autres choses, je m'interdirais formellement
de faire ce genre de pilotage directement par un PC si le moteur a un
équipement de sécurité (ou susceptible d'êter dangereux) derrière.
Sinon, AMcD t'a donné la bonne piste : un driver WDM, mais si tu ne connais
pas du tout l'environnement Windows, la courbe d'apprentissage pour réaliser
ce genre de projets risque d'être "rude".... Windows n'est tout simplement
pas conçu pour faire ce genre de choses...
Sinon, AMcD t'a donné la bonne piste : un driver WDM, mais si tu ne
connais pas du tout l'environnement Windows, la courbe d'apprentissage
pour réaliser ce genre de projets risque d'être "rude".... Windows
n'est tout simplement pas conçu pour faire ce genre de choses...
Sinon, AMcD t'a donné la bonne piste : un driver WDM, mais si tu ne
connais pas du tout l'environnement Windows, la courbe d'apprentissage
pour réaliser ce genre de projets risque d'être "rude".... Windows
n'est tout simplement pas conçu pour faire ce genre de choses...
Sinon, AMcD t'a donné la bonne piste : un driver WDM, mais si tu ne
connais pas du tout l'environnement Windows, la courbe d'apprentissage
pour réaliser ce genre de projets risque d'être "rude".... Windows
n'est tout simplement pas conçu pour faire ce genre de choses...
Bref, faut faire pas mal de test pour trouver les bonnes valeurs. Cela
étant, ce principe est présent un peu partout.
Bref, faut faire pas mal de test pour trouver les bonnes valeurs. Cela
étant, ce principe est présent un peu partout.
Bref, faut faire pas mal de test pour trouver les bonnes valeurs. Cela
étant, ce principe est présent un peu partout.
C'est la base de tous les flux. Et la plupart des carte ou controleur de
transmission de données synchrones ou asynchrones fonctionnent selon une
stratégie de flux (donc avec une possibilité de savoir quand le port en
question aura besoin de donnée pour assurer un streaming continu).
C'est la base de tous les flux. Et la plupart des carte ou controleur de
transmission de données synchrones ou asynchrones fonctionnent selon une
stratégie de flux (donc avec une possibilité de savoir quand le port en
question aura besoin de donnée pour assurer un streaming continu).
C'est la base de tous les flux. Et la plupart des carte ou controleur de
transmission de données synchrones ou asynchrones fonctionnent selon une
stratégie de flux (donc avec une possibilité de savoir quand le port en
question aura besoin de donnée pour assurer un streaming continu).
Vincent Burel :
>
> C'est la base de tous les flux. Et la plupart des carte ou controleur de
> transmission de données synchrones ou asynchrones fonctionnent selon une
> stratégie de flux (donc avec une possibilité de savoir quand le port en
> question aura besoin de donnée pour assurer un streaming continu).
Oui mais je pense qu'on est dans un cas de figure différent. Dans mon
appli, il ne s'agit pas de bufferiser et transmettre des octets à un
périphérique vorace, mais positionner les bits du port parallèle selon
une trame dont la fréquence est décidée par l'appli, pas par le
périphérique.
Le streaming est la fourniture d'octets sans rupture de
buffer. Dans mon cas, ce n'est pas le buffer le problème : il faut
fournir des octets selon une cadence précise. Mon périphérique ne
demande pas d'octet suivant ; il prend les bits du port en l'état.
Vincent Burel :
>
> C'est la base de tous les flux. Et la plupart des carte ou controleur de
> transmission de données synchrones ou asynchrones fonctionnent selon une
> stratégie de flux (donc avec une possibilité de savoir quand le port en
> question aura besoin de donnée pour assurer un streaming continu).
Oui mais je pense qu'on est dans un cas de figure différent. Dans mon
appli, il ne s'agit pas de bufferiser et transmettre des octets à un
périphérique vorace, mais positionner les bits du port parallèle selon
une trame dont la fréquence est décidée par l'appli, pas par le
périphérique.
Le streaming est la fourniture d'octets sans rupture de
buffer. Dans mon cas, ce n'est pas le buffer le problème : il faut
fournir des octets selon une cadence précise. Mon périphérique ne
demande pas d'octet suivant ; il prend les bits du port en l'état.
Vincent Burel :
>
> C'est la base de tous les flux. Et la plupart des carte ou controleur de
> transmission de données synchrones ou asynchrones fonctionnent selon une
> stratégie de flux (donc avec une possibilité de savoir quand le port en
> question aura besoin de donnée pour assurer un streaming continu).
Oui mais je pense qu'on est dans un cas de figure différent. Dans mon
appli, il ne s'agit pas de bufferiser et transmettre des octets à un
périphérique vorace, mais positionner les bits du port parallèle selon
une trame dont la fréquence est décidée par l'appli, pas par le
périphérique.
Le streaming est la fourniture d'octets sans rupture de
buffer. Dans mon cas, ce n'est pas le buffer le problème : il faut
fournir des octets selon une cadence précise. Mon périphérique ne
demande pas d'octet suivant ; il prend les bits du port en l'état.
Vous utilisez la fréquence MAX du port (qui est fixe
ou la même que eclle du périphe connecté)
Vous utilisez la fréquence MAX du port (qui est fixe
ou la même que eclle du périphe connecté)
Vous utilisez la fréquence MAX du port (qui est fixe
ou la même que eclle du périphe connecté)