LabVIEWForum.de
RS232 Datenübertragung Synchron Asynchron?? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Instrument IO & VISA (/Forum-Instrument-IO-VISA)
+---- Thema: RS232 Datenübertragung Synchron Asynchron?? (/Thread-RS232-Datenuebertragung-Synchron-Asynchron)



RS232 Datenübertragung Synchron Asynchron?? - joeb78 - 15.10.2007 18:15

Hallo Allerseits

Woher weiß ich, ob ich bei einer RS232 Schnittstelle Synchron oder Asynchron übertragen muss?
Oder ist ne RS232 generell asynchron?

Gruß
Joe


RS232 Datenübertragung Synchron Asynchron?? - IchSelbst - 16.10.2007 07:42

' schrieb:Woher weiß ich, ob ich bei einer RS232 Schnittstelle Synchron oder Asynchron übertragen muss?
Streng genommen müsstest du wohl die Gegenseite der Schnittstelle fragen respektive deren Beschreibung lesen.

Normalerweise sind RS232-Schnittstellen im Sinne von Windows immer asynchron. Mir jedenfalls ist noch nie eine synchrone begegnet.


RS232 Datenübertragung Synchron Asynchron?? - rolfk - 16.10.2007 10:23

' schrieb:Hallo Allerseits

Woher weiß ich, ob ich bei einer RS232 Schnittstelle Synchron oder Asynchron übertragen muss?
Oder ist ne RS232 generell asynchron?

Gruß
Joe

Also ich weiss nicht was Du unter asynchron verstehst, aber technisch gesehen ist RS-232 immer asynchron. Synchrone serielle Schnittstellen sind beispielsweise HDLC. Synchron will hier sagen dass dauernd Daten übertragen werden ohne je einen Unterbruch. Dadurch und durch entsprechende Codierung der Daten (NRZ oder ähnlich) kann der Empfänger sich konstant auf den Zeichentakt des Senders einstellen.

Bei asynchronen Protokollen werden nur Daten gesendet wenn das notwendig ist, aber dafür benötigt man im Datenstrom extra Zeichen wie Start- und Stopbits, so dass der EmpfÄnger sich jeweils auf den Sender neu einstellen kann.

Schau doch auch mal im Wiki unter http://de.wikipedia.org/wiki/Serielle_Daten%C3%BCbertragung

Rolf Kalbermatter


RS232 Datenübertragung Synchron Asynchron?? - joeb78 - 16.10.2007 10:39

Zu Antwort 1:
In der Beschreibung vom Gerät steht das nicht drin. Aber ich denke, da es sich um ein Ventil handelt, schickt es Daten nur auf Anfrage.

Zu Antwort 2:
Wiki habe ich auch schon gelesen. Meine Frage bezog sich auf: Was stelle ich bei den Visa-VIs ein.

Ich habe beide Einstellungen ausprobiert und keinen Unterschied feststellen können.

Was für Auswirkungen hätte es (bei synchroner Übertragung), wenn ich mit einem Schreibbefehl Daten anfordere, das aber schief geht und keine Antwort kommt und ich dann versuche mit einem Read-Befehl 16 Byte zu lesen?


RS232 Datenübertragung Synchron Asynchron?? - rolfk - 16.10.2007 11:41

' schrieb:Zu Antwort 1:
In der Beschreibung vom Gerät steht das nicht drin. Aber ich denke, da es sich um ein Ventil handelt, schickt es Daten nur auf Anfrage.

Zu Antwort 2:
Wiki habe ich auch schon gelesen. Meine Frage bezog sich auf: Was stelle ich bei den Visa-VIs ein.

Ich habe beide Einstellungen ausprobiert und keinen Unterschied feststellen können.

Was für Auswirkungen hätte es (bei synchroner Übertragung), wenn ich mit einem Schreibbefehl Daten anfordere, das aber schief geht und keine Antwort kommt und ich dann versuche mit einem Read-Befehl 16 Byte zu lesen?

Ach so!!!!!!!!

Also Synchrone VISA Funktionen bleiben in VISA stecken bis die Operation abgelaufen ist. Der entsprechende LabVIEW Thread ist dann vollkommen blockiert.
Asynchrone VISA Funktionen kehren regelmässig zu LabVIEW zurück und LabVIEW kümmert sich selber darum VISA zu pollen, ob die entsprechende Lese- oder Schreiboperation schon beendet ist.

Ist dieser Unterschied sinnvoll? Heutzutage macht es eigentlich nichts mehr aus! Bevor LabVIEW Multithreading war (LabVIEW < 5.0) war das aber sehr wichtig. Bei synchronen VISA Funktionen blockierte das ganze LabVIEW Programm bis die Funktion zurückkam (weil die gefragten Daten gelesen wurden oder ein Timeout auftrat). Bei asynchronen VISA Funktionen konnten andere Teile des LabVIEW-Programms, die keine direkte DatenabhÄngigkeit von der VISA Funktion hatten einfach weiterlaufen. LabVIEW Programme waren damals schon inherent Multithreading auch wenn es mehr ein kooperatives Multithreading war.

Heutzutage verwendet LabVIEW automatische mehrere Betreibssystemthreads und teilt das Programm darauf auf so dass ein blockierter Thread durch eine synchrone VISA Funktion kein wirkliches Problem ist. Asynchrone VISA Funktionen tendieren dazu die CPU Auslastung zu erhöhen da LabVIEW dann alle zur Verfügung stehende CPU Leistung dazu verwendet um VISA zu checken. Aber diese Auslastung ist nur soweit gegeben als die CPU nicht durch irgendetwas anderes verwendet wird, d.h. solange es andere Prozesse gibt die etwas zu tun haben kriegen die einfach die CPU. LabVIEW verwendet einfach den nicht genützten CPU Anteil um mehr oder weniger heftig bei VISA nachzufragen, ob denn die Operation nun endlich abgeschlossen ist.

Rolf Kalbermatter


RS232 Datenübertragung Synchron Asynchron?? - joeb78 - 16.10.2007 12:02

Vielen Dank

Ich hatte die ganze Zeit einen Readbefehl auf synchron stehen.
Das könnte vielleicht der Grund für meine Probleme im Thema nebenan sein.
Nur wollte da bisher niemand antworten.

Hoffe das klappt jetzt.