Jaké standardní sazby UART existují?

Znám 9600, 19200, 38400, 57600, 115200 a 1,8432 MBaud, ale žádné jiné. Proč se tyto hodnoty používají a zda se pokaždé jednoduše zdvojnásobí, nebo se děje něco složitějšího (například 38 400 čtyřnásobek není 115 200 baudů?)

Důvod, proč se ptám na tuto otázku, je, že navrhování něčeho, co možná bude muset interagovat s řadou různých přenosových rychlostí. Bude inicializováno v roce 9600 a poté přepne na konkrétní přenosovou rychlost. Ale nemohu „podporovat libovolné rychlosti, protože dsPIC33F, který používám, nepodporuje libovolné rychlosti jako je omezen na 16bitový čítač BRG dolů. V tomto ohledu je to podobné jako u mnoha dalších procesorů.

Komentáře

  • V praxi je více než dostačující 16bitové počítadlo plus škálovače pre / post. dostat “ dostatečně blízko “ na libovolné přenosové rychlosti. Seriál UART může tolerovat mírné neshody přenosové rychlosti.
  • uart začíná uprostřed bitu START a po serializaci 7–10 bitů musí zůstat blízko středu bitu STOP. Díky tomu je minimální přesnost hodin kolem 2–3%, nejlépe lépe zvládne šum, chvění, odchylky v frekvence zdroje …

Odpověď

Začalo to dávno před teletypy – myslím, že 75 baudů Od té doby se to od té doby většinou zdvojnásobuje, s několika zlomky (x 1,5), například 28 800, kde existují omezení na technologii modemů po telefonní lince, která to neumožňovala zdvojnásobit.

Standardní hodnoty krystalů pocházejí z těchto prvních přenosových rychlostí a jejich dostupnosti y určuje budoucí sazby. Např.

\ $ \ begin {align} {7.3728 \, \ mathrm {MHz} \ přes 16} & = 460 800 \; \ text {baud} \\\\ {7,3728 \, \ mathrm {MHz} \ přes 64} & = 115 200 \, \ text {baud}. \ end {align} \ $

Většina UARTS používá hodiny \ $ 2 ^ n \ krát 16 \ $ přenosové rychlosti, modernější části (např. NXP LPC) mají zlomkové děliče, aby získaly širší rozsah pomocí nebinárních násobků.

Další běžné standardy jsou 31 250 (MIDI) a 250 K (DMX), oba jsou pravděpodobně vybrány jako pěkné násobky „kulatých“ hodin, jako je 1 MHz atd.

Komentáře

  • Nemyslím ‚ na zlomkové děliče jsou pro získání nestandardních datových toků, ale spíše standardních datových toků z nestandardních hodinových frekvencí MCU.
  • Opravil jsem dva roky 1926 dálnopisů, zpět na vysoké škole (1976) a ano, běžely kolem 75 baudů. Byly označeny jako baudotové dálnopisy. Zapojeno do 110Vac a časování zajišťoval motor s elektrickým spojením mezi nimi. Napustil jsem je benzínem, abych je vyčistil. (Dejte mi pauzu – bylo mi 18. Ale fungovalo to!) Ctrl-G zazvonil na toho druhého upřímným zvonem. Bohužel si ‚ ani nepamatuji, komu jsem je dal. 🙁 Takže, jo, ‚ d napíšete na mechanickou klávesnici, mechanicky by to serializovalo vaše stisknutí kláves a rozbilo by kontakt, který přečetla druhá strana.
  • Yay, The Roaring ‚ 20 ‚ s! Jaká kvalitní technologie vydrží 50 let a skončí u Johna Silvy ‚ je přístřešek v Haywardu v Kalifornii.
  • @DougNull Omlouváme se za bouli – otázka za 115200 bps. Takže jste vzali hodiny IC (7,3728 MHz) a rozdělili je tím ? Jak jste získali 64?

Odpověď

RealTerm, freewarový terminálový program pro Windows, uvádí tyto sazby UART v nabídce Baud:

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

Ve skutečnosti se však jedná bitů za sekundu (b / s), ne baud – viz níže.

110 baudů bylo použito na 8úrovňových Teletypech jako ASR-33. Nevím, kde bylo použito 150 Baudů, ale je zdvojnásobení 75 baudů, běžně my ed (spolu s 60 baudy) pro 5úrovňové TTY.

300 bps bylo standardem pro první široce používané telefonní modemy v šedesátých letech. Současně se objevilo několik terminálů o rychlosti 30 znaků za sekundu.

Nad 300 bps / 300 baud, které používaly jednoduché klíčování s frekvenčním posunem (FSK), jsou hodnoty bps a baud (symboly nebo tóny za sekundu) ) nejsou stejné. Například modem s rychlostí 1200 b / s skutečně běží na 600 baudů a modem s rychlostí 4800 b / s běží na 1 600 baudů. Přečtěte si tabulku v části Šířky pásma v tomto článku . Rozdíl je v tom, že kromě použití určitého počtu tónových pulzů za sekundu se k extrahování další šířky pásma ze stejné přenosové rychlosti používají klíčování fázovým posunem a další metody . rychlost, aby se zvýšila a vyšší bps. (Takže 56K modem ve skutečnosti běží pouze na 8000 baudech.)

Jak vidíte, seznam sazeb UART v podstatě začínal na 75 a neustále se zdvojnásoboval (přeskočil 600), až se dostal na 38400, kde to byl vynásoben 1,5 a získal 57600.56 Kb / s je limit pro analogovou telefonní linku. Vyšší rychlosti 115200 a více (opět zdvojnásobení počínaje 57600) se používají pro pevné připojení.

Jak zmínil mikeselectricstuff, 1400 a 28800 b / s byly zavedeny jako 1,5 x 9600 a 1,5 x 19200, když rychlosti modemů nemohly být „nelze je zdvojnásobit v té době, ale již se zřídka používají.

Komentáře

  • Nemělo by to být pedantské, ale program podporuje pouze to, jaké rychlosti hardware umožňuje. Možná se ani neobtěžuje ptát se a vypsat standardní rychlosti. Na můj hardware zip(*serial.Serial('COM10').getSupportedBaudrates()) odpoví: (50, 75, 110, 134, 150, 200, 300, 600, 1200, 1800, 2400, 4800, 9600, 19200, 38400, 57600, 115200)
  • V osmdesátých letech jsem používal poloduplexní akustický vazební člen 600 bit / s. V německém systému BTX byl ve směru nahrávání dlouhou dobu používán 75 bit / s, stahování bylo 1200 bit / s.
  • I ‚ jsem také viděl 62,5 kBaud. Ve skutečnosti to také záleží na vašich hlavních hodinách, můžete vypočítat, jaké přenosové rychlosti povedou k dostatečně nízké chybě.

Odpověď

Po dlouhou dobu je běžné pro komunikaci používat podskupiny 115 200 – buď mocnost dvou podskupin 38 400, nebo 57 600 nebo 115 200. Většina PC hardware tyto sazby podporuje. Některý hardware počítače může podporovat 230 400 nebo 460 800. Všimněte si, že mnoho integrovaných řadičů, jako jsou datové rychlosti, které jsou dílčími násobky jejich vlastních rychlostí hodin, a některé USB-to-sériové čipy mohou podporovat jakýkoli celočíselný submultiple 3 000 000 bps, takže rychlosti jako 1 000 000 bps nebo 1 500 000 bps budou pravděpodobně běžnější zařízení pro připojení k PC přes USB čipy.

BTW, ještě jedna rychlost stojí za zmínku: 31 250 bps je rychlost používaná pro standardní MIDI.

Odpověď

Původní počítač IBM PC měl 8250 UART. To trvalo hodiny 1,8432 MHZ a vydělilo to nějakým celým číslem, aby se vygenerovaly jeho vnitřní hodiny, a že hodiny běží na 16 cyklů na bit.

Nastavení 1 v registru dělitele vám poskytne 115 200, 2 získá 57 600, 3 získá 38 400, 6 získá 19 200 atd.

Nejlepším řešením je použít hodiny, které na DSPIC běží na násobku 1,8432 MHz.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *