Thread RS232 Probleme (14 answers)
Opened by Oliver at 2015-10-10 18:42

Gast Oliver
 2015-10-10 18:42
#182561 #182561
Hallo!
Ich habe da ein Problem, das ich trotz vielem "googlen" und lesen nicht lösen kann:
Gegeben ist ein Netzwerk aus Mikrocontrollern, die über eine UART miteinander sprechen. Diese ist mit 256000Baut getaktet.
In diesem Netzwerk gibt es die Möglichkeit über einen UART<>RS232<>USB-Adapter die Daten mitzulesen. Dies würde ich gerne tun.
Mit einem Windowsrechner und "Docklight" als Monitorsoftware funktioniert das einwandfrei und über Tage und Wochen hinweg fehlerfrei.
Nehme ich (und da muss ich eigentlich hin) einen Linuxrechner (Linux Sever 3.2.0-4-amd64 #1 SMP Debian 3.2.51-1 x86_64 GNU/Linux) und stecke den USB-Stecker dort ein bekomme ich nur Müll.

Mache ich irgendetwas falsch beim konfigurieren / nutzen von CPAN:Device::SerialPort? Ich habe hier schon einige verschiedene Script-Vorschläge genutzt aber alle ohne Erfolgt. Aktuell ist dieses hier:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/usr/bin/perl -w

use strict;
use Device::SerialPort;

my $rs485_port = Device::SerialPort->new("/dev/ttyUSB1",1);
$rs485_port->baudrate(256000);
$rs485_port->parity("none");
$rs485_port->databits(8);
$rs485_port->stopbits(1);
$rs485_port->handshake("xoff");
$rs485_port->write_settings;
$rs485_port->stty_echo("off");
$rs485_port->lookclear;
$rs485_port->purge_rx;

my $antwort = "";
my $zeichen = "";
my $count=0;
while ($count<10000) {
$count=$count+1;
$zeichen=$rs485_port->read(1);
$antwort=$antwort.$zeichen;
if ($zeichen eq ";") {
print "$antwort\n";
my $antwort = "";
my $zeichen = "";
}
}


(Randbemerkung: /dev/ttyUSB1 ist das richtige Deveice. ttyUSB0 ist ebenfalls eine RS232<>USB-Brücke eines anderen Systems. Jedes Datenpaket wird mit einem ; beendet - daher die IF-Anweisung. Die While-Schleife diehnt dazu, dass das Script irgendwann Endet (zu Testzwecken). Dies würde später durch eine Endlosschliefe ersetzt).

Gibt es einen anderen (sinnvolleren) Weg? Von open /dev/ttyUSB1 halt ich nicht viel, lasse mich aber gerne belehren. Hiermit hatte ich aber auch (noch) keinen Erfolg.

Ich bin für jeden hinweis dankbar!!!

Danke
Oliver
Last edited: 2015-10-12 15:02:19 +0200 (CEST)

View full thread RS232 Probleme