Répondre à la discussion
Page 1 sur 2 1 DernièreDernière
Affichage des résultats 1 à 30 sur 33

Question sur la transmission de données !



  1. #1
    dje8269

    Question sur la transmission de données !

    Bonsoir à tous ,

    Voila un moment que je me demande comment faire, pour créer une liaison sans fil fiable avec des modules RF . j'entends par fiable, le moins d'erreur possible , et si erreur il y a , la réduire en faisant une moyenne glissante de plusieurs valeurs.

    j'aurais aimé utilisé ce genre de module, pour dialoguer entre une télécommande et un robot .
    le debit est de 57.6 kbps au max . comment reussir a atteindre ce debit avec une certaine fiabilité ?.

    le meilleur codeur manchester que j'ai trouvé serait celui ci et son débit n'est que de 9600bauds . bien loin de mes 57.6kbps .

    Je souhaite avoir un tel débit pour échantillonné les valeurs a la réception, et ainsi éviter les erreurs par lissage .

    Je ne connais que le codage manchester désolé, pour le moment ca me suffisait amplement ;Si vous connaissez d'autre codage ou composant le faisant plus rapidement je suis preneur .

    Voila en gros mes questions .

    si quelques amateurs radio et experts en transmission de données passent par la , je lirais leurs idées ,aprréciations , indications, remarques ,suggestions, avec un grand interet .

    Bonne soirée à tous

    -----

    C'est en faisant des erreurs; que l'on apprend le mieux !!

  2. Publicité
  3. #2
    DAUDET78

    Re : Question sur la transmission de données !

    Citation Envoyé par dje8269 Voir le message
    j'aurais aimé utilisé ce genre de module pour dialoguer entre une télécommande et un robot
    Tu vas encore te mettre hors la loi !
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  4. #3
    dje8269

    Re : Question sur la transmission de données !

    Lol . Même pas ; ces modules fonctionne dans la bande ISM , en respectant un duty cycle de 10% je suis dans les clous ; il me semble .
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  5. #4
    DAUDET78

    Re : Question sur la transmission de données !

    Citation Envoyé par dje8269 Voir le message
    je suis dans les clous ; il me semble .
    Je ne pense pas ..... à vérifier .

    Par contre, c'est inutile de transmettre des tas de données inutiles pour faire un moyenage à la réception . Il vaut mieux en transmettre que quelques unes .... mais des bonnes !
    Code correcteur d'erreur, transmission avec ACK et retransmission si NACK . Il y a des tas de méthodes .
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  6. #5
    dje8269

    Re : Question sur la transmission de données !

    Oui mais d'après ma maigre expérience:

    Il vaut mieux en transmettre que quelques unes .... mais des bonnes !
    il est impossible de n'avoir que des bonnes ! Donc la moindre erreur pourrait etre source de problème .

    Code correcteur d'erreur
    Ca c'est intéressant je vais farfouiller la dessus, mais si faut se taper le code, c'est mort, j'ai pas les compétences; par contre tout fais je prend lol . mais comment un code peut il corriger les erreurs ? tu lui prête ta boule de cristal ?
    Je veux dire par la , disons que j'envoie la valeur 255, ce qui correspond moteur a fond . si par un hasard un "parasite", bug, ou je ne sais pas d'autres , fais arriver ou comprendre un 0 ? le moteur va s'arrêter , c'est ce que je cherche a éviter autant que faire ce peu.

    transmission avec ACK et retransmission si NACK
    Ok ca c'est si pour vérifier qu'on un reçu un ordre . qu'est ce qui fais l'ack? l'émetteur ou le programme qui envoie les données ?

    désolé si mes questions paraissent puériles
    Il y a des tas de méthodes .
    Avant les pistes que tu m'as donné j'en connaissait aucune
    Dernière modification par Cram 64 ; 21/01/2015 à 15h16. Motif: Utilisation d'un synonyme.
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  7. A voir en vidéo sur Futura
  8. #6
    carcan

    Re : Question sur la transmission de données !

    Hello !

    il faut un début de trame (=1 octet, par exemple 0x02), ce que tu as à envoyer (= ... octets), une fin de trame (= 1 octet, par exemple 0x03), et un CheckSum (= 1 octet).

    Rien de compliqué à coder ... si le checksum reçu ne correspond pas à celui calculé avec la trame reçue, tu demandes le réenvoi ou tu ignores la trame si c'est envoyé en continu.

    A+
    Laurent

  9. Publicité
  10. #7
    DAUDET78

    Re : Question sur la transmission de données !

    Citation Envoyé par dje8269 Voir le message
    il est impossible de n'avoir que des bonnes ! Donc la moindre erreur pourrait etre source de problème .
    Et avec le nombre de rayure d'un CD ? Comment on peut encore avoir de la musique ?
    Ca c'est intéressant je vais farfouiller la dessus, mais si faut se taper le code, c'est mort, j'ai pas les compétences; par contre tout fais je prend lol . mais comment un code peut il corriger les erreurs ? tu lui prête ta boule de cristal ?
    Regarde Code de Hamming
    https://www.enseignement.polytechniq...rin/codes.html
    http://fr.wikipedia.org/wiki/Code_de_Hamming_%287,4%29
    http://workig.free.fr/ch07.html
    Ok ca c'est si pour vérifier qu'on un reçu un ordre
    Le récepteur reçoit une trame et contrôle son intégrité ( par un CRC par exemple). C'est OK, il envoi un ACK ( accusé de réception) .C'est PAS OK, il envoi un NACK ( non accusé de réception) et l'émetteur renvoi l'ordre .
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  11. #8
    dje8269

    Re : Question sur la transmission de données !

    Ah oui quand même . la on est dans le très haut niveau . Bien au dessus de mes capacités .
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  12. #9
    dje8269

    Re : Question sur la transmission de données !

    Je me permet un petit up, pour avoir d'autres avis !
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  13. #10
    DAUDET78

    Re : Question sur la transmission de données !

    Citation Envoyé par dje8269 Voir le message
    la on est dans le très haut niveau .
    Non, un code de Hamming , ce n'est qu'un peu de programmation
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  14. #11
    dje8269

    Re : Question sur la transmission de données !

    Après 2 lectures de tes liens, je confirme que c'est trop haut pour moi!

    Il me faudrait soi une autre solution, soit un composant qui fais ça tout seul .Mais c'est très impressionnant, la façon de faire , fallait le trouver !
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  15. #12
    jiherve

    Re : Question sur la transmission de données !

    Bonsoir,
    Le Hamming c'est de la rigolade, pour le sérieux Reed Solomon, Viterbi et plus si affinité.
    JR
    l'électronique c'est pas du vaudou!

  16. Publicité
  17. #13
    dje8269

    Re : Question sur la transmission de données !

    le code reed-solomon, j'ai tout compris . lol .

    Et ca a l'air plutôt simple donc , normal je l'ai compris ; mais dans l'exemple wiki, qui est trés parlant . si l'erreur se trouve dans la somme, comment vont reagir les calculs. c'est ca que je comprends pas ; l'erreue peut tres bien se trouver dans les données a exploiter mais aussi dans se qui est censé les trouvés non ?

    Exmple de wiki :

    Suite à une perturbation, le récepteur reçoit : 02 13 12 23 56
    Maintenant moi je dis que le code recu est celui la :

    02 09 12 18 56: donc l'erreur se trouve dans la somme simple .

    À partir des données reçues, le décodeur calcule :
    Sa somme simple : 02 + 09 + 12 = 23
    Sa somme pondérée : 02×1 + 09×2 + 12×3 = 56

    La différence entre la somme simple calculée (23) et celle reçue (18) indique la valeur de l'erreur : 5 (23-18 = 5)
    La différence entre la somme pondérée calculée (56) et celle reçue (56), elle-même divisée par la valeur de l'erreur indique la position où l'erreur se trouve : 0 ((56-56) / 5 = 0).
    Il faut donc retirer 5 au nombre du rang 0.

    mais le rang 0 n'existe pas .

    Bon vous aurez compris ou je veux en venir
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  18. #14
    jiherve

    Re : Question sur la transmission de données !

    Re
    Ce n'est qu'un exemple simplissime, on peut aussi corriger les codes de redondances mais d'une manière différente.
    comme d'habitude la page en anglais est plus prolixe:http://en.wikipedia.org/wiki/Reed%E2...ror_correction.
    JR
    l'électronique c'est pas du vaudou!

  19. #15
    gienas

    Re : Question sur la transmission de données !

    Bonjour à tous

    Citation Envoyé par DAUDET78 Voir le message
    ... un code de Hamming , ce n'est qu'un peu de programmation
    La méthode proposée par DAUDET78 est détaillée ici:

    http://forums.futura-sciences.com/el...ml#post5095803

    Cela sera déplacé dans les projets, puisque cela s'y apparente bien.

  20. #16
    dje8269

    Re : Question sur la transmission de données !

    Merci Gienas pour ce lien. Ça me trou le C.l . c'est génial , mais je comprends que la moitié des choses .

    Je pense pas qu'il faille le basculer , car trop pechu pour moi . Mais toutefois je m'y intéresse et c'est passionnant ;

    Un truc me chiffonne et je n'arrive pas a trouver l'explication .

    Dans le tuto de DAUDET78 , a la fin il set marqué :

    PS : Il faut noter que l’erreur peut intervenir sur un bit de donné ou sur une clef . Si c’est une clef qui est erronée, on récupère les données tout simplement
    Ce qui me chope, c'est la partie soulignée . Si une clef est erroné, comment peut on le savoir, puisque que c'est elle qui nous permet d'effectuer le contrôle ?
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  21. #17
    DAUDET78

    Re : Question sur la transmission de données !

    Citation Envoyé par dje8269 Voir le message
    Si une clef est erroné, comment peut on le savoir,
    Parce que tu tombes sur une position d'erreur 1 , 2, 4 ou 8 ! et ces positions correspondent à une position de bit de contrôle .
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  22. #18
    dje8269

    Re : Question sur la transmission de données !

    Incroyable . cesoir j'essayerais de poser ca sur papier ! .

    Donc pour en revenir a mes moutons. il n'y as que quelques addition a faire , et le tour est joué . cela ne surcharge pas le µC, et ne prends pas trop de temps .

    Actuellement ce qui me chiffonne c'est la variable "moteur" . Il ne m'est pas permis d'avoir un moteur qui se bloque , et qui part a fond sans raison .

    Actuellement ma trame se compose ainsi : 8 bytes (b0 à b7) codé en manchester .
    b0 = ces sont mes TOR ( ce byte est plein car j'ai 8 TOR a gérer)
    b1 = ces sont mes TOR en option ( car b0 est plein j'ai prévu des interrupteurs ou BP en plus)
    b2 = vide pour "éloigner" des valeurs et faire une espèce de transition.
    b3 = c'est la valeur de la commande moteur
    b4 = vide
    b5 = valeur de la commande direction
    b6 = vide
    b7 = valeur du pan de la camera.

    A ton avis, est il possible d'envisager de vérifier ces information ? en mettant une grosse priorité sur la byte de commande moteur , en second , les TOR ,et le reste si possible ?
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  23. Publicité
  24. #19
    jiherve

    Re : Question sur la transmission de données !

    Bonjour
    Ce ne sont pas des addition mais des "ou exclusif" ils portent sur les bits pas les octets et tous les octets auront le même traitement. dans ton cas deux solutions soit tu rajoute 4 bits à chaque octet, soit tu rajoute 4 octets pour porter les parités à ta trame, la première solution détecte 2 et corrige 1 bit par octet donc autorise 8 erreurs corrigeables chacune ne concernant qu'un octet , la seconde détecte 2 et corrige 1 par bit de même poids dans la trame donc autorise aussi 8 erreurs corrigeables reparties sur les 8 octets donc plusieurs erreurs possible dans le même octet mais rien ne permet de donner une priorité.
    Code:
    données brutes
    B0 = D07,D06,D05,D04,D03,D02,D01,D00 
    B1 = D17,D16,D15,D14,D13,D12,D11,D10
    B2 = D27,D26,D25,D24,D23,D22,D21,D20
    B3 = D37,D36,D35,D34,D33,D32,D31,D30
    B4 = D47,D46,D45,D44,D43,D42,D41,D40
    B5 = D57,D56,D55,D54,D53,D52,D51,D50
    B6 = D67,D66,D65,D64,D63,D62,D61,D60
    B7 = D77,D76,D75,D74,D73,D72,D71,D70
    
    64 bits
    
    transmis dans le premier cas
    Pyx sont les parités de la ligne y
    
    T0 = D07,D06,D05,D04,D03,D02,D01,D00,P03,P02,P01,P00
    T1 = D17,D16,D15,D14,D13,D12,D11,D10,P13,P12,P11,P10
    T2 = D27,D26,D25,D24,D23,D22,D21,D20,P23,P22,P21,P20
    T3 = D37,D36,D35,D34,D33,D32,D31,D30,P33,P32,P31,P30
    T4 = D47,D46,D45,D44,D43,D42,D41,D40,P43,P42,P41,P40
    T5 = D57,D56,D55,D54,D53,D52,D51,D50,P53,P52,P51,P50
    T6 = D67,D66,D65,D64,D63,D62,D61,D60,P63,P62,P61,P60
    T7 = D77,D76,D75,D74,D73,D72,D71,D70,P73,P72,P71,P70
    
    96 bits
    
    transmis dans le second cas
    Lyx sont les parités des colonnes x
    
    T0 = D07,D06,D05,D04,D03,D02,D01,D00
    T1 = D17,D16,D15,D14,D13,D12,D11,D10
    T2 = D27,D26,D25,D24,D23,D22,D21,D20
    T3 = D37,D36,D35,D34,D33,D32,D31,D30
    T4 = D47,D46,D45,D44,D43,D42,D41,D40
    T5 = D57,D56,D55,D54,D53,D52,D51,D50
    T6 = D67,D66,D65,D64,D63,D62,D61,D60
    T7 = D77,D76,D75,D74,D73,D72,D71,D70
    T8 = L07,L06,L05,L04,L03,L02,L01,L00
    T9 = L17,L16,L15,L14,L13,L12,L11,L10
    T10= L27,L26,L25,L24,L23,L22,L21,L20
    T11= L37,L36,L35,L34,L33,L32,L31,L30
    
    96 bits
    JR
    l'électronique c'est pas du vaudou!

  25. #20
    dje8269

    Re : Question sur la transmission de données !

    Merci pour ces précisions ;

    Donc dans mon cas, je ne peux pas le faire .

    Mon codage manchester fonctionne sur 8 octets . je n'en ia que trois de libre, je ne peux donc pas en rajouter 4 ; et rajouter 4 bits a un octets le transformerais en word , et je ne peux pas non plus .

    Du coup mon moyennage prends les devant alors .
    ou sinon je ne passe pas par le codage manchester, mais je ne connais que ca !
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  26. #21
    DAUDET78

    Re : Question sur la transmission de données !

    Citation Envoyé par dje8269 Voir le message
    je ne passe pas par le codage manchester,
    Que vient faire Manchester ou Liverpool .....
    On parle d'une trame ....
    L'age n'est pas un handicap .... Encore faut-il arriver jusque là pour le constater !

  27. #22
    jiherve

    Re : Question sur la transmission de données !

    Re
    Ben plutôt que d'envoyer des octets vides répètes les informations importantes en les inversant par exemple, c'est l'une des astuces du protocole NEC pour les télécommandes IR (mais cela sert aussi à autre chose dans ce cas).
    JR
    l'électronique c'est pas du vaudou!

  28. #23
    dje8269

    Re : Question sur la transmission de données !

    Que vient faire Manchester ou Liverpool .....
    Lol .

    Ben euh comment dire !!! . Je confonds certainement tout.

    le codage de hamming code les informations . et le codage manchester est un facon de coder l'envoi de l'information ? Dans les deux cas c'est du codage, alors ca m'embrouille .

    J'ai vraiment visé trop je crois sur ce coup ci
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  29. #24
    jiherve

    Re : Question sur la transmission de données !

    Re
    Le Manchester permet un équilibrage électrique de la transmission, la valeur moyenne est nulle, il existe d'autres codages permettant la même chose, le plus courant parmi ceux ci est le 8b10b.
    Hamming et consorts permettent la sécurisation des données et sont donc situés en amont d'un codage Manchester.
    JR
    l'électronique c'est pas du vaudou!

  30. Publicité
  31. #25
    dje8269

    Re : Question sur la transmission de données !

    D'accord , mais alors sur combien de bit sont codés les informations necessaire?

    Avec mon µC je peux envoyer 8 octets codé s manchester . cette simplicité me va bien . comme j'ai 5 octets de données utiles a envoyer il m'en reste 3 de dispo .
    si j'ai compris .

    je releve mes valeurs , je les transforment avec des calculs savants , pour les sécurisés , dans quels formats vont ils se retrouvés ( 8bits? ), mais au lieu d'en avoir 5 a envoyer je me retrouve avec 7 5 +2 ceux des savants calculs

    J'ai bon ?
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  32. #26
    jiherve

    Re : Question sur la transmission de données !

    Re
    pour 5 octets il faut 4 bits de redondance donc avec 3 octets libres ce n'est pas possible, il faut que tu sacrifie un octet, et la tu retombes sur le code 7,4,3 qui est décrit partout avec la structure que j'ai décrit en seconde position.
    Pour estimer et calculer un code de Hamming il y a une recette de cuisine on ecrit le numero des bits, sous chaque poids qui est une puissance de 2 il y a un bit de parité, ailleurs ceux de donnée, pour 5 bits on a:

    Code:
    1  2  3  4  5  6  7  8  9
    C0,C1,D0,C2,D1,D2,D3,C3,D4
    donc il faut 4 bits de redondance par colonnes et 8x4 = 32 > 24
    dans ton cas la solution que j'ai proposée plus haut est bien plus efficace car tu auras une redondance de 100% pour tes informations critiques
    JR
    Dernière modification par jiherve ; 21/01/2015 à 21h12.
    l'électronique c'est pas du vaudou!

  33. #27
    dje8269

    Re : Question sur la transmission de données !

    Malheureusement je ne comprends pas tout .

    Si je sacrifié un octet (celui de secours par exemple) , ça pourrait donc le faire. Et ainsi sécurisé .Les données envoyées voire même les corriger?.

    peut on envoyer plus de 8 sans passer par le codage manchester ou est ce une norme ?
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  34. #28
    jiherve

    Re : Question sur la transmission de données !

    Re
    Le codage Manchester n'a rien à voir avec la longueur du message c'est un moyen de coder 1 bit de deux façons suivant que ce bit vaux zero ou un.
    Avec un octet de secours tu peu sécuriser 2 données 8bits mais comme je crains d'avoir des kilometre de fil ensuite utilise la solution:
    b0 = ces sont mes TOR ( ce byte est plein car j'ai 8 TOR a gérer)
    b1 = ces sont mes TOR en option ( car b0 est plein j'ai prévu des interrupteurs ou BP en plus)
    b2 = inverse b0
    b3 = c'est la valeur de la commande moteur
    b4 = inverse b1
    b5 = valeur de la commande direction
    b6 = inverse b3
    b7 = valeur du pan de la camera.
    JR
    l'électronique c'est pas du vaudou!

  35. #29
    dje8269

    Re : Question sur la transmission de données !

    bonjour,

    Avec un octet de secours tu peu sécuriser 2 données 8bits mais comme je crains d'avoir des kilometre de fil ensuite utilise la solution
    Ce que je voulais dire c'est que je peux virer b1 que j'avais prévus pour des BP en plus .

    donc j'aurais 4 octets de données et 4 octets de libre vu que mon µC envoi des trames de 8 octets
    C'est en faisant des erreurs; que l'on apprend le mieux !!

  36. #30
    jiherve

    Re : Question sur la transmission de données !

    Re
    avec 4 octets actifs il te faut 3 bits de redondance pour 4 bits donc 24 bits au total ce qui tient sur 3 octets, tu n'a donc même pas besoin de sacrifier l'octet b1 il ne sera tout simplement pas protégé comme les autres.
    JR
    l'électronique c'est pas du vaudou!

Sur le même thème :

Page 1 sur 2 1 DernièreDernière

Discussions similaires

  1. Transmission de données par laser
    Par Jac-Laser dans le forum Électronique
    Réponses: 5
    Dernier message: 10/02/2014, 11h58
  2. Transmission de données GPRS ou 3G
    Par regmars dans le forum Électronique
    Réponses: 2
    Dernier message: 17/02/2012, 13h18
  3. Transmission de données par GSM
    Par gillou026 dans le forum Électronique
    Réponses: 7
    Dernier message: 06/12/2011, 12h50
  4. Transmission de données RF
    Par Toufinet dans le forum Électronique
    Réponses: 5
    Dernier message: 15/08/2009, 21h41
  5. transmission des données
    Par hnayna dans le forum Électronique
    Réponses: 4
    Dernier message: 06/04/2007, 10h40