Forum: Mikrocontroller und Digitale Elektronik Kanalcodierung UART


von FLorian U. (florian_u)


Lesenswert?

Hi Leute,

ist eine Uartverbindung eigentlich irgendwie gegen fehler geschützt?
dh. wenn ich daten vom µC über einen virtual comport per usb an meinen 
rechner schicke, kann ich dann sicher sein, dass alles richtig ankommt? 
oder nicht?

lg

von Karl H. (kbuchegg)


Lesenswert?

FLorian Unbekannto schrieb:
> Hi Leute,
>
> ist eine Uartverbindung eigentlich irgendwie gegen fehler geschützt?

und wovon träumst du nachts?

ok. es gibt ein Parity-Bit und ein bischen was geht auch mit 
Frame-Errors aber abgesehen davon: Der eine zieht im richtigen Takt die 
Leitung hoch runter, der andere beobachtet im hoffentlich richtigen 
Takt, wie die Leitung hoch/runter gezogen wird. Das wars zum Thema UART. 
Alles andere ist dein Bier.

von Ulf L. (ulf_l)


Lesenswert?

Hallo

Für die Datensicherheit mußt Du selber sorgen, z.B. mit Checksumme

Gruß Ulf

von FLorian U. (florian_u)


Lesenswert?

ok, danke.
 was sind frame erros?
gibt es da vorgefertigte protokolle, die auf der datensicherungsschicht 
arbeiten und mir einen sicheren transport erlauben? sowas wollen ja 
viele denke ich.

oder die die leitung so sicher, dass sich der overhead nicht lohnt?

von Christian (Gast)


Lesenswert?

FLorian Unbekannto schrieb:
> oder die die leitung so sicher, dass sich der overhead nicht lohnt?

Ich würde mal sagen, dass hängt von den Anforderungen ab...

von Oliver (Gast)


Lesenswert?

FLorian Unbekannto schrieb:
> was sind frame erros?

was ist google?

Oliver

von FLorian U. (florian_u)


Lesenswert?

okay, framin error heißt also, das stopbit steht nicht wie erwartet da.
was passiert dann? das wird ja wohl nicht verworfen oder neuangefordert 
oder?
dann ommt doch nur noch bullshit raus, richtig?

von Falk B. (falk)


Lesenswert?

@ FLorian Unbekannto (florian_u)

>okay, framin error heißt also, das stopbit steht nicht wie erwartet da.

Ja.

>was passiert dann?

Dann muss dein Empfänger entscheiden, was er macht. Entweder das 
empfangene Byte als defekt betrachten oder hoffen, dass nur das Stop-Bit 
flasch war, das ist aber keine gute IDee.

>das wird ja wohl nicht verworfen

Doch.

> oder neuangefordert oder?

Auf der UART-Ebene nicht, aber ggf. auf höheren Protokollebenen. Darum 
muss sich die UART-Anwendung kümmern.

von Karl H. (kbuchegg)


Lesenswert?

FLorian Unbekannto schrieb:

> dann ommt doch nur noch bullshit raus, richtig?

:-)
Du hast gerade etwas sehr wichtiges entdeckt.
Wenn bei einer UART in den physikalischen Parametern keine 
Übereinstimmung herrscht - kommt im Regelfall Bullshit raus.

Aber das ist nicht die einzige Möglichkeit, wie da Bullshit entstehen 
kann.

Im Ernst: du erwartest dir zuviel von einer UART.
Die Dinge funktionieren auf UART Ebene so, wie Gott sie geschaffen hat: 
eine Leitung wird getoggelt - das ist göttlich vorgegeben. Alles andere 
ist Menschenwerk und damit musst du dich in deinem Programm rumschlagen. 
Mit solch profanen Dingen verplempert ein Gott nicht sein Zeit.

von c-hater (Gast)


Lesenswert?

FLorian Unbekannto schrieb:

> okay, framin error heißt also, das stopbit steht nicht wie erwartet da.
> was passiert dann? das wird ja wohl nicht verworfen oder neuangefordert
> oder?

Das hängt allein von der "Anwendung" ab, die die Schnittstelle benutzt. 
Die Schnittstelle selber macht nix, als Daten und von ihr bemerkte 
Fehler auf Anfrage für die "Anwendung" bereitzustellen.

Anwendung steht deshalb in Anführungsstrichen, weil das natürlich auch 
ein Handler eines beliebigen Protokollstacks sein kann.

von FLorian U. (florian_u)


Lesenswert?

okay gut danke, das habe ich verstanden.

aber gibt es den schon solche protokolle, wo sich einer gedanken 
gemacht, wie man die daten sichern kann?meinet wegen mit blockcodes oder 
so?

der uart meldet doch aber nicht, ob er einen fehler hat oder? oder gibt 
es da ein register, dass man auslesen kann?
ich dachte der gibt die fehlerhaften bits einfach weiter...

von spess53 (Gast)


Lesenswert?

Hi

>der uart meldet doch aber nicht, ob er einen fehler hat oder? oder gibt
>es da ein register, dass man auslesen kann?
>ich dachte der gibt die fehlerhaften bits einfach weiter...

Von welcher UART redest du eigentlich?

MfG Spess

von Daniel V. (danvet)


Lesenswert?

Vielleicht hilft dir das ein bisschen weiter:
http://www.ibrtses.com/embedded/shortmsgprotocol.html

von UARTig (Gast)


Lesenswert?

FLorian Unbekannto schrieb:
> aber gibt es den schon solche protokolle, wo sich einer gedanken
> gemacht, wie man die daten sichern kann?meinet wegen mit blockcodes oder
> so?

Dann google man X-Modem, Y-Modem, Z-Modem...

Man waren das noch Zeiten...

Grüße,

Jörg

von Falk B. (falk)


Lesenswert?

@ FLorian Unbekannto (florian_u)

>aber gibt es den schon solche protokolle, wo sich einer gedanken
>gemacht, wie man die daten sichern kann?meinet wegen mit blockcodes oder
>so?

Ja.

>der uart meldet doch aber nicht, ob er einen fehler hat oder?

Er meldet die Fehler, die er erkennen kann.

Frame Error
Parity Error

Alle anderen möglichen Fehler kann er nicht erkennen und demnach auch 
nicht melden.

> oder gibt
>es da ein register, dass man auslesen kann?

Sicher.

>ich dachte der gibt die fehlerhaften bits einfach weiter...

Das auch.

von Weingut P. (weinbauer)


Lesenswert?

klar gibt es Protokolle bei denen sich schon jemand Gedanken darüber 
gemacht hat,
schau mal Modbus oder Profibus ... die zu implementieren ist aber Sache 
des Programmierers

von Weingut P. (weinbauer)


Lesenswert?

Die UART sagt nur: "hallo ich hab ein Byte und das passt in mein Schema 
(z.B. 8n1) oder nicht". Ob das Byte Sinn ergibt ist der UART wurst.

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.