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


von Thomas W. (tomiondrums)


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

von ttl (Gast)


Lesenswert?

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

von Dietmar (Gast)


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-electronics/products/hardware/bus-interfaces/can-bus-usb.php?navanchor=4010394

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

von heinzhorst (Gast)


Lesenswert?

Wie wär's damit:

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en537141

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.

von (prx) A. K. (prx)


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.

von Clemens S. (zoggl)


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

von (prx) A. K. (prx)


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?

von Thomas W. (tomiondrums)


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!

von (prx) A. K. (prx)


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.

von Clemens S. (zoggl)


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

von Thomas W. (tomiondrums)


Lesenswert?

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

von Clemens S. (zoggl)


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/SJA1000T.pdf

der µC ist ein:
http://www.datasheetcatalog.org/datasheet/infineon/1-d161ri.pdf

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

von Matthias H. (matthiash)


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+M5a16c83449b.0.html?&tx_commerce_pi1[catUid]=6&tx_commerce_pi1[showUid]=18

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

von tom (Gast)


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.

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.