Hallo zusammen,
ich messe die Kommunikation-Signale zwischen ein Encoder (eines BLDC
Servomotors) und die Steuerung dieses Motors.
der Encoder wird mit 5V gespeist und gibt zwei Kommunikation-Signale
(MRR und MRP) zu der Steuerung.
Die Messung zeigt, dass die beiden Signale zueinander umgekehrt sind.
Das Signal (wie man auf dem Bild sehen kann) ist periodisch mit einer
Frequenz von ≈ 4.5 kHz.
Man kann in jeder Periode hauptsächlich zwei Teile unterscheiden.
Beim ersten Teil lieget das Signal bei ≈ 2,7 V. Im zweiten Teil folgt
eine Pulssequenz, wobei das Signal zwischen den Werten ≈1V und ≈4V
pendelt.
beim Stillstand bleibt diese Pulssequenz unveränderlich, bei einer
konstanten Drehzahl aber ändert sich diese ständig.
ich brauche jetzt dieses Signal zu interpretieren. Also um welchen
Kommunikationsprotokoll könnte es sich hierbei handeln?
hat jemand eine Idee?
vielen Dank im Voraus!
Die Codierung zumindest sieht stark nach Manchester aus. Innerhalb einer
festen Bitzeit wird die Polarität geändert (entspricht z.B. einer 1)
oder eben nicht (wäre dann z.B. 0).
Ich schätze, das sind so um die 40-50 bit pro Nachricht, hab jetzt nicht
genau gezählt. Wenn das mit den 360uS/DIV stimmt, scheint die Bitzeit
etwas um die 70-80 uS zu sein.
Danke für die Antwort :)
hab gerad ein bisschen über Manchster Codierung gelesen und hab kurz
eine Frage dazu; hat es eine Bedeutung, dass das Signal nicht zwischen
den Gleichen Niveau pendelt? oder es interessiert uns dabei nur ob es
eine fallende oder steigende Flanke ist (also wenn es um eine Manchster
Codierung handelt)?
Zahra Z. schrieb:> hat es eine Bedeutung, dass das Signal nicht zwischen> den Gleichen Niveau pendelt?
Genau das ist das typische Verhalten bei Manchester (Non-Return-to-Zero
= NRZ) Kodierung. Usprünglich wurde solch eine Kodierung für z.B.
Magnetbänder oder Funkübertragung erfunden, wo absolute Pegel am
Empfänger nicht gewährleistet sind. Es zählt also nur der Polaritäts
Wechsel und nicht die absolute Polarität.
Je nach Vereinbarung ist also ein Polwechsel innerhalb der Bitdauer eine
1 und ein nicht stattfindender Polwechsel eine 0.
Anders augedrückt: Am Ende der Bitdauer findet auf jeden Fall ein
Wechsel statt, wenn dazwischen noch einer kommt ist es eine 1.
Wie das bei deinem Drehgeber gehandhabt wird, siehst du schnell, wenn du
mal dekodierst. Auch blosses Rumdrehen am Motor und Beobachten am Oszi
hilft da schon, spätestens nach ein bisschen Üben :-)
Für weitere Infos wäre es nützlich, mal den Typ des Drehgebers zu
wissen.
Danke für die Erklärung :-)
bzgl des Typs bin ich mir nicht sicher, ich nehme aber an, dass es ein
optischer Drehgeber ist. Im datasheet steht dass er eine Resolution von
8192 pulses/rev hat, es gibt aber keine weiteren Angaben dazu...
Zahra Z. schrieb:> Im datasheet steht dass er eine Resolution von> 8192 pulses/rev hat, es gibt aber keine weiteren Angaben dazu...
Na, das ist doch schon mal was. Das bedeutet, das ein Vollkreis des
Gebers aus 14 bit besteht und die höheren Bits vermutlich dann ganze
Umdrehungen zählen. Mögl. ist da allerdings noch eine Prüfsumme und
Statusbits dabei, so ist das zumindest bei den Sick-Stegmann oder
Haidenhein Gebern, mit denen ich hier rumspiele (SSI Protokoll).
Achtung, solche Geber geben gerne mal Gray Code aus und nicht unbedingt
direkt Binärzahlen:
http://de.wikipedia.org/wiki/Gray-Code
Und hier mit nützlichen Codeschnipseln zum Umrechnen:
http://en.wikipedia.org/wiki/Gray_code
ich hab hier eine Messung mit einer Geschwindigkeit n=4000 U/min
durchgeführt.
ich hab mein Signal gespeichert und hab dann auf die Pulssequenze
gezoomt. (auf dem Bild sieht man oben das Signal ohne zoom
[1520ms/div]und unten der gezoomte Teil [5.2µs/div])
wenn man sukzessive Pulssequnze betrachtet, sieht man Änderungen an zwei
Stellen, und erst nach vielen Pulssequenzen ändert sich etwas an einer
anderen Stelle: das ist vermutlich dann die Zahl der ganzen
Umdrehungen... Eine von den anderen Änderung ist dann vermutlich für die
Pulszahl... hmmm ich weiß aber nicht was die andere bedeuten kann...
ich weiß nicht, ob es jetzt ein Gray Code sein kann, weil zwischen zwei
sukzessiven Pulssequenzen hat sich (glaube ich..) nicht nur ein bit
geändert...
Hmm, das sieht aber nu gar nicht mehr nach einem NRZ Code aus. Du
brauchst unbedingt mehr Infos zu dem Geber, so ist das nur Rumstochern
im Nebel. Da du die Oszillogramme hast, sitzt du doch neben der
Apparatur, oder? Mach doch mal Fotos oder finde wenigstens mal den
Hersteller raus.
Was perl sagte, ist schon ganz richtig (hab ich ja auch empfohlen):
http://forum.electronicwerkstatt.de/phpBB/Elektrische_Probleme/kommunikationsprotokoll_encoder-t128934f6_bs0.html
Motor langsam drehen und die Bitfolgen beobachten. Dann einen Rechner
mit dem Signal füttern und ein Dekoderprogramm schreiben. Entweder einen
kleinen MC oder was grosses, dazu musst du aber erstmal wissen, was du
willst.
Gibt es kein Datenblatt vom Motor mit Encoder? Auch der Hersteller wäre
schon ein Hinweis(Typenschild?). Dann könnte man sehen, was die Firma a
Übertragunsoptionen hat. Oft sind ABZ-Signale( wie hier beschrieben:
http://www.ichaus.biz/wp2_encoderanschluss ).