www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CAN-Schnittstelle für den PC


Autor: Thomas W. (tomiondrums)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
ich möchte mich in das Thema 'CAN-Bus mit PIC18F*-Mikrocontrollern' 
einarbeiten und suche in diesem Zusammenhang eine Möglichkeit, vom PC 
aus (mit möglichst wenig Aufwand) Daten auf den Bus zu senden und den 
Bus abzuhören (erstmal ohne irgendwelche Eingangsfilter).

Um bei der Einarbeitung Zeit zu sparen, dachte ich daran, mir ein 
fertiges CAN-zu-RS232/USB/odersonstwas Gateway zu kaufen. Allerdings 
kommen mir dazu einige Fragen:

Anders als bei RS232 handelt es sich beim CAN ja nicht um eine simple 
Punkt-zu-Punkt-Verbindung, sondern eben um einen richtigen Bus, d.h. es 
werden nicht einfach irgendwo Daten rausgeschrieben, die der Empfänger 
1:1 so empfängt. Im Prinzip muß ich ja eine Message protokollgemäß erst 
zusammenschnüren -- mit SOF, Identifier, RTR-Bit, DLC, CRC, ACK, EOF und 
allem was sonst noch dazugehört -- und am Schluß das ACK-Bit abhören, 
etc...
D.h. ich vermute, daß ich zuerstmal selber ein Programm schreiben muß, 
welches mir eingangs genannte Aktionen überhaupt erst ermöglicht. Oder 
gibts sowas schon fertig? Wenn ja, welcher/s Hersteller/Produkt? In 
welchem Preissegment bewegt man sich da?

(Wenn's Linux-kompatibel wär, wär's genial, muß aber nicht unbedingt 
sein)

Bin für jeden Hinweis dankbar!

MfG
 Tom

Autor: ttl (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
schau mal bei www.elektronikladen.de
da gibts auch die Treiber zu dem CANUSB Adapter

Autor: Dietmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal bei Softing rein, die Can Interfaces haben wir bei uns in der 
Firma im Einsatz.

http://www.softing.com/home/de/automotive-electron...

Recht teuer aber gut. Solltest du mal von USB auf PCI etc. wechseln 
wollen, auch kein Problem. Die API aller Schnittstellen ist gleich.

Gruß Dietmar

Autor: heinzhorst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie wär's damit:

http://www.microchip.com/stellent/idcplg?IdcServic...

Hardware, Firmware und zugehörige PC-Software sind von Microchip 
komplett offengelegt. Wollte das Teil mal mit bedrahteten Bauteilen und 
nem anständigen Gehäuse nachbauen. Wenn ich mal wieder Zeit dafür hab.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas W. schrieb:

> 1:1 so empfängt. Im Prinzip muß ich ja eine Message protokollgemäß erst
> zusammenschnüren -- mit SOF, Identifier, RTR-Bit, DLC, CRC, ACK, EOF und
> allem was sonst noch dazugehört -- und am Schluß das ACK-Bit abhören,

Einiges davon erledigt bereits der CAN-Controller.

Autor: Clemens S. (zoggl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
A. K. schrieb:

> Einiges davon erledigt bereits der CAN-Controller.

ja, aber es sollte auch die möglichkeit geben dies per hand zu 
erledigen, um fehler aufzufinden (was passiert, wenn eine nachricht 
mehrfach vom bus geworfen wird=> funktionieren silent mode und bus-off 
aller teilnehmer.)
verworfene frames sollten abrufbar sein, damit diese zugeordnet werden 
können.

sg clemens

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Clemens S. schrieb:

> ja, aber es sollte auch die möglichkeit geben dies per hand zu
> erledigen, um fehler aufzufinden (was passiert, wenn eine nachricht
> mehrfach vom bus geworfen wird

Schau dir mal die CAN Controller genau an. Ich meine mich zu erinnern, 
dass beispielsweise der MCP2515 einen Modus hat, in dem er auch defekte 
Frames rausrückt.

Natürlich hat sowas Grenzen. Wenn du das wirklich ganz genau haben 
willst, also auch Frames die so schrottig sind, dass sie nichtmal klar 
als solche erkennbar sind, dann wirds etwas aufwendiger, denn das ist 
dann Handarbeit mit FPGA und schweineteuer.

Deshalb: Wie genau willst du das wissen? Um sowas raumfahrtsicher 
zertifizieren zu können, oder um es normal verwenden zu können?

Autor: Thomas W. (tomiondrums)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,danke schonmal für die Antworten.

@heinzhorst: Das sieht sehr interressant aus (auch vom Preis her).

Weiß jemand, wo man dieses "MCP2515DM-BM" kurzfristig herbekommt?
Bei www.hbe-shop.de hab ich's zwar gefunden, aber dort dauert die 
Lieferung erfahrungsgemäß recht lang.

@alle: Weil hier die Diskussion aufkam, es gibt bei den PIC-internen 
CAN-Controllern die Möglichkeit in den Registern RXBnCON über die Bits 
RXM0 und RXM1 festzulegen, daß man auch fehlerhafte Messages empfangen 
will (beide auf 1). Empfangen tut man dann allerdings auch nur die Daten 
bis zu dem Punkt an dem der Fehler erkannt wurde (bei CRC-Fehlern sieht 
man dementsprechend fast alles, bei fehlern im Identifier oder 
Init-Sequenz hingegen bis zu gar nix)

Weitere Ideen sind natürlich herzlich willkommen!

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas W. schrieb:

> Weiß jemand, wo man dieses "MCP2515DM-BM" kurzfristig herbekommt?

Der ist technisch auch nicht anders als der interne CAN Controller der 
PIC18Fxx8, nur eben mit SPI.

Autor: Clemens S. (zoggl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
so, jetzt habe ich etwas mehr Zeit:
Privat verwende ich diesen Umsetzer:
http://www.peak-system.com/
preiswert, eigentlich gut dokumentiert und ein brauchbares Basisprogramm 
ist dabei. weiteres fature: du kannst auf der Platine den Interrupt 
abfangen und so mit dessen eingestellter Filtermaske dein Oszi auf 
ausgewählte Frames triggern.


mein Brot verdiene ich bei der Arbeit mit Vector Produkten.
kann ich aber nicht empfehlen, da diese für den Privatgebrauch 
eigentlich zu teuer sind.

Der kurze Absatz sollte als Anregung gedacht sein sich nach Tools 
umzusehen, die Zugang zu den Rohdaten bieten, da meist ein Gerät Amok 
läuft, das sich nicht an Konventionen hält und so rumsaut, ohne im 
Logger aufzufallen, da dieser die zerstörten Frames verwirft. zudem ist 
es praktisch falsche ack bits versenden zu können, um 
Fehlererkennungsstrategien testen zu können.

als Einstieg ist diese seite vl ein tipp, da die auch bei HW knausern:
http://canhack.de

sg clemens

Autor: Thomas W. (tomiondrums)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Clemens:
> Privat verwende ich diesen Umsetzer:
> http://www.peak-system.com/
und welchen davon genau?

Autor: Clemens S. (zoggl)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
den Pcan USB (leider den mit netzwerkbuchse, nicht den mit 9 pol D sub; 
mach nicht den selben fehler)

als CAN baustein ist verbaut:
http://www.datasheetcatalog.org/datasheet/philips/...

der µC ist ein:
http://www.datasheetcatalog.org/datasheet/infineon...

leider sind viele funktionen des can bausteins in der doku (frei 
verfügbar bei interesse einfach laden) nicht verfügbar. ich bearbeite 
derzeit den Vertrieb diese UDFs freizugeben, bis lang aber ohne erfolg 
(muss zugeben, dass ich vl noch nicht genügend nervig war)

sg clemens

Autor: Matthias H. (matthiash)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Thomas,

wenn du noch nichts gefunden hast kann ich dir einen PCAN-Dongle 
anbieten.
Parallel(Daten) und PS2(Stromversorg.) auf Can.
dieser hier: 
http://www.peak-system.com/Produktdetails.49+M5a16...

Allerdings nicht neu sondern gebraucht für Testzwecke auf dem 
Schreibrisch.
Seitdem mein Laptop kein Parallelport mehr hat liegt er im Schrank.

Melde dich wenn du Interesse hast.

Gruß
Matthias

Autor: tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Thomas,

Ich habe hier noch einen Lawicel CANUSB herumzuliegen nebst CAN-Monitor 
Pro SW und würde den günstig abgeben.

http://elmicro.com/de/canusb.html

Bei Interesse bitte email an tom at tktronic punkt de.

gruss + schoenes we, tom.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.