Hallo, es geht mal wieder um die SSI-Schnittstelle. Ich möchte einen Winkelgeber an einer Maschine auslesen und habe einen Stecker mit folgenden Pins: C+ C- D+ D- (Schirmung) Wenn ich das richtig interpretiere, handelt es sich wahrscheinlich um das Clock (C)- und Daten (D)- Signal. Das ganze dann jeweils normel und invertiert. Ich weiß jetzt aber nicht, das da für Daten aunkommen (Graycode, Binär...). Das Signal für den Winkel würde ich ganz gerne mit einem µC einlesen und als Analogwert ausgeben. Wie sollte ich da vorgehen/was brauche ich für daten/Infos vom Winkelaufnehmer? Das Clocksignal muss ich denke ich nicht vorgeben, dass wird schon durch die übergeordnete Steuerung gegeben und liegt am Stecker "nur so" nochmal an.
> Das Clocksignal muss ich denke ich nicht vorgeben, dass wird schon durch die übergeordnete Steuerung gegeben und liegt am Stecker "nur so" nochmal an. Das Taktsignal liegt nicht "nur so" an. Mit dem Signal werden die Daten aus dem Drehgeber herausgeholt, d.h. du mußt nachsehen, welchen Wert das Signal bei der positiven Taktflanke hat. Typischerweise werden für Singleturn-Drehgeber 13 Takte zum Lesen benutzt und für Multiturn-Geber 25 Takte. Die Taktimpulse werden paketweise mit Pausen von mindestens der Monoflopzeit angelegt. Typische Pegel bei SSI sind RS 422. Eine hinreichende Beschreibung zur SSI-Schnittstelle findest du irgendwo bei Hengstler (einer der größeren Drehgeberhersteller): http://www.hengstler.com/de/products/faq.php?catID=251#_122 bzw.http://www.hengstler.com/gfx/file/faq/SSI.pdf Welchen Kode der Geber liefert, musst du aus der Typenbezeichnung des Gebers klären, bei Kübler steht es im Klartext drauf. Graycode ist üblich. Das kannst du aber selbst feststellen - beim langsamen Durchdrehen des Gebers ändert sich beim Graycode immer nur ein Datenimpuls pro Schritt.
also das heißt, ich muss mir erstmal ansehen, wie überhaupt das Signal auf der Clock-Leitung aussehen? Das müssten dann ja viele Taktbüschel sein. Wenn die übergeordnete Steuerung aber ein sehr schnelles Clocksignal ausgibt, woher weiß ich dann wann ein jeweiliger Datenstrom auf der Dataleitung zu Ende ist/Woher kenne ich den Anfangs- und Endpunkt von einem Winkelwert? Ich würde doch z.B. solche Daten erhalten: 1101001011101010011100110110001001 Also einfach 1en und 0en, die ich irgendwie in Segmente teilen muß?
Richtig, es sind Taktbüschel. Die Taktfrequenz liegt üblicherweise zwischen 100 kHz und 1 MHz. Du musst also auswerten, wann das Taktimpulspaket losgeht. Es geht nach einer Pause von mindestens 30 ms (sog. Monoflopzeit) los. Dabei geht es aus dem Ruhezustand = High auf Low. Du musst also eine Pause von ca. 30 ms mit dem darauffolgenden Low als Startbedingung auswerten. Mit den dann folgenden Taktflanken siehst du dir an, ob die Daten H oder L sind. Viel Spaß dabei!
C+ C- D+ D- sind vermutlich differentielle Ausgänge (macht auch Sinn da meist sehr schnell). Können mit jedem RS422 Receiver ausgewertet werden. Stichwort Differential Bus Transceiver SSI ist bei Wikipedia ganz gut beschrieben: http://de.wikipedia.org/wiki/Synchron-Serielle_Schnittstelle Zu beachten ist noch das die Daten meistens im Gray Code übertragen werden
Noch vergessen: Kann über die SPI eingelesen werden wenn diese lang genug (16 Bit) ist. Gibt µCs wo man das einstellen kann
Hallo Zusammen, ich habe eine ähnlich gelagerte Frage bzgl. der SSI Schnittstelle. Für einen kleinen Machbarkeitsversuch möchte ich zwei Drehgeber auslesen, welche jeweils das SSI Protokoll/ Schnittstelle bedienen. Die Sensorversorgungsspannung erledige ich über die jeweiligen Anschlusskabel (ist in den Datenblättern spezifiziert). Da ich über Matlab auslesen will, ist meine Frage, ob ich einfach einen USB - RS422 umsetzer benutzen kann, um die Bits auszulesen. Und zweitens, ob ich eine dann eine gemeinsame Masse mit meiner Versorgungsspannung haben muß (bis jetzt nach lesen der datasheets glaube ich nicht)? Und drittens, hat jemand eine Empfehlung bzw. Erfahrung mit den für kleines Geld erhältlichen RS422 USB umsetzern und kann eine Empfehlung aussprechen? Vielen Dank für Eure Bemühungen und beste Grüße, Max
RS-422 auf USB wird i.a. eine asynchrone serielle Schnittstelle sein. Da wird das mit der SSI Schnittstelle nix werden.
@Max D. (maxd) >Da ich über Matlab auslesen will, ist meine Frage, ob ich einfach einen >USB - RS422 umsetzer benutzen kann, um die Bits auszulesen. Nein, SSI ist NICHT zum normalen UART kompatibel, da braucht man einen kleinen uC als Umsetzer. Hab ich vor Ewigkeiten mal mit einem MSP430 gebaut. Die Unterlagen dazu hab ich aber nicht mehr, war in einer anderen Firma. >Und zweitens, ob ich eine dann eine gemeinsame Masse mit meiner >Versorgungsspannung haben muß Ja.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.