Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

Transition logique avec utilisation de bascules (Matlab Simulink)



  1. #1
    Bishop075

    Unhappy Transition logique avec utilisation de bascules (Matlab Simulink)


    ------

    Bonjour à tous,

    Je suis nouvelle, mais je connais déjà bien le site Futurama car il m'a aidé à de nombreuses reprises. Sauf qu'aujourd'hui je ne trouve pas de solution à mon problème :

    Je réalise un projet dont le but est de créer un encodeur électronique. En entrée j'ai des états de relais et en fonction de ça mon encodeur délivre en sortie le télégramme qui va bien. Un télégramme est composé de 1023 bits(Télégramme=message codé).

    C'est là que les ennuis commencent : Le télégramme est répété en boucle à l'infini. Lorsque le télégramme change, il est demandé d'introduire une suite de 0 ou de 1 d'une longueur comprise entre 75 et 128 bits. Le changement de télégramme peut s'opérer n'importe où dans le télégramme en cours d'émission et démarrer n'importe où pour le suivant.
    Je suis sous Simulink, et depuis plusieurs jours j'essaye d'utiliser les bascules logiques (D,RS,JK,T...) mais je n'arrive pas à trouver le résultat attendu . Je me tourne donc vers la communauté. J'espère que mon problème est claire à comprendre...

    Merci d'avance.

    -----

  2. Publicité
  3. #2
    DAUDET78

    Re : Transition logique avec utilisation de bascules (Matlab Simulink)

    Bonjour Bishop075 et bienvenue sur FUTURA
    Citation Envoyé par Bishop075 Voir le message
    Un télégramme est composé de 1023 bits(Télégramme=message codé)
    la transmission série de ce télégramme , c'est combien de bit par seconde ?
    Tu as combien de relais à coder en entrée ?
    Dernière modification par DAUDET78 ; 06/07/2016 à 15h26.
    J'aime pas le Grec

  4. #3
    Bishop075

    Re : Transition logique avec utilisation de bascules (Matlab Simulink)

    Bonjour DAUDET78 et merci pour ton acceuil !

    La vitesse de transmission est de 564kbit/s. J'ai en entrée 2 relais et je peux donc envoyé 4 télégrammes (2^2=4).

    Mon codeur suit la table de vérité suivante :

    La colonne "N°" correspond au numéro du télégramme. E0f et E1f sont les états fonctionnels de mes relais.

    Nom : table_de_verite.JPG
Affichages : 112
Taille : 21,5 Ko

  5. #4
    DAUDET78

    Re : Transition logique avec utilisation de bascules (Matlab Simulink)

    Et tu as besoin d'un message de 1023 bits pour coder 4 états ???
    Si c'est le cas, quel est l'état des 1021 autres bits ? fixe ? variable ? suivant quelle règle du jeu ?
    Pourquoi 564Kbit/s ? vu qu'un relais demande plus de 10ms pour changer d'état ?
    Par curiosité, ça sert à quoi ce truc ?
    J'aime pas le Grec

  6. A voir en vidéo sur Futura
  7. #5
    PIXEL

    Re : Transition logique avec utilisation de bascules (Matlab Simulink)

    faire ça en logique câblée en 2016.....

  8. #6
    Bishop075

    Re : Transition logique avec utilisation de bascules (Matlab Simulink)

    Citation Envoyé par DAUDET78 Voir le message
    Par curiosité, ça sert à quoi ce truc ?
    Le principe est simple : Coder des états de signalisation.

    Pour faciliter la compréhension, la signalisation est matérialisée par deux relais E1f et E0f. Pour différents états de ces relais, il y a différents état de signalisation (cf table de vérité plus haut). Maintenant que l'on a défini l'entrée, il faut coder cette entrée. Je vous épargne l'algorithme qui va bien pour coder l'entrée, mais le principe c'est que mes relais vont récupérer un télégramme ( donc message binaire fixe ) que l'on aura préalablement définit dans un fichier Excel. En sortie on aura ce télégramme fixe qui sera répété indéfiniment tant que la signalisation en entrée ne change pas. Et c'est là que mon problème survient, c'est lorsqu'il y a un changement de la position des relais, il doit y avoir une séquence d'au moins 78 bits à 1 ou 0. Comment faire ça ?!

    tu as besoin d'un message de 1023 bits pour coder 4 états ???
    Si c'est le cas, quel est l'état des 1021 autres bits ? fixe ? variable ? suivant quelle règle du jeu ?
    Eh non ! Si tu reprends mes explications 1 télégramme = 1 état de signalisation.

    Exemple : Si en entrée mon signal est ouvert, en sortie je doit retrouvé le télégramme n°3 de 1023 bits. (Vu qu'il est répété indéfiniment, le codage de l'état de signalisation fait plus de 1023 vu sous cet angle)
    Pourquoi 564Kbit/s ? vu qu'un relais demande plus de 10ms pour changer d'état ?
    Tout ceci à une vitesse imposé dans mon projet de 564kbit/s.

    faire ça en logique câblée en 2016.....
    C'est le FPGA qui fera tout le boulot

  9. Publicité
  10. #7
    PIXEL

    Re : Transition logique avec utilisation de bascules (Matlab Simulink)

    bon bennnnnnn

    table de vérité et toussa !

  11. #8
    DAUDET78

    Re : Transition logique avec utilisation de bascules (Matlab Simulink)

    Citation Envoyé par Bishop075 Voir le message
    Eh non ! Si tu reprends mes explications [B]1 télégramme = 1 état de signalisation.
    Eh oui !
    Comme tu as 4 messages différents pour les 4 combinaisons de relais, tes quatre messages sont identiques à deux bits près.

    Ou alors, tu as 4 messages avec une combinaison de 1023 bits pour le message 1 , une autre combinaison de 1023 bits pour le message 2 , etc etc

    Dans ce cas, c'est du registre à décalage avec, probablement un chargement parallèle avec des multiplexeurs 4->1
    j'essaye d'utiliser les bascules logiques (D,RS,JK,T...)
    Tu n'en as rien à faire du choix de la bascule
    Tu vas utiliser quelle famille de FPGA ?
    J'aime pas le Grec

  12. #9
    Bishop075

    Re : Transition logique avec utilisation de bascules (Matlab Simulink)

    Le problème n'est pas là les amis, nous nous égarons ...
    Les messages ont bien une combinaison de 1023 bits différentes comme tu l'as dis DAUDET 78. Je ne sais pas encore vers quelle technologie m'orienter. Xilinx ? Altera ?
    Je veux juste résoudre le principe de transition en cas de changement d'état. D'où l'utilisation de bascule notamment RS=> Si changement d'état alors mise à 0 (pour 78 bits). Je connais les principes de bases des bascules et j'ai pensais que ça répondait à mon problème mais je patauge...

  13. #10
    DAUDET78

    Re : Transition logique avec utilisation de bascules (Matlab Simulink)

    Citation Envoyé par Bishop075 Voir le message
    Je veux juste résoudre le principe de transition en cas de changement d'état.
    D'abord, si c'est un contact de relais, tu n'as pas une transition franche, tu as des rebondissements des contacts. Mais, laissons ce problème pour plus tard. Supposons que le signal passe de "0" à "1" et de "1" à "0" nettement
    Tu as deux entrées A et B
    - Tu mémorises dans deux bascules l'état actuel (qui sont donc A* et B*)
    - Tu fais un OUexclusif entre (A et A*) et (B et B*)
    - Tu as "0" et "0" , pas de changement
    - Tu as un des OUexclusif qui passe à "1" ? Y a eu changement
    - Tu mémorises dans les deux bascules le nouvel état actuel A* et B*
    - Tu balances ta trame de 01010101
    - Et tu balances la trame correspondant au nouvel état et ceci cycliquement
    Dernière modification par DAUDET78 ; 06/07/2016 à 19h09.
    J'aime pas le Grec

  14. #11
    Bishop075

    Unhappy Re : Transition logique avec utilisation de bascules (Matlab Simulink)

    (Merci pour le temps que tu me consacre DAUDET78)

    Encore une fois, mon problème n'est pas là.

    J'ai déjà fait la gestion de la détection du changement d'état et justement c'est la méthode que tu décris avec l'utilisation de bascules D et portes logiques XOR.

    Maintenant ce qui reste à faire : Quand je détecte la présence du changement d'état (donc de la transition), j'envoie la séquence de 70 bits à 0. Comment faire pour envoyer cette séquence ?
    L'algorithme serais :
    while (Etat transition= 0)
    do envoie télégramme
    while (compteur <=70) // j'ai détecté une transition
    do { envoie séquence à 0
    compteur ++;
    }

    J'ai pensé à mettre aux deux entrées d'une porte logique ET :
    A = mon traitement du télégramme normal . B= la séquence de 70 bits à 0.
    Ainsi lorsque qu'il n'y a pas de transition on a : 1 ET trame = Trame
    En cas de transition : séquence 0 ET trame = séquence 0


    Ou bien pourquoi pas utilisé une bascule RS avec une remise à 0 pendant 70 bits et une remise à 1 le reste du temps. Du coup la bascule serait synchronisé avec mon état transition.

    C'est difficile à exprimer et expliquer mon problème, mais j'espère que vous m'avais comprise...

Discussions similaires

  1. [Matlab Simulink] Utilisation d'une intégrale en temps réel ?
    Par Qhadehar dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 18/12/2012, 11h36
  2. utilisation d'une dll avec matlab
    Par Spidercochon dans le forum Programmation et langages, Algorithmique
    Réponses: 0
    Dernier message: 03/10/2011, 08h22
  3. Réponses: 0
    Dernier message: 06/12/2010, 20h02
  4. programmé la logique flou avec matlab
    Par edguardevis dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 16/12/2009, 11h04
  5. Fichier WAV avec simulink(matlab)
    Par Kit dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 12/05/2006, 08h09
Découvrez nos comparatifs produits sur l'informatique et les technologies.