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
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.
Hallo Für die Datensicherheit mußt Du selber sorgen, z.B. mit Checksumme Gruß Ulf
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?
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...
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?
@ 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.
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.
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.
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...
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
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
@ 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.
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.