www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik UART Datenempfang


Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,

Ich versuche mich gerade mit dem UART anzufreunden. Habe einen 4414 und 
einen 8515 zur Auswahl.
Nun wurde uns folgende Aufgabe gestellt:

Baudrate: 250kBaud

Im Ruhezustand liegt die Datenleitung auf hohem Potential (MARK). Der 
aktive Pegel ist Low (BREAK, SPACE); die Begriffe MARK, SPACE und BREAK 
entstammen der Terminologie serieller Schnittstellen. Die Übertragung 
beginnt mit einem BREAK, der mindestens 88 us Dauer aufweisen soll (2 
Framezeiten). Dieser Break wird als RESET-Signal interpretiert.

Der RESET wird von einem MARK gefolgt, der den Beginn der 
Datenübertragung signalisiert. Dieser MARK soll eine feste Länge von 8 
us nicht unterschreiten.
Im Anschluß hieran werden n+1 Datenbytes gesendet, die die Daten für n 
Kanäle enthalten. Jedes Byte wird von einem Startbit (SPACE) eingeleitet 
und mit zwei Stopbits (MARK) beendet; das Übertragungsformat ist also 
8N2. Man beachte jedoch, daß eine zu sendende 0 als BREAK, eine zu 
sendende 1 als MARK gesendet wird. Das erste gesendete Byte wird als 
Startbyte bezeichnet und hat den festen Wert Null (00h).

Das Problem was nun vorliegt ist nicht die Daten auszuwerten, sondern 
die Erkennung des RESET-Signals mit anschließendem high-Pegel(MARK). 
Denn erst wenn dies korrekt ist kann man ja den UART freigeben.
Des weiteren muß ständig überprüft werden ob dieses RESET-Signal kommt, 
damit bei der Auswertung immer eindeutig ist welches das STARTbyte ist 
und wann Daten kommen.


Wenn also jemand zu diesem Problem eine Antwort weiß so bitte ich diese 
zu posten.
Ich hoffe es sieht jetzt nicht so aus als wolle ich mir keine Arbeit 
machen, aber ich bekomme diese ständige Überprüfung nicht vernünftig 
hin!

ULI

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Überprüfung mit FE-Bit reicht zur Starterkennung eines DMX Frames 
vollständig aus. Lediglich beim Sender mußt du dafür Sorgen, daß als 
BREAK min. 88 µs Space gesendet wird und das MAB min. 8 µs breit ist, 
läßt sich aber über Timer leicht lösen. Ebenso die TimeOut-Erkennung > 1 
sec.

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke mikki,

leider kann ich mit dem FE Bit nicht sehr viel anfangen, da der UART 
relativ Neuland für mich ist.

Kannst du mir es etwas verdeutlichen und wie eine solche umsetzung zu 
realisieren ist. Vom ablauf her gesehen.

Ach ja ich benötige den UART nur zum empfang nicht zum senden der daten.

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Mit Beginn des Breaksignal, welches der UART ja als Startbit erkennt 
wird der Empfangsbetrieb gestartet. Da ja nun das Stop-Bit nicht an 
entsprechender Stelle empfangen wird, wird im UART Status-Register das 
FE-Bit gesetzt (d.h. min. 10 Bit nacheinander waren Space) also kein 
Datenbyte. Als zusätzliche Sicherung kannst du noch die Überprüfung auf 
Startbyte = 0 (DMX1990 Standard) einbauen.

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich dich jetzt richtig verstanden habe brauche ich nur den UART 
starten und wenn das FE-Bit log.1 ist befindet man sich irgendwo im 
RESET-Signal und sobald dann das FE-Bit nicht mehr log.1 ist kommt 
entweder das Startbyte oder die Daten des ersten DMX Kanals.

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das 1. fehlerfreie Byte nach einem FE ist immer das Startbyte
und ist bei Dimmer-Daten immer 0

Autor: Uli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank das werde ich dann mal versuchen.

Machst du selber etwas mit DMX oder woher kommt es dass du darüber 
bescheid weißt??

Uli

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@uli
schau dir den Beitrag an und folge den Anweisungen:
http://www.mikrocontroller.net/forum-extern/read-5...

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.