Mitä standardeja UART-hintoja on?

Tiedän 9600, 19200, 38400, 57600, 115200 ja 1,8432 Mbaud, mutta ei muita. Miksi näitä arvoja käytetään, ja onko se vain kaksinkertaistunut joka kerta vai onko meneillään jotain monimutkaisempaa (esimerkiksi 38400 nelinkertaistettu ei ole 115200 baudia?)

Syy, miksi kysyn tämän kysymyksen, on ”m Suunnittelen jotain, joka voi olla vuorovaikutuksessa erilaisten siirtonopeuksien kanssa. Se alustetaan vuonna 9600 ja siirtyy sitten tiettyyn baudinopeuteen. Mutta en voi tukea mielivaltaisia nopeuksia, koska käyttämäni dsPIC33F ei tue mielivaltaisia nopeuksia se on rajoitettu 16-bittiseen BRG-laskuriin. Se on tältä osin samanlainen kuin monet muut suorittimet.

Kommentit

  • Käytännössä 16-bittinen laskuri sekä pre / post-skaalaajat ovat enemmän kuin riittävät päästäksesi ” tarpeeksi lähelle ” mielivaltaisille baudinopeuksille. UART-sarja voi sietää pieniä baudinopeuksien ristiriitoja.
  • uart alkaa START-bitin keskeltä ja sen on pysyttävä lähellä STOP-bitin keskiosaa 7-10 bitin sarjallisuuden jälkeen, mikä tekee kellon tarkkuudesta noin 2-3%, mieluiten paremmin käsittelemään kohinaa, tärinää ja poikkeamia lähdetaajuus …

vastaus

Se alkoi kauan sitten teletyypeillä – mielestäni 75 baudia Sitten se on ollut enimmäkseen kaksinkertaistunut siitä lähtien, muutamalla murto-osalla (x1,5) kerrannaisilla, esimerkiksi 28 800, jossa puhelinlinjan modeemitekniikalle oli rajoituksia, jotka eivät sallineet sen kaksinkertaistamista.

Vakiokristalliarvot tulivat näistä varhaisista baudinopeuksista ja niiden saatavuudesta y sanelee tulevat hinnat. Esim.

\ $ \ begin {align} {7.3728 \, \ mathrm {MHz} \ over 16} & = 460800 \; \ text {baud} \\\\ {7.3728 \, \ mathrm {MHz} \ over 64} & = 115,200 \, text {baud}. \ end {align} \ $

Useimmat UARTS-laitteet käyttävät kelloa, joka on \ $ 2 ^ n \ kertaa 16 \ $ baudrate, nykyaikaisemmissa osissa (esim. NXP LPC) on murto-osiot, jotta saadaan laajempi alue käyttämällä ei-binaarisia kerrannaisia.

Muita yleisiä standardeja ovat 31 250 (MIDI) ja 250 K (DMX), jotka molemmat todennäköisesti valitaan mukaviksi kerrannaisiksi. ”pyöreistä” kelloista, kuten 1 MHz jne.

Kommentit

  • En usko ’ uskoa murto-osastoja on tarkoitettu standardeista poikkeavien bittinopeuksien, mutta pikemminkin tavallisten bittinopeuksien saamiseksi epätyypillisiltä MCU-kellotaajuuksilta.
  • Korjasin kahden vuoden 1926 teletyypit takaisin yliopistossa (1976) ja kyllä, ne juoksivat noin 75 baudilla. Ne oli merkitty baudot-teletyyppeihin. Kytketty 110 voltin jännitteeseen ja moottori toimitti ajoituksen, sähköliitännällä niiden välillä. Panin ne bensiiniin puhdistamaan ne. (Anna minulle tauko – olin 18-vuotias. Mutta se toimi!) Ctrl-G soi toisella rehellisesti hyvyyteen. Valitettavasti en edes muista, kenelle minä heidät lahjoitoin. 🙁 Joten, joo, kirjoitat ’ d mekaaniselle näppäimistölle, se sarjoittaa mekaanisesti näppäinpainalluksesi ja muodostaa ja katkaisee kontaktin, jonka toinen osapuoli lukee.
  • Joo, jylisevä ’ 20 ’ s! Mikä laatutekniikka kestää 50 vuotta ja päättyy John Silvaan ’ vuodatettiin Haywardissa, Kaliforniassa.
  • @DougNull Anteeksi kolahduksesta – Kysymys 115200 bps: lle. Joten otit IC-kellon (7.3728MHz) ja jaoit sen mitä ? Kuinka sait 64?

Answer

RealTerm, ilmainen Windows-pääteohjelma, listaa nämä UART-hinnat Baud-valikossa:

110, 150, 300, 1200, 2400, 4800, 9600, 19200, 38400, 57600, 115200, 230400, 460800, 921600

Nämä ovat tosiasiallisesti bittiä sekunnissa (bps), ei baudia – katso alla.

110 baudia käytti 8-tason teletyypit, kuten ASR-33. En tiedä missä 150 Baudia käytettiin, mutta se on kaksinkertaistaminen 75 baudia, yleensä meille ed (yhdessä 60 baudin kanssa) 5-tason TTY-laitteille.

300 bps oli standardi ensimmäisille laajalti käytetyille puhelinmodeemeille 1960-luvulla. Samanaikaisesti ilmestyi 30 merkkiä sekunnissa.

Yli 300 bps / 300 baudia, joka käytti yksinkertaista taajuussiirtoavainta (FSK), bps: n ja baudin (symbolit tai äänet sekunnissa) luvut ) eivät ole samat. Esimerkiksi 1200 bps modeemi todella toimii 600 baudilla ja 4800 bps modeemi 1600 baudilla. Katso tämän artikkelin Kaistanleveydet -taulukkoa. Ero johtuu siitä, että tietyn määrän äänipulsseja sekunnissa käytetään lisäksi vaihesiirtoavainta ja muita menetelmiä ylimääräisen kaistanleveyden poimimiseksi samasta baudista korkeamman bps: n saamiseksi. (Joten 56K-modeemi toimii oikeastaan vain 8000 baudilla.)

Kuten näette, UART-nopeuksien luettelo alkoi olennaisesti 75: stä ja kaksinkertaistui jatkuvasti (ohitetaan 600), kunnes se saapui 38400: een, missä se kerrottiin 1,5: llä saaden 57600.56K bps on raja analogiselle puhelinlinjalle. Suurempia nopeuksia 115200 ylöspäin (jälleen kaksinkertaistuminen alkaen 57600: sta) käytetään langallisiin yhteyksiin.

Kuten mikeselectricstuff mainitsi, 14400 ja 28800 bps otettiin käyttöön muodossa 1,5 x 9600 ja 1,5 x 19200, kun modeemin nopeutta ei voitu ”Ei tuplata tuolloin, mutta niitä ei enää käytetä harvoin.

Kommentit

  • Ei ole pedanttinen, mutta ohjelma tukee vain mitä nopeuksia laitteisto sallii. Se ei ehkä edes vaivaudu kyselemään ja luetteloi vain vakionopeudet. Kysymällä laitteistoni, zip(*serial.Serial('COM10').getSupportedBaudrates()), se vastaa: (50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
  • Käytin 600-bittistä / puoli-duplex-akustista kytkintä 80-luvulla. 75-bittistä / s käytettiin saksalaisessa BTX-järjestelmässä pitkään lataussuunnassa, latausnopeus oli 1200 bittiä / s.
  • Olen ’ nähnyt myös 62,5 kt. Itse asiassa se riippuu myös pääkellostasi, voit laskea, mikä baudinopeus johtaa riittävän pieneen virheeseen.

vastaus

Pitkään on ollut yleistä käyttää viestintään 115 200: n alikokoja – joko kahden aliryhmän teho 38 400 tai muuten 57 600 tai 115 200. Suurin osa PC-laitteista tukee näitä hintoja. Jotkut PC-laitteistot voivat tukea 230400 tai 460800. Huomaa, että monet sulautetut ohjaimet, kuten tiedonsiirtonopeudet, jotka ovat omien kellotaajuuksiensa kertoimia, ja jotkut USB-sarja-sirut voivat tukea kaikkia kokonaislukuja 3 000 000 bps, joten nopeudet, kuten 1 000 000 bps tai 1 500 000 bps, todennäköisesti tulevat yleisemmiksi laitteita yhteyden muodostamiseksi tietokoneisiin USB-sirujen kautta.

BTW, yksi mainitsemisen arvoinen nopeus: 31 250 bps on tavallisessa MIDI: ssä käytetty nopeus.

Vastaa

Alkuperäisessä IBM-tietokoneessa oli 8250 UART. Tämä kesti 1,8432 MHZ: n kellon ja jakoi sen jollakin kokonaislukulla sisäisen kellon luomiseksi, ja kello kulkee 16 syklillä bittiin.

Asettamalla 1 jakajarekisteriin saat 115 200, 2 saa 57 600, 3 saa 38400, 6 saa 19200 jne.

Paras veto on käyttää kelloa, joka toimii DSPIC: n kanssa 1,8432 MHz: n kerrannaisilla.

Vastaa

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *