LabVIEWForum.de
Seriell Schnittstelle mit 9 Bit Datenlänge - 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: Seriell Schnittstelle mit 9 Bit Datenlänge (/Thread-Seriell-Schnittstelle-mit-9-Bit-Datenlaenge)



Seriell Schnittstelle mit 9 Bit Datenlänge - Achimedes - 12.07.2006 14:18

Hallo Mädels und Jungens,
ich hab hier ein seltsames Gerät das nur eine TX Leitung hat und ständig darüber sendet.
Die Schnittstellenbeschreibung treibt mich aber in den Wahnsinn.

Baud rate = 2400
Char lenght = 9 Bit Wacko ja richtig 9 Bit
Parity = None
Stop Bit = 1

Wie soll ich mit nem PC 9Bit empfangen????Blink
Mit VISA hab ich es mal nicht hinbekommen. Wahrscheinlich kann das noch nicht mal die PC Hardware?

Ich habs schon mal mit 8Bit versucht, Da empfange ich auch was, aber lange nicht das was ich empfangen soll.

Hat irgendwer einen Tipp für mich?
Im Zweifelsfall nehme ich auch Tröstende Worte entgegen.Blush

Grüße
Achimedes


Seriell Schnittstelle mit 9 Bit Datenlänge - eg - 12.07.2006 14:37

Es gibt eine VISA Advanced -> Register Acess Palette, aber ich habe damit noch nichts zu tun gehabt. Vielleicht gibt es da irgendeine Möglichkeit z. B. 16 Bits auszulesen und dann den Stoppbit und die restlichen Nullen wegzumachen und nur die ersten 9 Bits daraus zu parsen. Aber dann hast du immer noch ein Problem mit der ASCII-Darstellung von Chars mit der Länge von 9 Bits.

Anderer Vorschlag: suche mal im Internet die Low-Level-Treiber für die serielle Schnittstelle in anderen Sprachen und versuche daraus DLL zu machen und in LV einzubinden.

ABER ein sehr seltsames Problem. Meine Glückwünsche.

Gruss, Eugen

Hast du eigentlich schon sowas probiert???

Gruss


Seriell Schnittstelle mit 9 Bit Datenlänge - diplNisse - 12.07.2006 14:52

' schrieb:Baud rate = 2400
Char lenght = 9 Bit Wacko ja richtig 9 Bit
Parity = None
Stop Bit = 1

Bist Du sicher, dass damit nicht einfach 9 Datenbits gemeint sind???
9 Datenbits kann LabVIEW jawohl verarbeiten, oder?

Das ist bei nem RS485 System manchmal der Fall (9 Datenbits) da sinalisiert das 9. Bit, ob es sich um eine Adresse, oder ein Kommando handelt.


Seriell Schnittstelle mit 9 Bit Datenlänge - Achimedes - 12.07.2006 15:24

' schrieb:Es gibt eine VISA Advanced -> Register Acess Palette, aber ich habe damit noch nichts zu tun gehabt. Vielleicht gibt es da irgendeine Möglichkeit z. B. 16 Bits auszulesen und dann den Stoppbit und die restlichen Nullen wegzumachen und nur die ersten 9 Bits daraus zu parsen. Aber dann hast du immer noch ein Problem mit der ASCII-Darstellung von Chars mit der Länge von 9 Bits.

Anderer Vorschlag: suche mal im Internet die Low-Level-Treiber für die serielle Schnittstelle in anderen Sprachen und versuche daraus DLL zu machen und in LV einzubinden.

ABER ein sehr seltsames Problem. Meine Glückwünsche.

Gruss, Eugen

Hast du eigentlich schon sowas probiert???

Gruss
Das mit den VISA-Advanced muss ich mir mal anschauen.

Wenn du diene 9 an den Eingang der Datenbits anschliest wird es die Variable im Konfigurationsvi auf eine 8 ändern. 8 ist als max der Variable angegeben. Das hab ich dann auch schon mal auf 9 aufgebohrt -- da gibts dann ne fehlermeldung.


Seriell Schnittstelle mit 9 Bit Datenlänge - eg - 12.07.2006 16:00

Ich habe noch eine Idee:

versuche mal den UART auszutricksen in dem du Parity einschaltest und auf die Fehlermeldung, dass Parity nicht stimmt wie folgt reagierst:

du bildest Parity über die ersten 8 empfangenen Bits und schaust nach ob VISA einen Parity-Fehler gemeldet hat. Wenn ja, dann ist der Bit 9 ungleich der Parität, die du ausgerechnet hast, ansonsten ist Bit 9 gleich der ausgerechneten Parität.

Ich habe aber noch nie einen Parity-Fehler gesehen, deshalb kann ich nicht genau sagen, ob das oben stimmt. Aber die Idee ist IMHO OK.

Gruss, Eugen


Seriell Schnittstelle mit 9 Bit Datenlänge - Achimedes - 12.07.2006 16:28

diplNisse
Du hast recht es sind 9 Datenbits.
Der Tipp mit der RS485 war nicht schlecht.
Da gibt es Karten die 9Datenbits unterstützen.
Ich glaube das ist dann der richtige weg mir so eine zu besorgen.


eugen graf
Keine schlechte Idee. ich habs schon versucht. aber dazu muss ich ja die Parität angeben, sobald ich das mache, klappt der empfang überhaupt nicht mehr.
Ich habe aber noch nicht aufgegeben. Ich werde das mal noch weiterversuchen.


Ich glaube das beste wird so ne Karte Sein.
Ich bin auch für weitere Tipps dankbar.

Grüße
Und Danke schon mal.
Achim


Seriell Schnittstelle mit 9 Bit Datenlänge - kokisan2000 - 13.07.2006 00:17

Hallo Achimedes,

das 9. Datenbit in der seriellen Kommunikation ist eher ungewöhnlich und in meiner Programmierhistorie erst einmal vorgekommen, aber wenn ich den Berichten glauben darf kommt es immer mehr in Mode. Du hast richtig recherchiert. In der RS485 Übertragung taucht es schon seit längerer Zeit auf und wird dort für die programmierung von Adressräumen bei Geräten verwendet.

Wie schaut es mit LabVIEW aus?

Schlecht. Keine der RS232 oder RS485 Karten von National Instruments unterstützt das 9. Datenbit. Daher wird dieser auch nicht vom VISA Treiber unterstützt! Es gab bisher von NI keine Notwendigkeit diesen zu erweitern.

Dennoch eine Lösung?

Ja -sogar mehrere:

1) Du besorgst Dir eine neue Karte mit Schnittstelle für RS232, die das 9. Datenbit unterstützt. Teuer aber mit geringem eigenen Aufwand realisierbar ... Doch Vorsicht. Angeboten werden meist RS485 Schnittstellenkarten. Diese können nicht direkt an RS232 angeschlossen werden. Dazwischen muss ein Pegelwandler.
2) Du schaltetst einen einen Mikroprozessor dazwischen, der zwei RS232 Schnittstellen unterstützt. Einen Schnittstelle programmierst Du mit 9 Datenbits als Geräteschnittstelle, die zweite RS232 Schnittstelle kommuniziert mit dem Rechner. Klingt aufwendig und ist es auch. Witzigerweise bringen viele Microcontroller das 9. Datenbit automatisch mit .... Wenn Dich das interessiert, solltest Du im Netz recherchieren. Es gibt da Lösungen für ATMEL und MICROCHIP Prozessoren!
3) Du trickst in der Software.
Schaue doch mal auf die Seiten:

http://digital.ni.com/public.nsf/3efedde43...19?OpenDocument

und

http://sine.ni.com/apps/we/niepd_web_displ...source=External

NI kennt das Problem und schlägt vor, das ParityBit zu zweckentfremden und einfach als neuntes Datenbit zu benutzen. Einen Programmiervorschlag findest Du dort auch. Dieses Verfahren ist zwar nicht besonders elegant, funktioniert aber, wenn das anzusteuende Gerät nicht zwingend die Paritätsabfrage benötigt und Deine Kabelverbindung nicht zu schlecht oder lang ist.

So, ich hoffe ich konnte Dir wieterhelfen.

Gruß
kokisan2000


Seriell Schnittstelle mit 9 Bit Datenlänge - Achimedes - 31.08.2006 20:15

In der zwischenzeit hab ich so einiges hinter mir.

PC Schnittstellenkarte:
in der beschreibung ist die rede von nem moduns mit 9Datenbits.
Mann kann nur nirgens den anwählen.
Hotline der karte--war ohne ahnung, Zitat"man muß der anwendung nur sagen das sie den modus
verwenden soll" ????Als ich nachfragte wo und wie oder Beispiel in egal welcher sprache oder über die dll die dabeiwar oder ob sie ne beschreibung der dll hätten------>
wurde ich an den Hersteller des Prozessors auf der karte verwiesen.

Die durften mir wiederum keine hilfe geben weil sie ja nicht der kartenhersteller sind.
Ist verständlich.

Ein paar Mails später hab ich dann meinen kontakt zu der Kartenherstellerfirma eingestellt.
Hat nix gebracht.

Zwei Com Eingänge:
Habe die Leitung aufgesplittet und an Zwei Comports gelegt.
Idee: wenn einer mit gerader Parität und der andere mit ungerader ämpfängt ist immer einer ohne fehler und den nehm ich dann. War aber auch nix. Ich glaube ich hab die Ports einfach nicht synchron genug auslesen können.
War aber dann halt auch nix.


Jetzt hab ich ein Demoboard von Atmel gekauft und nen Programm geschrieben das mir die Kommunikation übersetzt so das ich sie mit dem PC empfangen kann. Umständlich aber es tut.


Vielen vielen dank aber für eure hilfe. Hat mir wirklichviele neue ideeen gebracht.
Danke