Je connais 9600, 19200, 38400, 57600, 115200 et 1.8432 Mbaud, mais pas d'autres. Pourquoi ces valeurs sont-elles utilisées, et est-ce simplement un double à chaque fois ou y a-t-il quelque chose de plus complexe (par exemple, 38400 multiplié par quatre n'est pas 115200 bauds?)
La raison pour laquelle je pose cette question est que je conçois quelque chose qui peut avoir à interagir avec une variété de débits en bauds différents. Il sera initialisé à 9600, puis passera à un débit en bauds spécifique. Mais je ne peux pas prendre en charge les débits arbitraires car le dsPIC33F que j’utilise ne prend pas en charge les débits arbitraires car il est limité à un décompteur BRG 16 bits. C'est semblable à cet égard à beaucoup d'autres processeurs.
Réponses:
Cela a commencé il y a très longtemps avec les télétypes - je pense à 75 bauds. Depuis lors, il a pratiquement doublé depuis, avec quelques multiples fractionnaires (x1,5), par exemple 28 800, où des contraintes sur la technologie des modems de ligne téléphonique ne permettaient pas tout à fait de doubler.
Les valeurs cristallines standard proviennent de ces premiers débits en bauds et leur disponibilité dicte les taux futurs. Par exemple,
La plupart des UARTS utilisent une horloge de2n× 16 de la vitesse de transmission, tandis que les composants plus modernes (par exemple, NXP LPC) ont des diviseurs fractionnaires pour obtenir une plage plus étendue en utilisant des multiples non binaires.
Les autres standards courants sont 31.250 (MIDI) et 250K (DMX), les deux étant probablement choisis comme de beaux multiples d’horloges "rondes" telles que 1 MHz, etc.
la source
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 réalité des bits par seconde (bps), et non en bauds - voir ci-dessous.
110 bauds étaient utilisés par des télétypes à 8 niveaux comme le ASR-33. Je ne sais pas où 150 bauds ont été utilisés, mais c'est un doublement de 75 bauds, couramment utilisé (avec 60 bauds) pour les ATS à 5 niveaux.
La norme des premiers modems téléphoniques largement utilisés dans les années 1960 était de 300 bps. Un nombre de terminaux de 30 caractères par seconde est apparu au même moment.
Au-dessus de 300 bps / 300 bauds, qui utilisaient une simple modulation par déplacement de fréquence (FSK), les valeurs de bps et de bauds (symboles ou tonalités par seconde) ne sont pas identiques. Par exemple, un modem à 1200 bps fonctionne à 600 bauds et un modem à 4800 bps à 1600 bauds. Reportez-vous au tableau sous Bandwidths dans cet article . La différence tient au fait 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 permettent d’extraire une largeur de bande supplémentaire à partir du même débit en bauds pour obtenir des bps de plus en plus élevés. (Un modem 56K ne fonctionne donc qu'à 8 000 bauds.)
Comme vous pouvez le constater, la liste des tarifs UART commençait essentiellement à 75 et doublait continuellement (en sautant 600), jusqu’à atteindre 38400, où elle a été multipliée par 1,5 pour atteindre 57600. 56K bps est la limite pour une ligne téléphonique analogique. Les débits les plus élevés à partir de 115200 (doublant à nouveau à partir de 57600) sont utilisés pour les connexions câblées.
Comme le mentionne mikeselectricstuff, 14400 et 28800 bps ont été introduits sous la forme de 1,5 x 9600 et de 1,5 x 19200 lorsque les vitesses de modem ne pouvaient pas être doublées à ce moment-là, mais elles sont rarement utilisées.
la source
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)
Pendant longtemps, il était courant d'utiliser des sous-multiples de 115 200 pour la communication - soit des sous-multiples de 38 400 soit de 57 600 ou 115 200. La plupart du matériel informatique supporte ces taux. Certains matériels informatiques peuvent prendre en charge 230 400 ou 460 800 personnes. Notez que de nombreux contrôleurs intégrés, tels que les débits de données, sont des sous-multiples de leurs propres vitesses d'horloge et que certaines puces USB / série peuvent prendre en charge tout sous-multiple entier de 3 000 000 bps. Des débits tels que 1 000 000 ou 1 500 000 bps deviendront probablement plus courants périphériques pour se connecter aux PC via des puces USB.
BTW, un autre taux qui mérite d'être mentionné: 31 250 bps est le taux utilisé pour la norme MIDI.
la source
Le PC IBM d'origine avait un UART 8250. Cela a pris une horloge de 1,8432 MHz et divisé par un nombre entier pour générer son horloge interne, et cette horloge tourne à 16 cycles par bit.
Le réglage 1 dans le registre diviseur vous donne 115 200, 2 obtient 57 600, 3 38 3800, 6 19 200, etc.
Votre meilleur pari consiste à utiliser une horloge qui tourne à un multiple de 1,8432 MHz avec le DSPIC.
la source