mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage zu Begrifflichkeiten


Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich bin mir bei den Begriffen aus der MC-Welt noch nicht so ganz sicher, 
ob ich aller richtig verstanden habe. Wir arbeiten im Studium mit einem 
MC8051, die Fragen sind aber eher allgemeiner Natur. Ich geb mir meine 
Antworte teilweise mal gleich selber, vielleicht kann mir jemand sagen, 
ob ich es richtig verstanden habe ;)

Quarztakt/Zyklen
-----------------

Der 8051 arbeitet mit einem Quarztakt von 11.0592 MHz und hat pro 
Quarztakt 12 Zyklen, dh 11059200/12 = 921600 Zyklen pro Sekunde

Was mir noch nicht so ganz klar ist, ist der Begriff Zyklus. Ist ein 
Zyklis die Pegeländerung von Low auf High oder ist ein Zyklus von 
low->high->low

BAUD/BAUD-Rate
----------------

Mir ist noch nicht ganz klar, was in diesem Zusammenhang mit Symbol 
gemeint ist:
1 Baud ist die Geschwindigkeit, wenn 1 Symbol pro Sekunde übertragen 
wird

Soweit ich verstanden habe, kann ein Symbol aus x Bits bestehen. Aber wo 
ist festgelegt, wie viele Bits das sind?

Ein einfaches Beispiel wäre ja die Übertragung von ASCII-Codes (7 Bit) 
mit einem Prüfbit (Odd Parity) sind dann diese 7 bit oder 8 bit das 
Symbol?

In unserem Beispiel haben wir über Timer1 eine Baudrate von 1200Bd 
generiert. Da ist mir auch noch nicht ganz klar, welche Bedeutung der 
Timer für die Serielle Schnittstelle hat. wird beim Timerüberlauf 
automatisch der Interrupt für die Schnittstelle ausgelöst? Oder gibt 
diese der Schnittstelle einen Takt vor, wann er ein anliegendes Signal 
in den nächsten Buffer-Platz legen soll

Fragen über Fragen ;)

Vielen Dank erstmal.

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sascha wrote:

> BAUD/BAUD-Rate
> ----------------
>
> Mir ist noch nicht ganz klar, was in diesem Zusammenhang mit Symbol
> gemeint ist:
> 1 Baud ist die Geschwindigkeit, wenn 1 Symbol pro Sekunde übertragen
> wird
>
> Soweit ich verstanden habe, kann ein Symbol aus x Bits bestehen. Aber wo
> ist festgelegt, wie viele Bits das sind?

Im Protokoll.

Schau mal in der Wikipedia nach RS-232, da wird beschrieben, dass es 
zwei Pegel gibt. Der eine steht für 1, der andere für 0.

Bei GBit-Ethernet ist das anders. Aber das steht immer im jeweiligen 
Standard.


> Ein einfaches Beispiel wäre ja die Übertragung von ASCII-Codes (7 Bit)
> mit einem Prüfbit (Odd Parity) sind dann diese 7 bit oder 8 bit das
> Symbol?

Symbol != Buchstabe.

Ein Symbol ist die kleinste Information:

Beim RS-232 ist also ein Symbol ein Bit.

Zusätzlich zur Parity kommen noch Start- und Stopbit hinzu. Oft brauchst 
du also 11 Bit pro Charakter, den du übertragen willst.

Beim GBit können mehrere Bit pro Symbol übertragen werden, siehe WP.

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, also kommt es auf die schnittstelle bzw das jeweilige Protokoll an, 
aus wie vielen wie Bits (High-Pegel) ein Symbol besteht. Bei der RS-232 
also 1 Bit / Signal, d.h. mit Start- und Stoppbit brauche ich 11 Symbole 
um einen ASCII-Zeichen / s übertragen zu können. Bei 1200Bd wären das 
also 1200/11 = 109 Zeichen / s

Und der Timer? Gibt der an, in welchen Zyklen nach wie viel Zyklen das 
nächste BIT gelesen wird?

Achja, und da war noch die Frage nach dem Zyklus ;)

Danke!!

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei dem "Zyklus" bin ich mir nicht sicher.

Aber da schau doch einfach mal genau ins Datenblatt deines Prozessors. 
Oft steht da, für welche Maschinenbefehle wieviele Zyklen benutzt 
werden.

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sascha wrote:

> Und der Timer? Gibt der an, in welchen Zyklen nach wie viel Zyklen das
> nächste BIT gelesen wird?

Bei den UARTS wird oft sogar mit einem Vielfachen der Geschwindigkeit 
gemessen.

Z.B. pro Bit dreimal abgetastet. Wenn wenigstens zweimal eine 1 gemeldet 
wird, wirds wohl eine gewesen sein.

Bei RS-232 sind Sende und Empfänger ja nicht synchron.

Bei Synchronen Protokollen reicht auch einmal messen.

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ok, also prinzipiell ist es schon so, dass pro "Timer-Überlauf" 1 Bit 
gelesen wird

Autor: Karl-heinz Strunk (cletus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Mikroprozessoren haben UARTS als Peripherie; wie die genau intern 
arbeiten, weiß ich nicht.

Aber um die Timer brauch man sich ja auch nicht zu kümmern. Man stellt 
die Einstellung richtig ein und gut ist.

Ab dann bekommt man fertige Chars raus.

Autor: Ralf (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Zyklus:

1 Befehlszyklus = 12 Oszillator- oder Maschinen-Zyklen

Ein Zyklus ist eine sich wiederholende Abfolge, d.h. in diesem Fall von 
dem Moment an, ab der das Signal low wird bis es wieder low wird:

LLHHLLHHLL
    ^   ^

Du kannst auch sagen, dass es die Periodendauer einer Frequenz ist, also 
so, wie man es in der Schule gelernt hat :)

Mittlerweile gibt es natürlich neue Technologien, so dass die 
12er-Teilung bei neueren 8051-Derivaten nicht mehr gegeben ist, sondern 
eine 6er, 4er und bisweilen sogar eine 1er-Teilung möglich ist!

Der Timer gibt den Takt für den UART vor, wobei der Takt normalerweise 
das 16-fache der Baudrate ist.
Wie weiter oben bereits gesagt wurde, wird eine 2-aus-3 Auswertung 
vorgenommen, um Störeinflüsse zu ver(h/m)indern.

Somit stimmt es also nicht, dass pro Timer-Überlauf 1 Bit gelesen wird!

Guck mal in den Anhang, da steht alles beschrieben, auch die Zyklen 
usw., und wenn noch Fragen sind, kannst ja nochmal schreiben.

Ralf

Autor: Lothar Miller (lkmiller) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Wir arbeiten im Studium mit einem MC8051...
Und das Skript wird auf Steintafeln gemeißelt... ;-)

> Was mir noch nicht so ganz klar ist, ist der Begriff Zyklus.
Ein Zyklus ist ein kompletter, nicht unterbrechbarer Durchlauf der 
internen Statemachine. Bestehend aus Befehl holen, Befehl 
interpretieren, Befehl ausführen, Ergebnis ablegen. Damit kann ein 
"Elementarbefehl" (z.B. Akku löschen) ausgeführt werden. Wenn aber 
Operanden aus bestimmten Speicherbereichen (z.B. RAM) benötigt werden, 
sind zusätzliche Zyklen nötig.

Autor: Sascha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok, dann danke ich erstmal soweit und danke für die Datei, werd mir das 
auf jeden Fall mal durchlesen !

[quote]Und das Skript wird auf Steintafeln gemeißelt... ;-)[/quote]
Nein, das Skript ist an und für sich auch ganz gut, aber das stand halt 
nicht drin.
Manchmal ist es so, dass die Profs Dinge stillschweigend voraussetzen 
oder nur in der Vorlesung kurz erwähnen. Leider habe ich aus 
gesundheitlichen Gründen aber die ersten beiden Vorlesungen zu dem Thema 
verpasst und stieß im Rahmen der Prüfungsvorbereitung wieder darauf. 
Vielleicht ist es für die Prüfung auch eher nicht wirklich wichtig, weil 
man im Prinzip wirklich nur den Timer einstellen muss und die Baud-Rate 
im Falle einer entsprechenden Aufgabe gegeben hat.Aber ich versuche 
lieber die Dinge auch halbwegs zu verstehen ;)

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.