CAN - Erfahrungen / Software

Janiiix3

Aktives Mitglied
28. Sep. 2013
1.333
10
38
Hannover
Sprachen
  1. ANSI C
  2. C#
Hallo Freunde,

ich würde mir ganz gerne mal einen CAN Sniffer basteln, um zu schauen was auf dem CAN so gesprochen wird.

Die CAN Hardware sollte ja nicht wirklich das Problem sein, hat jemand Erfahrung was die Software angeht?
 
Hi,

was hast Du genau vor? Einfach nur schnüffeln oder auch mal was senden?

Was erhoffst Du Dir zu sehen?

Du wirst sowas in der Art sehen: "DA 4 80 0C C0 FF", dabei ist:
  • DA: CAN-ID
  • 4: DLC, Anzahl der Bytes im Datenfeld
  • 80 0C C0 FF: Datenfeld

CAN-Botschaften sind nicht standartisiert, jeder Hersteller macht es so, wie es ihm gerade in den Kramm passt. Um die Botschaften zu decodieren, brauchst Du eine sog. Datenbasis. Da steht im Prinzip drin, welche CAN-ID was bedeutet und welche Bits im Datenfeld welche Info tragen. Ohne, kannst Du das ganze Ding vergessen.

Ganz wichtig: wenn Du am Bus hängst, schalte den CAN-Controller in den ListenOnly-Modus, sonst beeinflußt Du den Bus. Und nochwas, je nach Busart (high-speed oder low-speed) musst Du auf Terminierung achten!

Was meinst Du genau mit "Software"?
 
Hallo Hemi,

Ich möchte auch gerne was senden. Nimmt man einen Atmel mit CAN Controller oder lieber einen externen?
Muss die CRC Berechnung von mir durchgeführt werden oder würde das der Controller übernehmen?

Wie ein CAN Frame aussehen muss, weiß ich so ungefähr.

Was muss in Software denn alles realisiert werden, damit ich auf den CAN Bus was senden kann?
 
Ob Du eine MCU mit einem integrierten Controller nimmst oder eine MCU + Controller ist eigentlich egal, Hauptsache Du hast einen und hängst nicht einen CAN-Transceiver an den USART oder so, das geht gar nichts. Ein CAN-Controller hat einiges an Logik drin. CRC über die gesamte Botschaft rechnet der Controller selbst aus. Du musst praktisch nur CAN-ID, DLC und Datenfeld setzen und raus damit. Den Rest macht der Controller. Klar, die Geschwindigkeit musst noch setzen und SamplePoint und so Späße.

Schau Dir mal das CAN-Projekt von http://www.kreatives-chaos.com/ an, da ist so ziemlich alles drin.
 
Okay. Das hört sich ja gut an. Hast du schon Erfahrungen mit CAN? Wie sieht es mit der Baudrate aus? Ich würde eigentlich einen Auto Scan machen oder ist das keine so eine gute Idee? Die ID oder den Knoten würde ich einfach via. DIP Schalter einlesen...
 
Ja, ich habe Erfahrungen mit CAN und den seriellen Bussystemen insgesamt. Ich verwende aber Profihardware und Software.

BaudRaten sind so eine Sache. Es muss nicht nur die BaudRate passen, sondern auch SamplePoint.
 
Was genau meinst du mit Sample Point?
 
Achso okay. Ich hätte jetzt einfach das RXD Signal am Anfang gepollt. Hast du deine CAN Software in C realisiert?
 
Aauaaauuuuuuaaaaaaaa, bloß nicht. Schau Dir das Datenblatt von Deiner MCU, die Du verwenden willst. Das läuft bei CAN ganz anders ab.

Der Controller empfängt die Botschaft vollständig, nicht wie USART byteweise. Dann wird ein Flag gesetzt und ein Interrupt gefeuert. So läuft es beim LPC1768 ab.

Meine Software ist für Windows. Von NXP gibt es eine kleine Implementierung für den LPC1768, da ist eine minimale Funktionalität drin.
 
Ich werde aufjedenfall einen DIP Schalter für die Baudrate mit vorsehen. Muss ich noch irgendwas beachten Protokoll technisch?
 
Werde mich die Tage mal an den Schaltplan für den CAN setzen und hier direkt mal posten. Vielen Dank erst einmal für deine Hilfe. Werde bestimmt noch einmal drauf zurück kommen müssen.
 

Über uns

  • Makerconnect ist ein Forum, welches wir ausschließlich für einen Gedankenaustausch und als Diskussionsplattform für Interessierte bereitstellen, welche sich privat, durch das Studium oder beruflich mit Mikrocontroller- und Kleinstrechnersystemen beschäftigen wollen oder müssen ;-)
  • Dirk
  • Du bist noch kein Mitglied in unserer freundlichen Community? Werde Teil von uns und registriere dich in unserem Forum.
  •  Registriere dich

User Menu

 Kaffeezeit

  • Wir arbeiten hart daran sicherzustellen, dass unser Forum permanent online und schnell erreichbar ist, unsere Forensoftware auf dem aktuellsten Stand ist und der Server regelmäßig gewartet wird. Auch die Themen Datensicherheit und Datenschutz sind uns wichtig und hier sind wir auch ständig aktiv. Alles in allem, sorgen wir uns darum, dass alles Drumherum stimmt :-)

    Dir gefällt das Forum und unsere Arbeit und du möchtest uns unterstützen? Unterstütze uns durch deine Premium-Mitgliedschaft!
    Wir freuen uns auch über eine Spende für unsere Kaffeekasse :-)
    Vielen Dank! :ciao:


     Spende uns! (Paypal)