Hi an alle, kurze Verständnisfrage. kann ich ein SPI-Signal per uC in CAN wandeln? Also kann ich einen Bausteine über siene SPI Schnitstelle mit der SPI Schnittstelle des uC verbinden, Daten auslesen und diese dann per CAN Interface des uC ausgeben? Ich frage, weil es mich verunsichert, da es immer Wandler sind die irgendwo dazwischengeschaltet sind. Das selbe auch per I2C. gehts das? I2C--> uC --> CAN Klingt vielleicht doof, mag es auch sein, aber ich muss das echt mal wissen.
Ähem schrieb: > Ich frage, weil es mich verunsichert, da es immer Wandler sind die > irgendwo dazwischengeschaltet sind. Was für Wandler genau? Der µC braucht auch noch einen CAN-Controller und einen CAN-Transceiver. Viele µC haben einen CAN-Controller integriert (dies ist zu empfehlen, da effizient & einfacher zu programmieren), manche sogar den CAN-Transceiver; meist braucht es dafür aber einen externen IC. Somit kann man mit einem µC alleine i.A. nicht direkt SPI auf CAN umwandeln.
Ähem schrieb: > kann ich ein SPI-Signal per uC in CAN wandeln? Woher kommt das "SPI-Signal"? Warum steuerst du da nicht gleich einen MCP2515 an? > Das selbe auch per I2C. gehts das? Du hast aber auf den beiden Bussen ein völlig anderes Protokoll. Das solltest du dir m.E. nochmal genauer anschauen.
:
Bearbeitet durch Moderator
Dr. Sommer schrieb: > Ähem schrieb: >> Ich frage, weil es mich verunsichert, da es immer Wandler sind die >> irgendwo dazwischengeschaltet sind. > > Was für Wandler genau? > > Der µC braucht auch noch einen CAN-Controller und einen CAN-Transceiver. > Viele µC haben einen CAN-Controller integriert (dies ist zu empfehlen, > da effizient & einfacher zu programmieren), manche sogar den > CAN-Transceiver; meist braucht es dafür aber einen externen IC. Somit > kann man mit einem µC alleine i.A. nicht direkt SPI auf CAN umwandeln. Also Wenn ich das Signal per CAN-Schnittstelle des uC an die Gegenstelle (auch CAN) sende, sollte es gehen. Oder?
Lothar M. schrieb: > Ähem schrieb: >> kann ich ein SPI-Signal per uC in CAN wandeln? > Woher kommt das "SPI-Signal"? > Warum steuerst du da nicht gleich einen MCP2515 an? > >> Das selbe auch per I2C. gehts das? > Du hast aber auf den beiden Bussen ein völlig anderes Protokoll. Das > solltest du dir m.E. nochmal genauer anschauen. Also mit dem MCP2515 würde ich das Signal ja dann wandeln, oder? Den setzte ich zwischen SPI Sender und uC.
Ja, das geht und ist praktisch der Normalfall, denn es gibt kaum einen Sensor der direkt CAN spricht bzw. keinen CAN-Controller, der direkt Sensoren per I2C oder SP ansprechen kann. Das macht zu 99% immer ein uC. Sensor <-SPI-> uC <-SPI-> CAN Controller oder Sensor <-I2C-> uC <-SPI-> CAN Controller Die meisten CAN-Controller werden per SPI oder Parallelschnittstelle angesprochen. Mit I2C kenn ich keinen.
Ähem schrieb: > Also Wenn ich das Signal per CAN-Schnittstelle des uC an die Gegenstelle > (auch CAN) sende, sollte es gehen. Oder? Man kann CAN-Signale per CAN-Schnittstellen senden, ja. Oder was war die Frage? Ähem schrieb: > Den setzte ich zwischen SPI Sender und uC. Was ist das für ein "SPI Sender"? Der MCP2515 kann nicht einfach irgendein SPI-Signal nach CAN wandeln. Dem muss man bestimmte Befehle geben. Diese kommen normalerweise von einem µC; m.W. gibt es keine Sensoren die das direkt ausgeben. CAN ist ein Nachrichtenorientiertes Halb-Duplex-Protokoll, dessen Nachrichten Adressen und je 0-8 Datenbytes haben. SPI überträgt einfach nur Bits Voll/Halb-Duplex. Das kann man nicht einfach so zusammenstecken, da braucht es etwas Intelligenz für, eben in Form eines µC. Falk B. schrieb: > Die meisten CAN-Controller werden per SPI oder Parallelschnittstelle > angesprochen. Mit I2C kenn ich keinen. Die CAN-Controller, die im µC sitzen, über den internen Prozessor-Bus.
> CAN ist ein Nachrichtenorientiertes Halb-Duplex-Protokoll, dessen > Nachrichten Adressen und je 0-8 Datenbytes haben. SPI überträgt einfach > nur Bits Voll/Halb-Duplex. Das kann man nicht einfach so > zusammenstecken, da braucht es etwas Intelligenz für, eben in Form eines > µC. > Falk B. schrieb: > Die meisten CAN-Controller werden per SPI oder Parallelschnittstelle > angesprochen. Mit I2C kenn ich keinen. > > Die CAN-Controller, die im µC sitzen, über den internen Prozessor-Bus. Wenn ich einen Sensor habe der SPI als Schnittstelle hat, kann ich den dann auslesen mit einem uC über die SPI Adresse un´d dann die Daten per CAN Schnittstelle des uC weitergeben an eine weitere CAN Gegenstelle die auch ein CAN Interface besitzt?
Ähem schrieb: > Wenn ich einen Sensor habe der SPI als Schnittstelle hat, kann ich den > dann auslesen mit einem uC über die SPI Adresse un´d dann die Daten per > CAN Schnittstelle des uC weitergeben an eine weitere CAN Gegenstelle die > auch ein CAN Interface besitzt? Ja, das geht und ist gängig, bis darauf dass SPI keine Adressen hat.
Ähem schrieb: > Wenn ich einen Sensor habe der SPI als Schnittstelle hat, kann ich den > dann auslesen mit einem uC über die SPI Adresse un´d dann die Daten per > CAN Schnittstelle des uC weitergeben an eine weitere CAN Gegenstelle die > auch ein CAN Interface besitzt? Ja sicher!
Ähem schrieb: > > Wenn ich einen Sensor habe der SPI als Schnittstelle hat, kann ich den > dann auslesen mit einem uC über die SPI Adresse un´d dann die Daten per > CAN Schnittstelle des uC weitergeben an eine weitere CAN Gegenstelle die > auch ein CAN Interface besitzt? Achtung! CAN-Controller alleine reicht nicht. Man braucht auch einen CAN-Transceiver für die entsprechenden Pegel und mehr. Variante 1: µC hat integrierten CAN-Controller: SPI CAN Sensor <---> µC <-> CAN-Transceiver-IC <---> CAN-Transceiver-IC <-> µC Variante 2: µC ohne integrierten CAN-Controller: SPI SPI CAN Sensor <---> µC <---> CAN-Controller-IC <-> CAN-Transceiver-IC <---> SPI CAN-Transceiver-IC <-> CAN-Controller <---> µC Zwischen CAN-Controller und CAN-Transceiver wird zwar CAN-Protokoll gesprochen, aber der Spannungspegel z.b entspricht nicht dem Physical-Layer von CAN. Es wird auch nicht differenziell übertragen.
:
Bearbeitet durch User
Noch hat keiner nach dem Datendurchsatz auf dem SPI gefragt, das ist bei einer Schnittstellenkonvertierung immer eine wichtige Frage. Bedenke, dass auf dem CAN das Verhältnis Brutto-/Nettodaten etwas weniger als 50% beträgt. Weiterhin kann CAN (ohne FD) max. 1MBaud, was aber nur auf dem Labortisch ratsam ist, in der Praxis max. 500kBaud auf kurzen Strecken von wenigen Metern. Weiterhin kann das Puffern der Daten aus dem SPI anspruchsvoll werden, besonders dann wenn man auf das Protokoll keinen Einfluss hat. Theoretisch kann es passieren, dass die Daten im Burst kommen, dafür aber nur selten. Die Datenrate passt vielleicht im Durchschnitt, aber man muss die Daten aus dem Paket irgendwo bunkern und jederzeit empfangsbereit sein. Wenn es sich aber tatsächlich nur um „normale“ Sensordaten handelt sollte das alles kein Problem sein.
:
Bearbeitet durch User
Ähem schrieb: > kann ich ein SPI-Signal per uC in CAN wandeln? Du brauchst einen Protokollwandler. D.h. der MC muß wissen, wie er das IC am SPI anzusprechen hat und welches Protokoll Du auf dem CAN benutzen willst. Typisch hat man dazu auf dem MC einen kleinen Kommandointerpreter, der dann Steuerbefehle (z.B. Konfiguration des SPI) und Datenpakete voneinander trennt.
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.