Mitschneiden der seriellen Schnittstelle & Implementierungen

darktrym

Fahnenträger
Ich bastle grad an Python Skripten die einen Alternativbespielung meiner PoGa Hardware zulassen. Nebenher spiele ich mit den vorhandenen Implementierungen der seriellen Kommunikation herum, also betriebssystemübergreifend sollte es schon sein. Der Schwerpunkt ist derzeit pyserial(sehr wahrscheinlich unbrauchbar für die meisten Dinge), uspp(veraltet und noch kein BSD Support aber vielversprechend).
Unter Windows gibts da recht nützliche aber teure Software wie "advanced serial port monitor" zum mitschneiden der Kommunikation. Gibts sowas auch für Posix Systeme und kostenlos, denn nochmal drücke ich keine 50€ dafür ab?

Wie groß sind die Unterschiede der seriellen Kommunikation zwischen den BSDs, Darwin und Linux? Kann ich die BSDs zu einer Klasse zusammmenfassen? Unter MacOS, Linux läuft wohl alles über termios.
 
Ein Verständnisfrage, wie komme ich denn dann an die ausgetauschten Signale? Die Hardware kommuniziert doch direkt mit der Schnittstelle, da nützt mir doch pyserial nichts.
Ich weiß nicht wie das unter Windows gelöst wird, also System Hook oder virtuelles Device welches protokolliert und die Signale weiterleitet.
 
Für gewöhnlich sendet der Client an die Hardware Befehle, worauf die Hardware antwortet (Query/Response). Dein Sniffer nimmt jetzt die Befehle entgegen, speichert sie ab und leitet sie an die Hardware weiter. Mit der Antwort der Hardware wird genauso verfahren.
 
Nein. Der Uploader für Programme, Firmware auch die sonstige Kommunikation wie Terminalsitzungen etc. will ich implementieren, da diese nur als Windows Programme existieren, furchtbar hässlich, instabil und EoL.
Das Protokoll ist unbekannt, deshalb brauche ich diese Programme. Klar kann man auf Windows die BSDs in der VM laufen lassen und über die vorhandene Software belauschen, keine besonders schöne Lösung.
 
Also ich nutze für Serial Port Debugging/Entwicklung/Sniffen meist eine Kombination aus stty im raw mode mit cat und einem Logic Analyzer. Den "Advanced Serial Port Monitor" der vom op angesprochen wurde habe ich mal ausprobiert, war nicht mein DIng. Fand ich persönlich eher kompliziert und umständlich. Glücklich bin ich dann mit dem bereits angesprochenen Logic Analyzer geworden. Ist zwar 2-3 mal so teuer wie der Serial Port Monitor, aber imo auch die Investition wert, wenn man öfter mal mit Seriellen sachen konfrontiert wird.
 
Ich versuche über socat einen Tunnel aufzubauen und die übertragenen Daten gleich aufzuzeichnen. Das Anlegen des Pseudodevice geht, nur bekomme ich keine Ausgaben weder auf Konsole noch in der Datei. Meine Testumgebung befindet sich in einer Virtualbox Instanz, Gerät wird korrekt durchgereicht. Aufruf sieht folgendermaßen aus:

socat -d -lf /tmp/log.txt -v -x PTY,link=/tmp/serial,wait-slave,raw /dev/ttyU0,raw

Hat jemand eine Idee was da nicht stimmt?
 
Hallo,

Ich nutze für so etwas immer einen saleae logic analyzer clone. Der macht auch gleich protocol decoding. Ansonsten würde mir noch als Hardware Lösung einfallen (falls vorhanden) einen arduino mega2560 zu nehmen. Der hat mehrere uarts(glaube 4). Einfach nur die 2 rx lines von 2 uarts nehmen und an die zu sniffenden Kontakte klemmen. Wenn du nur die rx lines nutzt sollte es auch kein Problem mit Potenzialen geben. Ist alles 5 Volt könntest du dir auch ein richtiges Gateway bauen.

MFG

Wotan
 
Die 9,75€ in den Klon sind schon investiert. Nur brauch ich da noch zusätzliche Hardware um das anzuschließen wenn ich mich dazwischenklemmen will. Von der komischen Software mal abgesehen, dafür gibts ja sigrok.
Nur Software-seitig wäre es so viel einfacher.
 
Zurück
Oben