mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MSP430F2410: Effektive Nettodatenrate UART


Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo!

Bin mir bei einer Sache nicht sicher und ich hoffe ihr könnt die 
Unsicherheit aus der Welt schaffen.

Im Datenblatt des MSP430F2410 steht für UART-Schnittstelle (USCI) eine 
mögliche Bitrate von 2 MHz drin.

2 MHz bedeuten 2 Mbit/s.
Allerdings muss ich beachten, dass der UART-Frame ein Start-, ein 
Parity- und ein Stopp-Bit hat. Diese müssen ja auch übertragen werden. 
Was wiederrum heist, dass wenn ich 8 Bit übertragen will in Wirklichkeit 
11 Bit übertragen werden.
Sollte dies der Fall sein, dann kann ich mit der Taktrate von 2 MHz 
nicht 2 Mbit/s (=250kByte/s) Nettodaten übertragen, sondern effektiv nur 
1,45 MBit/s bzw. 181 kByte/s.

Und zum anderen:
Die 2 MHz Bittakt bekomme ich auch nur mit 16 MHz Prozessortakt hin.

Stimmt das?

Danke für eure Antworten!

Gruß
Martin

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Niemand zwingt Dich, die USCI als UART zu nutzen. Sie kann auch als 
SPI-Schnittstelle verwendet werden, und da gibt es weder Start- noch 
Stopbits.

Bei der Verwendung als UART kann übrigens auf das Parity-Bit verzichtet 
werden, was Deine Berechnung etwas verändert; pro Byte werden 10 Bit 
übertragen, was eine effektive Datenrate von 200 kByte/sec zur Folge 
hat.

Davon abgesehen hast Du die Funktion einer UART korrekt verstanden. So 
funktioniert die.

Die 2 MHz Bittakt der USCI im UART-Betrieb sind nur möglich, wenn ein 
16-MHz-Takt zur Verfügung steht, da für das "oversampling" zum Erkennen 
empfangener Daten ein entsprechend höherer Takt als die Baudrate 
erforderlich ist. Übliche UARTs verwenden hier einen Vorteiler von 16 
und --wie hier-- in manchen Fällen auch 8.

Wenn Du die USCI aber in einer synchronen Betriebsart wie z.B. SPI 
betreibst, ist dieses "oversampling" nicht erforderlich, was also höhere 
Datenraten ermöglicht.

Wobei der Takt des CPU-Kernes (MCLK) nicht dem der USCI zur Verfügung 
gestellten (via ACLK oder SMCLK) entsprechen muss.

Bedenke aber, daß der CPU-Kern die zu übertragenden Daten auch irgendwie 
heranschaffen muss, eine kontinuierliche Datenrate von 200 kByte/sec 
lässt pro Byte gerade mal 5 µsec Zeit, dieses bereitzustellen. Der 
CPU-Kern des MSP430 kann auch bei 16 MHz Takt nicht allzuviele 
Instruktionen in dieser Zeit abarbeiten, das sind maximal 80 
Ein-Takt-Operationen.

Im DMA-Betrieb lässt sich das auch ohne CPU-Intervention implementieren, 
aber nur für Speicherblöcke vorgegebener Größe. Und auch die müssen ihre 
Daten irgendwoher bekommen.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ui, die Antwort schnell.
Danke.

Leider bin ich auf UART festgelegt, da der Baustein einen UART hat.

SPI hat halt deswegen die "volle" Datenrate, weil über einen Takt die 
Daten getriggert werden. Ein Kennzeichnung des Datenpaketes durch Start- 
und Stopp-Bits sowie Oversampling (8 oder 16fach) ist daher nicht 
erforderlich.

Aber gut, dass ich nicht falsch lag. Dann bin ich guter Hoffnung, dass 
es funktioniert. ;)

Danke noch mal!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.