Hi, ist es möglch mit einem uC ein High Speed CAN Signal im PKW Bereich auszugeben? Es sollte ein festes Signal sein (Bitfolge). Im Grunde will ich wenn ein Eingangssignal kommt (Ein / Aus über Schalter) am uC, dass er in einem Bestimmten Abstand ein CAN-Signal ausgiebt. Kann man soetwas realisieren? Gruß Kevin
@Kevin W. (kevin89) >ist es möglch mit einem uC ein High Speed CAN Signal im PKW Bereich >auszugeben? Es sollte ein festes Signal sein (Bitfolge). Sicher. >Im Grunde will ich wenn ein Eingangssignal kommt (Ein / Aus über >Schalter) am uC, dass er in einem Bestimmten Abstand ein CAN-Signal >ausgiebt. Kann man soetwas realisieren? Ja. Entweder Controller mit integriertem CAN-Controller oder beliebiger Controller mit externem CAN-COntroller, siehe CAN.
Danke schonmal ich habe vergessen dazu zu schreiben welche Art uC's ich gemeint habe: Ich dachte an ATTiny85 (eignet sich auch für PWM Audioplayer) bzw. ATTiny's oder einfachere ATMega's. Geht das auch mit diesen?
das geht prinzipiell mit jedem Controller! wenn Dein Controller keine CAN-Schnittstelle hat, benötigst Du einen externen CAN-Controller wie z.b. den SJA1000 von NXP. die Frage ist eher welche Möglichkeiten hast Du? Kann Du programmieren? hast du die Möglichkeit eine Platine zu erstellen? kannst Du löten!?
noch was, hinter Deinem CAN-Controller benötigst du noch einen Treiber. das könnte z.b. ein MCP2551 sein.
Wenn es drum geht, dass das Kerlchen klein wird: MCP2515 statt SJA1000, oder irgendwas mit integriertem CAN (AT90CANxxx, PIC18F2680, ...). Aber ein Tiny85 wird das wohl nicht, das wär zu knapp. Wenn du dir vielleicht vorgestellt hast, mit einem Tiny85 einfach nur die Bitsequenz auf einem Pin rauszublasen ohne nach links und rechts zu sehen: Das geht nicht. Ein CAN Controller ist unverzichtbar, sonst werden die übrigen Busteilnehmer sauer.
A. K. schrieb: > oder irgendwas mit integriertem CAN (AT90CANxxx, PIC18F2680, ...). Aber > ein Tiny85 wird das wohl nicht, das wär zu knapp. z.B. die LPC11C-Reihe. Kleine, günstig und genügen Power.
W.Sprengel schrieb: > z.B. die LPC11C-Reihe. Kleine, günstig und genügen Power. Stimmt z.B. LPC11C24 mit integriertem Treiber, somit nur 1 IC erforderlich. Zudem CAN-API im ROM. Zum Testen hier ein günstiges Demo-Board mit CAN-Beispiel: https://www.olimex.com/Products/ARM/NXP/LPC-P11C24
Für den Anfang und besonders im PKW wäre ein externer Transceiver vielleicht sinnvoller. Tauscht sich leichter, besonders als DIP im Sockel.
A. K. schrieb: > Wenn du dir vielleicht vorgestellt hast, mit einem Tiny85 einfach nur > die Bitsequenz auf einem Pin rauszublasen ohne nach links und rechts zu > sehen: Das geht nicht. Ein CAN Controller ist unverzichtbar, sonst > werden die übrigen Busteilnehmer sauer. Das trifft es sehr gut! Ich habe nämlich nur ein Gerät das angesteuert werden muss und mein Plan war es mit sehr wenig Mitteln das Signal zu schummeln. Zu der Frage weiter oben, ich kann mit Eagle eigene Bauteile erstllen, Platinen sowieso und das Ätzen und löten ist auch kein Problem. Nur uC programmieren kann ich nicht deswegen meine Fragen ;)
Kevin schrieb: > Das trifft es sehr gut! Ich habe nämlich nur ein Gerät das angesteuert > werden muss und mein Plan war es mit sehr wenig Mitteln das Signal zu > schummeln. Wenn du ausser der hier betrachteten Node exakt einen Teilnehmer hast, der ausschliesslich empfängt, *dann und nur dann kannst du tatsächlich ohne CAN-Controller einen Bitstrom rausblasen.
Kevin schrieb: > Nur uC programmieren kann ich nicht deswegen meine Fragen ;) Wie gesagt, hier ist ein Demo-Programm dabei das periodisch oder per Interrupt eine CAN-Message sendet, einfach mal ansehen: https://www.olimex.com/Products/ARM/NXP/LPC-P11C24 Nicht das 2. Demo-Programm, das ist CANopen.
A. K. schrieb: > Wenn du ausser der hier betrachteten Node exakt einen Teilnehmer hast, > der ausschliesslich empfängt, *dann und nur dann kannst du tatsächlich > ohne CAN-Controller einen Bitstrom rausblasen. Da muss ich leider sagen CAN Teilnehmer senden und empfangen immer und wenn es nur das ACK Bit ist. Es sind immer Transceiver, aber mir ist in dem Fall egal was er sendet. Ich will deshalb eine Pause zwischen jedem senden von meinem Signal haben um Störungen zu vermeiden Lothar schrieb: > Wie gesagt, hier ist ein Demo-Programm dabei das periodisch oder per > Interrupt eine CAN-Message sendet, einfach mal ansehen: Vielen Dank ich schau mir das Programm an :)
Kevin W. schrieb: > Da muss ich leider sagen CAN Teilnehmer senden und empfangen immer und > wenn es nur das ACK Bit ist. Inwiefern stört das ACK Bit denn? Klar, error handling gibts so keines.
Es ging nur darum dass alle CAN-Bus Teilnehmer immer senden und empfangen. Weil immer eine Abfrage da ist ob die Nachricht korrekt ist.
Daher ja auch mein oben erwähntes "wenn". Das geht nur, wenn alle anderen Nodes keine Frames senden, sondern allenfalls ACKs. Standard-konform ist das klarerweise nicht.
Hallo, an dieser Stelle würde ich mich mal ganz gerne einklinken. Ich würde mich sehr freuen, wenn einer ein paar Worte darüber verlieren könnte warum ich für einen Can-Bus einen speziellen uC brauche. Also was hat dieser uC mehr und macht ihn besser ? MFG
Hallo, für Kommunikation auf dem CAN-Bus braucht man zwei Elemente: Einmal die richtigen Hardware-Pegel (differenziell) und einmal die richtige logische Ansteuerung. Erstes ist nur mit einem Transceiver zu erreichen (ob diskret oder als IC), da die Mikrocontroller-Ein- und Ausgänge nicht den elektrischen Charakteristiken entsprechen. Zweites kann man - wenn man masochistisch veranlagt ist - auch mit einem µC darstellen. Allerdings gibt es, um Standardkonform zu sein, so viele Sonderfälle und Eigenheiten zu beachten, dass es sich schlicht nicht lohnt, so etwas rein in Software selber zu machen (wobei die üblichen CAN-Controller durchaus einen eigenen festprogrammierten µC-Kern haben dürften, der von Spezialhardware unterstützt wird). Das fängt dabei an, dass das Signal zu einem bestimmten Zeitpunkt gesamplet werden muss, bzw. der Samplingzeitpunkt mit dem Signal synchronisiert werden muss. Es geht weiter mit Kollisionserkennung, Bit-Stuffing, Error-Frames und Acknowledge um schließlich bei Message-Filterung und -Verarbeitung zu enden. Das ist wirklich so viel einfacher mit einem (integrierten) CAN-Controller erledigt, dass selbst bei richtig großen Stückzahlen Software sich nicht lohnt (zumal diese bei großen Stückzahlen sicher zertifiziert werden müsste). Also besser entweder einen externen CAN-Controller mit Transceiver (2 Bausteine extra), oder aber einen µC mit integriertem Transceiver ( 1 extra Baustein) oder eine vollintegrierte Lösung verwenden (wobei mir hier nur Varianten bekannt sind, die zwei Versorgungsspannungen - 3.3 und 5V - benötigen). Schöne Grüße, Martin
Als blutiger Anfänger solltest einen Arduino nehmen und auf dem steckbrett den Mcp2515 plus den Mcp2551 beschalten. Wenn du dann erfahrener geworden bist, gehst du über ins nächste Level. Dann nimmst du einen atmega168 plus einen Mcp25625 oder gleich einen atmega16m1
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.