Thema: RS485 unter Linux termios.h Auf Thema antworten
 
Dein Pseudonym / Name: Klicke hier, um dich anzumelden
Zufällige Frage (Sicherheitsüberprüfung)
Titel:
  
Bitte halte dich an die hier praktizierte Netiquette. Dies betrifft vor allem eine verständliche Ausdrucksweise sowie eine vernünftige Groß- und Kleinschreibung. Danke.

Unerwünschte Werbung (Spam) wird strafrechtlich verfolgt!
Nachricht:
Beitragssymbole
Du kannst aus der folgenden Liste ein Symbol für deine Nachricht auswählen:
 

Zusätzliche Einstellungen
 
Verschiedene Einstellungen

Übersicht (Neuester Beitrag zuerst)
 
10.11.09 17:42
malloc1980
AW: RS485 unter Linux termios.h

Hey Johson!

hast du mittlerweile deinen RS485 Treiber am laufen? Ich bin grad selbst dabei
was zu finden wie ich Daten von RS485 lesen und schreiben kann. Allerdings für
powerpc Architecture.
Dabei hab ich in der ioctls.h die beiden Defines

#define TIOCGRS485 0x542e
#define TIOCSRS485 0x542f

gefunden. Zusätzlich braucht man eine Struktur (serial_rs485) die in include/linux
/serial.h zu finden ist. Allerdings wenn ich die entsprechenden includes einbinde
bekomme ich Error Meldung dass die Struktur nicht gefunden werden kann ebenso
die Defines.

Vielleicht bist du ja ein Stück weiter und kannst mir helfen...oder vielleicht auch
jemand anderes hier?

Danke schön mal für eure Hilfe

Grüße
Frank
04.09.09 10:19
deepthroat
AW: RS485 unter Linux termios.h

Zitat:
Zitat von Johson Beitrag anzeigen
Ja die sind mir aufgefallen, aber das habe ich schon versucht dem support vom moxa zu erklären. Ich muss eine Application unter Linux schreiben. Dazu brauche ich die termios.h, die unteranderem die Baudraten zur Verfügung stellt. Somit ist die Windows.h nicht wirklich hilfreich.
Ich rede nicht von den Windows Beispielen, sondern von den Beispielen, die beim Linuxtreiber dabei sind - siehe Link
Zitat:
- msterm A simple terminal program which is useful in testing serial
ports.

- muestty Device configuration tool for MUE series PCI Express
multiport board(CP-102E, CP-102EL, CP-132EL, CP-132EL-I,
CP-114EL, CP-114EL-I).
The tool provides two functions to set and get inerface
and terminator resistor on the device.
Gruß
04.09.09 09:52
Johson
AW: RS485 unter Linux termios.h

Zitat:
Zitat von deepthroat Beitrag anzeigen
Und die Beispielprogramme sind dir auch aufgefallen?
Ja die sind mir aufgefallen, aber das habe ich schon versucht dem support vom moxa zu erklären. Ich muss eine Application unter Linux schreiben. Dazu brauche ich die termios.h, die unteranderem die Baudraten zur Verfügung stellt. Somit ist die Windows.h nicht wirklich hilfreich.

Aber trotzdem erstmal Danke.
03.09.09 20:25
deepthroat
AW: RS485 unter Linux termios.h

Zitat:
Zitat von Johson Beitrag anzeigen
Super... ich dachte ich hätts jetzt. Wenn CRIS von Axis kommt, frage ich mich, warum mir der Support von moxa nichts erzählt. denn die Treiber liefern Sie ja mit und installiert habe ich se auch.
Und die Beispielprogramme sind dir auch aufgefallen?
Zitat:
Zitat von Johson Beitrag anzeigen
Wenn ich CRIS jetzt über einen Cross Compiler zum laufen bekomme, kann ich es denn ganz normal nutzen unter gcc? oder gibs da abhängigkeiten zu axis.
Nochmal: CRiS ist eine Architektur, also Hardware. Die cross-compilierten Programme sind nur auf einer CRiS Hardware lauffähig. Die du vermutlich nicht hast?
Zitat:
Zitat von Johson Beitrag anzeigen
Und ja, ich habe hier nur einen Intel PIII .
So wie es aussieht möchtest du eine Lochstreifenkarte auf einem Abakus ausführen....

Gruß
03.09.09 17:40
Johson
AW: RS485 unter Linux termios.h

Zitat:
Zitat von deepthroat Beitrag anzeigen
Nö. :-D

... ist eine Rechnerarchitektur, so wie Intel 386, PowerPC, SPARC etc.

Von welcher asm/ioctls.h Datei sprichst du? Die unterscheiden sich je nach Architektur.

Das hat nichts mit GCC zu tun. asm/ioctls.h ist ein Systemheader aus dem Linux-Kernel. Standardmäßig wird der Header für deine Architektur, die du benutzt auch unter /usr/include installiert, allerdings vermute ich mal du verwendest einen Intel PC? Dann bräuchtest du erstmal einen Cross-Compiler der als Targetsystem die CRiS Architektur hat. Siehe http://developer.axis.com/wiki/doku....mpiler_install

Ja.

Also hast du den Treiber installiert? http://www.moxa.com/support/download.aspx?d_id=1662

Gruß
Super... ich dachte ich hätts jetzt. Wenn CRIS von Axis kommt, frage ich mich, warum mir der Support von moxa nichts erzählt. denn die Treiber liefern Sie ja mit und installiert habe ich se auch.

Wenn ich CRIS jetzt über einen Cross Compiler zum laufen bekomme, kann ich es denn ganz normal nutzen unter gcc? oder gibs da abhängigkeiten zu axis.

Und ja, ich habe hier nur einen Intel PIII .
03.09.09 17:22
deepthroat
AW: RS485 unter Linux termios.h

Zitat:
Zitat von Johson Beitrag anzeigen
Oh.. so langsam werde ich schlauer... Mit der ioctl-Funktion will ich quasi den RS485 Standard bekannt geben. Denn über die struct aus meinen ersten Thread will - muss - ich die Enable - Leitung steuern. Ich hoffe du kennst den RS485 Standard.
Nö. :-D
Zitat:
Zitat von Johson Beitrag anzeigen
CRIS?
... ist eine Rechnerarchitektur, so wie Intel 386, PowerPC, SPARC etc.
Zitat:
Zitat von Johson Beitrag anzeigen
Das fehlt mir glaubig? Denn unter asm/ioctls.h ist

#define TIOCSERSETRS485 0x5461
#define TIOCSERWRRS485 0x5462

nicht aufgeführt.
Von welcher asm/ioctls.h Datei sprichst du? Die unterscheiden sich je nach Architektur.
Zitat:
Zitat von Johson Beitrag anzeigen
Woher kann ich jetzt CRIS beziehen? Ich dachte, wenn ich GCC komplett installiere, sind alle Header Files vorhanden.
Das hat nichts mit GCC zu tun. asm/ioctls.h ist ein Systemheader aus dem Linux-Kernel. Standardmäßig wird der Header für deine Architektur, die du benutzt auch unter /usr/include installiert, allerdings vermute ich mal du verwendest einen Intel PC? Dann bräuchtest du erstmal einen Cross-Compiler der als Targetsystem die CRiS Architektur hat. Siehe http://developer.axis.com/wiki/doku....mpiler_install
Zitat:
Zitat von Johson Beitrag anzeigen
Hat CRIS ausschliesslich was mit axis zutun?
Ja.
Zitat:
Zitat von http://www.mjmwired.net/kernel/Documentation/cris/
CRIS is an acronym for 'Code Reduced Instruction Set'. It is the CPU
architecture in Axis Communication AB's range of embedded network CPU's,
called ETRAX. The latest CPU is called ETRAX 100LX, where LX stands for
'Linux' because the chip was designed to be a good host for the Linux
operating system.
Zitat:
Zitat von Johson Beitrag anzeigen
Kannst du mir jetzt da weiterhelfen? Denn die Karte (CP 134U - moxa.com) funktioniert wohl einwandfrei.
Also hast du den Treiber installiert? http://www.moxa.com/support/download.aspx?d_id=1662

Gruß
03.09.09 16:40
Johson
AW: RS485 unter Linux termios.h

Zitat:
Zitat von deepthroat Beitrag anzeigen
Du hast da was missverstanden. Ich sprach über die Konstanten die du selbst festgelegt hast. Es ist unsinnig das zu tun, denn die ioctl Funktion kann damit nichts anfangen.

Letzteres. Wie soll das denn funktionieren?

Welche Architektur verwendest du? Hast du das denn vor CRIS kompiliert? Hast du das entsprechende SDK verwendet? \edit: Diese Angaben solltest du natürlich auch in deiner Supportanfrage einfließen lassen; kurzum: was genau hast du überhaupt gemacht?

Gruß
Oh.. so langsam werde ich schlauer... Mit der ioctl-Funktion will ich quasi den RS485 Standard bekannt geben. Denn über die struct aus meinen ersten Thread will - muss - ich die Enable - Leitung steuern. Ich hoffe du kennst den RS485 Standard.

CRIS?

Das fehlt mir glaubig? Denn unter asm/ioctls.h ist

#define TIOCSERSETRS485 0x5461
#define TIOCSERWRRS485 0x5462

nicht aufgeführt. Daher kann ich wohl vergebens versuchen die Werte selber zu konfigurieren. Woher kann ich jetzt CRIS beziehen? Ich dachte, wenn ich GCC komplett installiere, sind alle Header Files vorhanden. Habe GCC 4.1.0 (Suse Linux 10.1) installiert. Hat CRIS ausschliesslich was mit axis zutun?

Kannst du mir jetzt da weiterhelfen? Denn die Karte (CP 134U - moxa.com) funktioniert wohl einwandfrei. Gibt es denn für Linux auch eine Art SDK wie unter Windows? Oder meinst damit eigentlich GCC? Sorry wenn ich so blöd frage?

Gruss
02.09.09 16:16
deepthroat
AW: RS485 unter Linux termios.h

Zitat:
Zitat von Johson Beitrag anzeigen
Da geb ich dir völlig, eine Funktion die -1 als Fehler zurück gibt macht nicht viel Sinn. ioctl is aber nun eine systemfunktion aus sys/ioctl.h und dort ist der Fehlercode -1 nun mal festgelegt.
Du hast da was missverstanden. Ich sprach über die Konstanten die du selbst festgelegt hast. Es ist unsinnig das zu tun, denn die ioctl Funktion kann damit nichts anfangen.
Zitat:
Zitat von Johson Beitrag anzeigen
Ich habe den Fehler aber mal mit perror() ausgelesen. Und perror() gibt Invalid Argument zurück. Sagt mir also jetzt was? ....Enweder hat die Übergabe in der Funktion nicht geklappt und der Wert ist ungültig.
Letzteres. Wie soll das denn funktionieren?
Zitat:
Zitat von Johson Beitrag anzeigen
Ich werde berichten.
Welche Architektur verwendest du? Hast du das denn vor CRIS kompiliert? Hast du das entsprechende SDK verwendet? \edit: Diese Angaben solltest du natürlich auch in deiner Supportanfrage einfließen lassen; kurzum: was genau hast du überhaupt gemacht?

Gruß
02.09.09 15:34
Johson
AW: RS485 unter Linux termios.h

Zitat:
Zitat von deepthroat Beitrag anzeigen
Hi.

Es ist unsinnig den Wert zu definieren, wenn dieser nicht bereits in der Headerdatei drin steht. Selbstverständlich kann die ioctl Funktion damit nichts anfangen.

Die TIOCSERSETRS485 Konstanten sind ausschließlich für die CRIS Architektur definiert. Welche Architektur benutzt du?

Gruß

Da geb ich dir völlig, eine Funktion die -1 als Fehler zurück gibt macht nicht viel Sinn. ioctl is aber nun eine systemfunktion aus sys/ioctl.h und dort ist der Fehlercode -1 nun mal festgelegt. Ich habe den Fehler aber mal mit perror() ausgelesen. Und perror() gibt Invalid Argument zurück. Sagt mir also jetzt was? ....Enweder hat die Übergabe in der Funktion nicht geklappt und der Wert ist ungültig.

Da ich aber auch nicht weiss, ob ich die PCI Karte richtig unter Linux konfiguriert habe,
habe ich erstmal eine Support-Anfrage an den Hersteller moxa.com gestellt

Ich werde berichten.
02.09.09 10:30
deepthroat
AW: RS485 unter Linux termios.h

Hi.

Es ist unsinnig den Wert zu definieren, wenn dieser nicht bereits in der Headerdatei drin steht. Selbstverständlich kann die ioctl Funktion damit nichts anfangen.

Die TIOCSERSETRS485 Konstanten sind ausschließlich für die CRIS Architektur definiert. Welche Architektur benutzt du?

Gruß
02.09.09 09:42
Johson
AW: RS485 unter Linux termios.h

hallo,

die ioctl- Funktion gibt entweder 0 für success oder -1 für failt zurück. meine vermuttung ist, dass der Wert #define TIOCSERSETRS485 0x5461 nicht gesetzt werden kann.
01.09.09 13:59
sheel
AW: RS485 unter Linux termios.h

Willkommen im Forum!

Es wäre hilfreich zu wissen, welcher Fehler auftritt?
01.09.09 12:44
Johson
RS485 unter Linux termios.h

moin ich brauche da mal eine rat.

ich versuche seid tagen die RS485-Schnittstelle unter linux ( C Language ) zu implementieren. ich habe hier zu mich an dieses Bsp. gehalten

http://developer.axis.com/wiki/doku.php?id=rs485

struct rs485_ctrl {
unsigned short rts_on_send;
unsigned short rts_after_sent;
unsigned int delay_rts_before_send;
unsigned short enabled;
};

// ...

// Set the port in 485 mode
ctrl485.rts_on_send = 0;
ctrl485.rts_after_sent = 1;
ctrl485.delay_rts_before_send = 0;
ctrl485.enabled = 1;
status = ioctl(fd, TIOCSERSETRS485, &ctrl485);
if (status) {
printf("ERROR PORT 1! TIOCSERSETRS485 failed %i\r\n", status);
return -1;
}


Über die struktur soll die Schnittstelle für RS485 konfiguriert werden. und über die Funktion ioctl(fd, TIOCSERSETRS485, &ctrl485); gesetzt werden. Mein Problem ist, das der Wert von TIOCSERSETRS485 nicht erkannt wird. Dieser sollte in asm/ioctls.h drin stehen. was er aber nicht tut. daher habe ich ihn selber festgelegt.

#define TIOCSERSETRS485 0x5461
#define TIOCSERWRRS485 0x5462

Allerdings gibt die Funktion ioctl(fd, TIOCSERSETRS485, &ctrl485); immer einen Fehler aus. Hat einer schon Erfahrungen gesammelt?

Gruss

 » Forumregeln & Icons
 

Smileys sind an.
[IMG] Code ist aus.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind an
Refbacks sind an
Enthält neue Beiträge  Forum enthält neue Beiträge.
Enthält keine neuen Beiträge  Forum enthält keine neuen Beiträge.
Forum geschlossen  Forum ist geschlossen für neue Beiträge.

 

Alle Zeitangaben in WEZ +1. Es ist jetzt 09:04 Uhr.


Powered by vBulletin® Version 3.8.4 (Deutsch) & vBadvanced CMPS v.3.2.0
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.3.0 ©2009, Crawlability, Inc.
Alle Rechte vorbehalten ©2000 - 2010 tutorials.de
Design by Mark, CSS by Maik & Sven Mintel
Seite generiert in 0,16028 Sekunden mit 13 queries