Kommunikation zwischen TX und TXT
Verfasst: 01 Jan 2016, 17:59
Hallo zusammen, guten Rutsch erstmal!
Da ich gerade an meinem Roboter brüte, und mich nicht so genau mit I²C oder anderen Datenübertragungsmethoden auskenne, frage ich jetzt einfach mal hier nach. Ich habe an meinem Modell einen TXT und einen TX verbaut. Ich benötige die Kamera des TX, und hätte den TX als Erweiterung genutzt. Da das aber mit dem aktuellen Stand der Dinge noch nicht funktioniert, überlege ich gerade, wie ich das Problem anderweitig umgehen kann. Dabei kam mir in den Sinn, einen Motoranschluss des TXT (M4) direkt an I1 und I2 (jetzt nur als Beispiel) und andersherum verkabeln könnte, und dann über diese beiden "Datenleitungen" Befehle zwischen den TX(T)'en austauschen kann. Die eine Datenleitung (A) hätte ich als Takt genutzt, die andere zur Übertragung der Informationen (B). Also wäre ein entsprechender Ablauf zum Senden von Informationen:
1. Datenleitung von TXT stellt sich auf das zu übertragende Bit ein (z.B. O7 auf "an")
2. Taktleitung sendet Impuls (z.B. O8 auf "an", danach auf "aus"
3. TXT wartet auf I1 (an den 08 angeschlossen ist) auf einen Takt. Sobald dort eine aufsteigende Flanke ankommt, wird I2 ( die Datenleitung 07) ausgelesen und in eine Variable abgespeichert.
=> Dieser Vorgang wiederholt sich zum Beispiel acht Mal.
Das Problem, das ich jetzt habe, liegt bei der Trennung der ankommenden Bits in Bytes, also die Erkennung, wann ein Block vorbei ist, und wann der nächste kommt. Meine Idee war jetzt, einfach acht mal die Null zu senden, das heißt der Empfänger zählt die Anzahl der Nullen seit der letzten "1" und trennt damit die Blöcke. Allerdings entsteht dann das Problem, wenn ich ein "Byte" mit endenden Nullen sende (z.B. 10000000) und dann die acht Nullen, dann wird schon nach einer gesendeten Null mit dem Neuen Byte angefangen das Programm trennt dann somit falsch:
Ich hoffe ich habe mich nicht zu sehr verworren und jemand weiß Abhilfe....
Liebe Grüße,
olagino
Da ich gerade an meinem Roboter brüte, und mich nicht so genau mit I²C oder anderen Datenübertragungsmethoden auskenne, frage ich jetzt einfach mal hier nach. Ich habe an meinem Modell einen TXT und einen TX verbaut. Ich benötige die Kamera des TX, und hätte den TX als Erweiterung genutzt. Da das aber mit dem aktuellen Stand der Dinge noch nicht funktioniert, überlege ich gerade, wie ich das Problem anderweitig umgehen kann. Dabei kam mir in den Sinn, einen Motoranschluss des TXT (M4) direkt an I1 und I2 (jetzt nur als Beispiel) und andersherum verkabeln könnte, und dann über diese beiden "Datenleitungen" Befehle zwischen den TX(T)'en austauschen kann. Die eine Datenleitung (A) hätte ich als Takt genutzt, die andere zur Übertragung der Informationen (B). Also wäre ein entsprechender Ablauf zum Senden von Informationen:
1. Datenleitung von TXT stellt sich auf das zu übertragende Bit ein (z.B. O7 auf "an")
2. Taktleitung sendet Impuls (z.B. O8 auf "an", danach auf "aus"
3. TXT wartet auf I1 (an den 08 angeschlossen ist) auf einen Takt. Sobald dort eine aufsteigende Flanke ankommt, wird I2 ( die Datenleitung 07) ausgelesen und in eine Variable abgespeichert.
=> Dieser Vorgang wiederholt sich zum Beispiel acht Mal.
Das Problem, das ich jetzt habe, liegt bei der Trennung der ankommenden Bits in Bytes, also die Erkennung, wann ein Block vorbei ist, und wann der nächste kommt. Meine Idee war jetzt, einfach acht mal die Null zu senden, das heißt der Empfänger zählt die Anzahl der Nullen seit der letzten "1" und trennt damit die Blöcke. Allerdings entsteht dann das Problem, wenn ich ein "Byte" mit endenden Nullen sende (z.B. 10000000) und dann die acht Nullen, dann wird schon nach einer gesendeten Null mit dem Neuen Byte angefangen das Programm trennt dann somit falsch:
Code: Alles auswählen
Trennung vom Sender, es wird jeweils zweimal die Zahl 256 gesendet:
10000000_00000000_10 ....
1_00000000_00000001_0 ...
Trennung vom Empfänger, dieser wartet zuerst auf die acht Nullen, fängt dann aber zu früh an und liest eine Eins (00000001) bevor der Empfänger wieder auf die acht Nullen wartet. (es ist also "das Komma verrutscht")
Liebe Grüße,
olagino