Forum: Mikrocontroller und Digitale Elektronik gibt es UARTs mit MSB first?


von Erik (Gast)


Lesenswert?

Hallo,


ich programmiere gerade einen "full-featured" UART in VHDL und bin nun 
auf die Idee gebracht worden das dieser eventuell ein 
"Bit-Reverse"-Feature in Hardware, also das man wählen kann ob die 
empfangenen/gesendeten Daten im LSB-First (wie üblich) oder MSB-First 
kommen, unterstützen sollte.

Da stellte sich mir dann die Frage ob es überhaupt Gegenstellen gibt die 
MSB-First senden/empfangen. Ich muss ja kein Feature unterstützen (das 
Logik im FPGA kostet) für das es gar keine Gegenstellen gibt.

Es geht um normale RS232-Daten mit Start-Bit und Stop-Bit (letzteres in 
flexibler Länge) und etwa 8 Nutzdatenbits dazwischen.


Kennt jemand für sowas Gegenstellen die MSB-First arbeiten könn(t)en?
Oder einen anderen guten Grund warum mein UART sowas unterstützen 
sollte?


Grüße
Erik

von sowas (Gast)


Lesenswert?

Bei RS232 ist die Reihenfolge genormt. Ein guter Grund wäre, wenn Du so 
programmieren sollst, dass man auch SPI damit machen kann, aber dazu 
brauchte es wieder wesentlich mehr als nur die Reihenfolge umzudrehen..

Vielleciht wollte Dir da jemand eine Programmierübung geben :-)

von Erik (Gast)


Lesenswert?

sowas schrieb:
> Bei RS232 ist die Reihenfolge genormt.

Also nur LSB-First, richtig?
Auch sonnst keine Anwendungen üblich in denen die Daten schon 
Bit-Reversed am UART ankommen?

SPI ist hier nicht gefragt, eher so Dinge wie das man das 9te-Bit auch 
als Call-Bit o.ä. einsetzen können möchte, die Steuerleitungen sollen 
komplett frei programmierbar sein, bei 8N1 sollen bis zu 2% 
Baud-Rate-Toleranz verfügbar sein und allerlei andere Spielereien sollen 
auch möglich sein.


sowas schrieb:
> Vielleciht wollte Dir da jemand eine Programmierübung geben :-)

Ich denke das war diesem Jemand schon Ernst. Wäre für mich auch absolut 
keine Schwierigkeit sowas zu machen, kostet nur ein wenig Tipp-Arbeit 
und eben etwas Logik im FPGA.


Grüße
Erik

von Rainer U. (r-u)


Lesenswert?

Bei RS232, ja (LSB first). UART ist allerdings allgemeiner, RS232 ist 
ein (wenn auch sehr oft benutzter) Spezialfall.

von Erik (Gast)


Lesenswert?

Rainer Unsinn schrieb:
> UART ist allerdings allgemeiner, RS232 ist
> ein (wenn auch sehr oft benutzter) Spezialfall.

Gibt es denn für die anderen Anwendungsfälle von "UART" reale Beispiele 
für MSB-First?
Ich denke da auch an RS422/RS485 und sicher gibt es noch andere 
Situationen serieller Kommunikation in denen Daten-Worte mit Start-Bit 
und Stop-Bit verpackt werden.


Grüße
Erik

von Weingut P. (weinbauer)


Lesenswert?

RS422 und RS485 beschreibt nur die Hardware der differentiellen 
Datenübertragung ... was da drüber geschickt wird ist in dem Fall egal.
1n8 2n9 1.5e8 ... ganz egal.

von Chris (Gast)


Lesenswert?

Ein kleiner Mux beim Register, welcher entweder das LSB oder MSB für
die Datenausgabe hernimmt ist nicht gerade viel Logik, bei einem 8 bit 
Schieberegister (rotation). Nach 8 clocks wird das register gelöscht 
(clr)
und dann werden und nach x stop bits wird das done bit gesetzt.
Normalerweise ist das Ausgaberegister ein shadow register und kann nur
geladen werden, wenn das done bit gesetzt ist, oder auch nicht wenn 
resourcen gespart werden müssen.
Der einzige Grund den ich kenne wäre security by obscuration, MSB und 
LSB zu vertauchen
ist ein einfacher Weg, um das Senden von gültigen Daten zu erschweren, 
welche CRC oder eine Checksum haben. Aber es kann schon sein, daß es
entsprechende Prototcolle gibt, die MSB zuerst brauchen. Jeder kocht ja
sein eigenes Süppchen.

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.