Forum: Compiler & IDEs Kommunikation zwischen mehreren µC


von Andreas (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich baue gerade einen Roboterarm mit sechs Schrittmotoren (sechs 
Gelenken). Für jeden Motor habe ich einen µC eingesetzt. Die 
Sollposition wird aber von einem Zentralen µC berechnet und angegeben. 
In den einzenen µC ist jeweils eine Tabelle gespeichert. Der zentrale µC 
gibt ledeglich an, welcher Tabellenwert genommen werden soll. Also nur 
ein natürliche Zahldie allerdings in einer Endlosschleife ständig 
aktualisiert werden soll. Die Bewegung des Roboterarms soll wie eine 
Schlangenbewegung sein.
Die Kommunikation soll nur in eine Richtang verlaufen.
Es währe Toll, wenn ihr mir einen Tip geben würdet, welche Schnittstelle 
ich am bestens nutzen sollte oder ob es einen trick gibt es ganz einfach 
zu realisieren.


Für alle Fälle, gebe ich hier noch ein paar Angaben.

Die AT90PWM316 habe ich schon fast fertig. Von daher würde ich die gerne 
behalten. An den µC sind schon jeweils
- 3xHallsensoren (zur Kommutierung des Motors)
- ein Winkelsensor (1xSignalleitung)
- 6xAusgänge zur Treiberschaltung
Die Datenblätter der angeschlossenen Komponenten habe ich angehängt.
Die Programme in den 6 µC sind gleich.

Viele Grüße,

Andreas

von Peter D. (peda)


Lesenswert?

Will man wenig Sorgen und wenig Programmieraufwand, ist CAN optimal.
Leider ist die Auswahl an CAN-MCs bei Atmel nicht sehr üppig.

Ich benutze AT90CAN128 und AT89C51CC03.


Peter

von PittyJ (Gast)


Lesenswert?

Auch ich würde Can nehmen. Einfache Verkabelung.
Ich habe mal TI 28xx Prozessoren dafür benutzt. Da wird der Wert einfach 
in eine Mailbox geschrieben, und die CPU kümmert sich automatisch um den 
ganzen Rest (Kollisionsdetektierung, Fehlererkennung etc).

von Albert .. (albert-k)


Lesenswert?

Müssen alle Werte zeitgleich geschrieben werden oder ist eine 
Verzögerung im Berereich 100us noch akzeptabel?

von iaoffline (Gast)


Lesenswert?

Andreas schrieb:
> Die Kommunikation soll nur in eine Richtang verlaufen.
> Es währe Toll, wenn ihr mir einen Tip geben würdet, welche Schnittstelle
> ich am bestens nutzen sollte oder ob es einen trick gibt es ganz einfach
> zu realisieren.

Dafür reicht ein einfaches serielles Protokoll.

1 Byte mit Adresse (3 Bit) und Tabelle (5 Bit)

1 Draht, ein Sender x Empfänger, beliebig erweiterbar, keine Protokolle 
und mit jedem PC zu testen.

von Andreas (Gast)


Lesenswert?

Wenn ich den CAN nutzen will, müsste ich ja meine µC austauschen. Laut 
Datenblat haben die AT90PWM316 µC keine CAM Schnittstelle. Die µC 
auszutaschen würde mir sehr schwer fallen, da ich sehr lange gebraucht 
habe um die zu programieren.

Eine Verzögerung von 100us währe nicht schlimm.

von Andreas (Gast)


Lesenswert?

An iaoffline

Danke für den Tip. Ich bin aber leider noch Anfänger und ich weiß noch 
nicht genau wie das gehen soll. Könntest du es vllt etwas genauer 
beschreiben oder schreiben worin ich mich genau belesen muss, damit ich 
es halbwegs realisieren kann.

von Karl H. (kbuchegg)


Lesenswert?

Deine µC haben doch alle eine UART eingebaut, oder nicht?

Dann würde ich es genau so machen wie iaoffline das skizziert hat, zumal 
du durch
> Die Kommunikation soll nur in eine Richtang verlaufen.
ja alle Trümpfe in der Hand hast.

Der Haupt-µC gibt seine Weisheiten auf der UART raus und alle anderen 
hören zu.
Einfach alle Slaves mit ihren RxD Leitungen an den einen Master seine 
TxD hängen.

> Ich bin aber leider noch Anfänger
Dann musst du eben lernen, wie man mit einer UART ein Byte von A nach B 
bringt. Ist ja keine Raketentechnik.

http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Der_UART

von iaoffline (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Der Haupt-µC gibt seine Weisheiten auf der UART raus und alle anderen
> hören zu.
> Einfach alle Slaves mit ihren RxD Leitungen an den einen Master seine
> TxD hängen.

Es hat auch noch den Charme das die asynchrone Schnittstelle das gesamte 
System synchronisiert. Wenn man es richtig macht (Uart Rx Interrupt) 
wird sogar mit der Genauigkeit des verwendeten Taktes getriggert ;-).



>
>> Ich bin aber leider noch Anfänger

Die Kommunikation mußt du so oder so lernen. Der  Uart ist mit Abstand 
die einfachste und ein guter Einstieg.

Es gibt im Netz ohne Ende info. Stichworte sind rs232 und serielle 
Schnittstelle.

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.