IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

Vitesse de transmission maximale sur USART


Sujet :

Embarqué

  1. #1
    Membre du Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Avril 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 80
    Points : 64
    Points
    64
    Par défaut Vitesse de transmission maximale sur USART
    Bonjour,

    Est-il possible de connaitre les vitesses maximales de transmissions des cartes (bauds).
    La seule règle que j'ai pu voir, est que la vitesse configurée est un multiple de 9600 bauds.

    Y a t il d'autres règles à connaitre ?
    Les docs que j'ai pu lire ne renseignent pas cette vitesse maximale.

    D'avance merci.

  2. #2
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Bonjour,
    Citation Envoyé par alaska90 Voir le message
    Est-il possible de connaitre les vitesses maximales de transmissions des cartes (bauds).
    Ça dépend du hardware, du microcontrôleur et de son réglage, il n'y a malheureusement pas de règle.
    Si je prends un Arduino UNO ; dessus le concepteur a mis un quartz de 16MHz pour cadencer le microcontrôleur ATMega328P au maximum de ses capacités et la doc constructeur montre qu'on peut montrer à 2Mbps (2 MBauds) avec le bon réglage. Voir l'image en bas de mon message.

    Le problème avec cette question c'est que "des cartes" il en existe une quantité incroyable, car il y a les cartes de développements de chaque fabricant (Microchip/Atmel, ST, Texas, Renesas, Intel/Altera, Analog Devices, Infineon, NXP, ...) et qui en plus seront, à la fin, toutes transformées profondément au niveau hardware en carte perso pour correspondre à l'application et au cahier des charges précisément.



    Exemple : Si l'application final est "low power" (application sur batterie) la personne qui fait le hardware va certainement retirer le quartz afin que le micro tourne sur son horloge interne (moins précise mais très économe si le micro tourne lentement) mais il deviendra impossible de communiquer à des grandes vitesses via l'UART.

    Nom : Capture011.PNG
Affichages : 564
Taille : 33,7 Ko
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  3. #3
    Membre du Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Avril 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 80
    Points : 64
    Points
    64
    Par défaut
    Merci pour ces précisions.
    Si je comprends bien il est peu probable de se rapprocher de la valeur théorique, vu la difficulté à controler tous ces paramètres ?

    Du coup, je pensais à un programme qui incrémenterai la vitesse de transmission pour voir jusqu'à combien je peux monter. Mais la difficulté est d'avoir un récepteur qui lui aussi aura la même vitesse de transmission. Je ne vois pas comment synchroniser l'émetteur et le récepteur.

  4. #4
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    Avril 2002
    Messages
    3 190
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 190
    Points : 11 573
    Points
    11 573
    Par défaut
    Je ne comprends pas ce que tu veux dire par valeur théorique mais chaque microcontrôleur à une palanqué de réglage possible.

    Le ATMega328P peut monter jusque 2Mbps et un MSP430F5529 (bien plus balaise) lui ne montra pas au delà de 460.800 kbps, ça dépend vraiment du micro et de son réglage. D'un autre côté les vitesses sont normalisées https://fr.wikipedia.org/wiki/UART

    Afin de faciliter l'interopérabilité entre périphériques (PC, microcontrôleur, modem…) des vitesses de transmission sont normalisées par multiples et sous-multiples de 9600 baud, l'unité baud correspondant à un symbole par seconde :

    • 110 baud
    • 220 baud
    • 300 baud
    • 1 200 baud
    • 2 400 baud
    • 4 800 baud
    • 9 600 baud
    • 19 200 baud
    • 38 400 baud
    • 57 600 baud
    • 115 200 baud
    • 230 400 baud (selon la fréquence d'oscillation employée)
    • 460 800 baud
    • 921 600 baud (« environ 1 mégabaud »)
    • 1 843 200 baud
    • 3 686 400 baud
    • ............
    Mais je peux te confirmer que tous les micros ne montent pas à 3.6Mbps


    Citation Envoyé par alaska90
    Du coup, je pensais à un programme qui incrémenterai la vitesse de transmission pour voir jusqu'à combien je peux monter. Mais la difficulté est d'avoir un récepteur qui lui aussi aura la même vitesse de transmission. Je ne vois pas comment synchroniser l'émetteur et le récepteur.
    En lisant la doc du contrôleur tu saurais tout de suite quelle est la vitesse max (comme j'ai fait avec le micro du Arduino UNO)

    L'UART est une liaison asynchrone, d'où l'impossibilité de synchroniser cependant certains micros ont l'option automatic baudrate detection (chez ST) donc il est possible d'implémenter un programme côté récepteur qui va calculer le débit de la transmission. Ici ST explique l'approche https://www.google.com/url?sa=t&rct=...p_5J3h7W6c10AW en gros l'émetteur envoie le caractère 0x7F (voir l'allure du signal Table 4. page 7) et le récepteur calcul le temps entre deux front montant en envoyant le caractère 0x7F (figure 1 page 8) et déduit le nombre de bps.

    ps : je n'ai jamais eu l'occasion d'implémenter ça

    A+
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  5. #5
    Membre du Club
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Avril 2014
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Auditeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 80
    Points : 64
    Points
    64
    Par défaut
    En lisant la doc du contrôleur tu saurais tout de suite quelle est la vitesse max
    Je me souviens plus du micro, mais il me semble avoir déjà testé avec les vitesses max inscritent dans les docs et ça ne fonctionnait pas. Peut être que ma configuration n'était pas bonne alors...

    Merci pour l'info, je testerai un jour si j'ai le temps

  6. #6
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Sans oublier les vitesses de connexion spécifiques à certaines normes, telle que le 31250 bauds utilisé par le MIDI (communication entre les instruments de musique).
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  7. #7
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 065
    Points
    19 065
    Par défaut
    Salut à tous.

    Je crois qu'il y a une confusion entre baud et bps (bit par seconde).

    Le baud ne concerne que la tramsmission sur des lignes téléphoniques.
    La vitesse en baud ne dépasse jamais les 3000 bauds.
    Le baud est la fréquence de modulation / démodulation d'un signal.
    Le modem gère des signaux dont la vitesse en baud dépend de la qualité de la ligne téléphonique.
    Les valeurs les plus courantes sont : 50, 75, 110, 300, 600, 1200, et 2400 bauds.

    Qu'est-ce que le bps ? Tout simplement, le nombre de bits que l'on transmet dans un signal.
    Ou si vous préférez, c'est la vitesse de transmission du nombre d'informations transmise en seconde.

    Par exemple, si vous avez du 9600 bps et que la vitesse de transfrt en baud est de 1200, vous avez donc 9600 / 1200 = 8 bits.
    Ici, 8 bits sont encodés dans le signal. La vitesse en bps est toujours un multiple de celle en baud.

    Par exemple, nous avons avec des modems, des vitesses de 115200 bps.
    Soit 115200 / 1200 = 96 bits.
    On transporte dans un signal, une information qui peut se coder sur 96 bits.
    Attention, l'information n'est pas une chaîne de bits mais bien une modulation.

    Et oui, la vitesse en baud est lente, mais on peut dans un signal transporter beaucoup plus de bits.
    On peut comparer cela à un train dont la vitesse est limité sur les rails.
    Mais rien n'empêche d'avoir beaucoup de wagons, ce qui permet lors d'un voyage de transporter beaucoup plus de marchandises.

    Il ne faut pas confondre baud et bps comme on peut le voir dans certaines discussions.
    S'il n'y a pas de modulation / démodulation, vous ne pouvez pas utiliser le terme "baud".
    Inversement, comme il s'agit du transfert d'informations, vous devez parler de bps (bits par seconde).

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/01/2013, 16h44
  2. Réponses: 7
    Dernier message: 22/03/2012, 23h20
  3. [Flash Pro 8] vitesse d'un scroll sur un champs
    Par guy2004 dans le forum Flash
    Réponses: 7
    Dernier message: 30/01/2008, 10h59
  4. Vitesse du Lock/Unlock sur un VertexBuffer
    Par tnarol dans le forum DirectX
    Réponses: 9
    Dernier message: 05/10/2006, 11h37
  5. Réponses: 3
    Dernier message: 13/04/2006, 17h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo