Guten Abend, ich baue momentan an einem Wettbewerbsfahrzeug eine elektrische Wasserpumpe ein. Diese wird mittels PWM angesteuert und erhält die Information dafür (Duty-Cicle) von einem "Hauptrechner" per SPI. Es werden also nur sehr sporadisch Daten zur Pumpensteuerung übertragen, vielleicht alle 5 Minuten einmal oder so.... Die Entfernung zwischen den Modulen beträgt circa 1,5m, ich weiß, dass dies nicht der Verwendungszweck der SPI ist, aber auf Grund der geringen Datenmenge möchte ich dennoch einen Versuch wagen. Die einzige Frage die sich mir stellt ist, ob ich den Bus galvanisch trennen sollte? Ich habe vor ein 9-poliges Kabel für die Verbindung zu nutzen und zwischen CLK, MOSI und MISO jeweils Masse zu legen...Also vom Potentialausgleich sollte das denke ich ok sein....der Knackpunkt über den ich nun nachdenke: Der Slave wird wohl irgendwo im Motorraum plaziert werden und dort ist das Umfeld sehr sehr rau (Lichtmaschine, Zündspulen, etc)...könnte das zu ernsthaften ESD Problemen führen und mir die Controller zerhauen? Gruß Jan
>Die Entfernung zwischen den Modulen beträgt circa 1,5m,
Die Entfernung zwischen den Modulen kann auf 0m reduziert
werden. Leg einfach die Pumpenkabel über die 1,5m und gut.
Datenrate ist im Prinzip absolut egal...könnten von mir aus 100Hz sein, es wird nur sporadisch ein Byte übertragen, um den Duty-Cycle der PWM zu ändern: Holger: Ja prinzipiell wäre das möglich..nur sprechen dagegen 2 Gründe 1: Die Leitungen, über die der gepulste Strom saust wollte ich möglichst kurz halten, um zu große Abstrahlungen zu vermeiden 2: Hätte den SPI-Bus gerne im Motorraum, weil dort auch noch einige Temperaturfühler sitzen sollen und die alle einzel in den Innenraum verkablen fordert natürlich einen Mehraufwand an Kabeln...
Verwende eine symmetrische Übertragung. http://de.wikipedia.org/wiki/EIA-485 Mit einer solchen Übertragung haben wir in Autos Meßsysteme mit SPI über rund 5 - 6 Meter mit mehr als 2 MBit/s laufen. Die RS485 Treiber müssen dazu allerdings so nah wie möglich an den SPI Controllern liegen. Zusätzlich verdrillte und abgeschirmte Leitungen verwenden. Je ein Treiberpaar für Clock, MISO und MOSI. Für was willst du eine Galvanische Trennung ? Du hast nur eine Spannungsversorgung im Auto. Also alle haben das gleiche Bezugspotential, es sei denn du treibst irgendwelche seltsame Spiele. Grundsätzlich betrachtet wäre allerdings CAN Bus besser geeignet, weil dort bereits in Hardware und im Protokoll Absicherungsmaßnahmen , CRC , vorhanden sind.
Jan schrieb: > Die Entfernung zwischen den Modulen beträgt circa 1,5m, ich weiß, dass > dies nicht der Verwendungszweck der SPI ist, aber auf Grund der geringen > Datenmenge möchte ich dennoch einen Versuch wagen. Nein solltest du nicht. Es gibt keinen Grund sowas zu machen. Nicht umsonst machen sich viele intelligente Leute tagtäglich Gedanken zu solchen Themen. Und eines darst du mir glauben - Dilettanten sind das mit Sicherheit nicht. Jetzt willst du anfangen SPI für größere Distanzen auszubauen. Mal abgesehen, dass das sinnfrei ist ("Mann ohne Beine soll Maraton laufen") ist doch der Aufwand viel zu groß. Bau einen CAN-Bus auf, es gibt fertige Libraries wenn du dir das von der Komplexität noch nicht zutraust, ein CAN-Controller (MCP2515) kostet 2€ und nen Treiber MCP2551 für 1€ (beides bei Reichelt) und fertig. 3€ + Hühnerfutter für einen Bus der - mit vernünftigen Kabeln verlegt und terminiert - sich im Auto seit Jahren bewährt hat und nahezu Störungsfrei arbeitet. Automatischer CRC, etc. ist alles mit an Bord - brauchst dich nicht drum kümmern. Störungsfest bis zum Geht-Nicht-Mehr. Damit hast du dann auch Spaß und hast nicht irgend so ein zusammengepfriemeltes Ding. Bitte tu dir den Gefallen und versuche nicht das Rad neu zu erfinden. Es gibt mehrere zehntausende Menschen die täglich in der Autoindustrie in der Entwicklung arbeiten, da gibt es Millionenbudgets für Entwicklung. Und die können es einfach besser als wir. Also keine Spirenzchen machen - die denken sich schon was dabei ... nichts für ungut Einige Probleme hast du aber immernoch. Das KFZ-Netz. Da hilft dir auch die Galvanische Trennung recht wenig. Spannungsspitzen sind dein Stichwort - eine ordentliche Stromversorgung: schau mal hier: http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.23
Wir brauchten auch einmal SPI über längere Distanz. Für die Störsicherheit haben wir die Signale zwischendurch nach LVDS gewandelt. Das hat zumindest über ein paar Meter funktioniert. Ist allerdings auch etwas Aufwand. Ansonsten möchte ich mich den Vorpostern anschliessen: CAN ist besser dazu geeignet.
Setzt die SPI auf symmetrische Signale um (RS422-Transceiver). CAN arbeitet u.u. deswegen so störsicher, weil die Übertragung symmetrisch erfolgt. Aber erst auf SPI auf CAN umsetzen und dann wieder zurück, halte ich für etwas übertrieben.
@STK500-Besitzer: ProTip: Lies dir mal das Datasheet zum CAN-Controller durch. Danach ist dir vielleicht klar, dass die Dinger über SPI angebunden werden. Ob man jetzt SPI auf CAN, RS422 oder RS485 umsetzt, macht nahezu keinen Unterschied. Man muss es so oder so auf ein symmetrisches Protokoll übersetzen...auf beiden Seiten.
Jan schrieb: > ich baue momentan an einem Wettbewerbsfahrzeug eine elektrische > Wasserpumpe ein. Diese wird mittels PWM angesteuert und erhält die > Information dafür (Duty-Cicle) von einem "Hauptrechner" per SPI. Es > werden also nur sehr sporadisch Daten zur Pumpensteuerung übertragen, > vielleicht alle 5 Minuten einmal oder so.... Das klingt seltsam. Wenn die Wasserpumpe schon geregelt werden soll, dann muss diese auch einigermassen schnell nachgeregelt werden koennen, wenn z.B. 1 Minute Vollgas die Temperaturen steigen lassen. Wenn das nicht sein muss, kannst Du die Regelung gleich mit einem Poti im Motorraum einstellbar machen. citb
z.K. http://www.avagotech.de/docs/AV02-3220DE Seite 6/7 "SPI Isolation" (mittels Optokoppler) Ich denke schon, daß anzuraten ist eine galvanische Trennung vorzunehmen. Ein andere Alternative wäre ggf. noch LIN statt CAN. By the way: Der Unterschied zwischen einer Steuerung und einer Regelung, ist der bekannt? Beispielsweise ist der berühmte "Lautstärkeregler" (Drehknopf) am Radio eben kein Regler sondern ein Steller. Gruss
Sooo erstmal danke für das reiche Feedback. Zunächst mal, das mit den 5 Minuten war nur ein grober Richtwert um zu verdeutlichen, dass hier wirklich keine hohen Datenraten benötigt werden und es sich auch nicht um eine zeitkritische Kommunikation handelt. Ich bin mit dem CAN-Standart bestens vertraut, weiß um die exakte Funktion, die Sicherungsmechanismen und die Vorteile. Gerade deswegen finde ich den CAN für meine Anwendung aber schlichtweg oversized. Ich habe auch kein Problem damit die Kommunikation über CAN zu programmieren, trotdem halte ich Gesamtaufwand für unverhältnismäßig hoch, nur um ein Byte zu übertragen. Sicherlich ist CAN für die Anwendung im Automobil bestens geeignet, auch für sicherheitskritische Anwendungen....aber für eine einfache Pumpensteuerung? Die Idee der galvanischen Trennung war folgende: Leider ist es eben so, dass man im Fahrzeug nicht unbedingt überall das selbe Potential hat, gerade bei neuen Fahrzeugen wo Karosserieteile teilweise verklebt sind und Compositwerkstoffe eingesetz werden, würde ich meine Hand nicht dafür ins Feuer legen, dass man überall eine gleich gute Masseverbindung und damit identisches Bezugspotential hat...es sei denn, man greift direkt an der Batterie ab, das ist klar.
Andreas Kist schrieb: > @STK500-Besitzer: ProTip: Lies dir mal das Datasheet zum CAN-Controller > durch. Danach ist dir vielleicht klar, dass die Dinger über SPI > angebunden werden. > > Ob man jetzt SPI auf CAN, RS422 oder RS485 umsetzt, macht nahezu keinen > Unterschied. Man muss es so oder so auf ein symmetrisches Protokoll > übersetzen...auf beiden Seiten. Es gibt nur EINEN CAN-Controller? Na, dann zeig mir mal bitte, wie man einen SJA1000 per SPI anspricht! Mit dem MCP2515 bin ich auch vertraut...
Soooo kurzes Update, bin doch auf CAN umgestiegen. Ist zwar immernoch voll oversized aber weniger Kabelgedöhns, da ja noch mehrere Knoten im Motorraum Einzug finden. Layout ist auch schon fertig, kann ich gerne mal hochladen wenn Interesse besteht. Eingesetzt habe ich die hier vorgeschlagenen MCP 2515 und MCP2551. Gruß Jan
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.