Casse-tête. - Page 2

Do you have a question? Post it now! No Registration Necessary

Threaded View
Re: Casse-tête.
Le 11/10/2011 22:49, Jean-Christophe a écrit :
Quoted text here. Click to load it


Intéressant,

toutefois, il y a un risque que deux cartes prennent la même adresse, il
n'y a pas détection de collision, deux esclaves répondant de façon assez
proche (mais sans se chevaucher) pour que le maitre n'aie pas le temps
de réagir à cette double réponse, et il attribue une adresse, en réponse
au premier esclave, adresse que deux esclaves prennent en compte.

de plus ce système nécessite que le maitre fasse régulièrement des
broadcast, encombrant la bande passante, et créant des collisions, qui
ne sont pas détectées.

il serait plus simple que ce soit l'esclave qui envoie sa demande
d’adresse au maitre qui lui réponde. Idéalement un identifiant unique
doit être échangé afin d'éviter le double adressage. Ainsi l'occupation
de la bande passante est minimisée.


Je reviens sur la notion de collision: il faut absolument mettre en
place un mécanisme permettant de détecter les collisions, sinon la trame
passera en étant déformée, ce qui est pire (par exemple si l'adresse est
dans l'entête)

la détection de collision peut se faire en hard, comme sur ethernet, ou
bien en mettant des sommes de contrôle pour contrôler l'intégrité des
trames reçues.

JJ


Re: Casse-tête.
Le 13/10/2011 19:32, jj a écrit :
Quoted text here. Click to load it

Alors suivre la délivrance de l'ID d'une interrogation systématique par
le maitre, si plusieurs réponses annulation.


--
capfree  -

Re: Casse-tête.
Le 13/10/2011 19:51, capfree a écrit :
Quoted text here. Click to load it

oui, mais la difficulté est de détecter plusieurs réponses, car il
risque d'y avoir collision si les deux esclaves répondent ensemble.

JJ


Re: Casse-tête.
Le 13/10/2011 20:04, jj a écrit :
Quoted text here. Click to load it
adresse, il
Quoted text here. Click to load it

Redondance n fois, avec un filtrage hardware aigu à la réception du
retour, est-il ou non possible que se reproduise indéfiniment une
parfaite simultanéité?
Peut-être que c'est insoluble et si pas moyen de différencier, est-ce
vital? JC ne dit pas la nature des données à envoyer.

Une mauvaise solution: continuer l'écoute pour situer l'esclave en
analysant ce pourquoi il transmet, je suppose que le maitre attend en
silence que l'esclave prenne l'initiative de transmettre.

--
capfree  -

Re: Casse-tête.
On 13 oct, 20:41, capfree

Quoted text here. Click to load it

Le filtrage hard se fait de lui-mEA%me lors d'une collision sur le bus.
Le filtrage soft se fait par CRC.

Quoted text here. Click to load it

Non, grE2%ce au dE9%lai alE9%atoire avant rE9%ponse.
( en toute rigueur ca reste E0% prouver mathE9%matiquement,
mais mEA%me si ce n'est pas totalement impossible
la probabilitE9% reste suffisamment faible pour l'appli )

Quoted text here. Click to load it

Ca ne tient pas, vu le rejet des collisions
(mEA%me partielles) et la prE9%sence d'un CRC.

Quoted text here. Click to load it

Dans cette phase, la donnE9% transmise est le numE9%ro
E0% attribuer E0% un esclave n'en ayant pas encore.
Ce numE9%ro est encapsulE9% dans une trame
soumise E0% un format et un protocole.

Mais il est vrai que si la trame n'E9%tait composE9%e
que de donnE9%es brutes, sans format ni CRC, vu du
rE9%cepteur les collisions ne seraient pas dE9%tectables.
( ce qui n'est pas le cas ici )

Quoted text here. Click to load it

Non, c'est le contraire ( vois les posts prE9%cE9%dents )
C'est le maitre qui s'adresse aux esclaves,
les esclaves ne prennent JAMAIS l'initiative d'envoyer un
message SAUF en rE9%ponse E0% une requE8%te explicite du maitre.

Re: Casse-tête.
Jean-Christophe avait énoncé :
Quoted text here. Click to load it
Oui, mais à quel esclave ? Il y en aura plusieurs qui le prendront en
compte.
Quoted text here. Click to load it

Oui, c'est en général le principe des échanges maître/esclave.

Enfin si ce système prévu fonctionne, il faudra le faire breveter. Ce
sera une première.

--
In gold we trust (c)



Re: Casse-tête.
On 14 oct, 01:00, Jo Kerr

| la donnE9% transmise est le numE9%ro E0% attribuer
| E0% un esclave n'en ayant pas encore.
| Ce numE9%ro est encapsulE9% dans une trame
| soumise E0% un format et un protocole.

Quoted text here. Click to load it

Au premier qui rE9%pond, sous condition de non-collision.

Quoted text here. Click to load it

Non, et pour les raisons que j'ai dE9%ja
dE9%crit plusieurs fois dans le dE9%tail.

Quoted text here. Click to load it

Jusqu'E0% maintenant, personne n'a dE9%montrE9% que ca ne marchait pas :
la plupart des contres-arguments sont construits sur
la non-dE9%tection de collision (impossible puisque par
nature une collision dE9%truit les donnE9%es des messages)
ou sur une *parfaite* synchronisation de deux trames.
( si peu probable que c'est nE9%gligeable )

LeLapin a soulevE9% un dE9%faut crucial,
mais je *crois* avoir une rE9%ponse valable ...
http://groups.google.com/group/fr.sci.electronique/msg/c3a590d323902441

Re: Casse-tête.
jj a tapoté du bout de ses petites papattes :
Quoted text here. Click to load it

Si on module les bits en fréquence, le risque de non-détection d'une
collision diminue grandement.

--
LeLapin



Re: Casse-tête.
On 13 oct, 21:05, LeLapin

Quoted text here. Click to load it

Le support est une paire ... de 3 fils :o)
RS485 standard avec signal diffE9%rentiel (+ masse)
pour amE9%liorer le RSB et diminuer le TEB.

Donc : collision 3D%> corruption 3D%> rejet 3D%> rE9%itE9%ration.

Re: Casse-tête.
On 13 oct, 20:04, jj

Quoted text here. Click to load it


Une collision implique le rejet total de l'E9%change.
Donc cette objection ne tient pas.
- On est d'accord, ou pas ?


Re: Casse-tête.
On 13 oct, 19:51, capfree

Quoted text here. Click to load it

Pas la peine, parce-que si plusieurs rE9%ponses
alors collision donc annulation puis rE9%itE9%ration.

Re: Casse-tête.
On 13 oct, 19:32, jj

Quoted text here. Click to load it

Si, parce-que deux signaux superposE9%s
sur un mEA%me bus "corruptent" la trame :
la superposition d'au moins deux signaux implique que les bits
recus ne sont plus cohE9%rents avec le format du protocole,
la trame sera donc rejetE9%e ( et de plus de CRC sera faux )


Quoted text here. Click to load it

Ok, bien vu le coup du AB% sans se chevaucher BB% !
Mais dE9%ja pris en compte dans mon tout premier post :
 | Ni le maitre ni aucun esclave n'envoient de trame
 | sur le bus si celui-ci est dE9%ja occuppE9%.
Donc, dans le cas oF9% un premier esclave a rE9%pondu au maitre,
aucun des autres esclaves n'E9%mettront.
On retrouve les deux seuls cas possibles :
1B0%) Un esclave rE9%pond avant les autres : le NB0% lui sera attribuE9%.
2B0%) Plusieurs esclaves rE9%pondent : collision, rejet, rE9%itE9%ration.


Quoted text here. Click to load it

Oui mais seulement lors de la phase d'installation, pendant la
numE9%rotation.
Une fois tous les numE9%ros attribuE9%s, on passe en phase d'exploitation
et cet algo n'est plus actif puisque tous les numE9%ros ont E9%tE9%
attribuE9%s.
( j'ai l'impression de me rE9%pE9%ter, mais on m'a dit que je radotais ;o)


Quoted text here. Click to load it

Je ne vois pas pourquoi tu dis que les collisions
ne sont pas dE9%tectE9%es ... elles le sont.


Quoted text here. Click to load it

Ah, une propo d'algo !  :o)
C'est E0% creuser, mais je prE9%fE8%re coller au standard maitre/esclave
qui veut qu'un esclave n'E9%mette que si le maitre lui a explicitement
demandE9%.
Sinon la probabilitE9% de collision monte en flE8%che.


Quoted text here. Click to load it

C'est une des raisons qui font qu'une collision implique
*nE9%cE9%ssairement* le rejet des trames collisionnE9%es :
vu du (des) rE9%cepteur(s), des trames superposE9%es corruptent le
format du protocole, mEA%me sans CRC. Et lE0% il y a en plus un CRC.


Quoted text here. Click to load it

Il y a un CRC :o)


Re: Casse-tête.
Jean-Christophe a tapoté du bout de ses petites papattes :
Quoted text here. Click to load it

Je crois que le point qu'ont soulevé certains est que si 2 (ou plus)
cartes répondent EXACTEMENT en même temps (d'autant plus probable que
le bitrate est faible comparé à l'horloge proc de chaque carte, et que
le soft est simple et que l'évènement d'une requète du maitre génère
une interruption sur le proc des esclaves et ne soit pas gérée par du
polling), et qu'elles répondent la même chose (ce qui est normal
puisqu'elles sont identiques, hard et soft), ce qui inclut évidemment
le CRC, il sera impossible de le détecter : mêmes fronts ou presque,
mêmes états logiques des bits...

J'avais proposé de moduler les bits en FSK avec une porteuse assez
élevée à horloge indépendante sur chaque carte (on introduit donc un
décalage aléatoire, voire une légère différence de fréquence), ce qui
provoquerait, en cas de collision, une modulation bizarre facile à
détecter en mesurant par ex. le rapport cyclique. Sans être fiable à
100% (bien que sûrement très fiable si la modulation est à assez haute
fréquence), c'est déjà bien plus sûr.

Me comprends-tu ?

--
LeLapin



Re: Casse-tête.
On 13 oct, 23:01, LeLapin

Quoted text here. Click to load it

Oui, tout E0% fait. Un bon exemple de worst-case.
Effectivement je n'avais pas compris cela.

Quoted text here. Click to load it

Oui, pas mal :o)
Mais le fait est que le bus est dE9%ja en RS485, et que ca, je n'y peux
rien.

Quoted text here. Click to load it

5/5

AprE8%s rE9%flexion, si on part sur un dE9%bit de
115,2 kbps la durE9%e d'un bit est d'environ 8,7 us
et E0% cette E9%chelle de temps je doute sincE8%rement que deux
UARTS puissent EA%tre parfaitement synchronisE9%s E0% ce point-lE0%.
Leur horloge dE9%rive du quartz du uP suivi de diviseurs,
et mEA%me s'ils tolE8%rent quelques % sur la frE9%quence nominale,
( E0% cette heure-ci je n'ai pas le courage de calculer ca )
E0% vue de nez la proba me semble (:op) trE9%s faible.
Qu'en penses-tu ?

Re: Casse-tête.
Jean-Christophe a tapoté du bout de ses petites papattes :
Quoted text here. Click to load it

C'est pas négligeable. D'autant que comment génères-tu ton délai
aléatoire ? Je suppose que c'est un algo standard pseudo-aléatoire.
Mais quel est la valeur de départ ? Tu n'as aucun évènement réellement
aléatoire pour démarrer ta séquence visiblement (clavier ou autre
bouton). Et comme rien ne différencie les cartes esclaves, elles vont
générer la même séquence de nombres pseudo-aléatoires...

--
LeLapin



Re: Casse-tête.
On 14 oct, 17:15, LeLapin

Quoted text here. Click to load it

Bien vu : ca c'est effectivement LE truc qui coince !

La source pour la valeur de dE9%part ne peut pas
EA%tre purement soft, il faut quelque chose d'externe.

Et si je branche une pinouille d'entrE9%e ADC
sur une zener polarisE9%e dans son coude
histoire d'avoir un bon niveau de bruit,
et que je convertis cette tension en
un entier qui servira de valeur de dE9%part :
lE0% j'aurais une proba trE9%s faible d'avoir plus
d'une carte qui dE9%marre sur la mEA%me valeur ?

Re: Casse-tête.
une autre risque auquel je pense :

deux esclaves qui répondent juste l'un après l'autre sans se chevaucher,
le maitre envoie alors une attribution d'adresse (en retour à la
première réponse) que les deux esclaves vont prendre en compte ...

JJ

Re: Casse-tête.
On 14 oct, 18:08, jj

Quoted text here. Click to load it

Tu as dE9%ja proposE9% ca dans ton post du 13/10 E0% 19h32
http://groups.google.com/group/fr.sci.electronique/msg/0de3d0a0ad4f179f

Et j'y ai rE9%pondu
http://groups.google.com/group/fr.sci.electronique/msg/7f1adbb7a44e5750

| On 13 oct, 21:44, Jean-Christophe :
| Ok, bien vu le coup du AB% sans se chevaucher BB% !
| Mais dE9%ja pris en compte dans mon tout premier post :
| > Ni le maitre ni aucun esclave n'envoient de trame
| > sur le bus si celui-ci est dE9%ja occuppE9%.
| Donc, dans le cas oF9% un premier esclave a rE9%pondu au maitre,
| aucun des autres esclaves n'E9%mettront.


Re: Casse-tête.
On 14 oct, 18:22, Jean-Christophe

Quoted text here. Click to load it

DE9%solE9% JJ, je me suis mal exprimE9% :
Quand un esclave voit passer une trame d'un autre esclave
en rE9%ponse E0% la requE8%te du maitre, il voit bien qu'il
a E9%tE9% grillE9%, donc il sort de son dE9%lai avant E9%mission,
il n'E9%mettra rien du tout, et laisse tomber sa tentative.
( jusqu'E0% la prochaine requE8%te du maitre )

Re: Casse-tête.
Le 14/10/2011 18:31, Jean-Christophe a écrit :
Quoted text here. Click to load it

oui, je vois, l'écoute est permanente donc.

ce qui me déplait, c'est que le maitre poole en permanence, ça va faire
du trafic en permanence et n'y aurait-il pas risque de collisions avec
le protocole de communication?
Il faut alors que le protocole soit managé par le maitre, et donc le
pool n'aurait lieu que dans les temps morts (idle)?

Oui, ça peut marcher.

JJ

Site Timeline