Forum: Mikrocontroller und Digitale Elektronik Protokoll-Identifikation


von Pascal T. (pascalts)


Angehängte Dateien:

Lesenswert?

Moin!

Ich habe hier ein Stück Hardware, dass aus 3 Platinen-Bereichen besteht. 
Modul A hat gut erkennbar die CPU + Speicher drauf. Modul B hat nur eine 
LAN-Schnittstelle. Modul C ist ein 866MHz Funkmodul.

Die drei Platinen sind über eine vierte PCB verbunden, auf der auch die 
Spannungsversorgung sitzt. Ich versuche etwas über die Kommunikation 
zwischen den Platinen zu lernen. Als erstes würde ich gern herausfinden, 
über welches Protokoll sie kommunizieren.

Dazu habe ich alle Pins durchgepiepst, und konnt feststellen, dass nur 5 
Pins nicht irgendeine Spannungsversordung oder GND sind. Einer dieser 
Pins geht von Modul A zu B und C, zwei jeweils nur zu B oder C. Ich habe 
mal mit meinem logic-Analyzer den "Verkehr" mitgeschnitten und konnte 
nur sehr wenig sehen.

CH 1 und 2 gehen zu Modul B

CH 4 und 5 gehen zu Modul C

CH 7 geht zu beiden Modulen.

Anbei habe ich (der Optik wegen) eine Grafik davon angehängt. Das 
aufgezeichnete Signal als CSV hab ich mal auf Pastebin geschoben: 
https://pastebin.com/et1AHHqB

Hat jemand eine Vermutung, welche Kommunikation da verwendet wird?

von Andras H. (kyrk)


Lesenswert?

Vielleicht mal in den Peaks da reinzoomen?

von Harald K. (kirnbichler)


Lesenswert?

Pascal T. schrieb:
> Ich versuche etwas über die Kommunikation
> zwischen den Platinen zu lernen.

Dann sollte man sich auch ansehen, was für Dinge auf den Platinen 
genau draufsind, denn die bestimmen oft das verwendete Protokoll. Was 
exakt ist die "Lanschnittstelle"? Ist das ein NIC mit PHY, ist das nur 
ein PHY, oder ist das sogar nur eine RJ45-Buchse?

Was für ein Funkmodul ist das, und was für ein µC ist da am Werkeln?

Wenn man die Beteiligten kennt, kann man oft fundierte Annahmen über die 
verwendeten Protokolle treffen.


Gibts Bilder von den Platinen?

von Rainer W. (rawi)


Lesenswert?

Pascal T. schrieb:
> Als erstes würde ich gern herausfinden, über welches Protokoll sie
> kommunizieren.

Bevor du dich um das Protokoll kümmerst, wirst du erstmal feststellen 
wollen, was das für Schnittstellen sind (OSI Ebene 1).

von Gustl B. (-gb-)


Lesenswert?

Pascal T. schrieb:
> Das aufgezeichnete Signal als CSV hab ich mal auf Pastebin geschoben:

Dann speichere das Signal mal als .sal, denn dann kann ich das hier auch 
wieder mit der Saleae Software importieren.

Andras H. schrieb:
> Vielleicht mal in den Peaks da reinzoomen?

Exakt. In diesen Peaks ist die Kommunikation drinnen.

von Pascal T. (pascalts)


Angehängte Dateien:

Lesenswert?

Anbei findet ihr .sal-Dateien.

- die CPU ist ein MCIMX287CVM4B ARM CPU (Modul A)
- die LAN-Platine ist mit einem AX88772BLI ausgestattet (Modul B)
- auf der dritten Platine ist ein MSP430 & ein CC1125 (Modul C)

von Florian L. (muut) Benutzerseite


Lesenswert?

Wird USB sein. Die Pegel werden von deinem Logikanalyser wahrscheinlich 
nicht richtig erkannt. Hast du mal mit einem Oszo draufgeschaut?

von Pascal T. (pascalts)


Lesenswert?

Das ist mir gestern auch wie schuppen von den Augen gefallen... Fast 
schade, ich hatte auf einfachen UART oder I2C gehofft. Wobei mir bei 
letzterem der Clock gefehlt hätte.

Ja, mit dem Oszi hab ich schon mal drüber geschaut, aber mein Oszi ist 
analog und stammt aus DDR-Zeiten sowietischer Produktion. Da kann ich 
nur erkennen, ob da was ist - nicht unbedingt was. Wahrscheinlich es 
Zeit, da mal aufzurüsten.

Danke erst mal für die Tipps, ich schau mal, wie ich jetzt weitermache. 
Mein Ziel war es, an irgend eine Debug / UART-Schnittstelle der Geräts 
heranzukommen (die nicht offensichtlich mit irgend einem Header gibt). 
Jetzt beschäftige ich mich erst mal theoretisch mit USB :-D

Danke!

von Harald K. (kirnbichler)


Lesenswert?

Pascal T. schrieb:
> die LAN-Platine ist mit einem AX88772BLI ausgestattet (Modul B)

Das ist ein USB-Baustein der Firma ASIX, der mit High-Speed USB (480 
MBit/sec) angesteuert wird (bzw. werden kann), da wirst Du mit einem 
Oszilloskop/Logikanalysator überhaupt nichts sinnvolles aufzeichnen 
können.

Dieser Baustein verwendet ein proprietäres Protokoll, das ist kein 
USB-CDC-ECM.

Pascal T. schrieb:
> auf der dritten Platine ist ein MSP430 & ein CC1125 (Modul C)

Es gibt ja auch nur genau einen MSP430. Möglich ist es, daß das einer 
mit USB-Device-Interface ist und daher die Kommunikation mit ihm 
ebenfalls über USB erfolgt, dann aber immerhin nur über Full-Speed (12 
MBit/sec), denn MSP430 mit schnellerem USB-Device-Interface gibt es 
nicht.

Kann natürlich auch was vollkommen anderes sein.

Auf den hochauflösenden Bildern, die wir jetzt sehen dürfen, kann man 
auch klar erkennen, daß ...

z.B. eine USB-UART-Bridge noch auf dem Modul C untergebracht ist (oder 
auch nicht)

Hilfreich wäre es, sich anzusehen, auf welche Art und Weise die 
verschiedenen Module an den µC angeschlossen sind; da das ein BGA ist, 
ist das natürlich nicht ganz so einfach. Man könnte sich aber das Umfeld 
des Bausteins ansehen, ob z.B. ein USB-Hub zwischen dem Baustein und der 
Verbindung zum Netzwerkmodul zu finden ist, denn dann könnte der andere 
Kram ebenfalls über USB angebunden sein.

Dabei helfen uns die hochauflösenden, gut ausgeleuchteten Bilder der 
Platinen, die hier immer noch fehlen.

von Pascal T. (pascalts)


Lesenswert?

Danke für die Hilfe. Leider kann ich keine Bilder der Platine posten. 
Weil ich das Gerät zwar rechtmäßig besitze, aber es hätte eigentlich nie 
zu mir kommen dürfen. Daher habe ich schlicht etwas Schiss vor 
rechtlichen Kosequenzen, an dem Ding rum zu "hacken" und dann noch Fotos 
zu posten.

Es sind weder auf Modul B noch C weitere ICs verbaut, nur Kleinkram (C, 
L, R, Quarz).

Modul A hat noch einen Festspeicher (Spanison ML08G201BHI00), RAM 
(winbond W972??????), zwei LAN Tranciver (SMCS 8720A), einen 
Flash-Speicher (Spanison FL256SAIH20), ein RS485 Transceiver (ADM3488E, 
nicht für Debug, habe ich geprüft) sowie ein Chip, den ich wegen seiner 
Einbauweise nicht lesen kann. Es steht in der ersten Zeile entweder 
8003S, 80038 oder 80035. In der zweiten Zeile 01 02, in der dritten 
Zeile wahrscheinlich EnB809E. Konnte ich nichts dazu finden - ein 
Mikroskop hatte ich nicht zur Hand. Was nach einem Hersteller aussieht 
könnte "XZ" heißen - untereinander. Leider sind die Platinen 
übereinander gestackt (verlötet), so dass ich nichmal mit Tele oder 
Makro ein ordnetliches Bild machen kann um es richtig zu lesen. Und 
auseinanderlöten ist (noch) keine Option.

In der Anleitung des Geräts steht was von "es Bootet". Also vermute ich, 
da es auch einen Webserver bereitstellt, das irgend eine Linux-Variante 
darauf installiert ist. Die dürfte dann auf einem UART sicher den 
Boot-Prozess darstellen. Den zu bekommen wäre mein erstes Ziel.

//Nochmal Editr zum Thema Bilder:

Selbst wenn ich wöllte, könnte ich nicht. Die Platinen schweben ca 8mm 
übereinander - und sind im Rechten Winkel mit einer "Versorgungs-PCB" 
verbunden. Ohne Demontage (Auslöten) keine Fotos möglich.

: Bearbeitet durch User
von Ron-Hardy G. (ron-hardy)


Lesenswert?

Immer diese "geheimscheisse"

von Harald K. (kirnbichler)


Lesenswert?

Das ist dann ein merkwürdiger Klumpen; warum sind auf der einen Platine 
zwei PHYs drauf, und auf der anderen ein USB-NIC mit integriertem PHY?

Pascal T. schrieb:
> Die dürfte dann auf einem UART sicher den
> Boot-Prozess darstellen. Den zu bekommen wäre mein erstes Ziel.

Da die UART im BGA-Gehäuse des µC untergebracht sein dürfte, wird man 
ohne Unterlagen des Gerätes oder unter Analyse der zugänglichen 
Steckverbindungen oder gegebenenfalls Prüfpads auf der Platine nicht an 
diese UART rankommen.

Was erhoffst Du Dir eigentlich von Deiner Protokoll"analyse"? Macht das 
Gerät nicht, was es soll?

von Pascal T. (pascalts)


Lesenswert?

Nun, der Gedanke des Herstellers war wohl, den USB-NIC auch durch ein 
USB LTE-Modem und anderes zu ersetzen, weil es das auch gibt (andere 
Modelle, nur andere WAN-Verbindung).

Tja was erhoffe ich mir... Es ist rein akademisch. Ich will einfach 
verstehen wie das Gerät funktioniert, weil es absolut keine öffentliche 
Dokumentation darüber gibt.

Die komische Gehäuseform kommt zustande, weil es auf einer Hutschiene 
Montiert wird.

: Bearbeitet durch User
von Harald K. (kirnbichler)


Lesenswert?

Pascal T. schrieb:
> Ich will einfach
> verstehen wie das Gerät funktioniert

Dann wirst Du einen mühsamen und steinigen Weg vor Dir haben. Du kannst 
Dir die Hardware nicht ansehen, die Hardware ist komplex, und Du kannst 
die Hardware nicht anderen zeigen.

Eine noch schlechtere Ausgangslage hättest Du nur, wenn Du noch nicht 
mal wüsstest, wozu das Gerät überhaupt da sein soll. Ich nehme mal an, 
daß Du das tust, auch wenn Du es uns nicht erzählt hast.

Tja, dann mach mal. Viel Erfolg.

von Pascal T. (pascalts)


Lesenswert?

Ich habe jetzt ein zweites Gerät. Laut Dazenblatt des Mikrocontrollers 
auf der Hauptplatine hat dieser 2 USB-Anschlüsse, einer davon OTG (???), 
der andere Host. Ich denke einer von beidenm wird als auch als Client 
funktionieren. Jetzt kann ich eine der Platinen auslöten und schauen, ob 
eine Verbindung zustande kommt. Mal sehen :-)

von Pascal T. (pascalts)


Lesenswert?

Edit: An einem der beiden als USB vermuteten Ports konnte ich jetzt eine 
USB-Verbindung bestätigen. Mein Windows 10 meldet aktuell "Fehler beim 
Anfordern einer Gerätebeschreibung" - aber immerhin.

: Bearbeitet durch User
von Christian (christiankpunkt)


Lesenswert?

Pascal T. schrieb:
> Mein Windows 10 meldet aktuell "Fehler beim
> Anfordern einer Gerätebeschreibung"

Dafür benötigst du aber keinen Controller.
Da reichen ein bis zwei Widerstände mit der die Datenleitungen über 
1,5KOhm Pullups an 3,3V gelegt werden.

von Pascal T. (pascalts)


Lesenswert?

Jetzt haben wir es zu "Fehler beim Zurücksetzen des Geräts" geschafft. 
Immerhin. Hat USB-OTG nicht einen Sense-Pin?

: Bearbeitet durch User
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.