System-Failures.org

Elektronik. Mikrocontroller. Robotik.

CAN-Hub

Wie schon in mehreren Blog-Posts erwähnt, kommunizieren die Komponenten in meinem Roboter über einen CAN-Bus. Der CAN-Bus gehört zu den Feldbussen und wird in einer Linienstruktur aufgebaut, bei der jeder Teilnehmer über eine kurze Stichleitung an die zentrale Busleitung angeschlossen wird. Da diese Struktur in einem humanoiden Roboter sehr nachteilig ist, da die Kabelrückführung von einem Bein ins nächste die Bewegungsfreiheit einschränkt und auch unnötiges Gewicht mit sich bringt, sollte dies vermieden werden. Wegen dieser Nachteile entstand meine CAN-Hub-Platine, die wie eine Art Netzwerk-Hub arbeitet und jede Nachricht, die über einen Port ankommt, an den anderen Ports wieder aussendet.  Der größte Unterschied zu einem Netzwerk-Hub besteht darin, dass an jedem Anschluss wieder ein kompletter CAN-Bus angeschlossen werden kann.

Die komplette CAN-Hub-Schaltung kommt ohne Mikrocontroller aus und besteht hauptsächlich aus OR- und NOR-Gates. Die wichtigste Stellgröße in der Schaltung sind die RC-Glieder, die die Zeitkonstante vorgeben und dadurch bestimmen, welche Bus-Geschwindigkeit genutzt werden kann. Bei 1MBit Bus-Geschwindigkeit empfiehlt sich eine Zeitkonstante von 100 – 500ns (kürzer als die Länge von 1Bit). In meinem Fall sind das ca. 250ns. Falls man nur kleine Busgeschwindigeiten nutzen will, kann diese Zeitkonstante angepasst werden.

Herausgekommen ist eine kleine 60 x 48mm große Platine, an die sechs 1Mbit schnelle CAN-Busleitungen angeschlossen werden können.

Die Schaltpläne und die Platinenlayouts können hier heruntergeladen werden: CAN-Hub.zip

Creative Commons License
This work, unless otherwise expressly stated, is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Comments

Comment

*