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
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 :-)
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
Bei RS232, ja (LSB first). UART ist allerdings allgemeiner, RS232 ist ein (wenn auch sehr oft benutzter) Spezialfall.
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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.