Forum: Mikrocontroller und Digitale Elektronik CAN-Kommunikation: PC mit mehreren µC's


von Thomas (Gast)


Lesenswert?

Hallo!

Ich bin gerade dabei, ein kleines System aufzubauen, bei dem meine 
Mikrokontroller mit dem PC kommunizieren können und umgekehrt. Hierzu 
verwende ich ein USB-CAN-Modul der Firma Systec, welches nur einen 
9-pol. SUB-D-Anschluss hat. Um aber mit allen µC's kommunizieren zu 
können, habe ich mir einen kleinen Verteiler gebaut, bei dem ich alle 
Receive- und Transmit-Leitungen auf einen SUB-D-Stecker zusammenziehe 
und von diesem ein Kabel zum Rechner gelegt habe. Leider habe ich bis 
jetzt noch keine Übertragung zustande gebracht, obwohl ich den Durchgang 
der Sende- und Empfangsleitungen schon überprüft habe und die 
Kommunikation zwischen PC-µC für einen µC (mit direkter Verbindung zum 
PC, ohne Verteiler) einwandfrei funktioniert.
Deshalb meine Frage: Muss ich neben der Sende- und Empfangsleitung noch 
irgendwelche andere Verbindungen herstellen? Oder könnten durch die 
Verbindungskabel im Verteiler (normale Flachbandkabel) die Signale der 
CAN-Übertragung negativ beeinflusst werden?

Ich bin für jede Hilfe sehr dankbar!

MfG Thomas

von Obelix (Gast)


Lesenswert?

Hast du da etwa einen Stern-Verdahtung aufgebaut?

von Obelix (Gast)


Lesenswert?

>bei dem ich alle Receive- und Transmit-Leitungen
>auf einen SUB-D-Stecker zusammenziehe

Ne, Moment mal wie meinst du das?

von Otto (Gast)


Lesenswert?

welche

>Receive- und Transmit-Leitungen

denn ?

Otto

von Thomas (Gast)


Lesenswert?

@ Obelix:
äähm... Sternverdrahtung? ... Ich muss leider gestehen, dass ich nicht 
recht weiß, was das ist... aber ich habe bei meinem Verteiler einfach 
alle gleichen Leitungen (wenn ich mich recht erinnere 3er und 
7er-Leitung vom SUB-D-Stecker) auf eine Streifenrasterplatine gelötet 
und von dort eine Leitung auf den gleichen Anschluss eines anderen 
SUB-D-Stecker gelötet, an dem ich das Kabel zum PC angeschlossen habe.

von Obelix (Gast)


Lesenswert?

Guggst du hier guggst du 
http://de.wikipedia.org/wiki/Controller_Area_Network#Topologie

Ein CAN-Bus hat keine Leitungen die Receive und Transmit heißen, sondern 
eher CAN-L und CAN-H.
Weist du was ein Abschlußwiderstand ist?

von opacer (Gast)


Lesenswert?

Also du hast an dem USB-CAN Adapter am Sub-D einen CAN-H und einen CAN-L 
Pin. Die musst du mit allen CAN-H und CAN-L von den CAN-Transceiver 
verbinden. Die CAN-Tranceiver wiederum sind an dem zugehörigen µC über 
die CAN-RX und CAN-TX verbunden. Mit dem PC Verbindest du nur den USB 
von USB-CAN Adapter ... Dann noch GND Verbinden.

Ist Deine Schaltung so? Alles andere wäre falsch und kann nicht 
funktionieren.

von Thomas (Gast)


Lesenswert?

OK, gut, mein Fehler g...
Ja, habe einen Widerstand von 120 Ohm am seriellen Kabel, das ich am 
USB-CAN-Modul angeschlossen habe. Aber ich habe auch schon mit einem 
normalen seriellen Kabel eine korrekte Übertragung erreicht. Es klappte 
bis jetzt jede Übertragung, solange ich nicht meinen Verteiler 
dazwischengehängt habe...

von Thomas (Gast)


Lesenswert?

@ opacer:
ja, wenn ich jetzt nichts falsch verstanden habe, dann hätte ich 
eigentlich meine leitungen genauso angeschlossen. bist du dir 100%ig 
sicher, dass das alles ist? wenn ja, dann werd ich doch noch mal meinen 
verteiler in seine einzelteile zerlegen ;)

von Obelix (Gast)


Lesenswert?

Ein Abschlußwiderstand gehört an BEIDE Enden des Buses. Am besten, du 
läßt den Verteiler komplett weg.

von Obelix (Gast)


Lesenswert?

PS. Das mit den 120 Ohm betrifft nur den High-Speed-CAN.

von Thomas (Gast)


Lesenswert?

CAN-verteiler funktioniert perfekt... bin dahintergekommen, dass die 
streifenrasterplatine das signal nicht durchlässt... auch den widerstand 
benötige ich nicht unbedingt... trotzdem danke...
mfg thomas

von crazy horse (Gast)


Lesenswert?

jo, den Widerstand muss man immer im Zusammenhang mit Leitungslänge und 
Baudrate sehen.
Vor kurzem hatte ich hier ein Gerätchen zu bauen, 500kBit, Gegenstation 
bei mir in der Werkstatt nur ein USB-Dongle ohne Abschluss. Für den Test 
habe ich die Leitung (10m) nur einseitig mit 1k2 terminiert und eine 
ganze Nacht lang kräftig in beide Richtungen Daten geschickt: kein 
einziger error-frame.

von Obelix (Gast)


Lesenswert?

Zum Testen ist es ja OK, aber ist ein Widerstand so teuer, das man ihr 
einsparen muss, und damit ein erhöhtes Risiko eingeht?

von Thomas (Gast)


Lesenswert?

ist mir schon klar, dass bei längeren leitungen ohne widerstand trotzdem 
fehler auftreten können. habe jetzt auch 120 ohm dazwischengelötet, da 
die daten möglichst fehlerfrei übertragen werden sollten und ich eine 
high-speed-can übertragung verwede. sorgen machte mir anfangs ja nur der 
umstand, dass ich nicht mal eine fehlerübertragung zustande brachte...

von A.K. (Gast)


Lesenswert?

Kann mir jemand verraten, wie CAN ganz ohne Widerstand überhaupt 
funktionieren kann? So wie ich das bisher kannte, sorgen die 
Treibertransistoren zwar für den dominanten Pegel, aber einzig der 
Abschlusswiderstand für  den rezessiven Pegel. Im Transceiver ist zwar 
noch ein differentieller Widerstand von zig KOhm drin, aber das dürfte 
kaum reichen.

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.