Wanneer we een seriële communicatie initialiseren, moeten we meestal de baudrate instellen (bijv. 115200). Ik merk dat veel mensen aannemen dat 115200 betekent 115200 bits per seconde. Elke baud (signaalwijziging) kan echter meer dan 1 bit coderen. baud 115200 betekent 115200 bits per seconde alleen als elke baud = 1 bit. Als elke baud 5 bits is, dan betekent baud 115200 een bitsnelheid van 115200 * 5 bits per seconde.
Als wat ik hierboven zei waar is, wat is dan de baud / bit-verhouding voor UART en USB3.0 ervan uitgaande dat de baudrate is ingesteld op 115200?
Het kan niet 1 op 1 zijn omdat 115200 bits per seconde 14,0625 KBps (kilobyte per seconde) is, wat te traag is.
Opmerkingen
- Negeer USB 3.0, stel je voor ” en USB3.0 ” is verwijderd
- Een UART codeert eenvoudigweg 1 als een hoogspanningsniveau en 0 als een laagspanningsniveau.
- (Dat betekent 1 bit per symbool)
- Voor een ‘ normaal ‘ UART, baud == bitsnelheid, dus 115200 baud = 115200 bitsnelheid = 11.520kBps (uitgaande van 8N1 wat 8 bits data + 1 startbit + 1 stopbit betekent).
- Gerelateerd: Verschil tussen Hz en bps .
Antwoord
Een klein punt: b y-definitie, een Baud (genoemd naar Emile Baudot) is één symbool per seconde. Dus uw uitspraak,
baud 115200 betekent 115200 bits per seconde alleen als elke baud = 1 bit. Als elke baud 5 bits is, betekent baud 115200 een bitsnelheid van 115200 * 5 bits per seconde.
is correct in de geest, maar je zou moeten vervang het woord “baud” door “symbool”. Als je een alfabet van 32 symbolen hebt, codeert elk symbool 5 bits, en een signaleringssnelheid van 115200 symbolen per seconde, wat 115200 baud is (per definitie), geeft je 115200 * 5 = 576000 bits per seconde.
De veelgebruikte uitdrukking “baudrate” is grammaticaal incorrect op dezelfde manier als “geldautomaat”. In de definitie van Baud is het concept van snelheid ingebouwd, dus baudsnelheid zeggen is grammaticaal hetzelfde als symboolsnelheid zeggen (wat misschien logisch is als je het hebt over een veranderende symboolsnelheid, maar dat is niet hoe de meeste mensen het gebruiken). Evenzo heeft ‘geldautomaat’ al een ‘machine’ erin verwerkt, dus ‘pinautomaat’ staat gelijk aan het zeggen van ‘geldautomaat’ (wat nogmaals logisch zou kunnen zijn als je het had over een machine die geldautomaten produceert, maar dat “is meestal niet wat mensen bedoelen).
Afgezien van de grammatica, gebruiken de meeste lage tot matige snelheidssignalering op korte afstand via draad binaire signalering, dus de symboolsnelheid is gelijk aan de bitsnelheid. Signalisatie op lange afstand via kabel (bijv. kabelmodems) en via radio gebruiken eerder multi-bit-symbolen, en daarom zal de bitsnelheid hoger zijn dan de symboolsnelheid.
Opmerkingen
- Sorry, maar ik stem neer omdat je het mis hebt. ” Symbool ” betekent in dit geval niet wat je ervan vindt betekent. Typisch bij binaire verzending zijn er slechts twee symbolen, een teken en een spatie. Een alfabet met 32 tekens vereist 5 bits, maar voor elke bit moet een symbool worden verzonden. Dus uw voorbeeld van een 115k baud si De gnaling-snelheid verzendt slechts 115k bits per seconde. Zie en.wikipedia.org/wiki/Baud voor meer informatie.
- @WhatRoughBeast Alleen als je 0 en 1 als symbolen hebt. Entropivore heeft het over 32 spanningsniveaus. en.wikipedia.org/wiki/Pulse-amplitude_modulation In dat geval krijg je 5 bits met één signaal omdat het ‘ s gecodeerd in de amplitude van één symbool.
- @WhatRoughBeast, ik denk dat je misschien in de war bent door de term ” alfabet “. In communicatieve termen betekent ” alfabet ” de set symbolen die via het kanaal kunnen worden gecommuniceerd. Als er slechts twee te onderscheiden staten van het kanaal zijn, dan heb je een alfabet dat uit twee symbolen bestaat. Als er, zoals in ons vorige voorbeeld, 32 staten zijn, dan heb je een alfabet van 32 symbolen. Deze kunnen op vele manieren worden weergegeven, inclusief amplitude en fase van een sinusvormige draaggolf, pulsamplitude, breedte of positie, enz., Enz. Als u ervoor kiest om deze symbolen als een binair woord weer te geven, zijn er 5 bits nodig.
- Sorry, die laatste zin is slecht geformuleerd. Ik had moeten zeggen: ” Als je ervoor kiest om een van deze symbolen weer te geven als een binair woord. ”
Antwoord
Hoewel communicatie digitaal is, is de baudrate gelijk aan de bitsnelheid.Alleen wanneer de communicatie naar analoog is gemoduleerd, kan 1 baud meer dan 1 bit coderen volgens het constellatiediagram .
Voor bussen die gegevens verzenden die sneller zijn dan de bitsnelheid van de seriële verbinding, wordt de verzending uitgevoerd in bursts. USB 3.0 kan tot 1024 databytes verzenden per bulkoverdracht, wat betekent dat gemiddeld elke 1.6384us een volledig pakket wordt verzonden, uitgaande van een bussnelheid van 5 Gbps.
Opmerkingen
- Is je eerste alinea waar voor bussen die parallelle kanalen gebruiken?
- Laat me mijn vraag simpel houden. Wat betekent het als ik de baudrate voor uart instel op 115200? Betekent dit dat de maximale gegevenssnelheid 115200 bps is? Als het meer kan zijn, waarom?
- @jippie: Ik veronderstel dat het technisch gezien niet ‘ t is, maar in wezen verwijst niemand naar ” baud ” wanneer we het hebben over een parallel kanaal.
- @WeidongGuo: Het impliceert dat er ergens langs de lijn een apparaat is dat bits zal verzenden met een afstand van ten minste ongeveer 8,7us tussen elke bit, en een andere die bits kan ontvangen met niet minder dan dezelfde periode.
- @WeidongGuo: Er is geen ‘ t . Daarom kan USB-latentie een probleem zijn voor bepaalde toepassingen.
Answer
U vergelijkt de tarieven op verschillende lagen in een abstractiemodel. In uw voorbeeld wordt USB3.0 alleen gebruikt als een tunnel om “115200 bps UART” door te sturen. Het maakt niet uit hoe USB3.0 dat doet, de voltages kunnen verschillen, de frames kunnen verschillen, de snelheid kan verschillen. (Ze zullen allemaal tussen haakjes).
Antwoord
Bitrate en baudrate zijn hetzelfde voor UART, zoals anderen zeiden. Het is niet hetzelfde voor alle basisbandsignaleringsmethoden (anderen noemden ze digitaal, wat niet per se correct is). Manchester-regelcode, daar wordt de bit bijvoorbeeld gecodeerd als stijgende of falende rand.
De manier waarop u de bitsnelheid hebt berekend, is echter niet correct. UART gebruikt woordsynchronisatie, wat betekent dat het hele bytes tegelijk ingekapseld in frames van ten minste 9 bits. De startbit wordt toegevoegd voor fasesynchronisatie van klokken tussen ontvanger en zender.
Dit is ook de reden waarom het geen zin heeft om te verwijzen naar bitsnelheden in het geval van UART – het is een van beide bytes rate of baudrate.
Reacties
- Volgens deze pagina en.wikipedia. org / wiki / List_of_device_bit_rates , serieel 16 550 UART max heeft een bitsnelheid van 1,5 Mbit / s, wat betekent dat elk symbool (signaalverandering) is gecodeerd in (1,5 M / 115200 = 13 bits), uitgaande van 115220 baud. Heb ik gelijk?
- Nee, 1.5Mbit is de maximale doorvoer die haalbaar is met UART, gezien de lijncode en signaleringsmethode. Het heeft niets te maken met 115,2kB, dat is gewoon een andere snelheid.
- Laat me dan een getal verzinnen, als de gemiddelde snelheid 1,5 Mbit / s is voor UART, is wat ik hierboven zei waar dan.
- Nee, als je een verwerkingscapaciteit van 1,5 Mbit / s hebt, betekent dit dat je ongeveer 187 kB / s hebt, wat zich vertaalt naar een baudrate van minstens 1,65 MBd. Dit is het geval wanneer elke byte wordt gecodeerd met behulp van een startbit en de 8 bits van de byte, zonder stop- en pariteitsbits (deze zijn optioneel). Zoals ik hierboven al zei, zijn bits en bauds 1: 1 in UART, maar er is een verschil tussen de bits die je hebt verzonden en bits van de gegevens, aangezien elke byte is ingekapseld in zijn eigen frame.
- Het kan me alleen schelen over de verzonden bits, niet alleen over de gegevens (payload). ” Baudsnelheden kunnen redelijkerwijs elke waarde hebben. De enige vereiste is dat beide apparaten op dezelfde snelheid werken “. Dus baud is protocolafhankelijk, of hardware-afhankelijk, of beide?