Je connais 9600, 19200, 38400, 57600, 115200 et 1,8432 Mbaud, mais pas dautres. Pourquoi ces valeurs sont-elles utilisées et doublent-elles simplement à chaque fois ou y a-t-il quelque chose de plus complexe (par exemple, 38400 quadruplé nest pas 115200 bauds?)
La raison pour laquelle je pose cette question est que je « m concevoir quelque chose qui peut avoir à interagir avec une variété de débits en bauds différents. Il sinitialise en 9600, puis passe à un débit en bauds spécifique. Mais je ne peux pas prendre en charge les débits arbitraires car le dsPIC33F que jutilise ne prend pas en charge les débits arbitraires comme il est limité à un décompteur BRG 16 bits. Cest similaire à cet égard à de nombreux autres processeurs.
Commentaires
- En pratique, un compteur 16 bits plus des scalers pré / post est plus que suffisant pour obtenir » assez près » des débits en bauds arbitraires. La série UART peut tolérer de légères discordances de débit en bauds.
- Le uart démarre au milieu du bit START et doit rester près du milieu du bit STOP après avoir sérialisé 7-10 bits. Ce qui fait une précision dhorloge minimale denviron 2-3%, de préférence mieux gérer le bruit, la gigue, les écarts dans le fréquence source …
Réponse
Cela a commencé il y a longtemps avec les télétypes – je pense 75 bauds . Ensuite, il a pratiquement doublé depuis, avec quelques multiples fractionnaires (x1,5), par exemple 28 800, où il y avait des contraintes sur la technologie du modem de ligne téléphonique qui ne lui permettaient pas tout à fait de doubler.
Les valeurs cristallines standard provenaient de ces premiers débits en bauds et de leur disponibilité y dicte les taux futurs. Par exemple,
\ $ \ begin {align} {7,3728 \, \ mathrm {MHz} \ over 16} & = 460,800 \; \ text {baud} \\\\ {7,3728 \, \ mathrm {MHz} \ over 64} & = 115 200 \, \ text {baud}. \ end {align} \ $
La plupart des UARTS utilisent une horloge de \ $ 2 ^ n \ fois 16 \ $ du débit en bauds, les parties plus modernes (par exemple NXP LPC) ont des diviseurs fractionnaires pour obtenir une gamme plus large en utilisant des multiples non binaires.
Dautres normes courantes sont 31 250 (MIDI) et 250 K (DMX), tous deux probablement choisis comme de beaux multiples dhorloges « rondes » comme 1MHz etc.
Commentaires
- Je ne ‘ Je ne pense pas aux diviseurs fractionnaires sont pour obtenir des débits binaires non standard, mais plutôt des débits binaires standard à partir de fréquences dhorloge MCU non standard.
- Jai remis à neuf des télétypes de deux ans 1926, de retour à luniversité (1976) et oui, ils fonctionnaient à environ 75 bauds. Ils étaient étiquetés télétypes baudots. Branché sur 110vac et un moteur a fourni la synchronisation, avec une connexion électrique entre eux. Je les ai trempés dans de lessence pour les nettoyer. (Donnez-moi une pause – javais 18 ans. Mais ça a marché!) Ctrl-G a sonné une cloche honnête à bonté à lautre. Hélas, je ‘ ne me souviens même pas à qui je les ai donnés. 🙁 Donc, oui, vous ‘ tapez sur le clavier mécanique, cela sérialiserait mécaniquement vos frappes au clavier et ferait et casserait un contact que lautre côté lirait.
- Yay, le rugissant ‘ 20 ‘ s! Quelle technologie de qualité pour durer 50 ans et se retrouver chez John Silva Le hangar de ‘ à Hayward, Californie.
- @DougNull Désolé pour le bosse – Question pour 115200 bps. Vous avez donc pris lhorloge IC (7,3728 MHz) et lavez divisée par ? Comment avez-vous obtenu 64?
Réponse
RealTerm, un programme de terminal Windows gratuit, répertorie ces taux UART dans son menu Baud:
110, 150, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600
Cependant, ce sont en fait bits par seconde (bps), pas en bauds – voir ci-dessous.
110 bauds ont été utilisés par les télétypes à 8 niveaux comme lASR-33. Je ne sais pas où 150 bauds ont été utilisés, mais cest un doublement de 75 bauds, généralement nous ed (avec 60 bauds) pour les TTY à 5 niveaux.
300 bps était la norme pour les premiers modems téléphoniques largement utilisés dans les années 60. Un certain nombre de terminaux à 30 caractères par seconde sont apparus en même temps.
Au-dessus de 300 bps / 300 bauds, qui utilisaient une simple modulation par décalage de fréquence (FSK), les chiffres pour les bps et les bauds (symboles ou tonalités par seconde ) ne sont pas les mêmes. Par exemple, un modem à 1200 bps fonctionne en fait à 600 bauds et un modem à 4800 bps à 1600 bauds. Reportez-vous au tableau sous Bandes passantes dans cet article . La différence est qu’en plus d’utiliser un certain nombre d’impulsions de tonalité par seconde, la modulation par décalage de phase et d’autres méthodes sont utilisées pour extraire une bande passante supplémentaire à partir du même baud. taux pour obtenir de plus en plus de pb. (Donc, un modem 56K ne fonctionne en fait quà 8000 bauds.)
Comme vous pouvez le voir, la liste des taux UART a commencé essentiellement à 75 et a continuellement doublé (en sautant 600), jusquà arriver à 38400, où elle a été multiplié par 1,5 pour obtenir 57600.56K bps est la limite dune ligne téléphonique analogique. Les débits plus élevés de 115200 et plus (doublant à nouveau à partir de 57600) sont utilisés pour les connexions câblées.
Comme mentionné par mikeselectricstuff, 14400 et 28800 bps ont été introduits en tant que 1,5 x 9600 et 1,5 x 19200 lorsque les vitesses des modems ne pouvaient pas « Ne sont pas doublés à lépoque, mais sont rarement utilisés.
Commentaires
- Ne pas être pédant, mais le programme ne peut supporter que les vitesses le matériel le permet. Il peut même ne pas prendre la peine de demander et de simplement lister les vitesses standard. En demandant à mon matériel,
zip(*serial.Serial('COM10').getSupportedBaudrates())
, il répond:(50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
- Jai utilisé un coupleur acoustique semi-duplex à 600 bit / s dans les années 80. 75 bit / s était utilisé dans le système allemand BTX dans le sens du téléchargement pendant longtemps, le téléchargement était à 1200 bit / s.
- Jai ‘ également vu 62,5 kbauds. En fait, cela dépend aussi de votre horloge principale, vous pouvez calculer les débits en bauds qui conduiront à une erreur suffisamment faible.
Réponse
Pendant longtemps, il était courant dutiliser des sous-multiples de 115 200 pour la communication – soit des sous-multiples de puissance de deux de 38 400 ou bien 57 600 ou 115 200. La plupart du matériel informatique prend en charge ces taux. Certains matériels PC peuvent prendre en charge 230 400 ou 460 800. Notez que de nombreux contrôleurs embarqués aiment les débits de données qui sont des sous-multiples de leurs propres vitesses dhorloge, et que certaines puces USB-série peuvent prendre en charge nimporte quel sous-multiple entier de 3 000 000 bps, donc des vitesses telles que 1 000 000 bps ou 1 500 000 bps deviendront probablement plus courantes pour périphériques pour se connecter à des PC via des puces USB.
BTW, un autre débit à mentionner: 31 250 bps est le débit utilisé pour le MIDI standard.
Réponse
LIBM PC dorigine avait un 8250 UART. Cela a pris une horloge de 1,8432 MHZ et divisée par un entier pour générer son horloge interne, et cette horloge fonctionne à 16 cycles par bit.
Le réglage 1 dans le registre de diviseur vous donne 115 200, 2 obtient 57 600, 3 obtient 38 400, 6 obtient 19 200, etc.
Votre meilleur pari est dutiliser une horloge qui fonctionne à un multiple de 1,8432 MHz avec le DSPIC.