Forum: Mikrocontroller und Digitale Elektronik Probleme mit RS232 Übertragung über Bluetooth


von Stefan S. (kami)


Lesenswert?

Hi,

ich habe folgendes Problem. Ich möchte von einem easymeter Stromzähler 
die Ausgabe über die Infrarotschnittstelle per Bluetooth übertragen.

Das Protokoll des Zählers wird richtig ausgelesen und steht zur 
Übertragung zur Verfügung. Wenn ich die Daten also direkt per USB-RS232 
Adapter übertragen kommen Sie richtig an.

Also nun zum Problem ich möchte die Daten mit einem Free2Move Bluetooth 
Modul übertragen. Das Modul bietet nur die Einstellungen Baudrate, 
Parity Bits (None,Even,ODD) und Stop Bits (1,2). Die Databits sind fest 
auf 8 Stück und können nicht umgestellt werden.

Der Zähler überträgt aber nur ein Protokol das so aufgebaut ist:

Baud = 9600
Data bits= 7
Parity bit =1 (even)
Stop bit = 1

der Rechner der empfangen soll ist ein PC und kann alles einstellen.

Also wie kriege ich das Protokoll des Zählers lesbar an den PC 
geschickt? Weil ich ja mit der Anzahl der Datenbits nicht gleich bin?

Zur Zeit kommt zwar was an aber das ist nur Müll.

Vielen Dank.

Gruß kami

von Pascal H. (pase-h)


Lesenswert?

Mit einem Atmega.
Du könntest ja parallell zum Hardware RS232 noch einen Software RS232 
programmieren.
Ich würde das so machen:
1.Signal über die Software RS232 einlesen
2.Das Signal dann passend an dein Bluetoothmodul senden.


Das müsste eigentlich funktionieren, jedoch habe ich es noch nicht 
getestet.

Mfg
Pase

von Stefan S. (kami)


Lesenswert?

Das ist doof, ich möchte das eigentlich ohne Controller direkt machen. 
Geht das nicht irgendwie? oder gibt es irgendein Bluetooth Modul das 
auch andere Einstellungen kann?

Gruß kami

von David .. (david1)


Lesenswert?

Mit einem andern Modul geht das, ich hab hier ein Bluetooth-Bee von 
Watterott.de liegen, aber das muss glaub bei jedem start gesagt bekommen 
das es auf sichtbar gehen soll, dazu bräucht man dann wieder nen atmel, 
aber das is schon wesentlich einfacher.

Aber ob man das auf 7 Datenbits einstellen kann, musste das Datenlatt 
anschauen.

von Pascal H. (pase-h)


Lesenswert?


von Stefan S. (kami)


Lesenswert?

Hi,

kann ich nicht irgendwie die 7 Databits so übermitteln, dass er die 
richtig auf dem PC ausgibt?

Hat vielleicht jemand noch andere Tipps zu Modulen mit den man das 
machen kann?

Habe das hier gefunden:

http://lynx-dev.com/index.php?page=shop.product_details&flypage=flypage-ask.tpl&product_id=61922&category_id=105&option=com_virtuemart&Itemid=2&lang=de

vielleicht hat ja jemand noch ein paar Tipps.

Gruß kami

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

7e1 lässt sich problemlos als 8n1 übertragen.

Auf der Empfängerseite wird das Paritätsbit weggeworfen (mit 0x7F 
verANDen), auf der Senderseite muss es hingegen für jedes zu sendende 
Byte berechnet und in Bit 7 eingetragen werden.

von Stefan S. (kami)


Lesenswert?

Hi,

das würde ich gerne genauer wissen. ICh habe jetzt mein Modul auf 8 
Databite, baud 9600, parity = none, stop bits = 1 eingestellt.

Was muss ich bei der Empfängerseite unter Coolterm (so heißt mein Tool) 
einstellen?

Wäre sehr dankbar für ein paar tipps .

Gruß kami

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Was das Tool machen muss, habe ich beschrieben, das wirst Du notfalls 
selbst schreiben müssen.

von Stefan S. (kami)


Lesenswert?

Hallo,

okay aber dann sind wir ja wieder bei der ersten Lösung, mit einem 
zusätzlichen COntroller auf der Senderseite. Das will ich ja extra 
nicht. Sondern ich möchte gerne nur die RS232 Signale senden und dann 
auf der Empfängerseite auswerten. Geht das also nicht?

Gruß kami

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Natürlich geht das, Du musst halt die Empfängerseite selber schreiben 
bzw. entsprechend anpassen.

Wenn das Programm fest vorgegeben und unveränderlich ist, dann kannst Du 
mit com0com dessen Schnittstellenzugriffe auf eine virtuelle umleiten, 
die Du dann wiederum mit einem selbst zu schreibenden Programm füttern 
musst, das mit der Schnittstelle kommuniziert, an der Deine 
BT-Verbindung angeschlossen ist.

Dieses zu schreibende Programm muss halt im Sendebetrieb das Parity-Bit 
selbst berechnen und es im Empfangsbetrieb wegwerfen. Fertig.

von Stefan S. (kami)


Lesenswert?

Hi,

also auf der Empfängerseite kann ich machen was cih will. Da würde mich 
halt irgendein tool wie Hyperterminal oder so interessieren, mit dem ich 
erstmal recht einfach sehen kann ob die Übertragung richtig ankommt. 
Kannst du mir da vielleicht irgendwas simples empfehlen? ALso das BT 
Modul habe ich auf 8n1 eingestellt und eine Kommunikation ist da.

Gruß kami

von Stefan S. (kami)


Lesenswert?

Hi rufus,

hast du vielleicht bitte noch ein bißchen mehr hilfe für mich. Wäre echt 
klasse kommme überhaupt nicht weiter. Vielen Dank.

Gruß kami

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Was exakt ist denn jetzt Dein Problem? Wenn Du die Daten, die Du 
empfängst, Dir anzeigen lassen willst, nimm halt ein Programm wie das 
"Terminalprogramm" hterm von Tobi 
http://www.der-hammer.info/terminal/, das ist vielleicht etwas besser 
geeignet als ein "echtes" Terminalprogramm wie HyperTerminal.

Musst Du denn auch Daten senden, oder genügt es, welche zu empfangen?

von Stefan S. (kami)


Lesenswert?

Hi,

also es genügt Daten zu empfangen. Ich empfange ja auch was und kann die 
Settings also die Konfiguration anpassen. Was mir halt, fehlt oder was 
besser nicht klappt ist die richtige Ausgabe der Daten. Da baut er immer 
noch Mist.

Vielleicht kannst Du mir ja sagen, wie ich in meinem Sonderfall hterm 
einstellen muss?

Gruß kami

von StinkyWinky (Gast)


Lesenswert?

Die mittels Terminal empfangenen Daten musst Du halt nachbearbeiten, 
indem Du das Parity-Bit entfernst, wie Rufus weiter oben schon gesagt 
hat.

von Stefan S. (kami)


Lesenswert?

Okay,

nur meine Frage ist halt wie mache ich das?

Gruß kami

von Stefan S. (kami)


Lesenswert?

Hi,

so ich bin nun etwas weiter. Wenn ich das ganze mit mit hterm als 
Übertragung mit 7 Databits und Parity even oder none und Stopbits=1 
anschaue dann sieht der Output so aus wie er aussehen soll:

/ESY5Q3DA1004 V3.02

1-0:0.0.0*255(0273011003463)
1-0:1.8.0*255(00001320.5410118*kWh)
1-0:21.7.255*255(000009.04*W)
1-0:41.7.255*255(000209.88*W)
1-0:61.7.255*255(000111.52*W)
1-0:1.7.255*255(000330.44*W)
1-0:96.5.5*255(82)
0-0:96.1.255*255(1ESY1011003463)
!

und wenn ich das selbe mit einem anderen Tool als Hterm mache dann sieht 
der immer so aus:

??SY5?3DA?00??V3.0??
?
?-0:0.0.0??55(0??30??003?63??
?-0:?.?.0??55(0000?3?0.3??90?????詍
?-0:??.?.?55??55(00000?.?9?ש?
?-0:??.?.?55??55(000???.03?ש?
?-0:6?.?.?55??55(000??3.55?ש?
?-0:?.?.?55??55(000333.???ש?
?-0:96.5.5??55(????
0-0:96.?.?55??55(??SY?0??003?63??
!?


Woran kann das liegen?

Wäre dankbar für hilfe.


Gruß kami

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
Noch kein Account? Hier anmelden.