Forum: Mikrocontroller und Digitale Elektronik Abtastung SPI-Signal


von Walter T. (nicolas)


Lesenswert?

Hallo zusammen,

ich will/muss etwas ähnliches wie einen SPI-Slave implementieren. Ich 
würde mich dazu gerne erst einmal auf der Theorieseite ertüchtigen. Kann 
jemand dazu Lesestoff empfehlen?

Viele Grüße
W.T.

von Logi Kerr (Gast)


Lesenswert?

Walter T. schrieb:
> ich will/muss etwas ähnliches wie einen SPI-Slave implementieren.

Dann nimm Literatur die sich mit etwas ähnlichem wie einen
SPI-Slave befasst.

Durch die "Ähnlichkeit" ist leider keine genauere Aussage
möglich.

von Walter T. (nicolas)


Lesenswert?

Hättest Du denn Fachliteratur parat, in denen genau ein echter SPI und 
genau ein echter RS232 softwareseitig abgetastet erklärt werden?

von Thomas F. (igel)


Lesenswert?

Walter T. schrieb:
> ich will/muss etwas ähnliches wie einen SPI-Slave implementieren.

Gehört das zu deinem anderen Fred?
Beitrag "Gesucht: Digitale Meßuhr"

Dafür gibt es einige Lösungen im Netz. Such mal nach "Digital 
Messschieber auslesen"

von Walter T. (nicolas)


Lesenswert?

Thomas F. schrieb:
> Gehört das zu deinem anderen Fred?

Ja, gehört es - aber: ich suche keine Lösung des konkreten Problems. Ich 
stehe bei diesem Mini-Projekt unter keinerlei Zeitdruck und würde das 
als Gelegenheit nutzen wollen, mich mal mit der Materie zu beschäftigen.

Insbesondere hat mich schon länger interessiert, wie bei einer 
äquidistanten Abtastung die Taktrückgewinnung bei einem UART 
funktioniert.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Guck' dir halt die entsprechenden Projekte auf opencores.org an.

Gruss
WK

von Peter D. (peda)


Lesenswert?

Walter T. schrieb:
> Ich
> würde mich dazu gerne erst einmal auf der Theorieseite ertüchtigen.

Was gibt es da groß zu theoretisieren, schau z.B. einfach ins Datenblatt 
eines ATmega, Abschnitt SPI.

SPI-Slave mit nem MC zu Fuß zu machen, hängt sehr vom SPI-Takt des 
Masters ab. Voraussetzung ist ein MC mit Priorisierung, dann kann man 
dem Flankeninterrupt die höchste Priorität geben, d.h. andere Interrupts 
zerstören nicht das Timing.

von Schlumpf (Gast)


Lesenswert?

Walter T. schrieb:
> Kann jemand dazu Lesestoff empfehlen?

https://de.wikipedia.org/wiki/Serial_Peripheral_Interface

Walter T. schrieb:
> Insbesondere hat mich schon länger interessiert, wie bei einer
> äquidistanten Abtastung die Taktrückgewinnung bei einem UART
> funktioniert.

Das hat jetzt aber nichts mit SPI zu tun

von Klaus (Gast)


Lesenswert?

Walter T. schrieb:
> Hättest Du denn Fachliteratur parat, in denen genau ein echter SPI
> und
> genau ein echter RS232 softwareseitig abgetastet erklärt werden?

Einen "echten" SPI gibts eigentlich nicht. IMHO gibt es für ein 
Schieberegister, und mehr ist SPI eigentlich nicht, keinen geschriebenen 
Standard, nur das Datenblatt des jeweiligen Chips.

Ein wichtiger Unterschied ist, daß RS232 asynchron und SPI synchron ist. 
Es macht daher keinen Sinn, beide auf ähnliche Weise erklären zu wollen. 
So wird bei SPI, einem Schieberegister, abgetastet, wenn das Clocksignal 
seine Polarität wechselt (egal wann). Bei RS232 gibt es eine fest 
vereinbarte Zeitbeziehung zwischen Sender und Empfänger.

MfG Klaus

von Walter T. (nicolas)


Lesenswert?

Klaus schrieb:
> Es macht daher keinen Sinn, beide auf ähnliche Weise erklären zu wollen.

Das erwartet auch keiner. Ich gehe aber mal davon aus, dass sich 
trotzdem beide im gleichen Buch oder Skript "Grundlagen von Bussystemen" 
oder so wiederfinden.

: Bearbeitet durch User
von Dergute W. (derguteweka)


Lesenswert?

Moin,

Walter T. schrieb:
> Ich gehe aber mal davon aus, dass sich
> trotzdem beide im gleichen Buch oder Skript "Grundlagen von Bussystemen"
> oder so wiederfinden.

Die Hoffnung stirbt zuletzt... :-)

Gruss
WK

von Schlumpf (Gast)


Lesenswert?

Walter T. schrieb:
> Ich gehe aber mal davon aus, dass sich
> trotzdem beide im gleichen Buch oder Skript "Grundlagen von Bussystemen"
> oder so wiederfinden.

In beiden Fällen handelt es sich nicht um einen Bus im eigentlichen 
Sinne.

SPI und UART sind so trivial, dass ich mir nicht vorstellen kann, dass 
jemand über sowas ein Buch schreibt.

Ich hab dir zu SPI einen Wikipedia-Artikel verlinkt.
Hast du den gelesen?
Wenn ja, hast du dann noch offene Fragen?

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Walter T. schrieb:
> Insbesondere hat mich schon länger interessiert, wie bei einer
> äquidistanten Abtastung die Taktrückgewinnung bei einem UART funktioniert.
Du musst einfach die "Äquidistanzen" hinreichend klein machen und das 
Signal "hinreichend" schnell abtasten. Normalerweise macht diese 
Überabtastung (weil sie simpel ist und schnell gehen muss) die 
Hardware...

Klaus schrieb:
> Einen "echten" SPI gibts eigentlich nicht. IMHO gibt es für ein
> Schieberegister, und mehr ist SPI eigentlich nicht, keinen geschriebenen
> Standard, nur das Datenblatt des jeweiligen Chips.
Das englische Wiki beschreibt es ganz gut:
1
The SPI bus is a de facto standard. However, the lack of a formal standard
2
is reflected in a wide variety of protocol options.
https://en.wikipedia.org/wiki/Serial_Peripheral_Interface

Schlumpf schrieb:
> SPI und UART sind so trivial
Du kennst die Dinger aus der (FPGA-)Hardware-Sicht. Du kannst dir nicht 
vorstellen, wie umständlich sich das manch einer vorstellt... ;-)
Wenn man die Hardwarebetrachtung des SPI wie z.B. im 
Beitrag "Re: Erfahrung mit SPI Slave und Spartan 6 FPGA?" mal abgeschlossen 
hat, dann kann man den SPI natürlich auch einfach in Software gießen, 
wenn(!!!) der µC und die drauf laufende Software schnell genug ist.

von Schlumpf (Gast)


Lesenswert?

Lothar M. schrieb:
> Du kennst die Dinger aus der (FPGA-)Hardware-Sicht. Du kannst dir nicht
> vorstellen, wie umständlich sich das manch einer vorstellt... ;-)

Das könnte natürlich auch der Fall sein ;-)

Mir kommt es auch so vor, als seien für den TO Begriffe wie SPI, UART, 
Abtastung, Takt(Rückgewinnung) extrem nebulöse Dinge.
Und er hofft, jetzt ein Buch zu finden, wo das alles kompakt erklärt 
wird.

Da ich nicht glaube, dass es EIN Buch gibt, das genau seine Fragen 
beantwortet, wär es vielleicht sinnvoll, wenn er mal etwas bekommt, 
womit er anfangen und dann ggf konkretere Fragen stellen kann.
Daher auch meine Frage, ob er den Wiki Artikel gelesen hat und noch 
konkrete Fragen hat.

von Walter T. (nicolas)


Lesenswert?

Lothar M. schrieb:
> Du musst einfach die "Äquidistanzen" hinreichend klein machen und das
> Signal "hinreichend" schnell abtasten.

Das ist vom Verständnis der einfache Teil.

Danach muss ich aus den Stützstellen die Nulldurchgänge gewinnen. Wenn 
ich n Abtastschritte pro Sekunde schaffe, und m davon zwischenspeichern 
kann, entsteht wohl eine Art binäres FIR-Filter m-ter Ordnung. Dann muss 
ich die Samplerate so dezimieren, dass genau der ursprüngliche Bit-Takt 
herauskommt.

Das ist vermutlich alles keine Geheimwissenschaft - aber ich tue mich 
gerade schwer, mir das vorzustellen.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Walter T. schrieb:
> Danach muss ich aus den Stützstellen die Nulldurchgänge gewinnen. Wenn
> ich n Abtastschritte pro Sekunde schaffe, und m davon zwischenspeichern
> kann, entsteht wohl eine Art binäres FIR-Filter m-ter Ordnung. Dann muss
> ich die Samplerate so dezimieren, dass genau der ursprüngliche Bit-Takt
> herauskommt.
>
> Das ist vermutlich alles keine Geheimwissenschaft - aber ich tue mich
> gerade schwer, mir das vorzustellen.

Nein, nicht bei UART oder SPI. Bei SPI tut sich immer nur was bei der 
Flanke des Clk Signals. Bei UART wartest du auf die (je nach pegel 
steigende oder) fallende Flanke des RxD und mutmasst, dass da jetzt der 
Beginn des Startbits ist. Also tastest du eine halbe Bitbreite spaeter 
nochmal ab und guckst, ob das immer noch Startbit ist. Danach tastest du 
jeweils nach einer Bitlaenge ab, bis das Byte und das/die Stoppbits 
durch sind.
Das ist die Primitivversion.
In der Standardversion wird ueblicherweise nicht nur genau in der Mitte 
des jeweiligen Bits abgetastet sondern noch 1/8 bitbreite vorher und 
nachher. Aus den 3 Werten wird dann eine Mehrheitsentscheidung gewonnen, 
die ist dann das empfangene Bit.

Gruss
WK

von Klaus (Gast)


Lesenswert?

Dergute W. schrieb:
> Nein, nicht bei UART oder SPI. Bei SPI tut sich immer nur was bei der
> Flanke des Clk Signals. Bei UART wartest du auf die (je nach pegel
> steigende oder) fallende Flanke des RxD und mutmasst, dass da jetzt der
> Beginn des Startbits ist. Also tastest du eine halbe Bitbreite spaeter
> nochmal ab und guckst, ob das immer noch Startbit ist. Danach tastest du
> jeweils nach einer Bitlaenge ab, bis das Byte und das/die Stoppbits
> durch sind.
> Das ist die Primitivversion.

Du warst schneller, deswegen nur noch eins: RS232 wurde für 
Fernschreiber (Teletype) erfunden. Die waren rein (elektro)mechanisch.



MfG Klaus

von Walter T. (nicolas)


Lesenswert?

Dergute W. schrieb:
> In der Standardversion wird

Okay...das ist die Hardware-Version. Nicht besonders kompliziert, aber 
ich muss die Bitrate der Quelle genau genug kennen.

Bei einer Software-Abtastung müsste sich doch -hinreichende 
Überabtastung und ausreichend häufige Flankenwechsel vorausgesetzt- die 
Bitrate aus dem Signal selbst rekonstruieren lassen.

von Walter T. (nicolas)


Lesenswert?

Bei SPI habe ich das Prinzip verstanden: Die Pegelwechsel für das 
Nutzsignal sind hinreichend weit vom Pegelwechsel des Taktsignals, dass 
weder ein Prellen des Taktsignals noch des Nutzsignals ein fehlerhaftes 
Bit entstehen kann.

von Axel S. (a-za-z0-9)


Lesenswert?

Walter T. schrieb:

> Danach muss ich aus den Stützstellen die Nulldurchgänge gewinnen.

Und was soll daran ein Problem sein?

> Wenn
> ich n Abtastschritte pro Sekunde schaffe, und m davon zwischenspeichern
> kann

Warum solltest du abtasten, aber nicht abspeichern?

> entsteht wohl eine Art binäres FIR-Filter m-ter Ordnung. Dann muss
> ich die Samplerate so dezimieren, dass genau der ursprüngliche Bit-Takt
> herauskommt.

Ähmm. Nein. An der Samplerate wird genau gar nichts geändert. Und 
überhaupt denkst du viel zu kompliziert.

Der Software UART kennt die Datenrate seines Gegenübers bereits. Er 
macht eine Überabtastung mit der n-fachen Geschwindigkeit (n>=2, typisch 
4) aus zwei Gründen:

1. um Störimpulse (Spikes) rauszufiltern
2. um den Phasenversatz zwischen seinem Takt und dem Takt des Senders zu 
bestimmen.

Punkt 1 passiert ständig. Stell es dir wie eine Entprellung vor. Punkt 2 
macht man normalerweise nur beim Startbit. Man bestimmt einfach den 
Zeitpunkt (bezogen auf den eigenen Takt) der fallenden Flanke des 
Startbits und tastet dann die folgenden Bits immer in der Mitte ab.

von Peter D. (peda)


Angehängte Dateien:

Lesenswert?

Walter T. schrieb:
> Danach muss ich aus den Stützstellen die Nulldurchgänge gewinnen. Wenn
> ich n Abtastschritte pro Sekunde schaffe, und m davon zwischenspeichern
> kann, entsteht wohl eine Art binäres FIR-Filter m-ter Ordnung. Dann muss
> ich die Samplerate so dezimieren, dass genau der ursprüngliche Bit-Takt
> herauskommt.

Quatsch, Du wartest einfach auf die SCK-Flanken und schiebst dann das 
Bit rein bzw. raus.
Siehe Anhang.

von Klaus (Gast)


Lesenswert?

Walter T. schrieb:
> weder ein Prellen des Taktsignals noch des Nutzsignals ein fehlerhaftes
> Bit entstehen kann.

Ein prellendes Taktsignal macht die Übertragung kaput. Beim Takt zählt 
jede Flanke, solange sie nur langsamer kommt als die Hardware sie 
erkennen kann. Es ist einfach ein Schieberegister: eine Flanke ist ein 
Bit. Ob das nun Prellen war oder gewollt.

MfG Klaus

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Walter T. schrieb:
> Okay...das ist die Hardware-Version. Nicht besonders kompliziert, aber
> ich muss die Bitrate der Quelle genau genug kennen.
Jepp. Daher wird die bei UART-Verbindungen auch mal gerne mitangegeben. 
Genauso wie die Anzahl der Datenbits und Stopbits.

> Bei einer Software-Abtastung müsste sich doch -hinreichende
> Überabtastung und ausreichend häufige Flankenwechsel vorausgesetzt- die
> Bitrate aus dem Signal selbst rekonstruieren lassen.
Auch das geht, aber grad' UART ist da etwas unguenstig (Du kannst ja 
auch mal 10000 Bytes 0xff oder 0x00 uebertragen wollen).
Bei Schnittstellen wie ASI oder SDI kann man sowas mit Ueberabtastung, 
FIR und Taktrueckgewinnung wie's dir vorschwebt, machen. Aber eher auch 
nicht mehr in Software sondern in Flipflops und LUTs.

Gruss
WK

von Walter T. (nicolas)


Lesenswert?

Ich habe keine Ahnung, warum hier jede Menge negative Bewertungen 
vergeben werden. Das Thema müßte doch in irgendeiner Grundvorlesung im 
Elektrotechnik-Studium behandelt werden. Vermute ich. Also müßte es dazu 
auch Lehrmaterial in irgendeiner Form geben. Das suche ich.

Ich finde es zwar nett gemeint, dass ihr in diesem Thread versucht, mir 
das Thema anhand von Beispielen zu erklären - aber ich suche eigentlich 
keine Implmentierungs-Beispiele. Ich suche guten Lesestoff.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Walter T. schrieb:
> Bei einer Software-Abtastung müsste sich doch -hinreichende
> Überabtastung und ausreichend häufige Flankenwechsel vorausgesetzt- die
> Bitrate aus dem Signal selbst rekonstruieren lassen.
Das funktioniert eben bei einem Interface, das keine definierten 
Pegelwechsel durch Stuffbits (wie z.B. CAN oder Ethernet oder Sercos) 
hat, nur unzuverlässig.

Dergute W. schrieb:
> Auch das geht, aber grad' UART ist da etwas unguenstig (Du kannst ja
> auch mal 10000 Bytes 0xff oder 0x00 uebertragen wollen).
Naja, nach jeweils 8 Bits tut sich sicher mal was. entweder am Startbit 
oder am Stopbit... ;-)

Klaus schrieb:
> Walter T. schrieb:
>> weder ein Prellen des Taktsignals noch des Nutzsignals ein fehlerhaftes
>> Bit entstehen kann.
> Ein prellendes Taktsignal macht die Übertragung kaput.
Wenn ein SPI-SCLK "prellt", dann muss man diesen Fehler beheben, und 
nicht mit Software dran rumbasteln...
Siehe die Betrachtungen im 
Beitrag "Re: Serienwiderstand bei Hochfrequenz"

Peter D. schrieb:
> Du wartest einfach auf die SCK-Flanken und schiebst dann das Bit rein
> bzw. raus.
Wobei man "warten" nicht allzu wörtlich nehmen sollte. Man kann da bei 
entsprechend schnellem SCLK (z.B. 5MHz statt 5kHz) eher wegen "zu 
langsam" Probleme bekommen.   ;-)

Axel S. schrieb:
> Und überhaupt denkst du viel zu kompliziert.
Sagte ich schon: wer abstrakt in Software denkt, der sieht das zu 
umständlich.

Walter T. schrieb:
> Ich suche guten Lesestoff.
Was ist an den Links im englischen Wiki schlecht?

: Bearbeitet durch Moderator
von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Walter T. schrieb:
> aber ich suche eigentlich keine Implmentierungs-Beispiele. Ich suche
> guten Lesestoff.

Weder SPI noch UART wird, wenn es sich irgendwie vermeiden lässt, in 
Software "abgetastet". Das macht Hardware. Und wie die gestaltet ist, 
ist hinreichend bekannt und dokumentiert.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

Lothar M. schrieb:
>> Auch das geht, aber grad' UART ist da etwas unguenstig (Du kannst ja
>> auch mal 10000 Bytes 0xff oder 0x00 uebertragen wollen).
> Naja, nach jeweils 8 Bits tut sich sicher mal was. entweder am Startbit
> oder am Stopbit... ;-)

Stimmt. Bloedes Beispiel. Ich probiers nochmal:
Bei UART 8,n,1 uebertrag' ich mal einen Haufen 0xaa - dann kann die 
Gegenseite zwar prima die Clk zurueckgewinnen, aber das Bytealignment 
wird schwierig rauszukriegen sein.
Bei ASI oder SDI gibts da unabhaengig von den Nutzdaten extra Daten, um 
das rauszukriegen.


Walter T. schrieb:
> Das Thema müßte doch in irgendeiner Grundvorlesung im
> Elektrotechnik-Studium behandelt werden. Vermute ich.

Das glaube ich nicht, Tim.
Ist viel zu praxisnah. Da wird eher behandelt, wie sich bei 
Ueberabtastung die Signalspektren verhalten, etc.
Clockrecovery wird da hoechstens mal in einem Nebensatz erwaehnt.

Gruss
WK

von Walter T. (nicolas)


Lesenswert?

Lothar M. schrieb:
> Was ist an den Links im englischen Wiki schlecht?

Wenn Du die englischsprachige Wikipedia meinst: Nichts. Bis auf das 
klassische Wikipedia-Problem ( https://xkcd.com/214/ ). (Das heißt auch 
nicht, dass ich die Wikipedia-Artikel nicht schon lange gelesen hätte.)

Aber ich mag Bücher.

: Bearbeitet durch User
von Stefan W. (dl6dx)


Lesenswert?

Walter T. schrieb:
> Das Thema müßte doch in irgendeiner Grundvorlesung im Elektrotechnik-
> Studium behandelt werden. Vermute ich. Also müßte es dazu
> auch Lehrmaterial in irgendeiner Form geben. Das suche ich.

Netzmafia.de wurde ja schon genannt.

Ansonsten scheinst mir, dass du hier einige Fragestellungen zusammen 
wirfst und es deswegen unübersichtlich wird. Ich versuche mal, die 
Sachen etwas aufzudröseln:

Weder bei SPI noch bei asynchron serieller Übertragung (aka UART, RS-232 
etc.) ist eine Takterkennung im Sinne einer Ermittlung der Dauer eines 
Übertragungsschritts vorgesehen.

Bei SPI kommt der Takt auf der Clockleitung. Der Zeitpunkt der 
Datenübernahme durch den Slave kann die fallende oder die steigende 
Flanke sein. Welche es ist, hat der Entwickler festgelegt. Die 
Zeitabstände zwischen diesen Flanken müssen nicht immer gleich sein. 
(Clock-Stretching durch den Master ist nicht "verboten"!)

Der SPI-Slave achtet also nur auf die Taktflanke und übernimmt dann den 
anstehenden Bitwert. Und das war es auch schon. Störungen, Prellen etc. 
versauen die Übertragung.

(Kurzer Einschub: Es gibt natürlich auch komplexere synchron serielle 
Übertragungsverfahren, bei denen es es Sachen wie Taktrückgewinnung und 
Taktsynchronisation gibt. SPI gehört aber nicht dazu.)

Bei asynchron serieller Übertragung haben Sender und Empfänger je einen 
eigenen "Taktgeber", die (innerhalb einer bestimmten Toleranz) gleich 
schnell laufen müssen. Die Einstellung erfolgt "im Vorhinein", also 
nicht erst bei Kommunikationsbeginn. Ebenso muss im Voraus vereinbart 
werden, wie viele Datenbits (exakt: Schritte) ein Zeichen hat. (Meistens 
8, es gab/gibt aber auch Abweichungen.)

Die Übertragungsstrecke hat in Ruhe einen vordefinierten Pegel, der 
konstant anliegt. (Historisch als "Mark" bezeichnet, bei TTL-Pegeln 
"H".)
Ein Zeichen beginnt IMMER mit einem Startbit, das "L-Pegel" ("Space") 
hat.

Ab diesem ersten Flankenwechsel wird die Schrittdauer gezählt. Der 
Empfänger tastet immer in der zeitlichen Mitte eines 
Übertragungsschritts (nach der Zählung seines Taktgebers) den 
Leitungspegel ab (mindestens ein Sample, oft drei). Das ist das 
jeweilige Datenbit. Nachdem die vorgegebene Zahl an Bits "durch ist", 
ist der Empfang des Zeichens abgeschlossen und der Empfänger geht in 
seinen Ausgangszustand.

Damit beim nächsten Zeichen in jedem Fall ein Pegelwechel H->L erfolgt, 
wird nach dem letzten Bit des Zeichens vom Sender für eine Schrittdauer 
Ruhepegel ausgegeben (das Stopbit).

Mehr ist es vom Prinzip der Sache nicht.

Jetzt ist die Frage: Beruhte deine ursprüngliche Frage auf einem 
Missverständnis, oder möchtest du etwas Zusätzliches erreichen?

Viele Grüße

Stefan

von Schlumpf (Gast)


Lesenswert?

Walter T. schrieb:
> Das Thema müßte doch in irgendeiner Grundvorlesung im
> Elektrotechnik-Studium behandelt werden.

Du bringst die Themen etwas durcheinander und glaubst, dass es ein Buch 
gibt, welches diese Themen, die eigentlich nichts miteinander zu tun 
haben, beleuchtet.

1. Du willst wissen, wie SPI funktioniert
--> Dazu bekommst du auf Wiki Informationen
2. Du willst wissen, wie das mit der Abtastung funktioniert
--> Bei SPI und UART grundsätzlich anders. SPI bringt den Takt mit. Da 
wird einfach mit der Flanke des SCK der Wert von MOSI übernommen
Wie es bei UART funktioniert, wurde erklärt (Datenrate ist bekannt, 
Warten auf Flanke, halbe Bitzeit warten und prüfen, ob es ein Startbit 
ist, dann n mal nach jeweils einer halben Bitzeit abtasten)

Das ist keine rocket science. Auch keine höhere Mathematik mit Filtern 
etc.
Du brauchst dazu kein Laplace- oder Z-Transformation.
Das kannst du dir einfach mit nem Zeitstrahl auf ein Karopapier 
zeichnen.

Mach es nicht komplizierter, als es ist ;-)

von Stefan W. (dl6dx)


Lesenswert?

Dergute W. schrieb:
> Bei UART 8,n,1 uebertrag' ich mal einen Haufen 0xaa - dann kann die
> Gegenseite zwar prima die Clk zurueckgewinnen, aber das Bytealignment
> wird schwierig rauszukriegen sein.

Das Verfahren wurde für einige Modem-Typen angewandt. Es gab aber immer 
auch ein Verfahren zur Zeichen-Synchronisation. Entweder (UART) folgte 
dem Sync-String eine Pause von mehr als einer Zeichenlänge oder es wurde 
ein spezielles "Flag-Pattern" verwendet (HDLC und Verwandte).

Viele Grüße

Stefan

von Schlumpf (Gast)


Lesenswert?

Schlumpf schrieb:
> dann n mal nach jeweils einer halben Bitzeit abtasten

Sorry, muss natürlich heißen: dann n mal nach jeweils EINER Bitzeit

von Clemens L. (c_l)


Angehängte Dateien:

Lesenswert?

Stefan W. schrieb:
> Dergute W. schrieb:
>> Bei UART 8,n,1 uebertrag' ich mal einen Haufen 0xaa - dann kann die
>> Gegenseite zwar prima die Clk zurueckgewinnen, aber das Bytealignment
>> wird schwierig rauszukriegen sein.
>
> Das Verfahren wurde für einige Modem-Typen angewandt. Es gab aber immer
> auch ein Verfahren zur Zeichen-Synchronisation. Entweder (UART) folgte
> dem Sync-String eine Pause von mehr als einer Zeichenlänge oder es wurde
> ein spezielles "Flag-Pattern" verwendet (HDLC und Verwandte).

Bei LIN kommt die Pause vorher. Und es gibt Mikrocontroller, deren UARTs 
LIN unterstützen und die Baudrate automatisch einstellen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.